OC中的库概念
库是共享程序代码的方式,一般分为静态库和动态库
静态库 && 动态库 区别
静态库:链接时,完整的拷贝至可执行文件,多次使用就会多次拷贝造成冗余拷贝,使包体积变大
动态库:链接时不复制,程序运行时动态加载到内存,供程序调用,系统只加载一次,节省内存
iOS里静态库形式
.a和framework
iOS里动态库形式
.dylib和framework
.framework为什么既是动态库又是静态库
这个分情况,如果是系统的.framework就是动态库,我们自己创建的就是静态库
.a和。framework的区别
.a就是一个纯二进制文件
.framework除了二进制文件之外还有资源文件
.a不能直接使用,需要搭配.h文件
.framework可以直接使用
为什么要使用静态库
代码共享,合理避免重复代码(组件化概念)
代码私有化,提供给别人使用,但不想让别人看到你代码的实现,只暴露接口使用方法(一般多为三方SDK开发)
还有就是组件化的时候,对业务库打包成.a文件会提高编译效率,但会使包体积变大(空间换时间)
网友评论