美文网首页
app加载分析

app加载分析

作者: 半边枫叶 | 来源:发表于2020-01-05 16:08 被阅读0次

    首先库是什么呢?
    库可执行代码的二进制,可以被操作系统写入内存。

    库分为静态库和动态库,他们有什么区别呢?
    静态库在iOS中存在.a、.lib、framework等,动态库的存在形式为framework、dylib等。
    静态库在链接阶段,链接在一起组成了最后的可执行文件,下图为编译过程;

    编译过程

    动态库是在程序运行的的时候,根据需求动态的进行加载;系统的UIKit框架都是动态库。

    下面我们来探索库的加载过程,我们再app的启动函数main函数打断点后,可以看到在main函数前面的调用堆栈情况,如下图


    image.png

    通过上面图片可以看到,在main函数前,调用了start函数。而这个start函数位于libdyld.dylib中,我们从openSource找到libdyld.dylib的源码进行研究。

    相关文章

      网友评论

          本文标题:app加载分析

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