原文地址:http://blog.csdn.net/hp910315/article/details/50461677
TraceView主要的功能就是檢測你的應用在運行過程中各個線程的CPU佔用情況,依據此可以找出你的應用出現卡頓的地方。
基本使用
使用TraceView主要有兩種方式:
1、從Android Studio中啓動Android Device Monitor: Tools -> Android -> Android Device Monitor.
(1).選擇你要調試的進程。
(2).點擊start mothod profiling,待圖標變黑。
(3).選擇sample base profiling
2、使用android.os.Debug.startMethodTracing();和android.os.Debug.stopMethodTracing();方法,當運行了這段代碼的時候,就會有一個trace文件在/sdcard目錄中生成,也可以調用startMethodTracing(String traceName) 設置trace文件的文件名,最後你可以使用adb pull /sdcard/test.trace /tmp 命令將trace文件複製到你的電腦中,然後用DDMS工具打開
上面部分是你測試進程的中每個線程運行的時間線,可以選擇某一個線程的時間線,觀察下面部分顯示的對應方法的耗時情況
TraceView中的指標
縱軸
TraceView界面下方表格中縱軸就是每個方法,包括了JDK的,Android SDK的,也有native方法的
每個方法前面都有一個數字,是全部方法按照Incl CPU Time 時間的排序序
打開每個方法,數據分爲兩個部分
Parents
Children
Parents表示調用1這個方法的父方法。Children表示方法調用的其他方法。
橫軸
Incl Cpu Time
這個方法以及這個方法的子方法一共執行的時間。
例如:
public void a() {
//代碼
b();
c();
d();
//代碼
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
則上面a()方法的Incl Cpu Time爲b(),c(),d()以及a()方法內其他執行代碼的執行總時間。
Excl Cpu Time
這個方法除去其中包含的子方法的執行時間,其他代碼執行的時間。
以上面爲例,Excl Cpu Time爲Incl Cpu Time的時間減去b(),c(),d()的執行時間。
Incl Real Time
和Incl Cpu Time 差不多
Excl Real Time
和Excl Cpu Time差不多
Calls + Recur Calls / Total
它表示這個方法執行的次數,這個指標中有兩個值,一個Call表示這個方法調用的次數,Recur Call表示遞歸調用次數
Cpu Time / Call
表示這個方法每調用一次需要的時間,這個地方就可以分析哪些方法存在耗時操作。
Real Time / Call
這個方法實際調用一次需要的時間。
參考文章: