50:ios 开发中 动态库 与静态库的区别
使用静态库的好处
1,模块化,分工合作
2,避免少量改动经常导致大量的重复编译连接
3,也可以重用,注意不是共享使用
动态库使用有如下好处:
1使用动态库,可以将最终可执行文件体积缩小
2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源
3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。
深入理解framework(框架,其实相当于静态框架,不是动态库)
打包framework还是一个比较重要的功能,可以用来做一下事情:
(1)封装功能模块,比如有比较成熟的功能模块封装成一个包,然后以后自己或其他同事用起来比较方便。
(2)封装项目,有时候会遇到这个情况,就是一家公司找了两个开发公司做两个项目,然后要求他们的项目中的一个嵌套进另一个项目,此时也可以把呗嵌套的项目打包成framework放进去,这样比较方便。
库从本质上市一中可执行的二进制格式,可以被载入内存中执行
iOS 中的静态库有 .a 和 .framework 两种形式; 动态库有 .dylib 和 .framework 两种,
后来 .dylib 被苹果换成 .tbd 的形式
静态库 和 动态库 区别
静态库和动态库是相对于编译期和运行期的,静态库在编译期会被连接到代码中,程序运行期将不再需要改静态库,
而动态库在编译期不会被连接到代码中,只有在程序运行期间才会被载入,所以在程序运行期间还需要动态库的存在.
总结
同一个静态库在不同的程序中使用时,每一个程序都需要导入一次,打包时也被打包进去,形成一个程序,
而动态库在不同的程序中,打包时并没有打包进去,只在程序运行时才会被你连接载入,如系统框架(UIKit,,Foundation等)
所以体积会小很多,但是苹果不让使用自己的动态库,否则审核就无法通过
网友评论