个推移动研发部研发主管吕观祥——如何开发一款优雅的 SDK
2020-02-27 119浏览
- 1.如何开发一款优雅的 SDK 个推 : 吕观祥 2016 年 9 月 24 日
- 2.背景 为企业和开发者提供消息推送技术服务 提供 Android 和 iOS 推送 SDK 支持 WEB 及服务器端推送 API 接入 使 APP 快速集成云推送功能,免去开发成本 有效提高产品活跃度与用户体验
- 3.背景 实时推送 智能推送 应景推送 强大技术支撑 推送实时高效触达 智能匹配 数据驱动,高效运营 利用 LBS 围栏技术 实时触发消息通知
- 4.背景 合适的时间 合适的地点 合适的场景 合适的内容 合适的人 定时推送 地理围栏 智能场景 标签 有价信息 智能画像 标签
- 5.背景 个推所占第三方推送市场份额 90% 个推 其他 • SDK 累积安装覆盖量超过 108 亿,覆盖超过 10 亿终端(含海外),已 接入应用 43 万,开发者 22 万,日活用户近 7.5 亿,同时在线 3.5 亿。
- 6.目录 开发 CI 发布 其他
- 7.开发 CI 发布 其他 开发 架构 API 设计 兼容性 安全 性能指标 分支管理
- 8.开发 架构设计 -- APP CI View Controller Model Model-View-Controller 发布 其他 View Presenter Model Model-View-Presenter
- 9.开发 架构设计 -- APP CI 发布 其他
- 10.开发 架构设计 -- SDK CI API Business core 发布 其他 API Business Core
- 11.开发 架构设计 -- SDK CI 发布 其他 API 参数解析 信息获取 事件驱动 逻辑处理 界c面ore Business 事 件 总 Network DB Storage 线 ConfigCenter Security Entities 任务调度 Core
- 12.开发 接口设计 易用性 : • 接入简单 • 可自解释 • 可定制 • 防止误用 CI 发布 其他
- 13.开发 CI 接口设计 稳定性 : • 生命周期 • 弃用( @Deprecated ) • 扩展 • 异常处理 发布 其他
- 14.兼容性 开发 CI 发布 其他 Android Api Rom 版本 兼容 so 版本 SDK 版本
- 15.开发 CI 安全性 -- 本地数据安全 范围 1 storage 2 shared preference 3 db 4 resource 5 memory 6… 发布 其他 实施 : • JNI • 加密 • 内存数据处理
- 16.开发 CI 安全性 -- 通信数据安全 明文 发布 其他 中间人攻击 实施 : • HTTPS • ECDHE-AES-GCM
- 17.开发 性能指标 电量 & 流量 • 批处理请求 • 优化协议 • 压缩数据 • 心跳优化处理 • WakeLock & WifiLock CI 发布 其他 内存 • 多进程处理 • 优化图片使用 包大小 • 精简 resource / code • raw/keep.xml
- 18.开发 分支管理 CI 分支来源 : • 官网 sdk 包 • 应用定制包、 rom 定制包 注意事项 : • 多版本维护 • 人员 发布 其他
- 19.开发 CI 发布 其他 CR CI Build Test
- 20.开发 Code Review 特点 : • 需求多分支兼容 • Bug Fix 工具 : CI 发布 其他
- 21.开发 BUILD CI 发布 特点 : • 多 demo 打包(包含不同配置的 demo 包) • 提供 apk 和 jar , aar 包供测试需求 其他
- 22.开发 测试 特点 : • 自动化测试 • 人工测试 CI 发布 其他
- 23.开发 CI 发布 其他 发布 灰度 配置中心 发布包管理
- 24.开发 灰度发布 用户选择 : • 测试 app 选择 • 目标用户选择 CI 发布 其他
- 25.开发 灰度发布 CI 工具 : • Logful • Android/iOS 支持 • 日志加密存储和上传 • 日志检索 • 实时日志控制 • Crash 捕获 • 数据监控,报警 发布 其他
- 26.开发 灰度发布 CI 延时数据监控 发布 其他 报警通知
- 27.开发 CI 灰度发布 Crash 趋势 发布 其他 Crash 详情
- 28.开发 配置中心 多维度配置 CI LOG 城市 版本 应用 厂商 网络 Rom 发布 其他
- 29.开发 发布包管理 Binary 打包 : • 提供 aar 包 • 多种构建工具的支持 • Maven • Jcenter • 私有仓库 CI 发布 其他
- 30.开发 发布包管理 CI 内容管理 : • 更新日志 • Sample 工程代码 • Demo APK • 文档 • Jar , aar 下载,接入方 式 • 社区支持 发布 其他
- 31.开发 CI 发布 其他 其他 第三方 jar 包 低污染 全平台支持
- 32.开发 其他 第三方 jar 包 : • 使用冲突问题 • Classpath 检测 CI 低污染: • 及时清理运行过程中创建的临时文件 发布 全平台支持 : • Cocos2dx , unity3d , APICloud , PhoneGap 等等 其他
- 33.总结 易稳灵用定活
- 34.Thanks ! @ 个推 @xiangzilv