ios 静态库和动态库

ios的库有两种:
静态库:.a和.framework
动态库:.tbd和.framework
framework 即使静态又是动态库

静态库和动态库的区别
.a文件肯定是静态库, . tbd肯定是动态库,.framework可能是静态库也可能是动态库,静态库在链接时,会被完整的复制到可执行文件中,如果多个App都使用了同一个静态库,那么每个App都会拷贝一份,缺点是浪费内存。类似于定义一个基本变量,使用该基本变量是是新复制了一份数据,而不是原来定义的;
动态库不会复制,只有一份,程序运行时动态加载到内存中,系统只会加载一次,多个程序共用一份,节约了内存。类似于使用变量的内存地址一样,使用的是同一个变量;
在iOS8.0以后苹果开放了动态加载. tbd的接口,用于挂载. tbd动态库,项目中也可以使用了自己定义的动态库。

静态库的好处
模块化,分工合作
避免少量改动经常导致大量的重复编译连接
也可以重用,注意不是共享使用

动态库的好处
使用动态库,可以将最终可执行文件体积缩小
使用动态库,多个应用程序共享内存中得同一份库文件,节省资源
使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。
静态库的使用场景

保护自己的核心代码,自己不想别人看到的部分
将MRC的项目打包成静态库,可以在ARC下直接使用,不需要在转换

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值