iOS中如何有效区分和运用动态库与静态库?

2026-05-27 18:090阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2443个文字,预计阅读时间需要10分钟。

iOS中如何有效区分和运用动态库与静态库?

概念认知什么是库+库是共享程序代码的方式,从本质上来说是一种可执行代码的二进制格式,可以被加载入内存中执行。在开发过程中,一些核心技术和常用框架,出于安全性和稳定性考虑,往往采用库的形式。

概念认识 什么是库
  • 库是共享程序代码的方式,库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。在开发过程中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把核心代码打包成库,只暴露出头文件以供使用。
  • 库分为静态库和动态库两种。
    • 静态库:链接时完整地拷贝至可执行文件中,使可执行文件体积变大。如果多个APP都使用了同一个静态库,那么每个APP都会拷贝一份。
    • 动态库:链接时不拷贝至可执行文件中,可执行文件只会存储指向动态库的引用。程序运行时由系统动态加载到内存中,系统只会加载一次, 多个APP共用一份。
  • 静态库的存在形式有两种:.a静态库、.framework静态库
  • 动态库的存在形式有两种:.dylib动态库、系统的.framework动态库

系统的.framework是系统SDK库,有Foundation.framework、UIKit.framework、MapKit.framework等。由于苹果不开源,每个框架只提供了接口(.h文件),所有实现(.m文件或.c/.cpp文件)编译在一个.framework二进制文件中。

阅读全文

本文共计2443个文字,预计阅读时间需要10分钟。

iOS中如何有效区分和运用动态库与静态库?

概念认知什么是库+库是共享程序代码的方式,从本质上来说是一种可执行代码的二进制格式,可以被加载入内存中执行。在开发过程中,一些核心技术和常用框架,出于安全性和稳定性考虑,往往采用库的形式。

概念认识 什么是库
  • 库是共享程序代码的方式,库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。在开发过程中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把核心代码打包成库,只暴露出头文件以供使用。
  • 库分为静态库和动态库两种。
    • 静态库:链接时完整地拷贝至可执行文件中,使可执行文件体积变大。如果多个APP都使用了同一个静态库,那么每个APP都会拷贝一份。
    • 动态库:链接时不拷贝至可执行文件中,可执行文件只会存储指向动态库的引用。程序运行时由系统动态加载到内存中,系统只会加载一次, 多个APP共用一份。
  • 静态库的存在形式有两种:.a静态库、.framework静态库
  • 动态库的存在形式有两种:.dylib动态库、系统的.framework动态库

系统的.framework是系统SDK库,有Foundation.framework、UIKit.framework、MapKit.framework等。由于苹果不开源,每个框架只提供了接口(.h文件),所有实现(.m文件或.c/.cpp文件)编译在一个.framework二进制文件中。

阅读全文