动态库、静态库、.a、.framework

Posted by CoderLeonidas on March 18, 2020

动态库、静态库、.a、.framework

一、库:

库是共享程序代码的方式,一般分为静态库和动态库

二、静态库与动态库的区别:

  • 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
  • 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

三、iOS静态库形式和动态库形式:

  • 静态库:.a和.framework
  • 动态库:.dylib和.framework

四、framework静态库和动态库的区分:

  • 系统的.framework是动态库
  • 我们自己建立的.framework是默认是动态库,但是也可以选择为静态库

五、.a和.framwork的区别:

  • .a是一个纯二进制文件,.framework中除了有二进制文件外还有资源文件。
  • .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
  • .a + .h + sourceFile = .framework

六、使用静态库的原因:

  • 实现iOS程序的模块化,可以把固定的业务模块化成静态库。
  • 分享你的代码库给别人,但并不公开你的源码