Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

利用 Android Profiler 测量应用性能

Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具。Android Profiler 工具可提供实时数据,帮助您了解应用的 CPU、内存、网络和电池资源使用情况。

如需详细了解各个分析器,请参阅以下内容:

Android Profiler 与 Android 5.0(API 级别 21)及更高版本兼容。

有关 Android Profiler 的介绍,请观看以下视频。

要打开 Profiler 窗口,请依次选择 View > Tool Windows > Profiler,或点击工具栏中的 Profile 图标 。如果 Select Deployment Target 对话框提示,请选择要在哪个设备上分析您的应用。如果您通过 USB 连接了设备但系统未列出该设备,请确保您已启用 USB 调试。如果您使用的是 Android Emulator 或已取得 root 权限的设备,Android Profiler 将列出所有正在运行的进程,即使这些进程可能无法调试也会列出。当您启动可调试的应用时,默认情况下会选择该进程。

Android Profiler 会持续收集分析数据,直到您断开设备连接或点击 End Session

图 1. Android Profiler 共享时间轴视图

1 Android Profiler 显示当前正在分析的进程和设备。

2Sessions 窗格中,选择要查看的会话,或启动一个新的分析会话。

3 使用缩放按钮控制要查看时间轴范围,或使用 Attach to live 按钮跳转到实时更新。

4 事件时间轴显示与用户输入相关的事件,包括键盘 Activity、音量控制更改和屏幕旋转。

5 共享时间轴视图,包括 CPU、内存、网络和耗电量图表。

此共享时间轴视图只显示时间轴图表。要使用详细分析工具,请点击与您要检查的性能数据对应的图表。例如,要使用相关工具检查堆数据和跟踪内存分配,请点击 Memory 图表。

并非所有分析数据在默认情况下都可见。如果您看到一条消息,显示“Advanced profiling is unavailable for the selected process”,您可以在运行配置中启用高级分析以查看其他数据。

会话

您可以将分析器数据另存为会话,这些会话将一直保留,直到您退出 Android Studio。通过在多个会话中记录分析信息并在它们之间进行切换,您可以比较各种场景中的资源使用情况。

  • 要启动一个新的会话,请点击 Start a new profiling session 按钮 ,然后从出现的下拉菜单中选择一个应用进程。

    在您记录函数数据捕获堆转储后,Android Studio 会将相应数据(以及您应用的网络 Activity)作为单独的条目添加到当前会话。

  • 要停止向当前会话添加数据,请点击 Stop the current profiling session 图标

  • 要导入之前运行 Android Studio 时导出的跟踪记录,请点击 Start new profiler session 图标 ,然后选择 Load from file

启用高级分析

要在运行搭载 Android 7.1 或更低版本的设备时向您显示高级分析数据,Android Studio 必须将监控逻辑注入您编译的应用。高级分析提供的功能包括:

  • 所有分析器窗口中的事件时间轴
  • Memory Profiler 中已分配对象的数量
  • Memory Profiler 中的垃圾回收事件
  • Network Profiler 中有关所有已传输文件的详细信息

要启用高级分析功能,请按以下步骤操作:

  1. 依次选择 Run > Edit Configurations
  2. 在左侧窗格中选择您的应用模块。
  3. 点击 Profiling 标签,然后勾选 Enable advanced profiling
  4. 重新编译并运行您的应用。

高级分析配置会使编译过程变慢,所以仅在您想要开始分析您的应用时,才应启用该配置。