在命令行上捕获系统跟踪记录
systrace
命令会调用 Systrace 工具,您可以借助该工具收集和检查设备上在系统一级运行的所有进程的时间信息。
本文档说明了如何通过命令行生成 Systrace 报告。在搭载 Android 9(API 级别 28)或更高版本的设备上,您还可以使用“系统跟踪”系统应用生成 Systrace 报告。
如需运行 systrace
,请完成以下步骤:
- 从 Android Studio 下载并安装最新的 Android SDK 工具。
- 安装 Python 并将其添加到工作站的
PATH
环境变量中。 - 将
android-sdk/platform-tools/
添加到PATH
环境变量。此目录包含由systrace
程序调用的 Android 调试桥二进制文件 (adb)。 - 使用 USB 调试连接将搭载 Android 4.3(API 级别 18)或更高版本的设备连接到开发系统。
systrace
命令在 Android SDK 工具软件包中提供,并且可以在 android-sdk/platform-tools/systrace/
中找到。
语法
如需为应用生成 HTML 报告,您需要使用以下语法通过命令行运行 systrace
:
python systrace.py [options] [categories]
例如,以下命令会调用 systrace
来记录设备活动,并生成一个名为 mynewtrace.html
的 HTML 报告。此类别列表是大多数设备的合理默认列表。
$ python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
binder_driver hal dalvik camera input res
提示 :如果要在跟踪输出中查看任务名称,必须在命令参数中添加 sched
类别。
如需查看已连接设备支持的类别列表,请运行以下命令:
$ python systrace.py --list-categories
如果您未指定任何类别或选项, systrace
会生成包含所有可用类别的报告,并使用默认设置。可用类别取决于您所使用的已连接设备。
全局选项
全局选项 | 说明 |
---|---|
`-h | –help` |
`-l | –list-categories` |
命令和命令选项
命令和选项 | 说明 |
---|---|
-o file |
将 HTML 跟踪报告写入指定的文件。如果您未指定此选项, systrace 会将报告保存到 systrace.py 所在的目录中,并将其命名为 trace.html 。 |
`-t N | –time=N` |
`-b N | –buf-size=N` |
`-k functions | –ktrace=functions` |
`-a app-name | –app=app-name` |
--from-file=file-path |
根据文件(例如包含原始跟踪数据的 TXT 文件)创建交互式 HTML 报告,而不是运行实时跟踪。 |
`-e device-serial | –serial=device-serial` |
categories |
包含您指定的系统进程的跟踪信息,如 gfx 表示用于渲染图形的系统进程。您可以使用 -l 命令运行 systrace ,以查看已连接设备可用的服务列表。 |
转载自:https://developer.android.com/topic/performance/tracing/command-line?hl=zh-cn