Android 效能分析工具之 TraceView 使用說明

來源:互聯網
上載者:User

Android 效能分析工具之 TraceView 使用說明

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

TraceView 簡介

TraceView 是 Android 平台特有的資料擷取和分析工具,它主要用於分析 Android 中應用程式的 hotspot。TraceView 本身只是一個資料分析工具,而資料的採集則需要使用 Android SDK 中的 Debug 類或者利用 DDMS 工具。二者的用法如下:

  • 開發人員在一些關鍵程式碼片段開始前調用 Android SDK 中 Debug 類的 startMethodTracing 函數,並在關鍵程式碼片段結束前調用 stopMethodTracing 函數。這兩個函數運行過程中將採集已耗用時間內該應用所有線程(注意,只能是 Java 線程)的函數執行情況,並將採集資料儲存到 /mnt/sdcard/ 下的一個檔案中。開發人員然後需要利用 SDK 中的 TraceView 工具來分析這些資料。
  • 藉助 Android SDK 中的 DDMS 工具。DDMS 可採集系統中某個正在啟動並執行進程的函數調用資訊。對開發人員而言,此方法適用於沒有目標應用原始碼的情況。

    DDMS 中 TraceView 使用如下,調試人員可以通過選擇 Devices 中的應用後點擊按鈕 Start Method Profiling(開啟方法分析)和點擊StopMethod Profiling(停止方法分析)

    開啟方法分析後對應用的目標頁面進行測試操作,測試完畢後停止方法分析,介面會跳轉到 DDMS 的 trace 分析介面,如所示:
     

    TraceView 介面比較複雜,其 UI 劃分為上下兩個面板,即 Timeline Panel(時間軸面板)和 Profile Panel(分析面板)。中的上半部分為Timeline Panel(時間軸面板),Timeline Panel又可細分為左右兩個Pane:

    • 左邊 Pane 顯示的是測試資料中所採集的線程資訊。由圖可知,本次測試資料擷取了 main 線程,感應器線程和其它系統輔助線程的資訊。
    • 右邊 Pane 所示為時間軸,時間軸上是每個線程測試時間段內所涉及的函數調用資訊。這些資訊包括函數名、函數執行時間等。由圖可知,Thread-1412線程對應行的的內容非常豐富,而其他線程在這段時間內幹得工作則要少得多。
    • 另外,開發人員可以在時間軸 Pane 中移動時間軸縱軸。縱軸上邊將顯示目前時間點中某線程正在執行的函數資訊。

      中的下半部分為ProfilePanel(分析面板),Profile Panel 是 TraceView 的核心介面,其內涵非常豐富。它主要展示了某個線程(先在 Timeline Panel 中選擇線程)中各個函數調用的情況,包括 CPU 使用時間、調用次數等資訊。而這些資訊正是尋找 hotspot 的關鍵依據。所以,對開發人員而言,一定要瞭解 Profile Panel 中各列的含義。下表列出了Profile Panel 中比較重要的列名及其描述。

      實戰分析:

      首先找到自己寫的類,這裡以我中自己寫的AddGoodsMatchActivity為例,可以知道其onCreate方法公佔用314.069ms,onCreate方法裡的各個方法佔用時間也很清楚。重點分析其setContentView方法,因為它佔用266.874ms 占整個onCreate方法的82.5%,點擊setContentView方法

      再點擊SetContentView

      再點擊inflate

      由此我們可以看到我們自己的方法調用的時間,調用的次數,從而分析問題所在

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.