本文内容主要是根据 WWDC2019 Optimizing App Launch 内容编写
先来个官方的PPT图,总共分为6个大的阶段
System Interface
这里主要做的是系统的一些初始化, 内容包括: dyld3, libSystemInit
dyld3
dyld 全称 the dynamic linker
在WWDC17, 苹果推出了DYLD3(参考 App Startup Time: Past, Present, and Future),再次之前都是使用DYLD2.x,替换计划如下:
- 2017 年,iOS 11 的系统自带 APP 开始使用 dyld 3 ,第三方 APP 还是使用 dyld 2.x 。
- 2019 年,iOS 13 的系统自动 APP 和第三方 APP 都使用 dyld 3 。
相比2.x版本,3在性能、安全性、可靠性都有明显的提升
这里重点看下两者在启动App时的比较: