设置您的应用生成跟踪日志

    另一种无需设置应用代码即可跟踪应用的方法是,利用 Android Studio 的 CPU Profiler 来开始和停止函数跟踪。要了解详情,请参阅。

    在开始生成跟踪日志之前,请确保您的应用有权限写入外部存储(WRITE_EXTERNAL_STORAGE),以便将跟踪日志保存至该设备。

    要创建跟踪日志,将在您希望系统开始记录跟踪数据的位置调用

    在调用中,您可以指定 .trace 文件的名称,系统会将它保存到一个特定于软件包的目录中,该目录专门用于保存目标设备上的永久性应用数据,与 getExternalFilesDir() 返回的目录相同,在大多数设备上都位于 ~/sdcard/ 目录中。该文件包含二进制函数跟踪数据,以及一份包含线程和函数名称的映射表。 要停止跟踪,请调用

    请注意,如果您的应用在未更改跟踪日志名称的情况下再次调用 ,则会覆盖已保存至设备的现有日志。 要了解如何动态更改各个跟踪日志的名称,请前往阅读保存多个日志部分。

    如果系统在您调用 之前达到最大缓冲值,则会停止跟踪并向管理中心发送通知。开始和停止跟踪的函数在您的整个应用流程内均有效。 也就是说,您可以在 Activity 的 onCreate(Bundle) 函数中调用 ,在 Activity 的 onDestroy() 函数中调用

    请注意,启用分析功能时,应用的运行速度会减慢。 也就是说,您不应使用分析数据来确定绝对时间(例如“函数 foo() 需要 2.5 秒才能运行”)。 跟踪日志中的时间信息只适用于与之前的跟踪日志进行对比,以便了解最近的更改是否加快或减慢了应用的运行速度。

    部署到运行 Android 5.0(API 级别 21)及更高版本的设备时,您可以使用基于样本的分析方式进行分析,以减少分析对运行时性能的影响。 要启用样本分析,请调用带有指定抽样间隔时间的 startMethodTracingSampling()(而不是调用 )。 系统会定期收集样本,直至您的应用调用

    访问设备上的跟踪日志

    系统在您的设备上创建跟踪日志后,可通过以下任一方式访问日志文件:

    图 1. 利用设备文件浏览器查找跟踪日志。

    • 要在 IDE 的编辑器窗口中快速查看跟踪日志,请双击日志文件,如图 2 所示。您也可以右键点击该文件,将其保存到本地磁盘,然后使用 Traceview 查看详细信息,例如父函数和子函数、每个函数调用的平均执行时间,以及实时 CPU 对比数据。如果您没有看到日志文件,请右键点击您预期会出现此文件的目录,并选择Synchronize

    Generate trace logs by instrumenting your app - 图1