Android效能調優工具之 TraceView

小呂-ICE發表於2015-02-05

    從1月份Google釋出的16個關於效能優化的系列視訊起,這段時間在各大社群都有看到很多優秀的關於優化系列的文章。有分析了效能產生的原因、有分享如何優化我們的應用、有介紹有哪些工具可以幫助我們檢測效能問題。


    其中 在關於一些系統效能調優工具裡有介紹到工具之一:TraceView 

    TraceView 是 Android 平臺配備一個很好的效能分析的工具。它可以通過圖形化的方式讓我們瞭解我們要跟蹤的程式的效能,並且能具體到某個函式方法method的執行耗時時間。

    因為小呂之前確實沒有使用過該工具、所以這兩天也自己試玩了一把、將該工具的簡單使用操作做個簡單的圖文介紹。也希望在以後的工作當中要重視該工具的使用、利用好該工具。


一、如何使用該工具 採集資料
  1、第一種使用方式
     ① 在你需要調式的程式碼片段首尾分別新增程式碼

Debug.startMethodTracing("traceView");  
Debug.stopMethodTracing();
     如 我們想要對MainActivity的onCreate() 和 onDestory() 方法之間做跟蹤,程式碼可如下:
public class MainActivity extends Activity {  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        /*
         * 將在SD卡根目錄生成資料效能採集檔案 traceView.trace
         * 注意:
         *     1、一定要在有SD卡的除錯手機或模擬器上使用
         *     2、新增SD卡訪問讀寫許可權:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
         */
        Debug.startMethodTracing("traceView");
    }  
  
    @Override  
    protected void onStart() {  
        super.onStart();         
        Debug.stopMethodTracing();  
    }  
      
} <span style="font-family: 'Comic Sans MS'; background-color: rgb(255, 255, 255);"> </span>
    ②、當程式執行過上面的程式碼之後 便會在你的手機或模擬器的SD卡根目錄生成檔案 traceView.trace, 如下圖:
              
    ③、在正式使用traceview工具分析資料前,我們使用adb命令將SD卡根目錄下的traceView.trace檔案匯出到我們的本地電腦中,adb命令如下:
        
        如上命令 我將.trace檔案匯出在我的電腦C:\tmp下 如圖:
        
    ④、在{sdk}/tools/目錄下 找到我們的工具traceview.bat、雙擊執行他吧, 會有如下顯示:
        
        提示我們使用 Android Device Monitor<tools/monitor> 。  

    ⑤、但是我們執行如下命令: traceview xxx.trace, 使用traceview去訪問執行.trace檔案
        
        一夥出現效果如下:        
        
        根據之前命令的提示:
        這裡我們也可以使用執行Android Device Monitor<tools/monitor>工具 出現如下介面

        在該介面中 我們可以通過 file--> open file 開啟之前匯出的.trace檔案,這時將會看到同樣的效果:

        到此 我們便完成了資料的採集與使用traceview工具將資料做了圖形化展示


  2、第二種使用方式
     相對第一種方式 這種要簡單很多
     通過選擇 Devices 中的應用後點選按鈕 Start Method Profiling(開啟方法分析)和點選 Stop Method Profiling(停止方法分析) 如圖:
 
     當停止採集時,DDMS會自動觸發Traceview工具來瀏覽採集資料


二、如何使用該工具 分析資料
     當看到圖形化的trace資料後、我們要知道如何看懂上面的資料、以做出正確的分析、最後在分析中查詢效能上的問題、最終從程式碼上解決問題。

     這部分主要包括:
        1、TraceView工具皮膚的掌握,分析皮膚每列待辦的含義 如:Name、 Incl Cpu Time、 Excl Cpu Time、 Incl Real Time等。

        
        2、如何去定位分析我們要監視的具體方法(通過TraceView底部的find來查詢)。
        3、如何去定位那些耗時(導致效能問題)的方法
(篩選出方法耗時排行的時間 如:Incl Cpu Time列、Cpu Time/Call列)。

        4、最後根據找出效能上有缺陷的具體方法、去做程式碼上的優化。

      這裡的內容遠遠超過上面關於 工具資料採集的使用介紹,小呂也剛好在網上有收集到兩篇優秀的關於TraceView工具的使用介紹:
      1、Android系統效能調優工具介紹:http://blog.csdn.net/innost/article/details/9008691
      2、Android程式設計下的TraceView簡介及其案例實戰:http://www.cnblogs.com/sunzn/p/3192231.html


三、其他
   關於Android的調優工具除了TraceView外、還有Overdraw,Systrace,StrictMode,Hierarchy Viewer等。

   英文能力不錯的就上Google官網咖:http://developer.android.com/tools/debugging/debugging-tracing.html



相關文章