阅读背景:

iOS操作系统-- App启动流程分析与优化

来源:互联网 
背景知识: mach-o文件为基于Mach核心的操作系统的可执行文件、目标代码或动态库,是.out的代替,其提供了更强的扩展性并提升了符号表中信息的访问速度, 符号表,用于标记源代码中包括标识符、声明信息、行号、函数名称等元素的具体信息,比如说数据类型、作用域以及内存地址,iOS符号表在dSYM文件中 程序构建过程:编译分三步走,对 源文件进行预处理(processing),处理预编译指令,生成.i文件,下一步进行编译,进行词法分析(lex工具识别词法规则语义表)、语法分析和语义分析生成.s汇编文件,最后进行汇编,生成二进制目标文件.o。目标文件再进行链接器链接,形成可执行文件.a或mach-o文件。 链接分为动态链接和静态链接,静态链接会将所有目标文件.o全部内容链接到执行文件中,如果另外的执行文件需要其中的功能,也必须全部收录。动态链接为了解决这样的空间浪费问题,只将函数信息链接加入执行文件 dyld是加载动态链接库的库,该库在加载可执行文件的时候,递归加载所需要的所有动态库。动态库包括iOS操作系统的系统framework,oc的runtime系统libobjc,系统级别的库libSystem,例如libdispatch(GCD)、libsystem_block(Block) App启动大致流程 背景知识: mach-o文件为基于Mach核心的操作系统的可执行文件、目标代码或动态库,是.out的


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: