iOS静态库和动态库

2020-04-04  本文已影响0人  沉江小鱼

静态库和动态库都是以二进制提供代码复用的代码库。

两者的区别

库类型 优点 缺点
静态库 1. 目标程序没有外部依赖,直接就可以运行。2. 效率教动态库高。 1. 会使用目标程序的体积增大。
动态库 1. 不需要拷贝到目标程序中,不会影响目标程序的体积。2.同一份库可以被多个程序使用(因为这个原因,动态库也被称作共享库)。3.运行时时才载入的特性,也可以让我们随时对库进行替换,而不需要重新编译代码,实现动态更新。 1.动态载入会带来一部分性能损失(可以忽略)2.动态库也会使得程序依赖外部环境。如果环境缺少动态库或者库的版本不正确,就会导致程序无法运行(Linux lib not found 错误)。

iOS里面静态库/动态库的形式

framework为什么既是静态库又是动态库?

系统的.framework是动态库,我们自己建立的.framework是静态库。
特别注意的是平时我们经常说的Framework是Cocoa/Cocoa Touch程序中使用的一种资源打包方式,可以将代码文件、头文件、资源文件、说明文档等集中在一起,方便开发者使用。
也就是说我们的Framework其实是资源打包的方式,和静态库动态库的本质没有什么关系。

.a 和 .framework有什么区别?

.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework。
建议用.framework.

为什么使用静态库?

注意:

上一篇 下一篇

猜你喜欢

热点阅读