360 移動 App 效能監控平臺 ArgusAPM 開源
專案背景
ArgusAPM 是360手機衛士客戶端團隊繼RePlugin之後開源的又一個重量級開源專案。ArgusAPM是360移動端產品使用的視覺化效能監控平臺,為移動端APP提供效能監控與管理,可以迅速發現和定位各類APP效能和使用問題,幫助APP不斷的提升使用者體驗。
github地址
https://github.com/Qihoo360/ArgusAPM
歡迎點選下方 閱讀原文 檢視專案詳細內容~
產品價值
-
實時掌控應用效能
-
降低效能定位成本
-
有效提升使用者體驗
監控模組
ArgusAPM目前支援如下效能指標:
-
互動分析:分析Activity生命週期耗時,幫助提升頁面開啟速度,優化使用者UI體驗
-
網路請求分析:監控流量使用情況,發現並定位各種網路問題
-
記憶體分析:全面監控記憶體使用情況,降低記憶體佔用
-
程序監控:針對多程序應用,統計程序啟動情況,發現啟動異常(耗電、存活率等)
-
檔案監控:監控APP私有檔案大小/變化,避免私有檔案過大導致的卡頓、儲存空間佔用等問題
-
卡頓分析:監控並發現卡頓原因,程式碼堆疊精準定位問題,解決明顯的卡頓體驗
-
ANR分析:捕獲ANR異常,解決APP的“未響應”問題
ArgusAPM特性
非侵入式
無需修改原有工程結構,無侵入接入,接入成本低。
無效能損耗
ArgusAPM針對各個效能採集模組,優化了採集時機,在不影響原有效能的基礎上進行效能的採集和分析。
監控全面
目前支援UI效能、網路效能、記憶體、程序、檔案、卡頓、ANR等各個維度的效能資料分析,後續還會繼續增加新的效能維度。
Debug模式
獨有的Debug模式,支援開發和測試階段、實時採集效能資料,實時本地分析的能力,幫助開發和測試人員在上線前解決效能問題。
支援外掛化方案
在初始化階段進行設定,可支援外掛接入,目前360手機衛士採用的就是在RePlugin外掛中接入ArgusAPM,並且效能方面無影響。
支援多程序採集
針對多程序的情況,我們做了相應的資料採集及優化方案,使ArgusAPM即適合單程序APP也適合多程序APP。
節省使用者流量
ArgusAPM使用wifi狀態下上傳效能資料,這樣避免了頻繁網路請求帶來的耗電問題及使用者流量的消耗。
ArgusAPM 專案結構圖
整體架構分為兩部分:一是左邊藍色的部分:效能採集模組,一是右邊的綠色部分:Gradle Plugin模組。
下面分別針對這兩部分做簡單的介紹:
1
效能採集模組
該模組總共分為五個Module,並最終生成三個aar檔案,即:
argus-apm-main.aar:APM專案的核心業務模組
argus-apm-aop.aar:AOP程式碼的織入模組
argus-apm-okhttp.aar:採集OKHTTP網路效能
其中之所以拆分那麼多的模組,是為了能夠讓我們可插拔式的去使用裡面的功能,例如,如果我專案中沒有使用OKHTTP相關的功能,那麼我們就可以關閉相應的依賴。
2
Gradle Plugin模組
該模組主要具備兩個作用:
-
支援AOP程式設計,方便ArgusAPM能夠在編譯期織入一些效能採集的程式碼;
-
通過Gradle外掛來管理依賴庫,使使用者接入ArgusAPM更簡單。
最終,我們在接入ArgusAPM的時候,只需要簡單的應用外掛即可,而不需要再單獨的去依賴各個aar檔案。
如何使用
如果您想快速的接入ArgusAPM,請參考《三分鐘快速接入ArgusAPM》,依照文章指引,快速接入;
如果您想了解更多的ArgusAPM的使用技巧,請參考《詳細接入教程》;
如果您想參檢視官方的Sample,進而瞭解具體的用法,請檢視《Sample》;
如果您在接入ArgusAPM的過程中遇到問題,請閱讀《FAQ》,也可加入我們官方的QQ群,進行諮詢。
具體詳情參見:
https://github.com/Qihoo360/ArgusAPM/wiki
使用現狀
未來規劃
-
支援更多的效能指標
-
提升使用者體驗
官方QQ群
360移動技術微信公眾號“奇卓社”
12月16號,我們將舉辦一場ArgusAPM技術交流會。
ArgusAPM的設計和實踐深度分享,移動端效能檢測實踐(iOS篇)以及美團外賣針對冷啟動的效能實踐分享,都在這裡了!
掃碼報名:360移動技術開放日——APM Con

福
利
轉發本篇文章到朋友圈,集齊50個贊 ,可憑截圖在16號移動技術開放日現場領取 ArgusAPM定製精美禮品 一份!
領取方式 :12月16號 360移動技術開放日當天 現場 憑截圖至工作人員處領取
更多驚喜
報名參加16號移動技術開放日, 現場 還有更多 大獎 等著你哦!

點選閱讀原文,檢視專案詳情!喜歡就加個star吧~