快速启动iOS应用程序

5
我发现一些iOS应用程序启动非常快(例如来自谷歌的YouTube,Skype,iTunes)。
我创建了一个空应用程序(使用标准选项卡应用程序模板),并且没有更改任何代码,只添加了闪屏图片。当我测试时(尝试使用开发人员和Ad-Hoc配置文件签名以检查是否有差异),它的启动速度不如上述应用程序快。
当我在设备上点击应用程序图标时,应用程序图标会变暗约0.2-0.5秒,然后开始显示闪屏图片。
我的问题是如何使我的应用程序启动非常快,是否有什么技巧可以非常快地显示闪屏图片?(我想知道为什么我的空应用程序启动比上述应用程序慢?)
谢谢

3
关键是不要在 applicationDidFinishLaunching: 中进行加载。但如果您只有一个空应用程序,那么这应该是设备上启动最快的应用程序。我会把这归咎于开发调试使您变慢。 - Ryan Poolos
@OP 你使用的是哪个iOS版本和iOS设备?因为我无法在iPod touch 5G上重现Matt提到的iOS 6的延迟时间。 - Jack G.
我使用的是iOS 6和iPhone 4。 - Chathuranga Jayawardhana
@ChathurangaJayawardhana,记录一下,我使用您的配置重现了这个问题。 - Jack G.
3个回答

2
我认为你可能也会被一个技巧所迷惑:至少对于iTunes应用程序来说,苹果正在用一个看起来非常像运行中的应用程序的闪屏图像覆盖启动画面,从而营造出应用程序立即加载的假象。试一试:启动iTunes(或“音乐”)并开始播放,然后做一些其他事情以尽可能地使系统交换进程(比如浏览一些重负载的网站)。然后重新启动iTunes并立即尝试暂停音频。在我的iPhone 4上,需要大约3秒钟才能赶上控件:位置指示器将跳到正确的位置,在此期间,“播放”按钮无效-您无法暂停音频。您看到的是一个旨在让您认为应用程序正在立即启动的闪屏图像,即使实际上需要几秒钟才能启动。
我还注意到Chrome for iOS也在做同样的事情。我实际上不喜欢这种设计决策,因为它传达了应用程序已经准备好了,而你却什么都不能做。

1
实际上,这可能更多地与在发布中启用调试和优化有关。 - Richard J. Ross III
2
只是一个小细节,我实际上像Apple建议的那样做了。然而,我同意@Matt的观点。这会让你的应用程序看起来没有响应,所以我会把“默认”图像变得更暗一些,然后当应用程序准备好时,它就会变得更亮。我认为这会给人一种非常好的感觉。 - Josiah
我发现很多应用都会覆盖启动图像,但它们是如何做到的?有没有一种方法在调用applicationDidFinishLaunching:之前显示一个启动画面?有什么想法吗? - Chathuranga Jayawardhana

1
我没有更改任何代码,只是添加了启动图片。
加载图片不是用来显示启动图片的,它们旨在显示应用程序界面的静态版本,以营造应用程序加载得比实际快的错觉。
苹果在 HIG 中明确警告不要使用启动图片。
停止滥用加载图片来显示启动图片,正确使用它们,你的应用程序将看起来加载得更快。

0

尽可能少地链接框架,我们在WWDC上尝试过这样做,链接太多的框架甚至会在调用main()方法之前就造成明显的延迟!

无论你的代码本身有多快!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接