一.库的简介
1.什么是库?
库是程序代码的集合,是共享程序代码的一种方式
2.库的类型?
根据源代码的公开情况,库可以分为2种类型
开源库
公开源代码,能看到具体实现
如SDWebImage, AFNetworking
闭源库
不公开源代码,是经过编译后的二进制文件,看不到具体实现
主要分为: 静态库,动态库
3.静态库与动态库的区别?
1.静态库和动态库的存在形式上的区别
静态库
.a
.framework
动态库
.dylib
在Xcode 8里面,看到后缀为.tbd的库,它的本质都是.dylib文件
.framework
2.静态库和动态库在使用上的区别
静态库
链接时,静态库会被完整的复制到可执行文件中,被多次使用就有多份冗余拷贝
动态库
链接时不复制,程序运行时由系统动态的加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存
二.静态库的应用场景
制作SDK - 软件开发工具包(Software Development Kit)
如"百度地图",它想让开发者在应用程序中集成百度地图,但是百度又不想公布自己的技术实现,那怎么办?
百度将自己的核心代码编译成静态库,对外暴露统一的接口,开发者集成静态库,并且调用静态库即可集成
公司在开发项目时的核心代码
公司一般在开发一个项目时,肯定有一部分代码是核心代码
如果任何人都可以拿到这个核心代码,那么一旦有人离职,公司的核心代码就会被泄漏,那么该如何防止这种情况的发生?
公司一般都会抽出一部分核心团队成员,专门开发这部分核心代码,开发完成