android抓trace工具,Android性能优化工具之TraceView
Android性能優化工具之TraceView
引子
TraceView是Android平臺特有的數據采集和分析工具,該工具可以通過圖形化的方式讓我們了解需要跟照片那個程序的性能,可以具體到method,主要用于分析Android中應用程序的Hotspot。該工具本身是一個數據分析工具,那個如何獲取數據并分析呢,筆者用之前寫的一個demo.apk來進行說明分析。
采集數據
采集數據也就是生成我們需要分析的trace文件,生成該文件有三種方式
使用代碼
使用Android Studio
使用DDMS工具
代碼方式生成trace文件
使用代碼生成traces文件主要利用Android系統的Debug這個api,該類在android.os包下,示例代碼如下
//開始 trace,默認保存文件到 "/sdcard/filename.trace"
Debug.startMethodTracing(String fileName);
/*需要分析的代碼..*/
Debug.stopMethodTracing();
簡單說明一下,當調用開始trace代碼的時,系統會產生 trace 文件,并且產生追蹤的數據,當調用結束trace代碼時,會將追蹤的數據寫入到 trace文件中。既然文件保存在sdcard根目錄,我們可以copy出來,也可以通過adb 將其pull 出來
使用Android studio 生成trace文件
使用Android studio 自帶的 Android monitor 可以生成trace,如下圖所示,當啟動debug的應用時,Start Method Tracing 按鈕會顯示成可點擊的狀態,
點擊之后,會開始追蹤trace,想要結束trace,再次點擊即 可,Android studio 會幫你自動打開,如下圖所示
從上面可以看到,某一些方法的執行時間,調用次數以及其調用關系,也可以搜索其過濾特定的內容
從左上角可以切換不同的線程,當鼠標懸浮狀態置于某個方法塊上,可以顯示該方法的開始時間結束時間,以及一些時間比例,如下圖所示
使用DDMS 生成trace
DDMS是 Android 調試監控工具,它為我們提供了截圖,查看 log,查看視圖層級,查看內存使用等功能,Android Studio 或者eclipse中都集成了該功能,如果你配置了Android環境變量,也可以直接在命令行敲DDMS,該工具在\android_sdk\tools下面。 在Devices列表中,選中你的設備和進程,進行trace,再次點擊停止trace,停止trace后,DDMS會自動加載trace文件,下面介紹一下面板主要功能,如下圖所示。
圖中主要標記了某些重要的項,用DDMS可以清楚地看到各個線程的執行時間,
最后看一下數據分析面板,在數據分析面板,你可以點擊某個函數展開更詳細的信息,展開后,大多數有以下兩個類別:
Parents:調用該方法的父類方法
Children:該方法調用的子類方法
如果該方法含有遞歸調用,可能還會多出兩個類別:
Parents while recursive:遞歸調用時所涉及的父類方法
Children while recursive:遞歸調用時所涉及的子類方法
至于數據分析面板紅色框中,主要字段含義已經標記,點擊某個條目可以進行排序
**主要:**很重要的指標:Calls + RecurCalls/Total , 最重要的指標: Cpu Time/Call
因為我們最關心的有兩點,一是調用次數不多,但每次調用卻需要花費很長時間的函數。這個可以從Cpu Time/Call反映出來。另外一個是那些自身占用時間不長,但調用卻非常頻繁的函數。這個可以從Calls + RecurCalls/Total反映出來。
結語
最后說明一點,實際情況下,分析的難度比較大,但是當體驗卡頓的時候,我們可以借助TraceView來定位問題。下一篇總結下Systrace 工具使用。
總結
以上是生活随笔為你收集整理的android抓trace工具,Android性能优化工具之TraceView的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是句柄,句柄有什么作用
- 下一篇: java解析魔兽争霸3录像_Java解析