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

How much does iOS app size impact app launch latency?

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

假设我将 iOS 应用从 100M 减少到 80M,预计启动延迟会改善多少?

有没有人有这方面的经验?

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

换句话说,仅仅因为您交付了更多动态或静态内容并不会增加启动时间,除非您在 UIApplicationDelegate 中加载并实例化应用程序生命周期后期所需的所有内容,而不是当时分配对象它的用途。

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

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

您可能也经常看到的一个常见错误是利用介绍视频或动画来缩短应用启动后等待 window/view 出现的时间。因此,仅使用启动屏幕绝不是最好的解决方案,而是一个明智的决定,如果需要第一手加载的内容将花费明显更长的时间并且无法避免的话。

LaunchScreen 只是 entertaining/informing 处理和保持用户参与,同时它可以有益于您和您的应用想要呈现的内容。

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