iOS App 的完整启动过程

  • 解析 Info.plist
    • 加载相关信息,例如闪屏。
    • 沙箱(SandBox)建立、权限检查。
  • Mach-O 加载
    • 如果是胖二进制文件,寻找合适当前 CPU 类别的部分。
    • 加载所有依赖的 Mach-O 文件(递归调用 Mach-O 加载的方法)。
    • 定位内部、外部指针引用,例如字符串、函数等。
    • 执行声明为 __attribute__((constructor)) 的C函数。
    • 加载分类(Category)中的方法。
    • C++ 静态对象加载、调用 Objc 的 +load 函数。
  • 程序执行
    • 调用 main()
    • 调用 UIApplicationMain()
    • 调用 applicationWillFinishLaunching 代理方法

猜你喜欢

转载自blog.csdn.net/qinqi376990311/article/details/79031525