簡體   English   中英

iPhone / iOS:縮短應用發布時間的最佳做法?

[英]iPhone/iOS: Best practices to shorten launch time of an app?

我發現在iPhone4 / iOS6.0設備上花了4-5秒,我想知道系統在那個時候做了什么,是否有任何最佳做法來縮短應用程序的啟動時間?

非常感謝。

編輯:我記錄它,它在applicationDidFinishLaunchingWithoptions花費了大約1.5秒,它就像3.5-4s(我使用時鍾來獲得精確時間)從我點擊應用程序圖標到其啟動屏幕消失。也就是說,在調用applicationDidFinishLaunchingWithoptions之前啟動應用程序大約2-2.5秒

只需觀看會話225 啟動和運行:通過WWDC 2012的 每次發布創造一個偉大的印象 ,它將帶您完成分析您的應用程序啟動過程並提供最常犯錯誤的提示,這很棒。

有一個非常非常好的WWDC 2012的視頻與長序列致力於正是這個話題:會話235(響應速度)。 我強烈建議你觀看它。 它為您提供了許多加速啟動的提示和技巧(不要鏈接到太多的庫等),告訴您如何測量以及如何在儀器中讀取您的測量值等。

該系統不會導致您的應用程序需要4-5秒才能啟動。 它可能是您在applicationDidFinishLaunching的代碼,或者是根視圖控制器的initviewDidLoad或其他設置方法。

使用“Time Profiler”儀器在真實設備上配置您的應用。 只有啟動你的應用程序,一旦它啟動,不要按UI上的任何按鈕。 我們只想看看發布期間發生了什么。

我建議在窗口左下方的“調用樹”下檢查“按線程分離”,“反轉調用樹”,“隱藏系統庫”和“僅顯示Obj-C”選項。

檢查所選選項后,請查看方法調用列表。 從花費最多時間的那些開始(出於顯而易見的原因)。 您可以雙擊符號名稱以獲取有關時間花費的更多詳細信息。 祝好運!

我們遇到了同樣的問題。

最終,我們通過在viewDidAppear中預加載視頻來顯着加快啟動時間。 當用戶點擊播放按鈕以啟動電影時,已加載足夠的內容以便它幾乎可以立即開始播放。

例如:

- (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

在我看來,發布時間主要是功能,

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

如果你做了一堆阻止進程的東西,那么啟動需要很長時間。

因此,您可以通過移出一些您可以在以后執行的不必要的代碼來優化您的applicationDidFinishLaunching 或者您可以使代碼非阻塞,例如,您應該在applicationDidFinishLaunching使用異步網絡請求而不是同步的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM