值得推薦的Android應用效能檢測工具列表

發表於2016-03-13

最近這段時間一直在做android應用的效能優化,一個應用效能的好壞並不能依靠我們的主觀意識去評判,必須要看資料說話,因此必須要了解和學會使用各種效能測試工具才知道問題出在哪以及具體的優化方向。下面對我對效能優化的理解以及在效能優化過程中使用到的一些工具作個介紹。

零 效能指標

Android的應用效能的指標主要有:

  • 佈局複雜度:佈局複雜會導致佈局需要更長的時間,從而導致進入應用慢、頁面切換慢;
  • 耗電量:耗電量大會導致機器發熱、縮短機器的有效使用時長;
  • 記憶體:記憶體消耗大會導致頻繁GC,GC時會暫停其它工作,導致頁面卡頓;記憶體洩露會導致剩餘可用記憶體越來越小;記憶體不足會導致應用異常;
  • 網路:頻繁的網路訪問會導致耗電和影響應用的效能;網路互動資料大小會影響網路傳輸的效率;
  • 程式執行效率:糟糕的程式碼會嚴重影響程式的執行效率,UI執行緒過多的任務會阻塞應用的正常執行,長時間持有某個物件會導致潛在的記憶體洩露,頻繁的IO操作、網路操作而不用快取會嚴重影響程式的執行效率。

一 Android官方效能優化工具介紹

android針對上面這些會影響到應用效能的情況提供了一些列的工具:

1 佈局複雜度:

  • hierarchyviewer:檢測佈局複雜度,各檢視的佈局耗時情況:

  • Android開發者模式—GPU過渡繪製:


2 耗電量:Android開發者模式中的電量統計;

3 記憶體:

  • 應用執行時記憶體使用情況檢視:Android Studio—Memory/CPU/GPU;

  • 記憶體洩露檢測工具:DDMS—MAT;

4 網路:Android Studio—NetWork;

5 程式執行效率:

  • 靜態程式碼檢查工具:Android studio—Analyze—Inspect Code…/Code cleanup… ,用於檢測程式碼中潛在的問題、存在效率問題的程式碼段並提供改善方案;
  • DDMS—TraceView,用於查詢程式執行時具體耗時在哪;
  • StrictMode:用於查詢程式執行時具體耗時在哪,需要整合到程式碼中;
  • Andorid開發者模式—GPU呈現模式分析。

6 程式穩定性:monkey,通過monkey對程式在提交測試前做自測,可以檢測出明顯的導致程式不穩定的問題,執行monkey只需要一行命令,提交測試前跑一次可以避免應用剛提交就被打回的問題。

說明:

二 第三方效能優化工具介紹

除了android官方提供的一系列效能檢測工具,還有很多優秀的第三方效能檢測工具使用起來更方便,比如對記憶體洩露的檢測,使用leakcanry比MAT更人性化,能夠快速查到具體是哪存在記憶體洩露。

  • leakcanary:square/leakcanary · GitHub,通過整合到程式中的方式,在程式執行時檢測應用中存在的記憶體洩露,並在頁面中顯示,在應用中整合leancanry後,程式執行時會存在卡頓的情況,這個是正常的,因為leancanry就是通過gc操作來檢測記憶體洩露的,gc會知道應用卡頓,說明文件:LeakCanary 中文使用說明LeakCanary: 讓記憶體洩露無所遁形
  • GT:GT Home,GT是騰訊開發的一款APP的隨身調測平臺,利用GT,可以對CPU、記憶體、流量、點亮、幀率/流暢度進行測試,還可以檢視開發日誌、crash日誌、抓取網路資料包、APP內部引數除錯、真機程式碼耗時統計等等,需要說明的是,應用需要整合GT的sdk後,GT這個apk才能在應用執行時對各個效能進行檢測。
  • iTest:iTest,業內首創的Android自動化效能監控工具,它能夠記錄特定應用的效能消耗情況,包括cpu、記憶體、流量、電量等資訊,支援浮窗實時檢視應用的具體資訊,iTest不需要整合sdk到應用中,在itest中選中需要測試的應用即可進行測試;
  • Emmagee:Emmagee下載NetEase/Emmagee · GitHub,網易開發的效能檢測工具,Emmage和iTest一樣,不需要在應用中整合sdk,能夠對應用的常用效能指標進行檢測,並以csv的格式儲存方便檢視應用的各項引數;
  • APT:Tencent/apt | CODE,騰訊出的,暫時還沒使用過,無法評價。
  • FPSService:百度一位開發者寫的幀率測試工具,需要整合到應用中才可檢視:

三 應用效能優化資料推薦

相關文章