Android效能最佳化之Systrace工具介紹(一) _&& Systrace產生的trace.html開啟空白或者打不開的解決辦法

來源:互聯網
上載者:User

標籤:

1.必須用Chrome開啟

2.在mac電腦上,可能Chrome開啟也是空白,解決辦法是:在chrome地址欄中輸入”chrome:tracing”,然後點擊load按鈕load你的trace.html檔案。

 

Systrace簡單介紹

Systrace是Android4.1中新增的效能資料採樣和分析工具。它可協助開發人員收集Android關鍵子系統(如surfaceflinger、WindowManagerService等Framework部分關鍵模組、服務,View系統等)的運行資訊,從而協助開發人員更直觀的分析系統瓶頸,改進效能。

Systrace的功能包括跟蹤系統的I/O操作、核心工作隊列、CPU負載以及Android各個子系統的健全狀態等。在Android平台中,它主要由3部分組成:

  • 核心部分:Systrace利用了Linux Kernel中的ftrace功能。所以,如果要使用Systrace的話,必須開啟kernel中和ftrace相關的模組。
  • 資料擷取部分:Android定義了一個Trace類。應用程式可利用該類把統計資訊輸出給ftrace。同時,Android還有一個atrace程式,它可以從ftrace中讀取統計資訊然後交給資料分析工具來處理。
  • 資料分析工具:Android提供一個systrace.py(python指令檔,位於Android SDK目錄/tools/systrace中,其內部將調用atrace程式)用來配置資料擷取的方式(如採集資料的標籤、輸出檔案名等)和收集ftrace統計資料並產生一個結果網頁檔案供使用者查看。 從本質上說,Systrace是對Linux Kernel中ftrace的封裝。應用進程需要利用Android提供的Trace類來使用Systrace.
    關於Systrace的官方介紹和使用可以看這裡:Systrace
Systrace簡單使用

使用Systrace前,要先瞭解一下Systrace在各個平台上的使用方法,鑒於大家使用Eclipse和Android Studio的居多,所以直接摘抄官網關於這個的使用方法,不過不管是什麼工具,流程是一樣的:

  • 手機準備好你要進行抓取的介面
  • 點擊開始抓取(命令列的話就是開始執行命令)
  • 手機上開始操作
  • 設定好的時間到了之後,會將產生Trace檔案,使用Chrome將這個檔案開啟進行分析
Using Eclipse
  1. In Eclipse, open an Android application project.

    1. Switch to the DDMS perspective, by selecting Window > Perspectives > DDMS.
    2. In the Devices tab, select the device on which to run a trace. If no devices are listed, make sure your device is connected via USB cable and that debugging is enabled on the device.
    3. Click the Systrace icon at the top of the Devices panel to configure tracing.
    4. Set the tracing options and click OK to start the trace.
Using Android Studio
  1. In Android Studio, open an Android application project.

    1. Open the Device Monitor by selecting Tools > Android > Monitor.
    2. In the Devices tab, select the device on which to run a trace. If no devices are listed, make sure your device is connected via USB cable and that debugging is enabled on the device.
    3. Click the Systrace icon at the top of the Devices panel to configure tracing.
    4. Set the tracing options and click OK to start the trace.
Using Device Monitor
  1. Navigate to your SDK tools/ directory.

    1. Run the monitor program.
    2. In the Devices tab, select the device on which to run a trace. If no devices are listed, make sure your device is connected via USB cable and that debugging is enabled on the device.
    3. Click the Systrace icon at the top of the Devices panel to configure tracing.
    4. Set the tracing options and click OK to start the trace.
Command Line Usage

命令列形式比較靈活,速度也比較快,一次性配置好之後,以後再使用的時候就會很快就出結果(強烈推薦)

12
$ cd android-sdk/platform-tools/systrace$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm

從上面的命令可以看到Systrace工具的位置,只需要在Bash中配置好對應的路徑和Alias,使用起來還是很快速的。另外User版本是不可以抓Trace的,只有ENG版本或者Userdebug版本才可以。

抓取結束後,會產生對應的Trace檔案,注意這個檔案只能被Chrome開啟。關於如何分析Trace檔案,我們下面的章節會講。不論使用那種工具,在抓取之前都會讓選擇參數,下面說一下這些參數的意思:

  • -h, –help Show the help message.(協助)
  • -o Write the HTML trace report to the specified file.(即輸出檔案名,)
  • -t N, –time=N Trace activity for N seconds. The default value is 5 seconds. (Trace抓取的時間,一般是 : -t 8)
  • -b N, –buf-size=N Use a trace buffer size of N kilobytes. This option lets you limit the total size of the data collected during a trace.
  • -k
  • —ktrace= Trace the activity of specific kernel functions, specified in a comma-separated list.
  • -l, –list-categories List the available tracing category tags. The available tags are(下面的參數不用翻譯了估計大家也看得懂,貼官方的解釋也會比較權威,後面分析的時候我們會看到這些參數的作業的):

    • gfx - Graphics
    • input - Input
    • view - View
    • webview - WebView
    • wm - Window Manager
    • am - Activity Manager
    • audio - Audio
    • video - Video
    • camera - Camera
    • hal - Hardware Modules
    • res - Resource Loading
    • dalvik - Dalvik VM
    • rs - RenderScript
    • sched - CPU Scheduling
    • freq - CPU Frequency
    • membus - Memory Bus Utilization
    • idle - CPU Idle
    • disk - Disk input and output
    • load - CPU Load
    • sync - Synchronization Manager
    • workq - Kernel Workqueues Note: Some trace categories are not supported on all devices. Tip: If you want to see the names of tasks in the trace output, you must include the sched category in your command parameters.
  • -a

  • —app= Enable tracing for applications, specified as a comma-separated list of package names. The apps must contain tracing instrumentation calls from the Trace class. For more information, see Analyzing Display and Performance.
  • —link-assets Link to the original CSS or JavaScript resources instead of embedding them in the HTML trace report.
  • —from-file= Create the interactive Systrace report from a file, instead of running a live trace.
  • —asset-dir= Specify a directory for the trace report assets. This option is useful for maintaining a single set of assets for multiple Systrace reports.
  • -e
  • —serial= Conduct the trace on a specific connected device, identified by its device serial number.
    上面的參數雖然比較多,但使用工具的時候不需考慮這麼多,在對應的項目前打鉤即可,命令列的時候才會去手動加參數:

我們一般會把這個命令配置成Alias,配置如下:

12
alias st-start=‘python /home/gaojianwu/Software/android-studio/sdk/platform-tools/systrace/systrace.py‘  alias st-start-gfx-trace = ‘st-start -t 8 gfx input view sched freq wm am hwui workq res dalvik sync disk load perf hal rs idle mmc’

這樣在使用的時候,可以直接敲 st-start-gfx-mx4 即可,當然為了區分和保持各個檔案,還需要加上 -o xxx.Trace .上面的命令和參數不必一次就理解,只需要記住如何簡單使用即可,在分析的過程中,這些東西都會慢慢熟悉的。

 

轉自:http://blog.csdn.net/hard_working1/article/details/50602345

Android效能最佳化之Systrace工具介紹(一) _&& Systrace產生的trace.html開啟空白或者打不開的解決辦法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.