iOS APP启动过程与优化

1.APP从桌面的icon被点击到app启动,详尽过程描述

app的启动可以分为main函数之前跟main函数之后两个部分

[1]main函数之前

A: 加载可执行文件

B: 加载动态链接器dyId

C:dyld递归加载动态链接库

(dyId的加载过程分为5个部分:加载动态链接库->rebase 所有图片-》绑定所有图片-》准备图片-》运行初始化)

[2]main函数之后

A:main() 执行UIApplicationMain()

B: UIApplicationMain()创建UIApplication

C: UIApplicationMain()创建AppDelegate并复制

D: UIApplication创建并管理RunLoop

E: UIApplication调用application:didFinishLaunchingWithOptions:

F: application:didFinishLaunchingWithOptions:创建并显示Application Window

G: Application Window设置根控制器Root View Controller

2.APP启动优化

既然app的完整启动分为main函数加载之前跟main函数加载之后两个部分,那么我们可以从这两个部分分别来做优化

[1]main函数加载之前可做的优化

A: 移除不必要的动态库以及图片等资源文件

B: 减少项目中的分类以及类扩展文件

C: 尽可能少的使用load方法,可使用initital方法替代

[2]main函数加载之后可做的优化

主要是对业务上的功能进行优化,比如:

A: 在启动方法中只执行必要的操作,一些可延后的操作不放在didfinishlauch中

B: 使用懒加载

C: 压缩图片资源

你可能感兴趣的:(iOS APP启动过程与优化)