ios-静态库和动态库
来源:互联网 发布:c语言三种循环结构 编辑:程序博客网 时间:2024/06/05 16:31
首先先说一下库的概念
库在这里其实就是程序代码的一个集合,当然库也可以存放其他的文件,比如说图片,库如果按照公开的情况进行划分的话,可以分成两种类型
一种是开源库,就比如说GitHub上的那些第三方框架,可以看到具体实现的,有.h和.m文件的
另外一种是闭源库,不公开源代码,是经过编译后的二进制文件,看不到具体的实现的,只有.h文件,.m文件是看不见的。就比如说百度地图SDK中的一些静态库就是这样子的,只有.h文件可见,.m文件就是编译后的二进制数据。
然后闭源库又主要分为静态库和动态库
静态库的存在形式是.a和.framework
动态库的存在形式是 .tbd和.framework,之前.tbd又称为.dylib
静态库和动态库的主要区别就是在于
静态库:在链接时会被完整的复制到可执行文件中,被多次使用就会进行多次的拷贝,也就是说你有10个项目就要拷贝10次,静态库与 app 可执行文件 一起被加载到同一块代码区中。
动态库:链接的时候是不复制,动态库的代码是在可执行程序运行时才会被载入内存的,在编译过程中仅简单的引用,因此代码体积较小。系统只加载一次,多个程序会共用,在ios中也需要系统的支持。
摘抄下一些网络上的字段
对于动态库而言,在编译链接的时候,只会将动态库被引用的头文件添加到目标 app 可执行文件,区别于静态库,动态库 是在程序运行的时候被添加另外一块内存区域。
.a文件和.framework文件组成的区别:
.a文件是一个纯二进制文件,不能直接拿来使用,需要配合头文件、资源文件一起使用。.a文件如下所示
将静态库打包的时候,只能打包代码资源,但是图片文件、本地json文件和xib等资源文件无法打包进去,我们去使用.a静态库一般来说还需要一些其他的文件 .a文件和头文件和一些资源文件.framework文件内部除了有二进制文件,还有一些其他的一些资源文件啊,图片啊,头文件之类的如下图所示。
还有需要注意的是苹果不让使用自己的动态库,上架会被拒。
这里还需要注意的是经过资料的收集,.dylib和.tbd文件的区别在于在stackOverFlow下面这么一段话
For those who are curious, the .tbd files are new "text-based stub libraries", that provide a much more compact version of the stub libraries for use in the SDK, and help to significantly reduce its download size.
可能大概的意思就是,这个.tbd文件比.dylib文件更加的紧凑,更加的小。
- iOS中的静态库和动态库
- IOS 中的 静态库 和 动态库
- iOS 静态库和动态库
- iOS 静态库和动态库
- iOS 动态库和静态库
- iOS 动态库和静态库
- iOS中的静态库和动态库
- iOS静态库和动态库
- iOS 生成静态库和动态库
- iOS静态库和动态库合并
- ios-静态库和动态库
- iOS静态库和动态库
- 动态库和静态
- iOS关于静态库和动态库的概念
- iOS动态库和静态库的简单使用
- iOS 开发之静态库.a和动态库详解
- iOS静态库和动态库的区别
- iOS静态库和动态库的区别 升级版
- Unity_Lua_简介
- visual studio # 从 GitHub clone 项目到本地
- Python学习(6)--字典
- 安卓MVP的简单使用
- opencv----人脸检测
- ios-静态库和动态库
- drawable自定义图形资源之shape属性
- MySQL数据库:用cmd查询所有的当前数据库连接的库,进入某个库,查询某个库中所有的表等操作
- Warning: Failed prop type: Invalid prop `enablesReturnKeyAutomatically` of type `string` supplie
- 浏览器内核
- pdo如何防止 sql注入
- Java消息中间件学习笔记八 -- ActiveMQ集群
- C练习
- Vijos 3091 长跑