OkCredit 是一款面向印度数百万店主及其客户的信用账户管理应用。每月交易量达 1.4 亿笔,下载量超过 5000 万次,仅去年一年,OkCredit 在应用上记录的交易额就达 500 亿美元。
考虑到 OkCredit 的运营规模以及数百万依赖其应用管理账户的企业,OkCredit 必须确保所有用户都能获得流畅无缝的体验,无论他们使用的是哪种设备。
用户会以积极的评价和较高的评分奖励表现最佳的应用。稳定性或性能存在问题的应用往往会导致用户沮丧,甚至更糟的是,导致糟糕的评分。因此,如果您希望让用户满意并为他们提供始终如一良好的用户体验,那么 ANR(应用无响应)就是一项重要的性能指标,需要进行跟踪。
OkCredit 在改进 Android Vitals(例如,减少 ANR 和改进应用启动时间)方面进行了投资,并从中获得了回报,尤其是在低端设备(资源本来就有限)上。他们看到了客户留存率和应用上的商家交易量的双重改善。
挑战
OkCredit 的主要用户群体之一是低端设备用户。这些设备的资源有限,在上面运行繁重的任务很容易导致次优的用户体验。例如,一个主要的维护挑战是跟踪和添加 ANR 的检测。目标是解决这些问题,以期改善整体用户体验并增加商家交易量。
他们做了什么?
降低 ANR 并改善像 OkCredit 这样的应用的启动时间意味着让客户满意,更重要的是,可以增加应用上的商家交易量。
调试 ANR 最重要的线索是找出 ANR 发生时主线程在做什么。在 Google 的反馈支持下,OkCredit 创建了一种识别这些 ANR 的结构化方法。
- 使用 Android Vitals 监控性能,并使用 Firebase Crashlytics 的自定义报告来了解 ANR 问题。
- 通过将第三方库的初始化转移到后台线程,优化了应用启动时的初始化过程。
- 使用 Systrace 和 Profiler 等工具识别广播接收器和服务中的 ANR 问题。CI 上的 Macrobenchmark 也帮助我们对冷启动进行了基准测试。
- 使用方法分析器,识别出可以延迟加载的对象。
- 使用 Perfetto,识别出导致高膨胀的布局。
- 通过在后台线程中将所有 apply() 方法更改为 commit() 方法,解决了共享首选项中的 ANR 问题。
通过比较指标或使用 Systrace、CPU 分析器等工具验证了上述任务的影响,以确认其有效性。
结果
除了改善指标和用户体验外,OkCredit 开发团队还获得了有助于他们改进未来开发流程的见解。
- 在低端设备上 -
- ANR 减少了 60%
- 低端设备的 Day 1 客户留存率提高了约 22%
- 每个商家的平均交易额增加了 30%
- Play 商店上的应用评分从 4.3 提升至 4.6
- 冷启动时间缩短了约 70%
- 在任何屏幕上,用户点击到第一帧完全绘制的改善幅度达到 60%
这项工作让团队紧密合作,制定了最佳实践,并鼓励他们专注于改善用户体验。团队已开始在开发过程中使用 Perfetto 和 CPU 分析器等工具,以便更好地了解系统并更快地做出决策。
“专注于减少 ANR 帮助我们脱颖而出,提供了愉悦的用户体验。这导致了更高的留存率和更低的流失率。此外,由于团队卓越的工程能力,这些实践对组织文化产生了深远的影响。作为团队和公司,我们为在印度新兴的 SMB 数字化行业树立了应用性能的新标杆,对此感到自豪。”
– Gaurav Kunwar(OkCredit 联合创始人兼首席产品官)