Android快速迭代设计与实践
目录

基础建设
移动互联网时代,APP就是流量入口,APP体验与迭代速度影响用户粘性,对APP要求快速迭代,并保证稳定性,业务动态化,可监控,进而要求移动端有个良好的基础架构,来保证业务的快速迭代。
基础建设
组件化,插件化,跨平台,壳view
组件化:便于修改,提供其它APP使用;
插件化:各个业务开发隔离,方便业务迭代
跨平台:React Native 跨平台开发
壳view:集成各个组件或者插件,快速开发新的APP
整体架构

插件结构

跨平台
React Native 跨平台开发,
优点:
远程更新代码,提高迭代频率和效率,既有原生应用的用户体验,又保留React的开发效率,一份代码可在Android/IOS上执行,门槛低,web前端开发人员可轻松转型,Android/IOS开发也很快上手。
缺点:
不能真正意义上跨平台,需要Native 自定义bridge支持(两端封装bridge);
复杂并且交互性强的UI性能体验较差(采用Native实现或自定义Native组件提供给RN使用)
React Native与其它开发方式比较:

跨平台集成方式

性能和稳定性治理
性能指标:
卡顿率,启动时长,帧率,ANR率,流量,耗电
稳定性指标:
CRASH率
性能治理

稳定性治理
多维度全方位定位分析Crash问题
Crash分ANR,普通Crash,so加载异常,OOM
1、ANR,拉取页面打点数据及ANR数据,定期分析;
2、普通Crash,及时修复;
3、so加载,异常保护;
4、OOM,各维度打点数据配合分析,长期解决;
热修复和开发流程
热修复:
主APP—>dex patch 修复
React Native—>js bundle修复
插件热修复—>后台配置修复
业务错误—>后台开关配置
开发流程:
开发—>测试—>回归—>发布—>线上跟踪—>复盘
开发阶段Code Review,严格把控代码质量;
持续集成系统,一键切分支,自动打包,减少人为干预;
自动检测各个仓库是否有提交代码,减少打包等待时间;
测试阶段,自测,产品,UI验收;
回归:测试人员回归+自动化暴力测试,后台Crash日志系统;
发布:jenkins自动拉取渠道配置,渠道签名,生成对应apk文件,取包上传对应应用市场
线上跟踪:Crash日志及Crash报警;
复盘:整体功能Code Review,Crash 总结分析,沉淀规范与建议;
思考&建议
技术选型,选择符合自身业务的技术架构
量化指标
统一设计