Catalogue
1,什么是库?
库就是程序代码的集合,是共享程序代码的一种方式。
2,库的分类(开源库和闭源库)
开源库: 公开源代码,能看到具体的实现。例如:MJExtension, MJRefresh, AFNetworking
闭源库: 不公开源代码,是经过编译后的二进制文件,看不到具体实现。分为:静态库和动态库
3,静态库的存在形式: .a 和 .framework
4, 动态库的存在形式: .framework 和 .dylib
5,静态库和动态库的区别
- 1: 静态库在链接时,会被完整的复制到可执行文件中,被多次使用,就有多份拷贝。
- 2: 动态库不会复制,只有一份,程序运行时动态加载到内存;系统只加载一次,多个程序公用,节省内存。
- 3: 但是,项目中如果使用了自己的动态库,不允许上架。注意: 苹果对ios8开放动态库加载dylib的接口,也就是说,开放了动态库挂载。
6,静态库的使用场景
- 1, 保护自己的核心代码。例如百度地图,友盟等。
- 2, 将MRC的项目,打包成静态库,可以在ARC下直接使用,不需要转换。
7,静态库的特点: .a文件 + .h文件。 看不到具体的实现。