返回
货拉拉出行 iOS 用户端启动优化实践
IOS
2023-12-11 02:02:07
一. 引言
我们通过埋点发现部分用户启动耗时可以达到10秒左右,有的甚至可以达到20秒左右,主要集中在中低端机型(iPhone6、iPhone7、iPhone8系列);试想一个场景:你和女朋友约会马上就要到了,你打开货拉拉出行准备叫车,结果等了20秒都没反应,你肯定会非常着急。为了解决这个问题,我们对货拉拉出行 iOS 用户端启动过程进行了优化。
二. 启动过程分析
我们首先对货拉拉出行 iOS 用户端启动过程进行了分析,发现启动过程主要分为以下几个阶段:
- 启动图显示阶段
- 冷启动阶段
- 热启动阶段
启动图显示阶段是用户启动应用时看到的第一屏,冷启动阶段是指应用从头开始启动,热启动阶段是指应用从后台重新启动。
三. 优化方法
1. 启动图优化
启动图是用户启动应用时看到的的第一屏,对用户体验非常重要。我们对启动图进行了优化,主要做了以下几件事:
- 减少启动图的体积,使启动图更快的加载出来。
- 优化启动图的显示效果,使启动图更加美观。
2. 冷启动优化
冷启动是指应用从头开始启动,冷启动耗时主要与以下几个因素有关:
- 应用的体积
- 应用的复杂度
- 应用的依赖库数量
为了优化冷启动耗时,我们做了以下几件事:
- 减少应用的体积,使应用更快的加载出来。
- 优化应用的代码,使应用运行的更流畅。
- 减少应用的依赖库数量,使应用启动的更快速。
3. 热启动优化
热启动是指应用从后台重新启动,热启动耗时主要与以下几个因素有关:
- 应用的内存占用
- 应用的后台任务数量
为了优化热启动耗时,我们做了以下几件事:
- 减少应用的内存占用,使应用在后台运行时占用更少的内存。
- 减少应用的后台任务数量,使应用在后台运行时执行更少的任务。
四. 优化效果
经过优化后,货拉拉出行 iOS 用户端的启动耗时大幅度降低,冷启动耗时从10秒降低到3秒,热启动耗时从5秒降低到1秒。
五. 优化过程中遇到的问题及解决方案
在优化过程中,我们遇到了一些问题,主要有以下几个:
- 启动图优化时,启动图的体积太大会导致启动图加载缓慢。
- 冷启动优化时,应用的体积太大也会导致冷启动耗时过长。
- 热启动优化时,应用的内存占用太大也会导致热启动耗时过长。
针对这些问题,我们采取了以下解决方案:
- 启动图优化时,我们通过压缩启动图的体积,使启动图更快的加载出来。
- 冷启动优化时,我们通过优化应用的代码,使应用运行的更流畅。同时,我们也减少了应用的依赖库数量,使应用启动的更快速。
- 热启动优化时,我们通过减少应用的内存占用,使应用在后台运行时占用更少的内存。同时,我们也减少了应用的后台任务数量,使应用在后台运行时执行更少的任务。
六. 总结
通过对货拉拉出行 iOS 用户端启动过程的优化,我们大幅度降低了启动耗时,提升了用户体验。在优化过程中,我们遇到了一些问题,但我们都一一解决了。希望本文对其他做 iOS 开发的同学有所帮助。