iOS库介绍 

学习Xamarin.Forms开发,在iOS平台上需要引用第三方的iOS库。对于iOS开发小白来说只能在网上上疯狂找资料。然后对iOS库略微有了些了解,下面对查到的资料整理做个记录,方便之后查看。

什么是库

库是共享程序代码的方式,库从本质上来说是一种可执行代码的二进制文件可以被载入内存中执行,一般分为静态库和动态库。

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

总结:同一个静态库在不同程序中使用时,每一个程序中都得导入一次,打包时也被打包进去,形成一个程序。而动态库在不同程序中,打包时并没有被打包进去,只在程序运行使用时,才链接载入(如系统的框架如UIKit、Foundation等),所以程序体积会小很多,但是苹果不让使用自己的动态库,否则审核就无法通过。

iOS库

iOS中静态库是.a和.framework文件,动态库是.dylib和.framework文件。系统的.framework是动态库,第三方开发的.framework是静态库。正常情况下,开发人员引用的都是静态库。

iOS .a和.framework区别

.a是一个纯二进制文件,.framework包括了二进制文件同时还用资源文件。.a文件不能直接使用,至少要有.h(头文件)文件配合。.framework文件可以直接使用。

可以理解为这样:framework = a + h + sourceFile

iOS开发为什么要使用静态库

  • 方便共享代码,便于合理使用。
  • 实现iOS程序的模块化。可以把固定的业务模块化成静态库。
  • 和别人分享代码库,但别人不需要看到代码实现
  • 开发第三方SDK需要静态库

iOS静态库的制作

关于静态库的制作,目前没有用到,以后补充