iosApp啟動過程

App啟動過程

?? ? 解析Info.plist

?? ? 加載相關信息,例如如閃屏

?? ? 沙箱建立、權限檢查

?? ? Mach-O加載

?? ? 如果是二進制文件,尋找合適當前CPU類別的部分

?? ? 加載所有依賴的Mach-O文件(遞歸調用Mach-O加載的方法)

?? ? 定位內部、外部指針引用,例如字符串、函數等

?? ? 執行聲明為__attribute__((constructor))的C函數

?? ? 加載類擴展(Category)中的方法

?? ? C++靜態對象加載、調用ObjC的 +load 函數

?? ? 程序執行

·? ? 1.main函數

·? ? 2.執行UIApplicationMain函數

·? ?   1.創建UIApplication對象

·? ?   2.創建UIApplicationDelegate對象并復制

·? ?   3.讀取配置文件info.plist,設置程序啟動的一些屬性

·? ?   4.創建應用程序的Main Runloop循環

·? ? 3.UIApplicationDelegate對象開始處理監聽到的事件

·? ?   1.程序啟動成功之后,首先調用application:didFinishLaunchingWithOptions:方法,

·? ?   如果info.plist文件中配置了啟動storyboard文件名,則加載storyboard文件。

·? ?   如果沒有配置,則根據代碼來創建UIWindow--->UIWindow的rootViewController-->顯示

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.dSYM你是如何分析的? 2.多線程有哪幾種?你更傾向于哪一種? 3.單例弊端? 4.如何把異步線程轉換成同步...
    xiaon閱讀 1,515評論 0 2
  • 1.dSYM你是如何分析的? 什么是 dSYM dSYM文件Xcode編譯項目后,我們會看到一個同名的 dSYM ...
    chilim閱讀 1,189評論 0 0
  • ========================程序的啟動原理==================== 一、 項目...
    不會打滾兒的獅子閱讀 547評論 0 2
  • 關鍵步驟 一個程序從main函數開始啟動。代碼如下: int main(int argc, char * argv...
    JzRo閱讀 601評論 0 2
  • 文|傅青巖 全目錄|木棉花樹下的守候 第一章節 南國之春初見木棉 (2) 可愛的吃貨室友 八點鐘胖蕓下班了,一進門...
    傅青巖閱讀 732評論 23 33