在项目开发中,或多或少的都会使用第三方库,有时候也会将自己项目中独立于业务的相关代码打包成库以供别人使用。在Android开发中,一般打包为aar或者jar文件以供第三方使用。iOS开发中,则可以直接打包为.a文件,iOS内置了Static Library的模板,所以使用上也是十分的方便。 在正式讲解打包.a静态库之前,首先来看一些概念:
什么是库?所谓库就是程序代码的集合,是共享程序代码的一种方式。
库的分类根据程序代码的开源情况,库可以分为两类:
开源库源代码是公开的,第三方开发者可以看到具体实现。比如GitHub上比较出名的第三方框架AFNetworking、SDWebImage。
闭源库不公开源代码,只公开调用的接口,看不到具体的实现,是一个编译后的二进制文件。这种常见于一些公司的SDK包,比如高德地图SDK、环信即时通讯SDK等等。而闭源库又分为两类:静态库和动态库。本篇重点要讲的便是其中的静态库。
静态库和动态库的区别 静态库以”.a”或者“.framework”为文件后缀名。
动态库以”.dylib”或者“.framework”为文件后缀名。
区别静态库链接时会被完整的复制到可执行文件中,被多次使用就有多份拷贝。形如: