Josh 是一款在印度本土开发、于 2020 年 8 月推出的短视频应用。它也是印度增长最快的短视频应用之一,月活跃用户 (MAU) 超过 1.24 亿,日活跃用户 (DAU) 达到 6000 万。
针对各种设备(高端、中端、低端)优化 Josh 并确保所有设备上的体验一致,这对任何应用开发者来说都是一个艰巨的任务,Josh 的开发者从一开始就深知这一点。改进 Android Vitals 是他们迭代中的一项重要任务,他们非常重视通过缩短应用启动时间来提升用户体验,并提高应用响应速度。
由于视频是用户在该应用上互动和消费的主要内容形式,因此应用的响应能力和启动时间也同样重要。视频流中的任何卡顿或不同互动中的中断都可能迅速导致用户失去兴趣并退出应用。
通过投入精力优化应用启动时间性能,Josh 将普通用户的应用启动时间缩短了 30%,对于老旧和低端设备上约 10% 的用户而言,启动速度提升了 3 倍。
挑战
Josh 应用在不到一年的时间里迅速增长,月活跃用户超过 1 亿。通常,在追求推出产品驱动或活动驱动功能的过程中,应用优化往往被忽视。Google 提供的应用审核和结构性反馈帮助他们及早发现了这些问题,并制定了修复方案。
他们是如何做到的
在监控 Android Vitals 时,团队发现了一个优化应用启动时间的机会。他们决定优先改进冷启动时间,因为这会自动改善温启动和热启动时间。
通过使用多个自定义追踪、systrace、Android Studio Profiler 和 Perfetto,团队进行了广泛的调查并识别出了瓶颈。很明显,Application 类的 onCreate 方法和其他同步方法所花费的时间可以得到优化。
团队具体采取了以下措施 -
- 分析了应用启动期间执行的每个代码块。
- 使用 Perfetto、Systrace、Dumpsys 等 Android 性能工具分析系统追踪。
- 调查了第三方 SDK 在应用启动期间的影响,并禁用了部分第三方 SDK 的自动启动。
- 淘汰了旧版库
- 部分模块被推迟到后台执行
- 减小了启动时闪屏上使用的可绘制对象的大小,并对其进行了屏幕尺寸优化
上述所有优化都通过独立测试进行了彻底验证,以确认其对应用的积极影响,模拟了冷启动并集成了新的 Jetpack Macrobenchmark 库。
成果
这些改变不仅带来了所有指标的即时提升,还有助于增强整体用户体验,并为 Josh 的开发团队带来了宝贵的经验。
- 通过改进跳出率和留存率,Josh 相较于基线多留住了 100 万以上的用户。专注于这两个指标也提升了应用内的整体参与度。
- 在应用推出启动改进功能后,Play 商店评分呈现出积极的上升趋势。
- 应用启动时间对普通用户而言缩短了 30%,对老旧和低端设备上约 10% 的用户而言,速度提升了 3 倍,从而显著提高了这些用户的应用响应能力。
更重要的是,这次改善 Android Vitals 的行动让整个团队紧密合作,提高了团队的积极性,特别是初级成员。它巩固了 Vitals 的重要性,甚至促使团队将部分经验应用于其其他应用中。
“当生态系统中的合作伙伴齐心协力时,整个生态系统便会共同成长。数据和分析的力量是前所未有的。作为一个创作者优先、内容先行且以消费者为中心的平台,我们始终致力于创造极致的用户体验,而这很大程度上依赖于应用的稳定性。Josh 在推出后立即实现了加速增长。与 Google Play 团队的紧密合作帮助我们及早发现并解决了应用稳定性和优化等挑战。我们与 Google 的合作努力,帮助我们提升了稳定性,并增强了用户留存率和参与度。”
– Shailendra Sharma,VerSe Innovation 产品与工程高级副总裁。