返回

货拉拉出行 iOS 用户端启动优化实践

IOS

一. 引言

我们通过埋点发现部分用户启动耗时可以达到10秒左右,有的甚至可以达到20秒左右,主要集中在中低端机型(iPhone6、iPhone7、iPhone8系列);试想一个场景:你和女朋友约会马上就要到了,你打开货拉拉出行准备叫车,结果等了20秒都没反应,你肯定会非常着急。为了解决这个问题,我们对货拉拉出行 iOS 用户端启动过程进行了优化。

二. 启动过程分析

我们首先对货拉拉出行 iOS 用户端启动过程进行了分析,发现启动过程主要分为以下几个阶段:

  1. 启动图显示阶段
  2. 冷启动阶段
  3. 热启动阶段

启动图显示阶段是用户启动应用时看到的第一屏,冷启动阶段是指应用从头开始启动,热启动阶段是指应用从后台重新启动。

三. 优化方法

1. 启动图优化

启动图是用户启动应用时看到的的第一屏,对用户体验非常重要。我们对启动图进行了优化,主要做了以下几件事:

  • 减少启动图的体积,使启动图更快的加载出来。
  • 优化启动图的显示效果,使启动图更加美观。

2. 冷启动优化

冷启动是指应用从头开始启动,冷启动耗时主要与以下几个因素有关:

  • 应用的体积
  • 应用的复杂度
  • 应用的依赖库数量

为了优化冷启动耗时,我们做了以下几件事:

  • 减少应用的体积,使应用更快的加载出来。
  • 优化应用的代码,使应用运行的更流畅。
  • 减少应用的依赖库数量,使应用启动的更快速。

3. 热启动优化

热启动是指应用从后台重新启动,热启动耗时主要与以下几个因素有关:

  • 应用的内存占用
  • 应用的后台任务数量

为了优化热启动耗时,我们做了以下几件事:

  • 减少应用的内存占用,使应用在后台运行时占用更少的内存。
  • 减少应用的后台任务数量,使应用在后台运行时执行更少的任务。

四. 优化效果

经过优化后,货拉拉出行 iOS 用户端的启动耗时大幅度降低,冷启动耗时从10秒降低到3秒,热启动耗时从5秒降低到1秒。

五. 优化过程中遇到的问题及解决方案

在优化过程中,我们遇到了一些问题,主要有以下几个:

  • 启动图优化时,启动图的体积太大会导致启动图加载缓慢。
  • 冷启动优化时,应用的体积太大也会导致冷启动耗时过长。
  • 热启动优化时,应用的内存占用太大也会导致热启动耗时过长。

针对这些问题,我们采取了以下解决方案:

  • 启动图优化时,我们通过压缩启动图的体积,使启动图更快的加载出来。
  • 冷启动优化时,我们通过优化应用的代码,使应用运行的更流畅。同时,我们也减少了应用的依赖库数量,使应用启动的更快速。
  • 热启动优化时,我们通过减少应用的内存占用,使应用在后台运行时占用更少的内存。同时,我们也减少了应用的后台任务数量,使应用在后台运行时执行更少的任务。

六. 总结

通过对货拉拉出行 iOS 用户端启动过程的优化,我们大幅度降低了启动耗时,提升了用户体验。在优化过程中,我们遇到了一些问题,但我们都一一解决了。希望本文对其他做 iOS 开发的同学有所帮助。