启动流程Objective - C 底层

Objective - C 性能优化(三)启动优化

2020-04-08  本文已影响0人  爱玩游戏的iOS菜鸟

一、App的启动

App的启动分2种

下面,App启动优化,主要是针对冷启动进行优化

如何检测App的启动时间分析 ? (Edit scheme -> Run -> Arguments)

二、App的冷启动三个阶段

APP的冷启动可以概括为3大阶段

冷启动三个阶段
(一)APP的启动 - dyld

dyld(dynamic link editor),Apple的动态链接器,可以用来装载Mach-O文件(可执行文件、动态库等)

启动APP时,dyld所做的事情有:

(二)APP的启动 - runtime

启动APP时,runtime所做的事情有:

到此为止,可执行文件和动态库中所有的符号(Class,Protocol,Selector,IMP,…)都已经按格式成功加载到内存中,被runtime 所管理

(三)APP的启动 - main

总结一下:

  1. APP的启动由dyld主导,将可执行文件加载到内存,顺便加载所有依赖的动态库
  2. 并由runtime负责加载成objc定义的结构
  3. 所有初始化工作结束后,dyld就会调用main函数
  4. 接下来就是UIApplicationMain函数,AppDelegate的application:didFinishLaunchingWithOptions:方法

三、APP的启动优化方案

按照不同的阶段,做不同的优化

  1. dyld
  1. runtime
  1. main
上一篇下一篇

猜你喜欢

热点阅读