標籤:android android開發 android最佳化
Android SDK內建的tool TrackView 位於 sdk的tools目錄下。用法為:進入到tools下,運行
traceview e:\loginActivityTracing.trace
即可。那trace檔案怎麼產生的呢。
有兩種方式產生
1、使用代碼產生,想調哪調哪。
只需要在需要調用的地方調用
Debug.startMethodTracing("loginActivityTracing");
和結束調用的地方調用
Debug.stopMethodTracing();
就會在sd卡的根目錄產生loginActivityTracing.trace檔案。
2、沒有代碼呢,可以使用DDMS來產生。
這是開始,然後同一個按鈕再點一次就產生.trace檔案並開啟了。
執行之後可以看到這樣一個圖片:
TraceView介面資訊介紹
TraceView介面包括時間面板和方法面板
(1) 時間面板(Timeline Panel)
時間面板展示了每個線程的執行情況,其中的[1]main即為ui主線程。
移動到某個位置可以查看該點對應的方法的執行資訊,點擊方法面板則會選中相應的方法。
可以左鍵按住不放選中地區放大局部精細查看,不同方法用不同顏色標註
(2) 方法面板(Profile Panel)
方法面板展示了所有方法的執行情況,點擊某個方法可以查看在對應線程上的執行時間地區,並會顯示其父方法及子方法。
每個方法包括如下資訊列,可點擊某列進行排序,從而確定產生效能問題的函數:
Incl Cpu Time, Excl Cpu Time, Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call
所有的Time都是以毫秒計算。每列具體含義及作用如下:
a. Incl表示將所有子函數耗時也計算在內,Excl則表示不包括子函數的調用時間。對比可以確定耗時操作發生是自身還是子函數中。
b. Cpu Time表示佔用cpu執行的時間,Real Time包括Cpu Time以及等待、切換的時間等,所以一般都大於Cpu Time。對比可以判斷耗時操作是否在cpu執行段內。
c. 上面四個指標對應的%表示函數在總時間的佔比。方便查看某個函數的時間佔比。
d. Calls+RecurCalls/Total表示被外部調用次數+遞迴次數/總次數。可以查看調用次數是否符合自己預期。
e. Cpu Time/Call, Real Time/Call表示總的Cpu Time及Real Time與總調用次數的比例。查看每次調用的耗時,一般可通過簡單此項確定每個函數的效能。
【Android】開發最佳化之——調優工具:TrackView,Method Profiling