1.在iOS中App的完整启动过程

1.App启动过程

  • 解析info.plist
  • 加载相关信息,例如闪屏
  • 沙盒建立,权限检查
  • Mach-O(什么是Mach-O)加载
  • 如果是二进制文件,寻找合适当前CPU离别的部分
  • 加载所有依赖的Mach-O文件(递归调用Mach-O加载方法)
  • 定位内部,外部指正引用,例如字符串,函数等
  • 执行声明为attribute(constructor)的C函数
  • 加载类的扩展中的方法
  • C++静态对象加载,调用Objec的 + load函数

2.程序执行

  • main函数
  • 执行UIApplicationMain函数
  • 创建UIApplication对象
  • 创建UIApplictionDelegate对象并复制
  • 读取配置文件Info.plist,设置程序启动的一些属性
  • 创建应用程序的Main Runloop循环
  • UIApplicationDelegate对象开始处理监听事件
  • 程序启动之后,首先调用application.didFinishLaunchingWithOptions方法
  • 如果Info.plist中配置了启动的storyBoard的文件名,则加载storyBoard文件
  • 如果没有配置,则根据代码创建UIWindow - > rootViewController->显示

你可能感兴趣的:(1.在iOS中App的完整启动过程)