Josh 将应用启动时间缩短了 30%,客户留存率提高了 30%

Josh 于 2020 年 8 月发布,是印度开发的一款短视频应用。它也是印度增长最快的短视频应用之一,月活用户数超过 1.24 亿,日活用户数超过 6,000 万。

对于任何应用开发者来说,针对各种设备(高端、中端、低端)优化 Josh 并保持标准体验都是一项艰巨的任务,Josh 的开发者从一开始就明白这一点。改进 Android Vitals 是该公司短时间内取得的一项重要任务,而该公司重视通过缩短应用启动时间和响应速度来提升用户满意度。

此外,应用响应速度和启动时间也很重要,因为视频是用户与应用互动和使用的主要广告格式。视频流中的任何卡顿或不同互动的中断都可能很快导致用户失去兴趣并退出应用。

通过投资提升应用启动时间性能,Josh 将普通用户的应用启动时间缩短了 30%,在旧款设备和低端设备上有大约 10% 的用户的应用启动时间缩短了 3 倍。

面临的挑战

Josh 应用见证了快速增长,在不到一年的时间内,月活用户数 (MAU) 超过 1 亿。通常,在推出由产品主导或事件主导的功能的竞争中,应用优化就位于后方。Google 的应用审核和结构性反馈帮助他们及早发现这些问题,并为问题找到解决办法。

具体做法

在监控 Android Vitals 时,发现了改进应用启动的机会。该团队决定优先缩短冷启动时间,因为这样会自动缩短温启动和热启动时间。

借助多种自定义跟踪记录、systrace、Android Studio 性能分析器和 Perfetto,该团队能够进行广泛的调查并找出瓶颈问题。很明显,应用类的 onCreate 和其他同步方法所花费的时间是可以优化的。

以下是该团队的具体做法 -

  • 对在应用启动期间执行的每个代码块进行性能分析。
  • 使用 Perfetto、Systrace、Dumpsys 等 Android 性能工具分析系统跟踪数据。
  • 我们研究了第三方 SDK 在应用启动期间的影响,并停用了部分第三方 SDK 的自动启动功能。
  • 淘汰了旧版库
  • 部分模块延迟并在后台执行
  • 缩减了启动时启动画面上使用的可绘制对象的大小,并针对屏幕尺寸优化了它们

通过单独测试以上所有项目、模拟冷启动和集成新的 Jetpack Macrobenchmark 库来确认它们对应用的积极影响。

成果

这些变化不仅让所有指标实现了即时提升,还有助于提升整体用户体验,并给 Josh 的开发团队带来宝贵的经验。

  • 跳出率和留存率的提升帮助 Josh 留住了与基准相比超过 100 万的用户。关注这两个指标也提升了应用内的整体互动度。
  • 在应用发布后,启动方面的改进后,Play 商店的评分呈现出上升趋势
  • 对于老款设备和低端设备,应用启动时间缩短了 30%;对于旧款设备和低端设备用户,应用启动时间缩短了约 10%,大大提升了这些应用的响应速度。

更重要的是,这项改进 Android Vitals 的练习将整个团队凝聚在一起,增强了团队(尤其是初级成员)的动力。它强化了 Vitals 的重要性,甚至还促使该团队在其他应用中运用了一些经验教训。

“当生态系统中的合作伙伴齐心协力时,整个生态系统共同成长。数据和分析的力量前所未有。作为一个以创作者为先、以内容为主、以消费者为中心的平台,我们一直致力于打造极度依赖于应用的稳定性打造的最终用户体验。Josh 见证了该工具发布后的快速增长。通过与 Google Play 团队密切合作,我们得以尽早发现并解决应用稳定性和优化等方面的难题。通过与 Google 合作,我们不仅提升了稳定性,还提高了用户留存率和互动度”

- Shailendra Sharma,VerSe Innovation 产品和工程高级副总裁。