跟踪是一种非常宝贵的工具,它使开发人员能够了解各种更改对系统的影响,并可以提供线索来确定问题的根本原因。systrace是一种功能强大的跟踪工具,可从 Android设备上运行的进程收集计时信息。谷歌的 Android性能团队广泛使用 systrace来优化 Google Pixel手机的性能。例如,我已使用 systrace来检查内核调度程序更改对CPU上的任务放置的影响,并确定可能造成问题的原因。systrace可以捕获各种各样的数据,包括CPU调度,CPU频率,磁盘I / O,图形,Binder活动等等。这些信息会合并成一个报告,可以在Google Chrome浏览器中进行分析。
在使用Android Pie之前,使用systrace捕获跟踪的唯一方法是将Android设备连接到计算机,然后从计算机(通常是从终端)运行systrace。但是,并不是每个人都可以持续访问计算机,或者不是所有人都有运行systrace的知识和信心。
随着Android Pie的发布,Traceur软件包的引入解决了这种不便,该软件包可直接在Android手机上捕获原始跟踪数据。Traceur可以作为“设置”应用程序的“开发人员选项”中的“系统跟踪”选项使用,Traceur在设备上捕获的原始跟踪数据可以稍后通过systrace转换为HTML报告进行分析。
新的“系统跟踪”选项使用户可以轻松捕获并与开发人员共享跟踪,而无需实际知道如何在计算机上运行systrace。开发人员将受益于无需计算机即可捕获跟踪并在方便时进行分析的能力。通过“系统跟踪”收集的完整原始跟踪数据的大小也比systrace生成的HTML报告小得多,因此使原始跟踪数据更适合存储和与他人共享。
指南:收集系统和分析系统跟踪
首先,请确保您有运行Android Pie的设备和装有Python 2的计算机。在运行最新OxygenOS Android Pie Beta 的OnePlus 6上执行了以下说明。
在“设置”应用中启用“开发人员选项”,然后访问“开发人员选项”的“调试”部分中的“系统跟踪”选项。
打开“系统跟踪”后,将为您提供一个启用“系统跟踪”的切换开关,以及自定义跟踪类别和跟踪缓冲区大小的功能。对于此演示,使用默认类别,对于大多数情况而言,这已经足够了。“显示快速设置图块”切换按钮可通过“快速设置”启动/停止跟踪。我已为本指南启用了此功能。
要开始捕获跟踪,请点击最近添加的“记录跟踪”快速设置图块。
跟踪完测试用例后,可以从通知栏停止跟踪。
大!您已成功捕获原始跟踪。一条通知将提示您共享原始跟踪文件。您应该能够将其保存到设备中,将其上传到在线存储中,通过电子邮件发送给其他人,等等。或者,您可以使用ADB将跟踪从设备直接拉到计算机()。继续并将跟踪文件保存到您的计算机。adb pull /data/local/traces/
原始跟踪文件具有伪造的.ctrace格式。不能以原始形式解释它。我们可以使用systrace从我们的原始跟踪文件生成更有用和可理解的交互式HTML报告。
我们将使用最新版本的systrace从弹射器项目回购。在终端应用程序中,克隆存储库(确保已安装git):
git clone https://github.com/catapult-project/catapult.git
要使用systrace从原始跟踪文件生成HTML报告,请输入以下命令:
python2 catapult/systrace/bin/systrace --from-file=
将生成与原始跟踪文件同名的HTML文件。 注意:在撰写本文时,systrace仅支持Python 2。
要查看HTML报告,请启动Google Chrome浏览器并访问“ chrome:// tracing” URL。不要直接在Google Chrome浏览器中打开HTML报告,因为它会显示为空白。
单击“加载”,然后从弹出对话框中打开HTML报告文件。瞧!您的跟踪报告现在可供检查。
下一步是什么?
既然您能够捕获跟踪并生成systrace报告,那么了解如何读取和解释报告中显示的数据就变得很重要。首先,我建议阅读“ 了解Systrace ”,并观看“ Android性能:概述(Google I / O '17) ”和“ Systrace for Games ”,以查看systrace的运行情况。