| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> iOS开发:对于动态库共享缓存(dyld)的了解 -> 正文阅读 |
|
[移动开发]iOS开发:对于动态库共享缓存(dyld)的了解 |
在了解动态库共享缓存之前,我们先了解一下APP从开发到安装到手机的基本过程 1、从开发到打包 MJRefreshExample.app 中的
MJRefreshExample 文件是
iOS中的可执行文件,文件格式是
Mach-O 。
这里有一个很重要的过程需要说明,从下面代码编译的流程图可以知道,不同的OC代码,编译出来的汇编代码可能是一样的。 2、上传和安装 1、dyld由来如果在没有使用dyld之前,那么几个APP的通用动态库,需要各自编译一遍,这样就特别消耗内存。形象图如下: 但是,假如我们做了优化,把通用动态库放在一个所有APP都可以访问的位置,那么就可以把重复需要编译的库,只要实现一遍就可以。形象图如下: 而苹果官方从iOS3.1开始,为了提高手机性能,就将绝大部分的系统动态库文件都打包存放到了一个缓存文件中( dyld全称为:dyld shared cache,直接翻译为动态库共享缓存。 那么接下来我们主要来了解一下dyld指令集、如何加载以及如何抽取动态库。 2、dyld指令集1、指令集架构
2、所有指令集原则上都是向下兼容的。 3、如何加载动态库在Mac\iOS中,是使用了
dyld的源码地址:https://opensource.apple.com/tarballs/dyld/,有兴趣的可以多了解一下。 4、如何抽取动态库可以使用dyld源码中的
3、使用
执行过程如下: |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 3:50:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |