iOS-动态库与静态库
一、什么是库
库是程序代码的集合,是共享代码的一种方式,实现代码复用,一般来说分为静态库和动态库。
二、静态库和动态库的区别
- 静态库:
.a、.framework - 动态库:
.framework、.dylib、.tbd
tips:
1、系统的framework是动态的,我们自己创建的framework是静态的
2、Xcode7之后.dylib改名为.tbd,应该是.tbd比.dylib占用内存小
3、创建framework的时候,我们要选择static library,因为系统不允许我们使用动态库,而且我们使用动态库提交AppStore是会被拒的
三、静态库拆分
假设我在当前文件夹下放了支付宝的动态库
### 3.1、查看静态库都支持哪些架构
```
wanglizhi@wlz:~/Downloads/framework$ lipo -info AlipaySDK.framework/AlipaySDK
Architectures in the fat file: AlipaySDK.framework/AlipaySDK are: i386 x86_64 armv7 arm64
```
3.2、拆分出arm64架构的静态库
wanglizhi@wlz:~/Downloads/framework$ lipo AlipaySDK.framework/AlipaySDK -thin arm64 -output AlipaySDK.framework/AlipaySDK_arm64
由上边两幅图可以看出,静态库可执行文件的体积减少了63%,这要是把项目里所有的静态库都拆分为只支持arm64,那简直就是究极舒服。
相关知识:
iOS-iPhone的CPU架构
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1226169349@qq.com
文章标题:iOS-动态库与静态库
文章字数:302
本文作者:王立志
发布时间:2019-11-26, 14:41:49
最后更新:2019-11-26, 16:11:38
原始链接:http://yoursite.com/2019/11/26/iOS-动态库与静态库/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。