12 月 16 日,在 360 移動性能開放日上,360 手機衛(wèi)士技術架構(gòu)負責人卜云濤向我們介紹了 360 最新開源的性能監(jiān)控平臺 ArgusAPM。ArgusAPM 是 360 手機衛(wèi)士客戶端團隊繼 RePlugin 之后開源的又一個重量級開源項目。ArgusAPM 是 360 移動端產(chǎn)品使用的可視化性能監(jiān)控平臺,為移動端 APP 提供性能監(jiān)控與管理,可以迅速發(fā)現(xiàn)和定位各類 APP 性能和使用問題,幫助 APP 不斷的提升用戶體驗。
GitHub 地址:https://github.com/Qihoo360/ArgusAPM
產(chǎn)品價值
- 實時掌控應用性能
- 降低性能定位成本
- 有效提升用戶體驗
監(jiān)控模塊
ArgusAPM 目前支持如下性能指標:
- 交互分析:分析 Activity 生命周期耗時,幫助提升頁面打開速度,優(yōu)化用戶 UI 體驗;
- 網(wǎng)絡請求分析:監(jiān)控流量使用情況,發(fā)現(xiàn)并定位各種網(wǎng)絡問題;
- 內(nèi)存分析:全面監(jiān)控內(nèi)存使用情況,降低內(nèi)存占用;
- 進程監(jiān)控:針對多進程應用,統(tǒng)計進程啟動情況,發(fā)現(xiàn)啟動異常(耗電、存活率等);
- 文件監(jiān)控:監(jiān)控 APP 私有文件大小 / 變化,避免私有文件過大導致的卡頓、存儲空間占用等問題;
- 卡頓分析:監(jiān)控并發(fā)現(xiàn)卡頓原因,代碼堆棧精準定位問題,解決明顯的卡頓體驗;
- ANR 分析:捕獲 ANR 異常,解決 APP 的“未響應”問題。
ArgusAPM 特性
- 非侵入式
無需修改原有工程結(jié)構(gòu),無侵入接入,接入成本低。
- 無性能損耗
ArgusAPM 針對各個性能采集模塊,優(yōu)化了采集時機,在不影響原有性能的基礎上進行性能的采集和分析。
- 監(jiān)控全面
目前支持 UI 性能、網(wǎng)絡性能、內(nèi)存、進程、文件、卡頓、ANR 等各個維度的性能數(shù)據(jù)分析,后續(xù)還會繼續(xù)增加新的性能維度。
- Debug 模式
獨有的 Debug 模式,支持開發(fā)和測試階段、實時采集性能數(shù)據(jù),實時本地分析的能力,幫助開發(fā)和測試人員在上線前解決性能問題。
- 支持插件化方案
在初始化階段進行設置,可支持插件接入,目前 360 手機衛(wèi)士采用的就是在 RePlugin 插件中接入 ArgusAPM,并且性能方面無影響。
- 支持多進程采集
針對多進程的情況,我們做了相應的數(shù)據(jù)采集及優(yōu)化方案,使 ArgusAPM 即適合單進程 APP 也適合多進程 APP。
- 節(jié)省用戶流量
ArgusAPM 使用 wifi 狀態(tài)下上傳性能數(shù)據(jù),這樣避免了頻繁網(wǎng)絡請求帶來的耗電問題及用戶流量的消耗。
ArgusAPM 項目結(jié)構(gòu)圖
整體架構(gòu)分為兩部分:一是左邊藍色的部分:性能采集模塊,一是右邊的綠色部分:Gradle Plugin 模塊。
下面分別針對這兩部分做簡單的介紹:
1. 性能采集模塊
該模塊總共分為五個 Module,并最終生成三個 aar 文件,即:
argus-apm-main.aar:APM 項目的核心業(yè)務模塊
argus-apm-aop.aar:AOP 代碼的織入模塊
argus-apm-okhttp.aar:采集 OKHTTP 網(wǎng)絡性能
其中之所以拆分那么多的模塊,是為了能夠讓我們可插拔式的去使用里面的功能,例如,如果我項目中沒有使用 OKHTTP 相關的功能,那么我們就可以關閉相應的依賴。
2.Gradle Plugin 模塊
該模塊主要具備兩個作用:
支持 AOP 編程,方便 ArgusAPM 能夠在編譯期織入一些性能采集的代碼;
通過 Gradle 插件來管理依賴庫,使用戶接入 ArgusAPM 更簡單。
最終,我們在接入 ArgusAPM 的時候,只需要簡單的應用插件即可,而不需要再單獨的去依賴各個 aar 文件。
如何使用
如果您想快速的接入 ArgusAPM,請參考《三分鐘快速接入 ArgusAPM》,依照文章指引,快速接入;
如果您想了解更多的 ArgusAPM 的使用技巧,請參考《詳細接入教程》;
如果您想?yún)⒉榭垂俜降?Sample,進而了解具體的用法,請查看《Sample》;
如果您在接入 ArgusAPM 的過程中遇到問題,請閱讀《FAQ》。
具體詳情參見:
https://github.com/Qihoo360/ArgusAPM/wiki
使用現(xiàn)狀
未來規(guī)劃
支持更多的性能指標
完善 DC 平臺分析維度
提升用戶體驗
版權聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。