APM 全称 Application Performance Management & Monitoring (应用性能管理/监控)
原理
Android APM 的原理其实非常简单,用一句话总结就是:
依据打包原理,在 class 转换为 dex 的过程中,调用 gradle transform api 遍历 class 文件,借助 Javassist、ASM 等框架修改字节码,插入我们自己的代码实现性能数据的统计。
以上所有过程都是在编译期完成的。
其实 Android 上的无痕埋点也是同样的原理,区别只不过是我们 hook 的点不同,采集的数据不同,因此掌握了 APM 的实现原理同样可以实现无痕埋点系统。
-
成熟APM
-
通用
-
稳定,经过多家产品的验证
-
-
自建APM
-
能够个性化定制
-
外部APM与内部系统系统难打通,带来的时间成本
-
数据需要掌握在自己手里
-
优秀的平台化实践
-
crash手机平台
-
bugly:native奔溃手机
-
-
APM
-
博睿、听云、OneAPM、云智慧
-
听云:数据采集完善,方便接入
-
-
自建APM:
-
美团 携程 360
-
工作流程:
- 首先在客户端(Android、iOS、Web等)采集数据;
- 接着将采集到的数据整理上报到服务器;
- 服务器接收到数据后建模、存储、挖掘分析,让后将数据可视化,供用户使用。