从APP项目提出到团队设计项目落地,详细分享了汽车之家APP在实际开发中的架构,难题以及解决方式。

注脚

展开查看详情

1.汽车之家APP快速发布方案 2018年11月

2.个人简介 喜欢钻研移动开发技术,毕业后, 一直在知名互联网公司工作;工作7 年多积累了大量APP开发经验; 2015年12月加入汽车之家主软 件架构团队,专注于移动项目持续集 成、移动项目开发效率的提升、iOS 热修复、移动项目动态化等项目研究 和开发; Confidential & Proprietary 2

3.目录 1 业务背景 2 提升开发效率 3 APP质量保证 4 总结与展望 Confidential & Proprietary 3

4.1.业务背景 Confidential & Proprietary !4

5.汽⻋车之家业务结构 办公地A⼤大厦 办公地B⼤大厦 资讯业 务 ⼆二⼿手⻋车 互动业 办公地C⼤大厦 务 汽⻋车之家APP 新⻋车电 (主APP) 商 产品库 办公地D⼤大厦 业务 … … Confidential & Proprietary 5

6.汽⻋车之家APP架构 业 车服务 新车电商 二手车 资讯 务 层 经销商 汽车金融 广告 … 平 日志库 UI库 网络库 多媒体库 AB测试 智能降级 台 层 RN基础库 加密盒子 工具库 浏览器 性能监控 … 原生插件 ReactNative 框架层 插件管理器 模块管理器 性能监控 … RNSDK 路由管理 运行管理 框 安全管理器 沙盒管理 消息管理 API调用管理 动态化更新 架 层 H5基础服务 动态化管理 运行时管理 热修复 … Confidential & Proprietary 6

7.思考: • 多团队协同开发,沟通成本高; • 业务插件怎样才能快速开发,提升开发效率? • 怎样快速验收业务插件,保证开发质量? • APP上线后,怎样保证质量? Confidential & Proprietary 7

8.持续集成系统 • 提升开发效率 • APP质量保证 ➡ 标准化开发环境 ➡ 自动化插件验收 ➡ 高效的开发工具 ➡ AB测试 ➡ 流程化开发 ➡ 数据采集及监控 ➡ 异常告警 ➡ 智能降级及停用 Confidential & Proprietary 8

9.2.提升开发效率 Confidential & Proprietary !9

10.2.1 标准化业务开发环境 基础运⾏行行环境 业务插件 系统模块 通知模块 Sheme模块 ⽣生命周期模块 … 通⽤用业务 AHBusiness SDK 插件1 RN模块 RN组件库 RN Bridge RN 更更新管理理 … = 插件管理理 业务插件管理理平台 ⼩小视频SDK 播放器器SDK AB测试SDK ➕ 插件2 通⽤用组件 ⼴广告SDK 热修复SDK 浏览器器SDK … 第三⽅方sdk 封装库 ⽇日志库 ⽹网络库 PV SDK … 插件n 通⽤用库 UI库 基础⼯工具库 数据操作库 … Confidential & Proprietary !10

11.2.2 ⾼高效的开发⼯工具 调试辅助⼯工具 ➕ ➕ Confidential & Proprietary !11

12.2.3 流程化开发-APP整体研发流程 业务线开发流程 平台⾃自动化验收 插件1 插件1 启动流程 业务线开发流程 平台⾃自动化验收 集成流程 发布流程 APP某版本 插件2 插件2 业务线开发流程 平台⾃自动化验收 … … Confidential & Proprietary !12

13.2.3 流程化开发-基础库不不兼容性变更更流程 未通过 通过 基础库 业务确认 智能查找 通知业务线 CI确认 结束流程 不不兼容性变更更 并修改 Confidential & Proprietary !13

14.2.3 流程化开发-业务开发流程 系统测试 ⾃自动化 测试 打包、提测 审核 启动流程 功能验收 集成验收 插件包 性能测试 主管审批 兼容性 测试 Confidential & Proprietary !14

15.2.3 流程化开发-集成期流程 业务包1 业务1 集成测试 编译 ⾃自动化 OTA 业务1 主功能 业务包2 发布流程 集成包 验收 通知测试 集成测试 测试 业务… 业务包 集成测试 … Confidential & Proprietary !15

16.2.3 流程化开发-⾃自动化发布流程 符号表存储 上传⾄至APP 编译 导出IPA包 备份 及上传 Store 项⽬目管 理理员预 先配好 更更新渠道 上传⾄至渠 上线信 签名 备份 信息1 道市场1 息 保存Mapping 编译 更更新渠道 备份 上传⾄至渠 ⽂文件 签名 信息2 道市场2 更更新渠道 上传⾄至渠 签名 备份 信息n 道市场n Confidential & Proprietary !16

17.2.3 流程化开发-⾃自定义流程 功能选择 打包 Unit Test Auto Test 发布分⽀支 触发条件 通知 静态代码 ⾃自动分发 ⾃自定义 分析 Confidential & Proprietary !17

18.3.APP质量保证 Confidential & Proprietary !18

19.3.1 ⾃自动化验收业务插件—静态代码分析 通知 ⾮非法调 代码规 ⾃自动 ⽤用 范 未通过 … 业务 触发 分析报 提交 告 资源扫 权限漏漏 描 洞洞 通过 ⾃自动化 测试 静态代码分析 Confidential & Proprietary !19

20.3.2 ⾃自动化验收业务插件—⾃自动化测试 单元测试 (unit testing) ➕ UI Auto Test Confidential & Proprietary !20

21.3.2 ⾃自动化验收业务插件—验收指标 crash CPU 流量量 包⼤大⼩小 内存 业务 插件 ⻚页⾯面加 启动 载时⻓长 耗时 过度 卡顿 绘制 Confidential & Proprietary !21

22.3.3 线上质量量保证—AB测试 A 25%提升 最优结果 AB 13% B Test 提升 C • 用户画像 • 使用场景 - 用户信息 - 产品决策 - 设备信息 - 灰度发布 - 多种标签 - 精细化营销 Confidential & Proprietary !22

23.3.4 线上质量量保证—数据采集与监控 采集 ⽤用户⾏行行为 ⻚页⾯面信息 资源获取 数据接⼝口 耗时 接⼝口错误 监控 内部逻辑错误 性能 DNS劫持 ⽹网络错误 内容劫持 数据异常 … … Confidential & Proprietary !23

24.3.4 线上质量量保证—crash⾃自动分析 符号化 业务线归属 crash信息上传 ⾃自动分析 通知 ⽤用户操作路路径 客户端 持续集成平台 APP信息 业务负责⼈人 设备信息 Confidential & Proprietary !24

25.3.5 线上质量量保证—异常告警 • 内部逻辑告警 • 页面性能告警 • 资源告警 • 接口告警 • Crash告警 Confidential & Proprietary !25

26.3.6 线上质量量保证—智能降级与停⽤用 版本回滚 React Native H5 停⽤用 优先级⾼高到底 Confidential & Proprietary !26

27.5.总结与展望 Confidential & Proprietary !27

28.效率表现 • 全业务插件式接入 • 支持多团队、多版本并行开发 • 支持多样式开发(原生、React Native、H5) • 提升业务开发效率,有效降低了开发 成本和沟通成本 Confidential & Proprietary !28

29.质量量表现 指标说明 结果 主APP⻚页⾯面秒开率 > 95% 主APP⻚页⾯面打开成功率 > 99.9% Crash率 万分之三以下 Confidential & Proprietary !29