摘抄自:https://developer.android.com/topic/performance/tracing
Systrace是Android平台提供的一款用于记录短期内设备活动的工具,记录的结果会集成在一个HTML文件中。
Systrace工具通过systrace命令进行调用。要运行systrace命令,需要做以下准备:
下载最新版本的Android SDK Tools。 – systrace命令位于Android SDK Tools中,下载最新版本的SDK后,systrace命令就在android-sdk/platform-tools/systrace/目录下安装Python环境 – systrace.py是一个Python文件,运行它需要Python环境systrace命令的使用格式如下:
python systrace.py [options] [categories]相关的选项如下:
选项说明-h | --help显示帮助信息-l | --list-categories列出您的已连接设备可用的跟踪类别-o file将 HTML 跟踪报告写入指定的文件。如果您未指定此选项,systrace 会将报告保存到 systrace.py 所在的目录中,并将其命名为 trace.html-t N | --time=N跟踪设备活动 N 秒。如果您未指定此选项,则 systrace 会提示您通过从命令行按 Enter 键来结束跟踪-b N | --buf-size=N使用N KB的跟踪缓冲区大小。使用此选项,您可以限制跟踪期间收集到的数据的总大小-k functions | --ktrace=functions跟踪逗号分隔列表中指定的特定内核函数的活动-a app-name | --app=app-name启用对应用的跟踪,指定为包含进程名称的逗号分隔列表。应用必须包含 Trace 类中的跟踪检测调用。您应在分析应用时指定此选项。很多库(例如 RecyclerView)都包括跟踪检测调用,这些调用可在您启用应用级跟踪时提供有用的信息–from-file=file-path根据文件(例如包含原始跟踪数据的 TXT 文件)创建互动式 HTML 报告,而不是运行实时跟踪-e device-serial | --serial=device-serial在已连接的特定设备(由对应的设备序列号标识)上进行跟踪categories包含您指定的系统进程的跟踪信息,如 gfx 表示用于渲染图形的系统进程。您可以使用 -l 命令运行 systrace,以查看已连接设备可用的服务列表。如果不想深入了解上的选项参数,Android官方提供了一条能够适用于大多数设备的指令如下:
python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \ binder_driver hal dalvik camera input res通过systrace后,我们会得到一个html报告(如果使用上面的命令,会得到一个名为mynewtrace.html报告),使用浏览器打开这个报告后,得到类似下图的网页:
屏幕上有如下的四个选择按键,用于选择当前鼠标的功能,从上到下分别为:选择、移动、缩放和时间,在键盘上可以通过字幕上方的数字按键1~4来进行选中。 除此之外,还有以下按键能帮助我们更加快速的阅读报告:
快捷键功能w放大跟踪时间轴。s缩小跟踪时间轴a向左边平移时间轴d向右边平移时间轴m高亮当前选区G在当前所选任务的开头显示网格Shift + G在当前所选任务的末尾显示网格向左箭头在当前选定的时间轴上选择上一个事件向右箭头在当前选定的时间轴上选择下一个事件报告从上到下分为:
互动部分,与用户交互的应用或者游戏CPU活动,记录CPU的活动情况系统事件显示帧,记录当前已创建的线程的状态