美文网首页
动态库和静态库的区别

动态库和静态库的区别

作者: zl_xust | 来源:发表于2018-03-16 16:08 被阅读32次

1、iOS开发中静态库和动态库区别

不管动态库还是静态库,本质上就是可执行二进制格式,可以被载入到内存中执行,分为静态库和动态库两种。

静态库:以.a 和 .framework为文件后缀名。

动态库:以.tbd(之前叫.dylib) 和 .framework 为文件后缀名。

静态库与动态库的区别

静态库:链接时会被完整的复制到可执行文件中,被多次使用就有多份拷贝。 好处是:

1.模块化,分工合作,提高了代码的复用及核心技术的保密程度

2.避免少量改动经常导致大量的重复编译连接

3.也可以重用,注意不是共享使用

动态库:链接时不复制,程序运行时由系统动态加载到内存,系统只加载一次,多个程序共用(如系统的UIKit.framework等),节省内存。动态库好处是:

1.使用动态库,可以将最终可执行文件体积缩小,将整个应用程序分模块,团队合作,进行分工,影响比较小

2.使用动态库,多个应用程序共享内存中得同一份库文件,节省资源

3.使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。

4.应用插件化

5.软件版本实时模块升级

6.共享可执行文件 在其它大部分平台上,动态库都可以用于不同应用间共享,这就大大节省了内存。从目前来看,iOS仍然不允许进程间共享动态库,即iOS上的动态库只能是私有的,因为我们仍然不能将动态库文件放置在除了自身沙盒以外的其它任何地方。 不过iOS8上开放了App Extension功能,可以为一个应用创建插件,这样主app和插件之间共享动态库还是可行的。

补充一点iOS 的各设备CPU架构

模拟器:

iPhone4s-iPnone5:i386

iPhone5s-iPhone7 Plus:x86_64

真机:

iPhone3gs-iPhone4s:armv7

iPhone5-iPhone5c:armv7s

iPhone5s-iPhone6s:Plus:arm64

参考链接:iOS_小松哥 : https://www.jianshu.com/p/90f5ec723175

                    邓立兵   http://ios.jobbole.com/82644/?utm_source=blog.jobbole.com&utm_medium=relatedPosts

相关文章

  • iOS里的动态库和静态库

    介绍 动态库形式:.dylib和.framework 静态库形式:.a和.framework 动态库和静态库的区别...

  • Xcode7中创建静态库

    一、静态库和动态库的区别: 静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存...

  • 创建静态库

    一、静态库和动态库的区别: 静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存...

  • 目录一、库二、静态库、动态库、Framework三、打包静态库 1、.a静态库和.framework静态库的区别 ...

  • iOS静态库与动态库的区别与打包

    iOS静态库与动态库的区别与打包iOS静态库与动态库的区别与打包

  • iOS 库.a 和 framework的区别

    一、什么是库? 共享代码便是库,实现代码的复用,一般分为静态库和动态库。 二、静态库和动态库的区别? 静态库:链接...

  • 静态库与动态库相关知识笔记(转)

    "静态库与动态库"参考静态库与动态库的区别与优缺点

  • iOS 创建静态库

    一、静态库和动态库的区别 静态库和动态库是相对编译期和运行期的,在存在形式上,静态库是以 .a 和 .framew...

  • iOS生成 .framework静态文件

    一、什么是库? 库是共享程序代码的方式,一般分为静态库和动态库。 二、静态库和动态库的区别? 静态库:链接时完整地...

  • iOS-SDK开发之制作自己的静态库 .framework和.a

    先来看几个概念定义: 什么是库?库是共享程序代码的方式,一般分为静态库和动态库。 静态库和动态库的区别?静态库:链...

网友评论

      本文标题:动态库和静态库的区别

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