作者:ZHTo0
連結:https://www.jianshu.com/p/09cf6cff9457
這段時間總結了一些常用的效能最佳化工具,當然這些並沒有包含全部的工具,下麵稍微對這些工具做個簡單的總結:
1、應用codeReview工具
StrictMode
檢測應用主執行緒不規範程式碼
https://www.jianshu.com/p/d4309061291b
Lint
AS中提供的程式碼分析工具,它能夠檢查出程式碼當中存在的問題,定義該問題的嚴重程度,並給出相應的解決方案,這樣我們就可以快速地定位和修複問題。
https://www.jianshu.com/p/4ebe5d502842
2、記憶體問題分析工具
2.1.明顯記憶體問題初篩
Allocation Tracker
檢視堆記憶體分配情況,可以直接跳轉原始碼
https://www.jianshu.com/p/d8e994bfb382
Heap Viewer
檢視堆記憶體分配資料,提供初步判斷
https://www.jianshu.com/p/5035745da456
dumpsys meminfo
詳細檢視當前記憶體組成情況
https://www.jianshu.com/p/9edfe9d5eb34
Profiler
對cpu、 memory 、network進行更全面直觀的分析,屬於android monitor加強版
https://www.jianshu.com/p/596b2ef68342
Allocation Tracker 和 Heap Viewer兩者配合Memory monitor使用可定位一些比較明顯的記憶體洩漏、記憶體抖動等問題。
2.2.記憶體洩漏問題
MAT
優點:精確詳細分析,缺點:有一些門檻,且分析相對比較耗時耗力。
https://www.jianshu.com/p/97251691af88
LeakCanaray
優點:傻瓜式分析工具 缺點:無法檢測出Service的記憶體洩漏,無法檢測最底層的MainActivity
https://www.jianshu.com/p/70b8c87ea877
3、重覆佈局&過度繪製
除錯GPU過度繪製 & GPU呈現樣式
可以宏觀分析頁面問題
https://www.jianshu.com/p/a0e8575e9846
Layout Inspector
對檢視層次結構分析
https://www.jianshu.com/p/1b64024f2d08
4、卡頓掉幀
Systrace
可以給出整個系統的一些關鍵模組的效能資訊
https://www.jianshu.com/p/fa6cfad8ccc2
TraceView
擅長Method問題追蹤
https://www.jianshu.com/p/ac753e71d08d
Simpleperf
透過火焰圖,我們能非常直觀地看到效能的瓶頸
https://zhuanlan.zhihu.com/p/25277481
5、功耗問題
Battery Historain
分析電量、充電放電狀態、一段時間內的使用者使用行為、以及手機溫度等等
https://github.com/google/battery-historian
六、其他三方工具(有興趣可以去玩玩,在此不做分析了)
NetEase/Emmagee
frogermcs/AndroidDevMerics
……
最後想說的是,目前對工具的總結很多還只停留在初步使用階段,工具就是這樣的,越用越熟練。
另外筆者認為這些工具裡面,比較重要的也比較常用的工具是:MAT、TraceView、Systrace. 掌握好這些工具的使用,會幫助你更好地定位效能問題。