美文网首页
16期_iOS_dyld是如何加载app的

16期_iOS_dyld是如何加载app的

作者: 萧修 | 来源:发表于2023-08-18 01:00 被阅读0次

本文简要梳理dyld是是什么,引入共享缓存概念,并对dyld的流程进行总结

dyld简介

dyld是苹果的动态链接器,负责程序的链家及加载工作,是苹果操作系统重要组成部分。在应用被编译打包为可执行文件Mach-o之后,交由dyld负责链接,加载程序

共享缓存

dyld_shared_cache
苹果从3.1之后,将所有系统库(私有公有)编译为一个大的缓存文件,该缓存文件存放于

/System/Library/Caches/com.apple.dyld/

dyld流程分析:

...此处省略很多。。。【后期补充】

dyld工作结束之后,需要将控制交给可执行文件入口

dyld流程总结

系统读取可执行文件,从中读取dyld路径,加载dyld,由dyld开始初始化运行环境,开启共享缓存。加载动态库和可执行文件,并对它们链接,最后调用依赖库的初始化方法,当初始化完毕时,初始化可执行文件,对项目中类接口初始化,调用load方法,加载main()函数,获取程序入口

dyld启动优化思路

  • 动态链接依赖是动态库,减少动态库数量。第三方用到的动态库改为静态库
    main前的执行load方法,实现load方法的类是非懒加载类,减少load方法调用
    类结构初始化,减少类的数量。删除无用的类
    二进制重排,页大小

相关文章

网友评论

      本文标题:16期_iOS_dyld是如何加载app的

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