APP启动

160 阅读1分钟

main()之前

加载可执行文件

加载Mach-O文件读取dyld路径并运行dyld动态连接器(内核加载了主程序,dyld只会负责动态库的加载)

加载动态链接库

进行rebase指针调整和bind符号绑定。

runtime初始化

ObjC相关Class的注册、category注册、selector唯一性检查等。

初始化

执行+load()方法、用attribute((constructor))修饰的函数的调用、创建C++静态全局变量等。