Systrace工具位於Android sdk platform-tools目錄下:platform-tools\systrace\systrace.py
命令行Systrace 抓取的語法如下:
python systrace.py [options] [category1 [category2 ...]]
示例:python systrace.py -b 32768 -t 15 gfx input view sched freq
1.配置python環境
安裝python 2.7版本並配置好環境變量
pip install pypiwin32
pip install six
2.腳本命令的主要參數項
options | 描述 |
-h, --help | 顯示幫助信息 |
-o < FILE > | 輸出的目標文件 |
-j, --json | 輸出JSON文件 |
-e DEVICE_SERIAL_NUMBER, --serial=DEVICE_SERIAL_NUMBER | 指定設備 |
--target=TARGET | 選擇追蹤的對象(Android 或 Linux) |
--timeout=TIMEOUT | 啓動或停止追蹤的超時時間(單位秒) |
--collection-timeout=COLLECTION_TIMEOUT | 數據採集的超時時間(單位秒) |
-t N, –time=N | 執行時間,默認5s |
-b N, –buf-size=N | buffer大小(單位kB),用於限制trace總大小,默認無上限 |
-l, –list-categories | 列舉可用的類別 |
-k < KFUNCS >,–ktrace=< KFUNCS > | 追蹤kernel函數,用逗號分隔 |
-a < APP_NAME >,–app=< APP_NAME > | 追蹤應用包名,用逗號分隔 |
–from-file=< FROM_FILE > | 從文件中創建互動的systrace |
3. category可取值
category | 解釋 |
gfx | Graphics |
input | Input |
view | View System |
webview | WebView |
wm | Window Manager |
am | Activity Manager |
sm | Sync Manager |
audio | Audio |
video | Video |
camera | Camera |
hal | Hardware Modules |
res | Resource Loading |
dalvik | Dalvik VM |
rs | RenderScript |
bionic | Bionic C Library |
power | Power Management |
pm | Package Manager |
ss | System Server |
database | Database |
network | Network |
adb | ADB |
vibrator | Vibrator |
aidl | AIDL calls |
nnapi | NNAPI |
rro | Runtime Resource Overlay |
pdx | PDX services |
sched | CPU Scheduling |
irq | IRQ Events |
freq | CPU Frequency |
idle | CPU Idle |
disk | Disk I/O |
mmc | eMMC commands |
load | CPU Load |
sync | Synchronization |
memreclaim | Kernel Memory Reclaim |
binder_driver | Binder Kernel driver |
binder_lock | Binder global lock trace |
memory | Memory |
thermal | Thermal event |
gfx | Graphics (HAL) |
ion | ION allocation (HAL) |
4. 連接你的Android設備
5. 命令行下執行:python <systrace.py所在路徑> -o <輸出的文件> sched gfx view -a <要追蹤的應用包名>
6. 使用要追蹤的應用
7. 在終端命令輸入"enter"停止追蹤
8. 輸出的trace文件生成
9. 啓動Chrome瀏覽器,輸入chrome://tracing/,再點擊左上角的”Load”按鈕以加載上一步生成的trace文件
10. 左側面板切換到Frames,右邊顯示許多”F”:紅色和橙色”F”代表不好即60fps未達到,綠色”F”代表正常。