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

posted on 2022-03-25 15:14  农夫山药  阅读(379)  评论(0编辑  收藏  举报