SDK思维导图

2016年11月04日

# SDK

## 为什么是SDK

### 批量开发

### 代码复用

### 提高效率

### 开放平台

## SDK有哪些特性

### 使用对象是开发者

### 所有版本存在时间长

### SDK更新过程复杂

#### SDK版本发布到上线间隔长

#### SDK版本更新涉及范围广

## SDK对外平台需要哪些内容

### 流程

#### 开发者注册、信息修改

#### 应用注册、信息修改

#### 应用提交审核

#### 应用对外发布

#### 平台与开发者对账

#### 平台与开发者结算

### 文档

#### 商业接入流程

##### 开发者注册

##### 应用注册

##### 应用权限申请

##### 应用审核

##### 对账结算

#### SDK介绍

##### SDK功能介绍

##### 名词解释

##### 下载地址

##### 版本历史

#### SDK模块说明

##### 模块介绍

##### 相关配置

##### 使用场景

##### 注意事项

##### 接入问题定位流程

#### SDK接入介绍

##### SDK包内容介绍

##### SDK架构介绍

##### SDK调用原理

##### SDK相关开发环境

##### SDK接入指引

##### SDK更新指引

##### 代码混淆规则

##### SDK错误码介绍

##### SDK通用常量介绍

##### 接入验证案例

#### SDK API介绍

##### 接口声明

###### 参数说明

###### 返回值说明

##### 调用事例

##### 异常处理

##### 注意事项

### 版本

#### 版本号

##### 数字版本号

##### 字符版本名

#### 版本类型

##### 开发版

##### 稳定版

#### 版本策略

##### 多久一个版本

##### 版本怎么灰度

##### 开发版多久升级稳定版

##### 已发布版本多久放弃维护

##### 已发布版本什么情况强制升级

### 消息触达

#### 公告

#### 站内信

#### 微信公众号

### 技术支持

#### QQ群

#### 微信

#### 开发者社区

## SDK客户端需要哪些内容

### 对于SDK的开发者

#### 开发

##### 安全性

###### 网路安全

####### https

####### 网络内容加密

###### 存储安全

####### 存储什么

######## SDK配置

######## 用户数据

####### 怎么保证安全

######## 加密保存

######### 基于设备加密

######### 提高加密逻辑破解难度

######### 客户端加密要基于设备

##### 稳定性

###### SDK热更新

###### 降级服务

###### 云端配置

##### 自动构建

###### 自动分配版本号

###### SDK自动编译

###### SVN、git版本代码自动创建tag

###### 自动生成版本包

#### 数据

##### 数据上报

###### SDK 行为数据

###### SDK 异常日志上报

###### SDK用户行为数据

###### 后台接口数据

####### 成功率

####### 延时

####### 请求次数

##### 本地日志

##### 数据视图

###### SDK接入情况

###### SDK接口调用情况

###### 版本分布情况

###### SDK用户画像

####### 设备

####### 账号

####### 地域

####### 用户行为

##### 监控、告警

###### Crash

###### 错误率

#### 测试

##### 常规功能测试

##### 兼容性测试

###### 升级、降级

###### 不同系统版本

###### 不同屏幕分辨率

##### 自动化测试

##### 性能测试

##### 静态扫描

###### findbugs

###### converity

### 对于SDK的使用者

#### SDK版本包

##### SDK库

###### SDK库文件

###### 对应Demo源码

##### 包内容介绍文档

##### SDK关键文件

###### 代码混淆文件

###### 配置文件

###### 签名文件

##### Demo可运行安装包

## SDK服务端需要哪些内容

### 对于SDK的开发者

#### 开发

##### 稳定性

###### 异地容灾

####### 接入层

####### 逻辑层

####### 数据层

###### 全局限频

###### 模块隔离

###### 故障演习

###### 降级服务

##### 安全性

#### 数据

##### 日志上报

##### 用户染色

##### 数据视图

###### SDK接口调用情况

###### SDK接入情况

###### 服务器负载情况

##### 监控、告警

###### SDK维度

###### app维度

###### cgi维度

#### 测试

### 对于SDK的使用者

#### 沙箱