美文网首页
APP启动在main()函数之前的过程有哪些?

APP启动在main()函数之前的过程有哪些?

作者: CyanCricket | 来源:发表于2018-07-12 21:16 被阅读31次

    1,dyld开始将程序二进制文件初始化

    2,交由ImageLoader读取image,其中包含了我们的类,方法等各种符号(class,Protocol,Selector,IMP)

    3,由于runtime向dyld绑定了回调,当image加载到内存后,dyld会通知Runtime进行处理

    4,Runtime接手后调用map_images做解析和处理

    5,接下来load_images中调用call_load_methods,遍历所有加载进来的class.按继承层次依次调用class的+load和其他Category的+load方法

    6.至此,所有信息都被加载到内存中

    7,最后调用真正的main函数

    注意的是:dyld会缓存上一次内存加载的信息,所以第二次比第一次启动快一点,

    相关文章

      网友评论

          本文标题:APP启动在main()函数之前的过程有哪些?

          本文链接:https://www.haomeiwen.com/subject/bvlrfftx.html