谁能告诉我hub服务器和tsdk服务器是什么意思?

谁能告诉我hub服务器和tsdk服务器是什么意思?,第1张

HUB是一个多端口的转发器,在以HUB为中心设备时,即使网络中某条线路产生了故障,并不影响其它线路的工作。所以HUB在局域网中得到了广泛的应用。
SDK服务器:软件开发工具包服务器。

SDK目录结构
如果您是通过网盘下载SDK的zip包,需要自行安装JRE并且解压。SDK的基本目录结构:
bin目录:管理工具启动脚本程序。Windows *** 作系统,启动NewStartServerbat或者StartServerbat。非Windows *** 作系统,启动startServersh。特别提醒,确保 *** 作系统中使用最新的JRE 6以上版本
conf目录:SDK服务器的配置文件,请不要随意修改
db目录:存放SDK本地数据库文件,请不要随意修改
lib目录:SDK服务器依赖的类库文件,请不要随意修改
sdk_open_apiphp文件:SDK支持的开放API接口,属于数据开放接口,TAE应用也可以使用
tae_open_apiphp文件:TAE支持的开放API接口,为TAE提供基础服务,作为sdk_open_apiphp的补充
topclientphp文件:淘宝开放平台(TOP)的服务调用接口
启动SDK工具
根据具体 *** 作系统,启动bin目录中的启动脚本。本例中使用的Windows *** 作系统运行的结果:
SDK将会自动启动用户偏好的浏览器:
注意:服务器端口,与后面的访问的时候的端口保持一致。
当前SDK工具没有提供TAE APP的应用管理页面,而是需要开发者手动绑定开发。接下来具体介绍如何开发TAE应用。
成功启动后,目录结构会发生变化:
不难发现,apps目录被自动创建了,该目录就是管理TAE 应用的目录。
目录结构及配置
首先,使用投票应用voteapp为例,其目录结构如下图:
从上图中,可以初步了解一个应用APP的目录基本结构,接下来,详细详细介绍各个目录的作用以及规范。
静态资源目录:assets目录,包括js、css和文件。文件均存放在imagse子目录中,页面渲染样式CSS文件都存放在stylesheets目录中,而Javascripts目录则是管理JavaScript脚本文件。后面的章节会具体介绍如何访问这些资源文件。
数据库访问目录:dao目录的文件复制数据库访问和sql的封装。例如上图中dbconfigphp则利用PHP的PDO技术,管理配置数据库数据源,即PDO对象。其他的vote_xxx_daophp则是数据库访问对象(DAO)的封装。
应用服务目录:service目录管理封装了相关的应用相关的核心业务逻辑PHP页面。所谓的服务,就是为视图页面提供服务调用的接口,实现业务逻辑,减少代码耦合度。
视图文件目录:view目录是web层,负责页面的布局、内容的展现和请求跳转控制,tae web层的使用smarty模板引擎, tae自己实现了url的控制和映射,具体使用见配置文件。
appyml是应用的配置文件,demo中具体的目录可以通过配置文件统一配置,具体配置项见下文。
根目录下appyaml文件定义了该应用的具体组成部分, 具体介绍如下:
!!comtaobaotaeconfigdomainConfig
#应用元信息
title: voteapp
description: 投票应用新的结构
version: 10
language: php
author: shihong
thumbnail: /aaajpg
#type: 1 tae 模块 2 独立站点
type: 2
#全局css的配置
css: /assets/stylesheets/gcss
#首页 通过域名直接访问的页面如testuztaobaocom访问时的页面
index: /view/front/viewphp
#>1、先到google开发网站下载合适的SDK和ADT,网址:developer/sdk/indexhtml该网站已经被和协了,到百度里搜一下>SDK设计的几个原则:稳定性、可扩展性、无侵性、崩溃问题采集、相应位置的打点监听。

SDK最最重要的一个原则就是稳定向,一般要保持崩溃率在万分之一二以下,否则用户那边是很难过的去的。那么我们要保证我们的稳定性就要做到以下几点来降低崩溃率。

不要太相信后端传过来的数据,有时候数据是nil让你崩的猝不及防,所以就需要对获取的数据进行安全化处理。
所谓安全化处理,就是我们使用类别的方法,进行安全化处理,比如NSString、NSArray、NSDictonry,要对内部的数据做判空等处理。防止出现调用的数据出现nil或者数组越界从而引发的崩溃。

用户调用的时候会有各种奇葩的调用,有的甚至在子线程调用SDK的初始化方法,SDK一些定时 *** 作会失效,导致功能缺失问题。所以在SDK初始化的方法里面要强制进入主线程,杜绝线程方面的问题。

接口并不轻易改变调用方法或者参数,有稳定回调、数据格式不发生变化等。这很重要,一旦修改,必然导致所有的客户都要修改,所以这是原则问题,在设计的时候就要考虑到。
1、所有的回调都在主线程。
2、无论成功还是失败,都要给出相应的结果。

SDK的接口要有扩展性,随着SDK的迭代,可能需要的传参有增加。这就需要我们扩展SDK,如果我们使用直接一个个传递参数的的方式调用就会让SDK的方法调用十分冗长且不优美,而且还要用户修改调用方法,多方面考虑这种方式都不合理。
所以,我们需要创建个对象,将传递的参数做为这个对象的属性,一旦需要增加参数,那么我们只需要增加属性就足够了,用户也只需要增加这个对象的参数配置就行了,调用方式也不用改变。

SDK对于宿主App的依赖应该足够小,如不能跟宿主App起相同的类名、使用相同的扩展、依赖相同的第三方库等

内部所有 *** 作应该尽可能放在自定义子线程中

使用三方库这个是难免的,所以我们需要注意避免和用户的三方库产生冲突。
a、需要rename类名包括类别以及类别方法,加上本公司的特定标识。
b、extern 声明的外部全局变量,也是都需要修改的。

拓展:在开发中,我们通常会单独抽一个类来管理一些全局的变量或常量,通常搞一个GlobeConst文件,里面专门定义全局常量或常量。
extern和#defineh定义的区别:
extern与const组合:只需要定义一份全局常量或变量,多个文件共享。编译时刻,有类型检查,const仅仅用来修饰右边的变量,被const修饰的变量是只读的。
#define 预编译,简单的字符串替换,没有类型检查,可以预编译表达式,也可以定义常量

由于SDK在线上会面临各种各样的问题,所以我们需要实时统计SDK的崩溃问题,并及时修复,所以需要我们对SDK内的崩溃进行统计并上传。
注册unCaughtExceptionHandler(),发现崩溃及时上报。

除了还需要采集崩溃的堆栈信息,还需要添加上附加信息,比如手机系统版本号、手机型号、SDK版本号等等重要标识,方便我们定位问题。

不能在崩溃的时候直接发送给服务器,会导致我们收不到发送成功还是失败的信息,我们会在下次启动初始化SDK的时候发送出去。

目前而言,sdk更多的是某些服务型的sdk,也就是说,该sdk必须通过发行者的服务器来提供服务或者使用……
所以,常用的盈利模式就是服务使用费了,具体举例就是,个推,sdk是免费下载的,但是你使用时,就有限制了,因为你要推送信息就必须要使用个推的服务器,然后,他就可以在这个环节上收取费用。
这是最常用也是比较多人接受的一种盈利模式。
望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10290976.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存