App的启动过程 及优化

2023-12-04  本文已影响0人  福尔摩罗

APP 启动过程

1.解析 plist 文件,创建沙盒, 检查权限
2.加载 Mach-O 文件
3.加载动态连接器(dylb)
4.dylb 加载动态链接库(dylib,tbd)
5.进行 rebase (指针调整, ASLR 保证偏移地址的安全性)
6.进行 bind(符号绑定,例如NSLog方法,在编译时期生成的mach-o文件中,会创建一个符号,绑定就是给符号赋值的过程)
7.Objc runtime 的初始化(Objc class ,分类的注册加载,selector唯一性检查等)
8.Initializers(初始化,C++静态对象加载, 加载 +load 方法等)
9.dylb调用 mian 函数
10.调用UIApplicationMain
11.调用applicationWillFinishLaunching
12.调用didFinishLaunchingWithOptions


APP 启动优化

pre-mian 阶段

main 阶段

上一篇 下一篇

猜你喜欢

热点阅读