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等)採集數據;
- 接着將採集到的數據整理上報到服務器;
- 服務器接收到數據後建模、存儲、挖掘分析,讓後將數據可視化,供用戶使用。