iOS-动态库与静态库

  1. 一、什么是库
  2. 二、静态库和动态库的区别
  3. 三、静态库拆分
    1. 3.2、拆分出arm64架构的静态库

一、什么是库

库是程序代码的集合,是共享代码的一种方式,实现代码复用,一般来说分为静态库和动态库。

二、静态库和动态库的区别

  • 静态库:.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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏