Systrace

Systrace

结合Android内核的数据,生成Html报告

API18以上使用,推荐TraceCompat

需要python2的环境

参考官方网站:https://developer.android.com/topic/performance/tracing/command-line

在Android 9上还可以使用系统内置的跟踪方法:https://developer.android.com/topic/performance/tracing/on-device

使用方式:

1
2
3
4
5
// 开始,参数为tag标记
TraceCompat.beginSection("name");
// do something ....
// 结束
TraceCompat.endSection();

执行命令

1
python [sdk路径]/platform-tools/systrace/systrace.py [option] [categories]

举例

1
python systrace.py -o mynewtrace.html sched freq idle am wm gfx view binder_driver hal dalvik camera input res

更多参数含义如下:

  • -t:指定统计时间
  • shced:cpu调度信息
  • gfx:图形信息
  • view:视图
  • wm:窗口管理
  • am:活动管理
  • app:应用信息
  • webview:webview信息
  • -a:指定目标应用程序的包名
  • -o:生成的systrace.html文件

生成的文件需要通过Chrome浏览器进行加载

在地址栏输入 chrome://tracing 命令,通过 load 载入

UI快捷键

W:放大
S:缩小
A:左移
D:右移
M:选定函数的耗时时间范围

cputime与walltime区别

  • wall time是代码执行时间
  • cpu time时代码消耗cpu的时间(优化方向,应尽可能跑满cpu)

总结

  • 轻量级,开销小
  • 直观反映cpu利用率