iOS 库(一)动态库与静态库

2023-04-07  本文已影响0人  fanren

前言

在iOS开发中,我们会用到系统的库(UIKitFoundation等),也会用到一些第三方的库(AFNetworkingSDWebImage等),偶尔也会自定义一些自己的库;
库,是我们实现组件化路上的一个基石;

一、分类

库,一般被分为静态库、动态库;
但是在iOS中,我更习惯把它们分为三类:

二、静态库

静态库,简单理解就是多个目标文件的集合;

1. 特点

直接提供的是目标文件,不需要重新编译,直接链接即可;

在app编译的时候,已经进行了把库加载进去了,运行的时候,不需要重新加载,所以编译速度相比动态块更快;

三、系统的动态库

就是我们平时在开发中用到的系统的动态库,例如UIKitFoundation等;这类动态库,是由iOS系统提供,供开发者使用的;

1. 特点:

这类动态库不会再app编译的时候就被植入app内部,而是把app的信息植入了app,在app运行的时候去动态查找动态库,并进行链接(这一步被叫做动态链接

2. 分类

根据动态库的载入时间,又将动态库分为了两种:

四、自定义动态库

就是iOS开发者自定义的framework
这类的动态库与系统的动态库有所区别,其会在编译的时候,全部置入app内部,然后再app启动的时候,全部加载,这样就会导致app的体积很大,而且启动的速度慢;

系统动态库和自己编译的动态库本质上是一样的, 只是使用方式不一样. 自己编译的动态库由于签名校验限制, 只能当作静态库一样使用; 系统的动态库不受签名校验限制, 可以动态加载.

上一篇下一篇

猜你喜欢

热点阅读