iOS 应用大小对应用启动延迟有多大影响?

问题描述

我猜测 iOS 应用程序的大小对其启动延迟有直接影响,因为 iOS 需要在启动应用程序之前将其加载到内存中。如果是这样,我想知道影响有多大?

假设我将 iOS 应用从 100M 减少到 80M,我可以期待多少启动延迟改进?

有人有这方面的经验吗?

解决方法

考虑到为更快的应用程序启动体验编程根本不受应用程序大小的约束。您甚至可以假设相反,因为在某些(我什至在大多数情况下)情况下编写更快的启动过程启动可以(并且将会)涉及更多代码,使其成为非常短的交互中断体验,因此您的应用大小会增加,甚至不会提供更多有价值的内容。

换句话说,仅仅因为您提供更多动态或静态内容并不会增加启动时间,除非您在 UIApplicationDelegate 中加载和实例化您稍后在应用生命周期中需要的所有内容,而不是在其加载时分配对象使用。

如果需要,同样的理念适用于拆除处理(dealloc 或保存应用程序状态用户默认值)。但这种体验通常不被视为与设备交互的明显中断,因此经常被遗忘为应用生命周期的一部分。

您可以通过巧妙地使用 LaunchScreen 故事板或类似技术(例如在前几秒内部分缓冲内容)来避免这种长时间的启动体验。有些应用甚至会在下次启动时截取屏幕截图,让用户在构建真实界面时感觉上次应用状态已经加载。

一个常见的错误(您可能也经常看到)是利用介绍视频或动画来缩短应用启动后等待窗口/视图出现的时间。因此,如果需要第一手加载的内容需要明显更长的时间且无法避免,那么仅使用启动屏幕永远不是最佳解决方案,而是明智的决定。

LaunchScreens 只是娱乐/告知处理和保持用户参与,同时它可以有益于您和您的应用想要代表的内容。

如此缩短的启动时间显然是一个设计模式问题,与应用程序大小无关。好的,除了下载带宽(如果需要)。