静态库和动态库的区别

iOS专题2:静态库和动态库详解

动态库与静态库优缺点比较

if(库)
{
    if(1.开源库){
       :比如github上面的大多数库
    }

    if(2.闭源库){
      一.静态库:.a和.framework
      
     二.动态库:.dylib和.framework(系统直接提供给我们的framework都是动态库!)
  }
}

静态库和动态库的framework长得不一样

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

.a封成的静态库,一般来讲只包含了编译好的可执行代码,从这个层面上来讲.framework静态库和.a静态库最大的区别在于,.framework静态库集合的东西多点咯


framework本来是苹果专属的内部提供的动态库文件格式,但是自从2014年WWDC之后,开发者也可以自定义创建framework实现动态更新(绕过apple store审核,从服务器发布更新版本)的功能,这与苹果限定的上架的app必须经过apple store的审核制度是冲突的,所以含有自定义的framework的app是无法在商店上架的,但是如果开发的是企业内部应用,就可以考虑尝试使用动态更新技术来将多个独立的app或者功能模块集成在一个app上面!(我开发的就是企业内部使用的app,我们将企业官网中的板块开发成4个独立的app,然后将其改造为framework文件最终集成在一款平台级的app当中进行使用,这样就可以在一款app上面使用原本4个app的全部功能!

这段话可以概括为framework有比较强的集成功能。


程序编译一般需经预处理、编译、汇编和链接几个步骤。静态库特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。

静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此节省了很多内存。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别...
    吃瓜群众呀阅读 12,055评论 3 42
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,142评论 25 708
  • 仅以方便自己查阅记录前言1.静态库和动态库有什么异同?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗...
    190CM阅读 4,274评论 0 4
  • 1、什么是库 库是共享程序代码的方式,一般分为静态库和动态库。 2、静态库与动态库的区别 静态库:链接时完整地拷贝...
    伯牙呀阅读 1,443评论 0 6
  • 今天我们来讨论在逻辑推理中,别人提供诸如个人直觉、个人经历、典型案例、当事人证词和专家意见这些证据时,我们应该怎样...
    Jimuboy阅读 382评论 0 0