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

iOS静态库和动态库

作者: smartLife | 来源:发表于2016-07-28 17:17 被阅读34次

    呈现方式

    静态库:.a, .framework
    动态库:.framework, .dylib(现在苹果改成了.tbd)

    区别

    静态库
    • 编译时被链接到目标代码中,如果有多处引用存在多次冗余拷贝,占用内存
    • 需要依赖.a+.h+资源
    动态库
    • 运行时调用,不会产生冗余调用,占用内存小
    • framework文件可以直接使用
    静态库架构及机型系统对照

    静态库对应真机和模拟器两种形式,以下先列举下不同机型对应的架构:

    • 模拟器
      • iPhone4s~5 : i386
      • iPhone5s~6plus : x86_64
    • 真机
      • iPhone3gs~4s : armv7
      • iPhone5~5c : armv7s
      • iPhone5s~6plus : arm64
    • 机型和系统对照
      • 4s: iOS6+
      • 5: iOS6+
      • 5s/5c: iOS7+
      • 6: iOS8+
      • 6s: iOS9+
    生成静态库步骤
    • 选择需要暴露的头文件,Build Parses->Copy Files添加,生成后在目录下的include里会找到这些文件


      暴露头文件
      生成后的头文件
    • command+B搞定
    生成静态库命令
    • 查看架构信息 lipo -info xx.a/aa.a
      模拟器打包出来的架构
    • 合并静态库,主要场景是在模拟器和真机需要合并时,lipo -create xx.a yy.a -output zz.a
    • 分离静态库,主要将三方提供的库拆解成自己想要的,lipo xx.a -thin armv7 -output yy.a

    相关文章

      网友评论

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

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