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