分析应用性能

如果应用响应速度慢、动画播放不流畅、卡顿或耗电量过高,就表示应用的性能不佳。若要解决性能问题,就需要找出应用的哪些方面导致不能高效地利用资源(例如 CPU、内存、图形、网络或设备电池)。

为了找出并解决这些问题,您可以使用本主题中介绍的性能分析和基准化分析工具与技巧。如需了解衡量性能的技巧,以及关于如何利用这些技巧解决具体问题的示例,请参阅衡量性能

Android Studio 提供了一些性能分析工具来帮助您找出并直观呈现潜在的问题:

  • CPU 性能分析器有助于查出运行时性能问题。
  • 内存分析器有助于跟踪内存分配情况。
  • 网络性能分析器可监控网络流量使用情况。
  • 能耗性能分析器可跟踪能耗情况,这有助于分析电池电量消耗过快的问题。

如需详细了解这些工具,请参阅 Android Studio 性能分析器页面。

借助 Jetpack 基准库,您的应用可衡量各种重要操作:

  • Macrobenchmark:测量重要的性能用例,包括应用启动以及由界面动画或滚动等操作触发的重新绘制。
  • Microbenchmark:测量特定函数的 CPU 开销。

如需详细了解这些库,请参阅对您的应用进行基准测试页面。

可分析应用

Profileable 是在 Android Q 中引入的清单配置。它可以指定设备用户能否通过 Android Studio、Simpleperf 和 Perfetto 等工具对此类应用进行性能分析。

profileable 之前,大多数开发者只能对 Android 上的可调试应用进行性能分析,这会导致性能显著下降。这些性能下降可能会导致分析结果无效,尤其是当它们与时间有关时。表 1 总结了可调试应用和可分析应用之间的区别。

表 1. 可调试应用和可分析应用之间的主要区别摘要。
功能 可调试 可分析
内存分析器 完整

是:

否:

CPU 性能分析器 完整

是:

否:

网络性能分析器
能耗性能分析器
事件监视器

引入了 Profileable,以便开发者可以选择允许其应用向分析工具公开信息,同时导致的性能下降微乎其微。可分析 APK 实质上是在清单文件所含 <application> 部分内添加了一行 <profileable android:shell="true"/> 的发布版 APK。

自动构建和运行可分析应用

只需点击一下,即可配置、构建并运行可分析应用。此功能需要搭载 Android 29 或更高级别且具有 Google Play 的虚拟或实体测试设备。如需使用该功能,请点击 Profile app 图标 旁边的箭头,然后从两个选项中进行选择:

一键式可分析 build 菜单。
  • 以较低的开销对“应用”进行性能分析会启动 CPU 和内存分析器。在内存分析器中,只有 Record Native Allocations 被启用。

    以较低的开销进行性能分析。
  • 使用完整数据对“应用”进行性能分析会启动 CPU、内存和能耗性能分析器。

    使用完整数据进行性能分析。

手动构建和运行可分析应用

如需手动构建可分析应用,您需要先构建发布版应用,然后更新其清单文件,将发布版应用转换为可分析应用。配置可分析应用后,启动性能分析器并选择要分析的可分析进程。

构建发布版应用

如需出于性能分析目的构建发布版应用,请执行以下操作:

  1. 使用调试密钥为应用签名,方法是将以下几行代码添加到应用的 build.gradle 文件。如果您已有有效的发布 build 变体,则可以跳到下一步。

            buildTypes {
              release {
                signingConfig signingConfigs.debug
              }
            }
          
  2. 在 Android Studio 中,依次选择 Build > Select Build Variant...,然后选择发布变体。

将发布版应用更改为可分析应用

  1. 打开 AndroidManifest.xml 文件并在 <application> 内添加以下代码,将上述发布版应用转换为可分析应用。如需了解详情,请参阅构建应用以进行发布

    <profileable android:shell="true"/>

  2. 您可能需要将以下几行代码添加到应用的 build.gradle 文件中,具体取决于 SDK 版本。

          aaptOptions {
            additionalParameters =["--warn-manifest-validation"]
          }
        

对可分析应用进行性能分析

如需对可分析应用进行性能分析,请执行以下操作:

  1. 从开发模拟器或设备启动应用。

  2. 在 Android Studio 中,依次选择 View > Tool Windows > Profiler 来启动性能分析器。

  3. 应用启动后,点击性能分析器中的 性能分析器加号按钮 按钮以查看下拉菜单。选择您的设备,然后在 Other profileable processes 下选择应用对应的条目。

    可分析菜单
  4. 性能分析器应附加到应用。只有 CPU 和内存分析器可用,而且内存分析器的功能有限。

    可分析会话视图
    可分析菜单
    可分析菜单