摘抄自:https://developer.android.com/topic/performance/tracing
Systrace是Android平台提供的一款用于记录短期内设备活动的工具,记录的结果会集成在一个HTML文件中。
1. systrace命令
1.1 命令获取
Systrace工具通过systrace命令进行调用。要运行systrace命令,需要做以下准备:
- 下载最新版本的Android SDK Tools。
– systrace命令位于Android SDK Tools中,下载最新版本的SDK后,systrace命令就在android-sdk/platform-tools/systrace/目录下 - 安装Python环境
– systrace.py是一个Python文件,运行它需要Python环境
1.2 基本语法
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
2. 报告浏览
通过systrace后,我们会得到一个html报告(如果使用上面的命令,会得到一个名为mynewtrace.html报告),使用浏览器打开这个报告后,得到类似下图的网页:

2.1 快捷键
屏幕上有如下的四个选择按键,用于选择当前鼠标的功能,从上到下分别为:选择、移动、缩放和时间,在键盘上可以通过字幕上方的数字按键1~4来进行选中。

除此之外,还有以下按键能帮助我们更加快速的阅读报告:
| 快捷键 | 功能 |
|---|---|
| w | 放大跟踪时间轴。 |
| s | 缩小跟踪时间轴 |
| a | 向左边平移时间轴 |
| d | 向右边平移时间轴 |
| m | 高亮当前选区 |
| G | 在当前所选任务的开头显示网格 |
| Shift + G | 在当前所选任务的末尾显示网格 |
| 向左箭头 | 在当前选定的时间轴上选择上一个事件 |
| 向右箭头 | 在当前选定的时间轴上选择下一个事件 |
2.2 报告阅读
报告从上到下分为:
- 互动部分,与用户交互的应用或者游戏
- CPU活动,记录CPU的活动情况
- 系统事件
- 显示帧,记录当前已创建的线程的状态
Systrace是Android平台的性能分析工具,它记录设备活动并生成HTML报告。要使用systrace,需下载最新SDK Tools并安装Python环境。基本语法包括不同选项,官方推荐的通用命令简化了使用流程。生成的报告包含互动部分、CPU活动、系统事件和显示帧等信息,通过快捷键可以方便地浏览和分析。

3361

被折叠的 条评论
为什么被折叠?



