Systrace測試應用幀率

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
dalvikDalvik VM
rsRenderScript
bionicBionic C Library
powerPower Management
pmPackage Manager
ssSystem Server
database Database
network Network
adb ADB
vibrator Vibrator
aidl AIDL calls
nnapi NNAPI
rro Runtime Resource Overlay
pdxPDX services
schedCPU Scheduling
irqIRQ Events
freqCPU Frequency
idleCPU Idle
diskDisk I/O
mmceMMC commands
loadCPU Load
sync

Synchronization

memreclaimKernel 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”代表正常。

其它可參考文章USE SYSTRACE TO DEBUG YOUR ANDROID APP PERFORMANCE

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章