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->显示
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容