IOS动态库和静态库的区别

framework 是什么

framework 是对静态库和动态库的一个封装(包括了静态库和动态库)

  1. 加载方式

    静态库编译加载到可执行文件程序启动时直接加载,动态库是在启动时动态链接.

  2. 分发文件 内存占用
    静态库分发文件大,动态库分发文件小。
    静态库以类为单位编译到可执行文件中(根据使用情况加载)
    动态库完整拷贝到 framework 沙盒的 framework目录中.
    最终ipa的大小根据不同的情况去检测.

3,启动速度
静态库冷启动速度快,动态库冷启动速度慢(启动时动态链接)优化方式冷加载。

4,extention 扩展程序使用动态库实现共享节约内存。

5,动态库可以解决符号冲突问题,以及分类加载问题
所以根据具体情况,选择不同的策略。

6,IOS9之前对ipa 可执行文件TEXT段有60M的限制,使用动态库可以解决这个问题。

7,静态库中的同名分类会覆盖动态库中的同名分类,主工程的同名动态库会覆盖动态库中的动态库.

https://www.youtube.com/watch?v=IybpQbeS6K8 这个视频可以看看。
分类加载顺序 1,动态库中的分类。2,主工程的分类 3,静态库中的分类

你可能感兴趣的:(IOS动态库和静态库的区别)