应用崩溃了?Android vitals 帮您精确诊断

2018 年 10 月 17 日 谷歌开发者

辛苦开发的应用终于顺利在 Play Store 上线了? 恭喜!—— 但您的开发工作还没有结束。


您的应用是如何被使用的?您的用户面临哪些问题?那个光鲜亮丽的按钮是否能够正确对点击做出响应?您的应用启动速度是否足以让用户满意?最重要的是,您如何判断您的应用在真实用户设备上的使用效果?


如果您想确保您的应用在竞争激烈的 Play Store 中取得成功,就一定要关注并解决这些问题。在本文中,我们将通过检测和修复应用崩溃来了解 Android vitals 如何在此过程中提供帮助,以便提升应用品质并提供令人愉悦的用户体验。


Google Play 一直都在提供大量的工具,以帮助 Android 开发者构建优质应用,扩大用户群并创造收入。构建高质量的成功应用需要时间,需要付出很多努力。考虑到这一点,我们在 Play Console 中添加了 Android vitals,以提供与应用稳定性和性能相关的关键指标数据。利用这些数据,开发者可以准确了解到需要在哪方面集中精力才能提升应用品质。



为何要关注性能表现?


这已经不是什么秘密了:优异的应用性能表现会带来更高的应用评分,进而带来更高的安装次数。用户会关注 Play Store 中的应用评论和评分。如果应用性能表现差劲,用户可不会装作没看见。用户不需要太多考虑,就可以放弃或完全删除性能不佳的应用,因为 Play Store 为他们提供了太多选择。事实上,Google 和 AppDynamics 的独立报道已经指出,表现不佳的应用会被更早地被用户删掉,并且会收到差评。要在 Play Store 中茁壮成长,开发者必须确保他们的应用拥有高品质,并提供最佳体验。


>> Google I/O ’18 针对提升性能表现来获得成功的演讲:

https://www.youtube.com/watch?v=dx6LBaFqEHU


>> AppDynamics:80% 的应用卸载源自糟糕的性能表现:

https://blog.appdynamics.com/news/deletetheapp-digital-leaders-raise-consumer-expectations-new-heights/


对于付费应用和游戏而言,性能表现更为重要。用户要求他们的买到的东西必须物有所值。性能在很大程度上推动了这些应用的成功,以及开发者能够获得的收入。对于游戏来说,用户对不良应用行为的容忍度更低 —— 包括崩溃、电池快速耗尽和响应时间过慢


构建具有出色性能的应用的重要性,无论如何强调都不过分。


Android vitals 帮您洞察问题所在


在应用上线后追踪应用性能是一项艰巨的任务。然而,Android vitals 会让这个过程举重若轻。Android vitals 会针对性地收集并汇总用户的数据,为开发者带来无与伦比的洞察力,从而了解他们的应用在用户设备上的表现。


*请注意,Android vitals 仅能收集已打开 Usage & Diagnostics 共享功能的用户的数据。


Android vitals 会收集以下类别的数据和报告:

  • 稳定性:Android vitals 会报告应用无响应 (ANR) 现象和崩溃率。当应用的 UI 线程长时间被阻塞时会发生 ANR。用户可以选择在 ANR 发生时退出或等待。另外再次强调一下,崩溃是由于未处理的异常而引发的,所以对稳定性相关的数据和报告解读十分重要。

  • 电量:移动设备的电量是有限的,因此应该谨慎管理应用消耗的电量。大量使用 CPU 的应用会快速耗尽电池电量。在这个问题上,唤醒锁定、唤醒,以及网络使用情况都会被记录。唤醒锁定、唤醒和过多的网络使用都会较为明显地消耗电量。

  • 启动时间:用户希望应用加载起来要快一些。加载时间过长的应用会被视为没有响应,从而破坏用户体验。 Android vitals 提供的各种启动状态的信息:包括冷启动、暖启动和热启动。

  • 渲染时间:平滑的用户交互 (每秒 60 帧) 是我们的目标。Vitals 会报告需要较长时间渲染的应用以及出现了冻结帧的应用 (渲染时间大于 700 毫秒)。

  • 许可权限:为了保护用户,Android 要求应用在进行任何敏感操作之前获取用户的许可。用户现在可以在运行时允许或拒绝权限请求。Android vitals 会提供有关权限拒绝的信息。


>> 详细了解每个指标:

https://support.google.com/googleplay/android-developer/answer/7385505?hl=en



Android vitals 和其他工具比较起来如何?


Android vitals 提供与其他第三方工具类似的功能。然而它在下面几个方面是独一无二的。


第一个关键区别在于, Android vitals 不需要额外设置即可工作。您无需向应用中添加任何代码 —— 一个变量都不需要。您所需要的只是用户选择共享使用和诊断信息。您也不需要专门的帐户来进行管理。Android vitals 可从 Google Play Console 访问,而 Play Console 正是您日常用来管理您应用的地方。


第二点比较微妙 —— 在用户看到用户界面之前,应用就可能已经崩溃了。第三方工具几乎无法检测到这些崩溃,因为崩溃报告库可能在崩溃发生时尚未完成初始化。然而 Android vitals 会捕获并报告这些崩溃。此外,Android vitals 允许开发者将其应用的每个指标与其他应用进行比较。另外,当开发者的应用与同类别中其他应用的关键性能指标出现显著落差时,开发者也会收到通知,从而助力开发者第一时间解决问题。


即使您使用其他崩溃报告工具,也应该同时使用 Android vitals 来快速识别和修复应用中的性能瓶颈。



调查与诊断应用崩溃


想要查看 Android vitals 信息中心,请从 Google Play Console 中选择您的应用。从左侧菜单中选择 Android vitals,然后选择 Overview。


Overview 页面在顶部显示核心 vitals 指标 (崩溃、过度唤醒、ANR、部分唤醒锁定阻塞)。我们发现,这些指标对应用性能表现较为重要。 Overview 页面上提供了有关所有指标的信息,并提供了过滤功能。您可以通过单击 View Details 深入了解任意指标。


值得注意的是,Android vitals 仅在收集到足够的数据时才会显示此信息。所以有些应用不会显示任何统计信息。这可能是因为用户没有共享使用和诊断信息,或者是应用暂时还未出现会影响到性能关键指标的行为。



确定崩溃点


所有的崩溃都不太一样。有些容易捕获,有些很难确定。不过,一旦确定崩溃的来源,调试就变得容易多了。


应用崩溃和 ANR 在 Android vitals 菜单下有一个专门的分区。要查看实时崩溃信息,请在 ANRs & Crashes 下选择 CRASHES。应用崩溃以群集形式显示,其中显示了报告和受影响用户的数量。您还可以根据 Android 版本、时间段、应用版本和应用安装源过滤数据。

选择相关的崩溃群集即可深入研究被报告出的崩溃现象。这里会有详细视图显示出来供您查看。在这个页面中,您可以查看发生的异常类型、报告数量以及每次崩溃的受影响用户。您还可以获得应用版本、Android 版本以及发生崩溃的设备列表的统计信息。一个很棒的功能是,您可以查看有关设备类型的一些基本信息 (例如 RAM),从而对崩溃原因有更深入的了解。

在页面底部,您可以访问崩溃日志。日志揭示了异常所属的类型,以及它在应用内的根源。这应该可以让您大概了解到一些可能的解决方案。如果发生的是很简单的崩溃现象,这可能意味着您只需把一小部分代码移入 try-catch 块,正如上图中所展示出的那样。当然,您也可能不是每次都能这么顺利地解决崩溃问题,但我们相信详尽的报告会对您颇有助益。



接下来如何处理?


应用崩溃没有一定的解决方案。但是在处理应用崩溃时,以下方案可能会派上用场:

  • 使用像 Firebase Crashlytics 这样优秀的崩溃报告工具以及 Android vitals,更深入地了解应用崩溃现象。

  • 试试 Kotlin。Kotlin 受到 Android 的官方支持,可与 Java 实现完全的互操作。Kotlin 的输入辅助等功能有助于消除 NullPointerExceptions,这是许多开发者头痛的根源。如今许多流行的应用都是使用 Kotlin 构建的,包括 Slack 和 Camera360 等。

  • 使用 Android Jetpack。Jetpack 为 Android 开发者提供了一系列组件,可以快速构建高品质的强大应用。这些组件能够确保开发者遵循最佳实践,并减少应用中出错的可能性。

  • 阅读有关 Android 性能表现最佳实践和指南文档。虽然这可能无法直接帮助修复崩溃,但您将获得有关如何避免崩溃和提高应用性能的专家提示。


>> Android 性能表现最佳实践和指南文档:

https://developer.android.google.cn/topic/performance/



小结


正如我们所见,应用性能和稳定性对于在 Play Store 中取得成功至关重要。Android vitals 可以帮助您以最小的努力和成本实现这一目标。今后我们还会推出更多的功能,让您可以更轻松地提升应用性能表现  。


如果您从未检查过应用的 vitals 信息,请前往您的 Play Console,了解应用的确切表现以及您错过的所有警告,并利用这些信息来改善您下一步的决策。众所周知,如果您的 vitals 指标出了问题,您的用户最需要的是针对性的紧急修复,而不是在用户界面上做无用文章。


我们期待着您使用 Android vitals 迅速且稳健地提升应用性能表现,并因此收获用户们的赞誉和喜爱。



 点击屏末 |  | 了解 Android vitals 的更多信息




推荐阅读:

· 如何获得更小的应用文件尺寸?来了解下 Android App Bundle
· Android vitals 帮您解决应用质量问题
· Android vitals 帮您解决应用质量问题 (下篇) 

登录查看更多
0

相关内容

Android(安卓)是一种以 Linux 为基础开发的开放源代码的操作系统,主要应用于便携设备。2005 年,Android 公司被 Google 收购,随后 Google 联合制造商组成开放手机联盟。Android 已从智能手机领域逐渐扩展到平板电脑、智能电视(及机顶盒)、游戏机、物联网、智能手表、车载系统、VR以及PC等领域。
最新《Deepfakes:创造与检测》2020综述论文,36页pdf
专知会员服务
62+阅读 · 2020年5月15日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
MIT公开课-Vivienne Sze教授《深度学习硬件加速器》,86页ppt
安全和健壮的医疗机器学习综述,附22页pdf
专知会员服务
46+阅读 · 2020年1月25日
【白皮书】“物联网+区块链”应用与发展白皮书-2019
专知会员服务
93+阅读 · 2019年11月13日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
【教程】用深度学习DIY自动化监控系统
GAN生成式对抗网络
4+阅读 · 2018年9月12日
【工业智能】风机齿轮箱故障诊断 — 基于振动信号
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
Deep Learning for Deepfakes Creation and Detection
Arxiv
6+阅读 · 2019年9月25日
Arxiv
3+阅读 · 2018年6月14日
Arxiv
5+阅读 · 2018年3月16日
VIP会员
Top
微信扫码咨询专知VIP会员