查看原文
其他

打造高性能应用,持续优化用户体验

Android Android 开发者 2022-10-12
作者 / Android 开发者关系团队总监 Maru Ahues Bouza

往期推文中,我们认为 "能提供始终如一、轻松流畅的用户体验是一个优秀应用的标准。无论在何种设备运行,优秀的应用都能提供出色的高性能用户体验。" 那么让我们一起探讨有关应用质量的问题 —— 什么是应用性能?高性能应用的特点是什么?如何借助强大的性能打造优秀应用?


对用户而言,应用的高性能似乎 "理所当然";然而作为开发者,打造高性能应用的过程并非易事。整体来说,应用的高性能主要体现在以下几个方面: 



稳定性



高性能应用应该是稳健而可靠的,没有卡顿 (应用无响应,又名 "ANR") 或崩溃的情况。在您发布应用之前,请参考 Google Play 发布前测试报告,检查潜在的稳定性问题。完成部署后,请关注 Google Play 开发者管理中心的 Android Vitals 页面。具体而言,ANR 是由线程问题引起的。ANR 问题排查指南可以帮助您诊断和解决应用中存在的任何 ANR 问题。


  • Google Play 发布前测试报告
    https://support.google.com/googleplay/android-developer/answer/9842757?hl=en-GB

  • Android Vitals
    https://developer.android.google.cn/topic/performance/vitals

  • ANR 问题排查指南
    https://developer.android.google.cn/topic/performance/vitals/anr



快速加载



试想一下,如果用户初次使用您的应用就经历了漫长的等待……他们可能会感到无聊或无法沉浸,您或许会失去一个新用户。应用应该实现快速加载或在恰当时机给到相应提示 (比如进度条等)。您可以使用 Android Vitals 提供的数据来量化应用在启动时间方面可能遇到的问题。Android Vitals 将启动时间分为以下几种情况: 
  • 冷启动: 花费 5 秒或更长时间。
  • 温启动: 花费 2 秒或更长时间。
  • 热启动: 花费 1.5 秒或更长时间。

  • 量化
    https://developer.android.google.cn/topic/performance/vitals/launch-time

  • 冷启动
    https://developer.android.google.cn/topic/performance/vitals/launch-time#cold

  • 温启动
    https://developer.android.google.cn/topic/performance/vitals/launch-time#warm

  • 热启动
    https://developer.android.google.cn/topic/performance/vitals/launch-time#hot


不过,这些都是很保守的时间,我们建议您以更短的启动时间为目标。我们之前的推文详细介绍了如何测试启动性能的实用技巧



快速渲染



高质量的帧渲染不仅适用于游戏,对于应用来说,流畅的视觉体验也十分重要。高性能应用的最低要求是呈现每帧的时间不应超过 16ms,以达到每秒 60 帧的呈现速度。但请注意,已经有不少更高刷新率的设备推出。如需要在测试的同时监控性能,可以使用 "Profile HWUI rendering" 选项。您可以访问官方文档以了解诊断渲染问题的相关工具

  • Profile HWUI rendering
    https://developer.android.google.cn/topic/performance/rendering/inspect-gpu-rendering

  • 了解诊断渲染问题的相关工具
    https://developer.android.google.cn/topic/performance/vitals/render



减少电量消耗



当用户意识到应用消耗电量过大时,他们就会考虑卸载。您的应用可能会因部分唤醒锁定操作卡住、过多唤醒、后台 Wifi 扫描或后台网络使用而消耗大量电量。此时您可以使用 Android Studio 能耗剖析器,同时规划后台工作,以诊断意外耗电。如果应用需要执行后台任务,则需要确保即使应用退出,系统也会继续运行相关任务。WorkManager 是一个省电的 Android Jetpack 库,当满足工作约束时,该库可以运行可延期执行的、有保证的后台工作。


  • Android Studio 能耗剖析器
    https://developer.android.google.cn/studio/profile/energy-profiler

  • WorkManager
    https://developer.android.google.cn/topic/libraries/architecture/workmanager/

  • Android Jetpack
    https://developer.android.google.cn/jetpack/



使用最新版本 SDK



为了确保安全与性能,请您务必使用最新版本的 Google 或第三方 SDK。SDK 的更新 (例如稳定性、兼容性或安全性相关更新) 也应及时提供给用户。您应对整个代码库负责,包括您可能使用的任何第三方 SDK。对于 Google SDK,请您优先使用由 Google Play 服务提供支持的 SDK。这些 SDK 向后兼容且支持自动更新,能够减小应用大小并能高效利用设备上的资源。


  • 最新版本的 Google 或第三方 SDK
    https://developer.android.google.cn/topic/security/best-practices#services-dependencies-updated

  • Google Play 服务
    http://developers.google.cn/android


如需了解更多信息,您可以访问应用质量优化页面,或查看文章合集,了解更多案例研究、实用建议。也欢迎您持续关注 "Android 开发者" 微信公众号,及时了解更多精彩内容。


  • 官方网站: 应用质量优化
    https://developer.android.google.cn/quality


您认为 Android 应用质量对业务的影响有多大呢?欢迎您在下方投票,并在文章底部私信与我们分享您对 Android 应用质量与业务成功的想法,您的反馈将帮助我们提供更精彩实用的内容。



推荐阅读

如页面未加载,请刷新重试

 点击屏末 | 阅读原文 | 进一步了解应用质量优化的相关内容




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存