【夏鸣远】APP质量监控与性能优化

巧德厚

2017/12/31 发布于 技术 分类

2017年,droidcon 第2次来到中国,并将于2017年11月在北京盛大开幕。参会人群包括业界领袖、技术大咖、技术开发者、大众创业者及领域从业者。大会将邀请来自Google、微软、Facebook、Ebay、Intel、Telenav、阿里巴巴、腾讯、小米、乐视、联想等国内外安卓技术与应用领域的大咖,沿袭历年国际大会特色,聚焦行业最前沿技术,碰撞切磋技术火花。

文字内容
1. APP质量监控 与性能优化 夏鸣远 AppetizerIO theappetizerio@gmail.com S 1
2. 没有数据的调试是痛苦的! 2
3. 没有数据的调试是痛苦的! S 没有堆栈的闪退 S 没有抓包的HTTP接口错误 S 没有Tracing的卡顿 S 没有埋点的业务错误 3
4. 问题 与 解决问题的成本 解决成本 logcat y=x 异常 4 问题复杂度
5. 问题 与 解决问题的成本 解决成本 logcat SDK 系统工具 y=x2 y=x 异常 HTTP接口错误 内存泄露 5 问题复杂度
6. 问题 与 解决问题的成本 解决成本 人工代码埋点 dumpsys logcat SDK 系统工具 y=x2 y=x y=ex 异常 HTTP接口错误 内存泄露 6 卡顿 业务错误 性能问题 问题复杂度
7. 问题 与 解决问题的成本 解决成本 代码维护成本 业务升级成本 更新适配成本 副作用 发包流程复杂度 团队理解复杂度 人工代码埋点 dumpsys logcat SDK 系统工具 y=x2 y=x y=ex 异常 HTTP接口错误 内存泄露 7 卡顿 业务错误 性能问题 问题复杂度
8. DEX插桩技术 S 基于smali(dex汇编器) 解包 反汇编 按照设计的规则 自动对APP插入 监测汇编代码 插桩 重签名 重打包 8 汇编
9. Smali 代码(DEX汇编) 9
10. 插桩举例 10
11. 一键插桩 in.apk 业务逻辑 11
12. 一键插桩 $> python insights.py process in.apk out.apk 业务逻辑 测量逻辑 12
13. 质量监控流程 插桩 运行 分析 13
14. 插桩支持的APP开发技术 混淆 ✔ 加固 ⨉ 插桩 运行 WEEX 热补丁:Tinker, AndFix 14 分析
15. 插桩测量内容 Java层全线程异常 ANR 主线程卡顿(事件、回调) 功能切换(Activity/Fragment) HTTP抓包(完整请求响应参数) CPU/内存使用率 功能覆盖率 网络流量 时序关系 SDK ✔ ✔ ✔ 埋点 埋点 埋点 工具 ✔ ✔ 配置 ✔ 配置 超慢 Appetizer ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
16. 插桩接入方式 Jenkins Python 命令行 图形化客户端 Gradle 公有云插桩服务 Docker 16 私有云部署
17. 运行环境 插桩 Root 配置特殊网络 安装特殊守护APP 连接USB线 ADB 运行 Appetizer ☓ ☓ ☓ ☓* 17 分析
18. 分析 插桩 运行 分析 错误 + 问题 + 深度分析 + 导出 Java异常 HTTP 400, 500 卡顿 HTTP响应慢 时间轴 流量分析 自动建模 18 JSON HTML
19. 报告 - 测试统计信息 19
20. JVM层异常 20
21. 功能切换缓慢 21
22. 自动HTTP抓包 22
23. 一键Postman重现 23
24. 主线程卡顿 24
25. 时间轴图 25
26. 深度分析:导出,搜索,排序 HTTP请求响应 某个业务内最耗 时的HTTP请求 卡顿 异常 业务中发生的异常 CPU内存用量 26
27. 流量分析 27
28. 自动功能建模 28
29. 插桩的性能、安全影响 S 测量开销 S HTTP – 非主线程 测量开销<1ms S CPU/内存数据采集 约 2% CPU占用 S 页面切换 测量开销<1ms S 安全 S 不搜集请求body,私有化部署,数据透明,插桩代码透明 29
30. DEX 插桩 S SDK:接入、配置成本,涵 盖有限,副作用 S 手工埋点:难维护,混乱 S 系统层工具:各种局限性, 采集数据有限 S 全自动一键插桩,零维护 S 持续化集成生态 S 测量广泛:闪退、性能、网络 S 数据开放、整齐、透明 传统采集方式 DEX插桩 30
31. Appetizer 资源 S 官网及图形化客户端下载: https://appetizer.io/cn/ S Python客户端:https://github.com/appetizerio/insights.py S 社区,文档:https://testerhome.com/topics/node127 S 知乎专栏: https://zhuanlan.zhihu.com/smartmobdev S QQ群:467889502 S 私有化部署:theappetizerio@gmail.com 31
32. APP质量监控 与性能优化 夏鸣远 AppetizerIO theappetizerio@gmail.com S 32