Systrace工具的使用

Systrace工具的使用

翻譯原文地址:https://developer.android.com/studio/profile/systrace-commandline.html#requirements

通過抓取和展示app的執(zhí)行次數(shù),Systrace工具可以通幫助你分析app的性能問題,Systrace工具將android kernel層的數(shù)據(jù)比如CPU調(diào)度、disk activity以及應用線程收集起來,并生成HTML報告,在這個HTML報告里,可以看到指定時間內(nèi)系統(tǒng)進程的所有情況。

systrace工具對于診斷應用的不流暢的問題非常有效,可以參照https://developer.android.com/studio/profile/systrace.html

要求

  • SDK 版本20及以上
  • python環(huán)境
  • android4.1及以上設備(需打開調(diào)試模式)
  • 可以通過用戶界面去調(diào)用,也可以通過cmd的方式去調(diào)用

用戶界面調(diào)用

  1. 打開Android studio,Tools -- Android -- Android Device Monitor,或則直接在sdk中的tools中找到Android Device Monitor打開
  2. 在彈出的Android Device Monitor中,左側Devices選項卡的下面一排,點擊下圖中圈出的位置
Android Device Monitor
  1. 配置trace信息,點擊OK后,會在對應目錄下生成html文件
5.PNG

CMD命令調(diào)用

CMD的在androi4.2及以下、android4.3級以上的用法是不一樣的,用法如下“

$ python systrace.py [options] [category1] [category2] ... [categoryN]

android4.3及以上

在這個版本上,你可以不配置分類tag,也可以自定義。使用方式如下:

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

提示:如果你想要查看task name,必須配置sched

命令行列表

選項 描述
-h 或 --help 查看幫助
-o <FILE> 用于指定html文件的存放路徑
-t N 或 --time=N 用于指定抓取的時長,N為時長,單位為s,默認為5s,如果要指定10s,則”-t 10“
-b N或--buf-size=N 用于指定緩存大小,N為大小
-k <KFUNCS> 或 --ktrace=<KFUNCS> 指定activity的kernel方法,按逗號分割
-l 或 --list-categories 列出可選的分類,不通的設備分類可能不同
-a <APP_NAME> 或 --app=<APP_NAME> 開啟app的trace,進程名按逗號分割,這些app必須有trace類的調(diào)用
--from-file=<FROM_FILE> 根據(jù)指定的文件創(chuàng)建html,而不是實時的trace,<FROM_FILE>為源文件路徑
-e <DEVICE_SERIAL> 或 --serial=<DEVICE_SERIAL> 指定設備的序列號

android4.2及以下

在4.2之前的版本需要兩部操作,首先,需要配置想要抓取的trace tag,然后再運行trace。比如:

$ cd android-sdk/platform-tools/systrace
$ python systrace.py --set-tags gfx,view,wm
$ adb shell stop
$ adb shell start
$ python systrace.py --disk --time=10 -o mynewtrace.html

命令行列表

選項 描述
-h 或 --help 查看幫助
-o <FILE> 用于指定html文件的存放路徑
-t N 或 --time=N 用于指定抓取的時長,N為時長,單位為s,默認為5s,如果要指定10s,則”-t 10“
-b N或--buf-size=N 用于指定緩存大小,N為大小
-d 或 --disk 追蹤activity disk的輸入和輸出,需要root設備
-i 或 --cpu-idle 追蹤CPU的idel事件
-l 或 --cpu-load 追蹤CPU的加載
-s或--no-cpu-sched 防止CPU調(diào)度的追蹤,通過降低trace buffer的速率達到加長的trace時長的目的
-u 或 --bus-utilization 追蹤bus的使用,需要root設備
-w 或 --workqueue 追蹤work queue,需要root設備
--set-tags=<TAGS> 用于配置tag選項,

對于上面的--set-tags配置,可選項如下:

  • gfx 圖形圖像
  • input 輸入
  • view 視圖
  • webview
  • wm Window Manager
  • am Activity Manager
  • sync Synchronization Manager
  • audio
  • video
  • camera

注意:設置tag后,需要重啟framework(’adb shell stop;adb shell start‘)暴躁配置生效。

如何查看trace.html文件

按鍵 作用
w 放大時間軸
s 縮小時間軸
a 向左移動面板
d 向右移動面板
e 以當前鼠標的位置為時間軸的中心
g 在選中的task開始時刻顯示紅線條
Shift+g 在選中的task結束時刻顯示紅線條
向右箭頭 選中當前時間軸下一個事件
向左箭頭 選中當前時間軸下一個事件
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容