应用启动时间:提示和技巧

让我们这样说。

您会看到一个销售良好的应用程序,显然在Appstore中带有一个视频。
您决定安装它。 安装成功。
单击Appstore中的“打开”按钮,或从iPhone / iPad的跳板中单击该应用程序。
至少15秒钟没有任何显示。
结果? 即时卸载。

您的想法,用户会坚持吗?
没门!

人们非常忙,以至于迫不及待地想看到一个很棒的应用程序。
不要因为发布时间而让我谈论他们发表的评论。
真的,人们这样做吗?
是的,他们有。

在我的iOS职业生涯的早期,即使我认为如果人们喜欢该应用程序,他们也会等到该应用程序的主屏幕出现。
他们可能会这样做,但是我们期望这些用户提供的体验每天都在恶化。
我们不希望这种情况在我们的应用程序中发生。


这导致了主题,即应用程序的启动时间。

用户从跳板上单击应用程序图标和启动时间会有时间延迟。 此处的缩放动画渲染花费时间。

即将在iOS中启动类型。 有两种类型。

热启动

这是当您的应用程序出现在iPhone中而不是首次启动时。 这意味着将附加某种缓存。

冷启动

这是当您重置iPhone然后首次启动该应用程序时。 从用户角度来看,冷启动更为重要。 这是用户首次看到该应用程序的地方。

首先是第一件事。
让我们看看您的发射时间是多少。

1:转到“编辑方案”,并将此环境变量DYLD_PRINT_STATISTICS添加为值1。

2:现在运行您的应用程序,您将看到类似下面的内容

总的预维护时间是应用程序的确切启动时间。 如果您可以将此时间减少到大约400毫秒,那就更好了。

您想减少启动时间的提示

1 :附加较少的嵌入式库。 删除那些在应用程序中根本不使用的dylib。
嵌入式库越多,即使在调用applicationDidFInishLaunching之前,系统也将花费更多时间将它们加载到内存中。

除此之外,开始使用静态档案。

2 :减少C ++虚函数
尝试减少C ++虚拟函数,因为它会占用更多时间启动应用程序。

3 :使用Swift
Swift代码生成比Objective C更好。

在您的应用程序中使用Swift结构将有助于减少启动时间。 (这就是苹果所说的)

4 :在初始化方法中使用较少的代码。
初始化方法是在viewDidLoad之前加载很多的方法。
用这种方法较少的对象初始化可以减少时间。

5 :在许多代码中,我们倾向于使用具有单一功能的较小类。

是的,这对可读性和代码维护都有好处。 但是苹果建议合并这些类。 如果您的应用程序包含大约10000个类(许多应用程序都这样做),那么减少大约1000个以上的类将是一个好方法。

6 :最后但同样重要的是
applicationDidFinishLaunchingWithOptions尽可能轻。

绝对不需要对该方法进行任何文件提取或昂贵的操作。
请记住,如果您的应用启动时间超过20秒,则操作系统会以无限循环的方式终止您的应用。

没有人会喜欢一个缓慢的应用程序,让它变得更好,或者至少让用户相信它能够快速启动。

有关深入分析以及如何使您的应用程序更快的信息,请参阅以下WWDC视频。

WWDC 2017:应用程序启动时间:过去,现在和将来

祝好运。

如果您喜欢此帖子,请拍下面,并发表您的想法。

Interesting Posts