iPhone / iOS:缩短应用发布时间的最佳做法?

时间:2012-11-27 02:45:26

标签: iphone ios

我发现在iPhone4 / iOS6.0设备上花了4-5秒,我想知道系统在那个时候做了什么,是否有缩短应用启动时间的最佳做法?

非常感谢。

修改 我记录它,applicationDidFinishLaunchingWithoptions花费了大约1.5秒: ,它就像3.5-4s(我使用时钟获得精确时间)从我点击应用程序图标到其启动屏幕消失。也就是说,在调用{{1}之前启动应用程序大约需要2-2.5秒}}

5 个答案:

答案 0 :(得分:11)

只需观看会话225 启动并运行:通过WWDC 2012为每次启动留下深刻印象,它将指导您完成应用启动的分析过程并提供最常见的提示犯了错误,很棒。

答案 1 :(得分:4)

有一个非常好的WWDC 2012视频,其长序列专门用于 这个话题:会话235(响应性)。我强烈建议你观看它。它为您提供了许多加速启动的提示和技巧(不要链接到太多的库等),告诉您如何测量以及如何在仪器中读取测量值等。

答案 2 :(得分:2)

系统不会导致您的应用需要4-5秒才能启动。它可能是您applicationDidFinishLaunching中的代码,或initviewDidLoad或根视图控制器的其他设置方法。

使用“Time Profiler”仪器在真实设备上配置您的应用。 启动您的应用,一旦启动,请勿按UI上的任何按钮。我们只想看看发布期间发生了什么。

我建议在窗口左下方的“调用树”下检查“按线程分离”,“反转调用树”,“隐藏系统库”和“仅显示Obj-C”选项。

检查完所选选项后,请查看方法调用列表。从花费最多时间的那些开始(出于显而易见的原因)。您可以双击符号名称以获取有关时间花费的更多详细信息。祝你好运!

答案 3 :(得分:1)

我们遇到了同样的问题。

最终,我们通过在viewDidAppear中预加载视频来显着加快启动时间。当用户点击播放按钮以启动电影时,已加载足够的内容,以便它几乎可以立即开始播放。

e.g:

- (void)viewDidAppear:(BOOL)animated {
    NSURL *movieURL = [NSURL URLWithString:@"http://static.example.com/movie.mov"];
    MPMoviePlayerViewController *vc = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
    vc.moviePlayer.shouldAutoplay = NO;
    [vc.moviePlayer prepareToPlay];
    self.moviePlayerViewController = vc;
}

此博文中的完整详情:http://blog.tetherpad.com/blog/2013/3/22/improving-tutorial-movie-load-times-on-ios-for-fun-and-profit

答案 4 :(得分:0)

在我看来,发布时间主要是功能成本,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

如果你做了很多阻止处理的东西,那么发布需要很长时间。

所以你可以通过移出一些你以后可以做的不必要的代码来优化你的applicationDidFinishLaunching。或者,您可以将代码设置为非阻止,例如,您应该使用applicationDidFinishLaunching中的异步网络请求而不是同步网络请求。