The Android Developer Challenge is back! Submit your idea before December 2.

捕获设备上的系统跟踪记录

搭载 Android 9(API 级别 28)或更高版本的设备包含一个名为“系统跟踪”的系统级应用。此应用类似于 systrace 命令行实用工具,但允许您直接从测试设备本身录制跟踪记录,而无需插入设备并通过 ADB 连接到该设备。然后,您可以使用此应用与开发团队共享通过这些跟踪记录得出的结果。

在解决应用中与性能相关的错误(例如启动速度慢、转换速度慢或界面卡顿)时,录制跟踪记录特别有用。

录制系统跟踪记录

借助“系统跟踪”应用,您可以使用“快捷设置”图块或应用自身内的菜单录制系统跟踪记录。以下各部分介绍如何使用这些界面完成录制过程。

使用“快捷设置”图块录制

使用“快捷设置”图块来完成设备上系统跟踪流程通常更便捷。

设置图块

图 2. “系统跟踪”应用中的显示“快捷设置”图块开关

如果您是首次在测试设备上使用“系统跟踪”,或如果在设备的快捷设置面板中看不到系统跟踪图块(图 1),请完成以下设置步骤:

  1. 启用开发者选项(如果尚未启用此选项)。
  2. 打开开发者选项设置屏幕。
  3. 调试部分中,选择系统跟踪。此时会打开“系统跟踪”应用,其中显示了应用菜单。
  4. 在应用菜单中,启用显示“快捷设置”图块,如图 2 所示。系统会将系统跟踪图块图块添加到快捷设置面板中,如图 1 所示:

    图 1. 快捷设置面板中的系统跟踪图块

    注意:默认情况下,系统会将系统跟踪图块添加为快捷设置面板中的第一个图块。如果您希望该图块显示在其他位置,请使用此面板的修改模式移动该图块。

完成系统跟踪记录的录制

要使用快捷设置面板录制系统跟踪记录,请完成以下步骤:

  1. 点击系统跟踪图块,该图块带有“录制跟踪记录”标签。该图块会变为启用状态,并且系统会显示常驻通知,通知您系统正在录制跟踪记录,如图 3 所示:

    包含消息“正在录制跟踪记录。点按即可停止跟踪。”的通知
    图 3. 启动设备上系统跟踪后出现的常驻通知
  2. 在您的应用中执行您希望系统检查的操作。

  3. 完成这些操作后,通过点按快捷设置面板中的系统跟踪图块或点按“系统跟踪”通知来停止跟踪。

    系统会显示一条包含消息“正在保存跟踪记录”的新通知。保存完成后,系统会关闭该通知,并显示第三条通知,确认您的跟踪记录已保存并且您已准备好共享系统跟踪记录,如图 4 所示:

    包含消息“已保存跟踪记录。点按即可分享您的跟踪记录。”的通知
    图 4. 系统保存完录制的跟踪记录后出现的常驻通知

使用应用菜单录制

使用应用菜单,您可以配置与系统跟踪相关的多个高级设置,并提供用于启动和停止系统跟踪记录的开关。

要使用“系统跟踪”应用菜单录制系统跟踪记录,请完成以下步骤:

  1. 启用开发者选项(如果尚未启用此选项)。
  2. 打开开发者选项设置屏幕。在调试部分中,选择系统跟踪。“系统跟踪”应用随即打开。

    或者,如果您已设置系统跟踪图块,则可以长按该图块以进入“系统跟踪”应用。

  3. (可选)选择对跟踪记录的系统和传感器调用的类别,并选择缓冲区大小(以 KB 为单位)。选择与您正在测试的用例相对应的类别,例如用于测试蓝牙操作的音频类别。

    图 5. “系统跟踪”应用中的录制跟踪记录开关
  4. 启用录制跟踪记录开关,如图 5 所示。该图块会变为启用状态,并且系统会显示常驻通知,通知您系统正在录制跟踪记录(图 3)。

  5. 在您的应用中执行您希望系统检查的操作。

  6. 完成这些操作后,通过停用录制跟踪记录开关来停止跟踪。

    系统会显示一条包含消息“正在保存跟踪记录”的新通知。保存完成后,系统会关闭该通知,并显示第三条通知,确认您的跟踪记录已保存并且您已准备好共享系统跟踪记录,如图 4 所示。

共享系统跟踪记录

“系统跟踪”应用可帮助您在多个不同工作流程中共享系统跟踪结果。

以消息的形式共享

“系统跟踪”允许您与设备上的其他应用共享您收集到的跟踪记录。这样,您就可以通过电子邮件或错误跟踪应用将跟踪记录发送给开发团队,而无需将设备连接到开发计算机。

录制完系统跟踪记录后,请点按设备上显示的通知(参见图 4)。此时会显示平台的 intent 选择器,可让您使用所选的短信应用共享您的跟踪记录。

使用 ADB 下载报告

如果需要,您还可以使用 ADB 从设备中提取系统跟踪记录。将录制跟踪记录的设备连接到开发计算机,然后在终端窗口中运行以下命令:

    cd /path-to-traces-on-my-dev-machine && \
      adb pull /data/local/traces/ .

创建 HTML 报告

通过消息或通过 ADB 共享跟踪记录时,报告本身位于 .ctrace 文件中。您可以使用此文件生成跟踪记录的 HTML 报告。为此,请在终端窗口中运行以下命令:

    cd /path-to-traces-on-my-dev-machine && \
      systrace --from-file trace-file-name.ctrace

如果您还没有 systrace 命令行程序,可以从 GitHub 上的 Catapult 项目下载它,也可以直接从 Android 开源项目下载