参加一系列免费在线讲座,学习知识和经验,拓展在 Google Play 上的业务。立即报名

使用 Android Vitals 改进您的应用的性能、稳定性和大小

  • 测试
  • 开发
  • 分析

性能和稳定性与 Google Play 上的正面评价有直接关系。通过修复应用中存在的问题和防止应用出现不良行为,您可以提升用户体验、提高评分并增加保留应用的安装人数。此外,减小应用的大小可以提高安装率并减少卸载次数。

这样做的好处

Android Vitals 可显示有关稳定性、耗电量、卡顿、启动时间和权限遭拒情况的应用性能指标。通过跟踪这些指标,您可以找出并修正会直接影响用户体验的不良应用行为。您可以根据 Android Vitals 核心指标的突然变化来了解有哪些需要加以调查的异常情况,并借助各种基准数据来比较同类应用的性能。指标值较高的应用能够更有效地推广,进而提升在 Google Play 商店搜索结果中的排名。此类应用也更可能列入 Google Play 上的“新上线 + 最近更新”和“编辑精选”合集,获得 Google Play 年度奖提名的可能性也更大。

关键指标

  • 稳定性 | ANR 发生率在每日使用过程(会话)中遇到至少 1 次应用无响应 (ANR) 问题的用户数量百分比。ANR 通常是由于界面线程和后台进程(广播接收器)出现死锁情况或速度缓慢所导致。
  • 稳定性 | 崩溃率在每日使用过程(会话)中遇到至少 1 次崩溃问题的用户数量百分比。崩溃问题通常是由于未处理的异常情况、资源耗尽、失败的断言或其他非预期的状态所导致。
  • 呈现时间 | 16ms (60fps)存在以下情况的每日会话所占的百分比:用户遇到呈现时间大于 16 毫秒的帧超过 50%。用户与应用的互动速度应该保持在 60 帧/秒,不会出现帧丢失或帧延迟的情况。
  • 呈现时间 | 700ms一天内遇到 1000 帧中超过 1 帧的呈现时间超过 700 毫秒的用户数量百分比。如上所述,呈现时间较长会使应用执行不够顺畅,导致用户体验变差。如果呈现帧需要 700 毫秒或更长时间,则对于用户来说,您的应用很有可能看起来像处于冻结状态。
  • 电池 | 部分唤醒锁定在特定日期遇到至少 1 次长达 1 小时以上的唤醒锁定的用户数量百分比。部分唤醒锁定操作卡住会阻止空闲设备进入休眠状态及节电模式。
  • 电池 | 唤醒次数自设备充满电后,每小时遇到 60 次以上唤醒的用户数量百分比。经常发生唤醒情况是由于您应用外部的闹钟执行的定时操作而导致的,这会阻止空闲设备进入休眠状态。
  • 启动时间:用户遇到冷启动或热启动时间过长问题的会话数百分比。启动缓慢可能是由一系列问题导致的,但通常表明在初始化应用时执行了繁重的工作负载或复杂的逻辑。
  • 权限遭拒:用户拒绝了权限或选择不再询问的每日权限会话数百分比。权限遭拒可能表明用户不清楚应用为何要请求某项权限,或将该请求视为不必要或不合理。
  • 应用大小:跟踪您应用的下载大小和安装到设备上的大小,然后将这些指标与同类应用进行比较。另外,请参阅活动用户和卸载指标,以了解存储空间不足的设备。根据对版本的分析,获取有关如何减少应用大小的优化建议。

最佳做法

  • 考量不良行为并予以根除:在开发应用的过程中,考量应用在不同环境中的行为方式。例如,如果您在功能完善的高端设备上测试应用,则应考量应用在电源、内存、带宽以及 CPU/GPU 性能方面都很有限的低端设备上的性能如何。在每个版本发布之前,请使用发布前测试报告在多种设备上测试您的应用。
  • 在发布新的应用版本后查看 Android Vitals:在您发布应用后,Android Vitals 会针对应用在实际设备上的运行状况提供性能指标,让您能找出在特定设备和 Android 版本上会影响用户体验的问题和不良行为。
  • 找出存在问题的设备:应用可能只在具体某个设备或某些设备上出现不良行为。根据对用户体验造成影响的严重程度以及受影响的设备和用户数量,您可以在问题得到修复之前,先选择更新应用的设备定位以将这些设备排除在外。
  • 找出存在问题的 Android 版本:应用可能只会在特定的 Android 版本上出现不良行为。对于用户数量较少的较低 Android 版本,请更新您的应用以消除不良行为,或者在应用的清单中将 <uses-sdk> 元素的 android:minSdkVersion 属性更新至应用不会出现任何不良行为的 API 级别。对于较新的 Android 版本,请一律通过更新应用来修正不良行为,而不是通过设置 <uses-sdk> 元素的 android:maxSdkVersion 属性来排除较新的 Android 版本。
  • 使用崩溃报告工具找出并跟踪崩溃和 ANR 问题:使用崩溃报告工具(如 Firebase 崩溃报告Crashlytics)以及 Android Studio 调试程序,尽可能找出并跟踪导致崩溃和 ANR 问题的各种情况。
  • 使用 JobScheduling API 避免唤醒锁定和唤醒:使用 JobScheduling API(如 JobScheduler)灵活安排后台进程和任务,以便让平台更好地管理空闲状态,从而减少耗电量。
  • 使用 FrameMetrics API 找出呈现缓慢的帧:使用 FrameMetrics 以很高的精细度衡量应用在正式版设备中各项互动的帧呈现时间,从而让您无需依赖于通过 USB 连接的测试设备,即可找出在正式版设备上导致卡顿的特定互动或事件。
  • 遵循权限请求的最佳做法:在申请权限之前向用户提供说明,并确保用户可在授予权限后立即获得好处。帮助用户撤销拒绝权限的操作,并确保用户已针对您要使用的应用启用正确设置。如果您需要知道用户的位置,请提出位置信息设置请求,以确保相应的设备设置已开启。
  • 使用发布前测试报告在真实设备上测试您的应用,以在发布更新之前找出并解决问题。
  • 改用 Android App Bundles 可让您以更高效的方式开发和发布应用,从而减少应用的大小,而无需重构代码。

示例