如果应用响应速度慢、动画效果卡顿、发生冻结或消耗过多电量,则说明其性能不佳。解决性能问题涉及对应用进行分析,即确定应用在使用 CPU、内存、图形、网络或设备电池等资源时效率低下的区域。本主题介绍 Android Studio 工具和技巧,以用于解决常见的性能问题。
要了解如何在不运行整个 Android Studio IDE(仅限 Windows 或 Linux)的情况下运行独立分析器,请参阅运行独立分析器。
要求
要分析您的应用,建议您具备以下条件:
一个已启用
profileable
清单配置的应用的发布版本变体,也称为可分析应用。默认情况下,应用将此配置设置为 true。要检查或更改此配置,请打开应用的清单或AndroidManifest.xml
文件,并在<application>
部分中查找profileable
清单配置<profileable android:shell="true" />
运行 API 级别 29 或更高版本且具有 Google Play 的虚拟或物理测试设备。
Android Gradle 插件 7.3 或更高版本。
可分析应用与可调试应用
可分析应用可以让您执行大多数常见的分析任务,但是如果您需要记录 Java/Kotlin 内存分配或捕获堆转储,则应使用 可调试 应用。运行 API 级别 26 或更高版本的可调试应用进程和设备还可以让您在提供它的任务视图中查看交互时间线,该时间线显示用户交互和应用生命周期事件。
可调试应用基于您的应用的 debug
构建变体,允许您使用开发工具,例如 调试器;但是,它会带来一些性能成本。可分析应用基于您的应用的 release
构建变体,并支持一些常见的分析任务,而不会产生调试构建的性能开销。
构建和运行可分析应用
要在 Android Studio 中构建和运行可分析应用,请执行以下步骤
- 如果您还没有,请 创建运行/调试配置。
- 选择您的发布构建变体(构建 > 选择构建变体)。
- 单击更多操作 > 以低开销分析“app” 或以完整数据分析“app” (“app”是运行配置的名称,因此对于您来说可能有所不同)。要在这两个选项之间进行选择,请参阅 要求。应用将在您的测试设备上打开,分析器窗格将在 Android Studio 中打开。
如果这些说明对您无效,请参阅 手动构建和运行可分析应用。
开始分析
要开始分析任务,请执行以下步骤
从分析器窗格中的首页选项卡中的列表中选择一个进程。在大多数情况下,您需要选择代表您的应用的顶部进程。
从任务部分中选择一个分析任务。有关任务的更多信息,请参阅本节中的其他页面。并非所有分析任务都适用于每个进程。如果您不知道从哪里开始,请通过 实时检查您的应用 来获得对性能活动的全面了解。
使用从以下位置开始分析任务下拉菜单选择是开始从启动开始分析任务,还是在进程运行时附加到进程。如果您试图改进应用启动时间或捕获应用启动期间发生的进程,则应包含启动;否则,您可以从应用的当前状态开始分析。
单击开始分析任务。任务将在其自己的选项卡中启动。
与您的应用进行交互,以便触发活动。
停止录制(如果适用),等待其解析,然后查看结果。
比较、导出和导入跟踪
停止分析任务时,它会自动保存在分析器窗格中的过去录制选项卡中。您可以使用这些保存的录制来比较不同场景中的资源使用情况。这些录制将在当前 Android Studio 会话期间保存;如果您想保存更长时间,请单击导出录制 将其导出。并非所有跟踪类型都可以导出。
要导入跟踪(例如,来自以前运行的 Android Studio),请单击过去录制选项卡中的导入录制 并选择您的跟踪文件。您也可以通过将文件拖放到 Android Studio 编辑器窗口中来导入它。
编辑录制配置
要编辑分析任务录制配置,请单击分析器设置 。您可以切换两个主要设置
- 对于涉及采样的任务,采样间隔表示每次采样之间的时间。您指定的间隔越短,您越快达到记录数据的文件大小限制。
- 文件大小限制表示可以写入连接的设备的数据量。当您停止录制时,Android Studio 会解析此数据并将其显示在分析器窗口中。如果您增加限制并记录大量数据,Android Studio 解析文件所需的时间会长得多,并且可能会变得无响应。