美文网首页
组件22-二进制:静态库简介

组件22-二进制:静态库简介

作者: Lovell_ | 来源:发表于2017-07-13 11:36 被阅读25次

二进制解决的什么问题:虽然使用了组件化, 但依然是源码, 如果工程庞大, 编译速度依然非常慢,所以, 可以直接把私有库打包成为一个库文件, 进行使用。

一、什么是库?

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

二、库的分类?

  1. 开源库:公开源代码, 能看到具体实现。例如MJExtension, MJRefresh, AFNetworking...。

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

三、静态库的存在形式?

.a 和 .framework

四、动态库的存在形式?

.dylib(后来.tbd)(从本质上说tbd是个描述文件,它里面是关联dylib动态库的)
.framework

五、静态库和动态库的区别?

  1. 静态库在链接时, 会被完整的复制到可执行文件中; 被多次使用, 就有多份拷贝;

  2. 动态库则不会复制, 只有一份. 程序运行时动态加载到内存; 系统只加载一次, 多个程序共用, 节省内存;

  3. 但是!!!! 项目中如果使用到自己的动态库, 不允许上架!

  4. 再但是!!! WWDC2014上公布的 苹果对ios8开放动态加载dylib的接口 也就是说 开放了动态库挂载。

六、静态库应用场景?

  1. 保护自己的核心代码。国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用"闭源"的方式开发使用。例如:百度地图,友盟,JPush等

  2. 将MRC的项目,打包成静态库,可以在ARC下直接使用,不需要转换。(编译好的文件不存在内存泄露,所以.a文件可以直接在ARC和MRC下使用)

  3. 提高工程的编译速度。

七、静态库的特点?

.a + .h;(.a就是实现文件,.h是接口文件)
看不到具体实现的代码;

相关文章

  • 组件22-二进制:静态库简介

    二进制解决的什么问题:虽然使用了组件化, 但依然是源码, 如果工程庞大, 编译速度依然非常慢,所以, 可以直接把私...

  • 静态库

    静态库 静态库动态库简介 .a 静态库:被编译好的二进制文件 静态库:.a, .framework 动态库: .d...

  • iOS静态库和动态库读取图片资源

    前言 在将私有组件打成二进制包的时候,我们可以选择打包成静态库或者动态库,静态库和动态库读取图片的方式也略有不同,...

  • 07-组件二进制化

    一、二进制化 具体如何实现二进制化可以查看 二进制化(一)静态库 或者二进制化(二)Framework 二、组件二...

  • iOS的静态库和动态库

    静态库简介 什么是库? 原文博客地址: iOS的静态库和动态库 库从本质上来说是一种可执行代码的二进制格式,可以被...

  • iOS静态库简介

    iOS静态库简介 1.库的理解 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态...

  • 组件22-二进制:静态库(.a)的生成和测试

    一、生成静态库的大步骤: 创建项目选择静态库(.a)Snip20170713_7.png 设置需要暴漏的头文件:T...

  • 编译器之打包动态/静态库

    一、简介 I. 库的类型分类 静态库 以 .a 或 .framework 为文件后缀名.a 是一个二进制文件,不能...

  • iOS动态库、静态库及使用场景、方式

    前面介绍过制作过程,这里不讲如何制作动态库、静态库。 静态库和动态库都是以二进制提供代码复用的代码库。 静态库常见...

  • 2021-12-17 Podfile 使用和不用use_fram

    cocoapods3种类形的pod组件: 1,如果组件是,.a 静态库,或者.framework 静态库,podf...

网友评论

      本文标题:组件22-二进制:静态库简介

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