美文网首页
iOS 动态库与静态库

iOS 动态库与静态库

作者: 爱学的小姚 | 来源:发表于2021-11-06 15:39 被阅读0次

    1、库

    库是写好的现有的,成熟的,可以复用的代码。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。iOS的库分为:静态库(.a.framework)和动态库(.framework)。

    2、静态库

    1、静态库在编译时加载,链接时会完整的复制到可执行文件中。
    2、静态库的可执行文件通常会比较大,因为所需的数据都会被整合到目标代码中,因此编译后的执行文件不需要外部库的支持,直接就能使用。
    3、有多个app使用就会被复制多份,不能共享且占用更多冗余内存。
    4、所有的函数都在库中,因此当修改函数时需要重新编译。
    5、静态库导入项目时,Embed需要设置为Do not embed

    3、动态库

    1、动态库在程序运行时由系统动态加载到内存,供程序调用,如果环境缺少动态库或者库的版本不正确,就会导致程序无法运行。
    2、动态库的文件会比较小,因为在编译过程中,数据并没有整合到目标代码中,只有在执行到该函数时才去调用库中的函数,所以首次加载时比较耗时。
    3、多个程序可以共享内存中同一份库资源,系统只加载一次,多个程序可共用,节省内存空间。
    4、库是动态的,因此修改库中函数时,不需要重新编译。
    5、动态库导入项目时,Embed需要设置为Embed and sign或者Embed Without Signing

    相关文章

      网友评论

          本文标题:iOS 动态库与静态库

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