Android 日历团队如何使用基准配置文件改进应用启动和卡顿问题

基准配置文件将代码执行速度提升高达 30%, 解释器和即时 (JIT) 编译 步数 。借助基准配置文件,您可以选择 希望进行优化,并且可以帮助改进应用启动、减少卡顿等。 从而提升用户留存率和评分等业务指标。 详细了解基准 个人资料

Android 日历团队实现了基准配置文件,并观察到大约 20% 的应用 缩短了启动时间,并将慢帧或冻结的帧减少了约 50%。以下是 他们是如何实现这些绩效提升的 决定使用基准配置文件来衡量其影响。

云配置文件与基准配置文件

Android 日历团队一直在使用 Cloud 配置文件,也就是 是另一种基于真实用户的配置文件引导优化 (PGO) 方法 用户与应用之间的互动以下是云配置文件和基准配置文件的方法 比较:

配置文件类型 设置 涵盖的用户体验历程 在用户群中实现最佳效果 实现的影响 支持的 Android 版本

云配置文件

默认处于启用状态

根据真实用户数据自动选择

几天内

Android 9(API 级别 28)及更高版本

基准配置文件

由您配置

由您选择

所有尺寸

即时

Android 7(API 级别 24)及更高版本

Android 日历团队决定将基准配置文件添加到 这是因为他们将转向更快的每周发布周期。 虽然云配置文件可显著提升性能,但需要 1-2 天的时间 以达到最佳效果,因为他们依赖 汇总真实用户数据。使用基准作为云配置文件的补充 配置文件可为用户提供更多时间来体验最佳性能改进 。

此外,Android 日历团队能够 选择要将哪些关键用户历程 (CUJ) 具体包含在 您可以使用基准配置文件执行此操作。

通常,除了云配置文件之外,我们建议使用基准配置文件。 以获得最佳性能结果。

涵盖的用户体验历程

Android 日历团队选择在基准配置文件中添加两个 CUJ:

  • 在日程视图中打开应用:最初是默认视图,因此请务必 针对首次使用应用或不更改应用名称的用户进行优化 默认设置。
  • 在月视图中打开应用:基于用户为许多用户选择的视图 数据。要跟踪用户如何使用您的应用,您可以使用一些工具,例如 Firebase

一般来说,您应该添加可为企业带来利润的 CUJ(如果 和最常见的 CUJ。详细了解如何选择 要优化的 CUJ,请参阅需要优化的事项 include

实现

Android 日历小组针对 Jetpack Macrobenchmark 库 以生成基准配置文件,以便轻松与内部工具和集成 可伸缩性

以下是用于按计划打开应用的 Macrobenchmark 测试配置 视图:

@Test
fun generateProfile() =
    baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
        startActivityAndWait()
        // Verify pre-existing recurring events and tasks are shown.
        device.waitAndFindObject(By.text("Recurring event"), 20_000)
        device.waitAndFindObject(By.text("Recurring task"), 20_000)

        // Open drawer and verify selected view.
        device.findObject(By.desc("Show Calendar List and Settings drawer")).click()
        device.waitAndFindObject(By.desc("Schedule view, Selected"), 1_000)
    }

使用对照版本衡量影响

由于基准配置文件与随附的 APK 密切相关 并在应用运行之前被纳入代码,就无法运行标准的 A/B 测试 以了解其影响。不过,Android 日历小组 使用对照版本准确衡量影响, 实质上仅向一部分用户发布新的应用版本 与上一发布版本类似的用户时,可以向他们展示广告。

使用基准配置文件后,他们立即看到以下重要的 改进。这些统计信息是 的设备数量以及所有用户(从日程视图和月视图开始的用户)中 可能会获得最大的好处,但其他用户也会受益于 优化共享进程,例如从 数据库。

  • 交互式应用启动延迟时间中位数(最常见的场景)从 775 毫秒到 644 毫秒 (17%)
  • 冷启动延迟时间的中位数从 1,058 毫秒缩短至 901 毫秒 (15%)
  • 温启动延迟时间中位数已从 453 毫秒缩短至 378 毫秒 (17%)
  • 时间安排和月观看次数的中位数卡顿帧速率降低了 42-60%

请注意,如果您将云配置文件与 Baseline 结合使用, 随着时间的推移, 第 1 周,因为云配置文件的生成。不过,您仍应 使用基准配置文件后,性能得到显著提升 实施的优化建议

如需详细了解工具和功能,请参阅以下资源: