APM 介绍

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

工作流程:

  1. 首先在客户端(Android、iOS、Web等)采集数据;
  2. 接着将采集到的数据整理上报到服务器;
  3. 服务器接收到数据后建模、存储、挖掘分析,让后将数据可视化,供用户使用。

你可能感兴趣的:(android)