如果应用响应缓慢、动画卡顿、冻结或消耗过多电量,则表明其性能较差。修复性能问题涉及到对应用进行性能分析,也就是找出应用低效使用 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 中构建和运行可分析应用,请按照以下步骤操作:
- 如果您还没有,请创建运行/调试配置。
- 选择您的发布版本变体(构建 > 选择构建变体)。
- 点击更多操作 > 以低开销方式分析“应用” 或以完整数据方式分析“应用” (“应用”是运行配置的名称,因此对于您来说可能有所不同)。要在这两个选项之间进行选择,请参阅 要求。应用将在您的测试设备上打开,并且性能分析器窗格将在 Android Studio 中打开。
如果这些说明对您无效,请参阅 手动构建和运行可分析应用。
开始性能分析
要开始性能分析任务,请按照以下步骤操作:
从性能分析器窗格中主页选项卡的列表中选择一个进程。在大多数情况下,您需要选择代表您应用的顶部进程。
从任务部分选择一个性能分析任务。有关任务的更多信息,请参阅本部分中的其他页面。并非所有性能分析任务都适用于所有进程。如果您不知道从哪里开始,可以通过实时检查您的应用来全面了解性能活动。
使用从以下位置启动性能分析器任务下拉菜单来选择是从启动开始性能分析器任务,还是在进程运行时附加到进程。如果您尝试改进应用启动时间或捕获应用启动期间发生的进程,则应包含启动;否则,您可以从应用的当前状态开始性能分析。
点击启动性能分析器任务。任务将在其自己的选项卡中启动。
与您的应用进行交互以触发活动。
停止录制(如果适用),等待其解析,然后查看结果。
比较、导出和导入跟踪
停止性能分析任务后,它会自动保存在性能分析器窗格中的过去录制选项卡中。您可以使用这些保存的录制来比较不同场景中的资源使用情况。录制将在当前 Android Studio 会话期间保存;如果您想将其保存更长时间,请点击导出录制 将其导出。并非所有跟踪类型都可以导出。
要导入跟踪(例如,来自之前的 Android Studio 运行),请点击过去录制选项卡中的导入录制 ,然后选择您的跟踪文件。您也可以通过将文件拖放到 Android Studio 编辑器窗口中来导入文件。
编辑录制配置
要编辑性能分析器任务录制配置,请点击性能分析器设置 。您可以切换两个主要设置:
- 对于涉及采样的任务,采样间隔表示每次采样之间的时间。您指定的间隔越短,达到记录数据的文件大小限制的速度就越快。
- 文件大小限制表示可以写入连接设备的数据量。停止录制后,Android Studio 会解析此数据并在性能分析器窗口中显示它。如果您增加了限制并记录了大量数据,Android Studio 解析文件的时间会长得多,并且可能会变得无响应。