美文网首页
静态库和动态库

静态库和动态库

作者: DovYoung | 来源:发表于2022-08-23 11:07 被阅读0次

不同点:

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序可以共用,节省内存。

相同点

静态库和动态库都是闭源库,只能拿来满足某个功能的使用,不会暴露内部具体的代码信息,而从github上下载的第三方库大多是开源库。

文件类型

  • 静态库: .a 和 .framework
  • 动态库: .dylib 和 .framework

.a

  • .a文件直接是二进制文件,不能直接使用,需要配合头文件和资源文件一起使用。
  • 将静态库打包的时候,只能打包代码资源,但是图片文件、本地json文件和xib等资源文件无法打包进去
  • 使用.a静态库的时候需要三个组成部分:.a文件+需要暴露的头文件+资源文件;

.framework

  • .framework文件内部除了有二进制文件(如下图黑色文件)之外还有其他的资源文件
  • .framwork文件=黑色二进制文件<.a文件+.h文件>+资源文件<图片、以及本地的html5,json,plist等),
  • 可以直接拿来在工程中使用。

.dylib

.dylib动态库从Xcode 8开始以.tbd的形式出现。

静态库的制作注意事项

规范注意

  • 文档完整并且正确
  • 所有类名都应该加前缀,所有 category 方法加前缀,由于没有命名空间,避免冲突
  • 不要将第三方库打包进 SDK
  • SDK 对外公布前应该进行基本的编译检查,不应该有编译器警告存在。
  • 支持最新的 CPU 架构版本(arm64)
  • 可以静态库中创建一个.h文件处理(最好和SDK同名),将所有需要外部调用的文件在.h内导入,这样只需要暴露.h就好
  • 使用到分类需要配置other linker flags的添加-ObjC
  • 如果我们在同一电脑行生成静态库并配置到其他项目中,此时在项目中打断点是可以进入静态库的实现文件中的,不过不用担心,在其他电脑是以汇编形式显示的。

bundle制作

  • 图片资源的处理可以使用.bundle文件,.bundle文件的名字和.a或.framework的名字相同。
  • .bundle文件的简单制作如下:
    • 首先,新建一个文件夹;
    • 其次,修改文件夹的后缀名为.bundle
    • 最后,点击右键,打开显示包内容,就可以向其中添加图片资源。

相关文章

  • iOS 静态库和动态库的制作

    静态库和动态库 一、静态库和动态库的存在形式 静态库: .a 和 .framework 动态库: .dylib 和...

  • 静态库和动态库

    静态库和动态库的存在形式静态库:.a 和 .framework动态库:.dylib 和 .framework 静态...

  • Swift 静态库调研

    一、关于库的背景知识1、静态库和动态库静态库动态库系统动态库Cocoa Touch Framework静态库 v....

  • iOS 静态库封装

    静态库和动态库 静态库和动态库存在形式 静态库:以.a 和 .framework为文件后缀名。 动态库:以.tbd...

  • iOS-SDK从无到有

    A、关于静态库和动态库 静态库:.a和.framework ,动态库:.dylib和.framework。.fra...

  • 自定义三方SDK静态库、.framework

    静态库和动态库的存在形式 静态库: .a 和 .framework动态库: .dylib 和 .framework...

  • iOS静态库与动态库

    静态库与动态库 存在形式: ①静态库:.a 和 .framework②动态库:.dylib 和 .framewor...

  • 学习笔试--静态库和动态库

    静态库和动态库的存在形式 静态库:.a和.framework 动态库:.dylib和.framework 创建自己...

  • iOS开发-----静态库.a的制作教程

    (1)静态库和动态库的存在形式 静态库:.a和.framework 动态库: .dylib 和 .framewor...

  • 打包SDK和Framework

    库:分为动态库和静态库(目前苹果不支持上传动态库) 静态库:.a和.framework 动态库:.dylib和.f...

网友评论

      本文标题:静态库和动态库

      本文链接:https://www.haomeiwen.com/subject/hmongrtx.html