静态库简介

1.什么是库?

  • 库就是程序代码的集合,是共享程序代码的一种方式

2.库的分类?

  • 开源库:
    • 公开源代码,能看到具体实现
    • 例如MJExtension、AFNetWorking...
  • 闭源库
    • 不公开源代码,是经过编译后的二进制文件,看不到具体实现
    • 主要分为:静态库和动态库

3.静态库的存在形式?

  • .a
  • .framework

4.动态库的存在形式?

  • .dylib
  • .framework

5.静态库和动态库的区别?

  • 静态库在链接时,会被完整的复制到可执行文件中,被多次使用,就有多份拷贝
  • 动态库则不会复制,只有一份,程序运行时动态加载到内存,系统只加载一次,多个程序共用,节省内存
  • 但是!!!项目中如果使用到自己的动态库,不允许上架!再但是!!!WWDC2014上公布的 苹果对iOS8开放动态加载dylib的接口,也就是说开放了动态库挂载

6.静态库应用场景?

  • 保护自己的核心代码
    • 国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用“闭源”的方式开发使用
    • 例如:百度地图,ShareSDK
  • 将MRC的项目,打包成静态库,可以在ARC下直接使用,不需要转换

7.静态库的特点?

  • .a + .h
  • 看不到具体实现的代码

你可能感兴趣的:(静态库简介)