iOS Stack

Mach-O: 文件格式

2017-08-13  本文已影响53人  de7e01056dd4

mach-o是Mac和iOS可执行文件的格式

- Mach-O的组成结构:
print the load commands
Mach-O 加载过程

mach-o 有多种文件类型,比如

  • Executable—Main binary for application
  • Dylib—Dynamic library (aka DSO or DLL)
  • Bundle—Dylib that cannot be linked, only dlopen(), e.g. plug-ins
    Image—An executable, dylib, or bundle
    Framework—Dylib with directory for resources and headers

理解mach-o和加载运行逻辑,可以帮我们做一些app启动时间优化:
cold launch: app不在内核缓冲存储器中

  1. 加载Dylib
    加载系统的dylib很快,因为有优化,但是加载内嵌(embedded)的dylib文件很占时间,所以尽可能把多个内嵌dylib合并成一个来加载
  2. Rebase/Binding
  3. Initializer
    显式初始化

显示Mach 和 BSD系统调用

Mach系统调用

Mach微内核(microkernel) 微内核

参考链接

读Joy__: 趣探 Mach-O:文件格式分析
Alone_Monkey: 了解Mach-o文件结构
官方文档
Optimizing App Startup Time
优化App启动时间

上一篇 下一篇

猜你喜欢

热点阅读