Josh 是一款印度制造的短视频应用,于 2020 年 8 月推出。它也是印度增长最快的短视频应用之一,拥有超过 1.24 亿月活跃用户和 6000 万日活跃用户。
针对各种设备(高端、中端、低端)优化 Josh 并保持所有设备上的标准体验,对于任何应用开发者来说都是一项艰巨的任务,Josh 的开发者从一开始就意识到了这一点。改进 Android Vitals 是他们冲刺中的一个主要任务,并且重视通过改进应用启动时间和响应速度来提升用户体验。
应用响应速度和启动时间也很重要,因为视频是用户在应用上参与和消费的主要形式。视频流中的任何卡顿或不同交互中的中断都可能很快导致用户失去兴趣并退出应用。
通过投资应用启动时间性能,Josh 将普通用户的应用启动时间提升了 30%,并且在旧款和低端设备上约 10% 的用户的启动速度提升了 3 倍。
挑战
Josh 应用在不到一年的时间里迅速发展到超过 1 亿月活跃用户。通常,在争先恐后推出产品主导或事件主导的功能时,应用优化会被放在次要位置。来自 Google 的应用审核和结构化反馈帮助他们及早识别这些问题,并制定了解决方案的路径。
他们是如何做到的
在监控 Android Vitals 的过程中,发现了改进应用启动时间的机会。团队决定优先改进冷启动时间,因为这将自动改进暖启动和热启动时间。
使用多个自定义跟踪、systrace、Android Studio Profiler 和 Perfetto,团队能够进行广泛的调查并识别瓶颈。很明显,Application 类的 onCreate 和其他同步方法花费的时间可以进行优化。
以下是团队具体采取的措施 -
- 分析了应用启动期间执行的每个代码块。
- 使用Android性能工具(如Perfetto、Systrace、Dumpsys等)分析系统跟踪信息。
- 调查了第三方SDK在应用启动期间的影响,并禁用了部分第三方SDK的自动启动。
- 删除了遗留库。
- 将部分模块延迟并在后台执行。
- 缩小了启动时启动画面上使用的可绘制对象的大小,并对其进行了屏幕尺寸优化。
通过隔离测试彻底验证了以上所有操作,以确认其对应用的积极影响,模拟冷启动并集成新的Jetpack Macrobenchmark 库。
结果
这些更改不仅带来了所有指标的即时改进,还有助于增强整体用户体验,并为Josh的开发团队提供了宝贵的经验教训。
- 改善跳出率和留存率帮助Josh保留了100万+用户,相比基线数据。专注于这两个指标也改善了应用内的整体用户参与度。
- 应用启动改进后,Play商店的评分呈现出向上增长的趋势。
- 应用启动时间对于普通用户提高了30%,对于旧款和低端设备上的约10%用户提升了3倍,从而显著提高了这些用户的应用响应速度。
更重要的是,这项改进Android Vitals的练习将整个团队凝聚在一起,提高了团队的积极性,尤其是初级成员的积极性。它巩固了Vitals的重要性,甚至促使团队将其中的部分经验教训应用到其他应用中。
“当生态系统中的合作伙伴携手合作时,生态系统就会共同发展。数据和分析的力量是前所未有的。作为一个以创作者为先、内容为导向和以消费者为中心的平台,我们一直专注于创造极致的用户体验,这在很大程度上依赖于应用的稳定性。Josh在发布后见证了即时的加速增长。与Google Play团队的紧密合作帮助我们及早识别并纠正了应用稳定性和优化等挑战。我们与Google的努力帮助我们推动了稳定性的改进以及用户留存率和参与度的增强。”
– Shailendra Sharma,VerSe Innovation产品和工程高级副总裁。