Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 性能分析工具之 TraceView 使用說明

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

編輯:關於Android編程

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
      \

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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved