iOS中如何有效区分和运用动态库与静态库?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2443个文字,预计阅读时间需要10分钟。
概念认知什么是库+库是共享程序代码的方式,从本质上来说是一种可执行代码的二进制格式,可以被加载入内存中执行。在开发过程中,一些核心技术和常用框架,出于安全性和稳定性考虑,往往采用库的形式。
概念认识 什么是库- 库是共享程序代码的方式,库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。在开发过程中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把核心代码打包成库,只暴露出头文件以供使用。
- 库分为静态库和动态库两种。
- 静态库:链接时完整地拷贝至可执行文件中,使可执行文件体积变大。如果多个APP都使用了同一个静态库,那么每个APP都会拷贝一份。
- 动态库:链接时不拷贝至可执行文件中,可执行文件只会存储指向动态库的引用。程序运行时由系统动态加载到内存中,系统只会加载一次, 多个APP共用一份。
- 静态库的存在形式有两种:.a静态库、.framework静态库
- 动态库的存在形式有两种:.dylib动态库、系统的.framework动态库
系统的.framework是系统SDK库,有Foundation.framework、UIKit.framework、MapKit.framework等。由于苹果不开源,每个框架只提供了接口(.h文件),所有实现(.m文件或.c/.cpp文件)编译在一个.framework二进制文件中。
本文共计2443个文字,预计阅读时间需要10分钟。
概念认知什么是库+库是共享程序代码的方式,从本质上来说是一种可执行代码的二进制格式,可以被加载入内存中执行。在开发过程中,一些核心技术和常用框架,出于安全性和稳定性考虑,往往采用库的形式。
概念认识 什么是库- 库是共享程序代码的方式,库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。在开发过程中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把核心代码打包成库,只暴露出头文件以供使用。
- 库分为静态库和动态库两种。
- 静态库:链接时完整地拷贝至可执行文件中,使可执行文件体积变大。如果多个APP都使用了同一个静态库,那么每个APP都会拷贝一份。
- 动态库:链接时不拷贝至可执行文件中,可执行文件只会存储指向动态库的引用。程序运行时由系统动态加载到内存中,系统只会加载一次, 多个APP共用一份。
- 静态库的存在形式有两种:.a静态库、.framework静态库
- 动态库的存在形式有两种:.dylib动态库、系统的.framework动态库
系统的.framework是系统SDK库,有Foundation.framework、UIKit.framework、MapKit.framework等。由于苹果不开源,每个框架只提供了接口(.h文件),所有实现(.m文件或.c/.cpp文件)编译在一个.framework二进制文件中。

