iOS APP启动时长是衡量应用品质的重要指标,也是用户体验的重要因素,更是许多开发者努力优化的点。许多用户吐槽“APP为什么一直进不去啊?”等等问题,那么iOS系统是如何启动APP的呢?本文就一起了解一下吧!
一、APP启动过程及优化
进入主题:当我们点击icon到第一个页面展示完成,发生了什么样的过程?这个过程就是APP启动过程,也就是冷启动!
APP启动总时间 = mian()之前 + main() 之后;
1:main()函数之前
程序要想运行,必须要有对应的运行环境,那么这个过程就是搭建程序运行的环境。
App开始启动后,系统的dynomic loader首先加载可执行文件(.o文件),然后 dyld从可执行文件的依赖开始, 递归加载所有的依赖动态库(Dylib)。
dyld:dynomic loader动态链接器,作用是加载一个进程所需要的可执行文件,dyld是开源的
第一步:加载动态库
动态库包含:用到的所有系统 framework,以及一些libxxx的库,比如runtime的运行库:libobjc,运行GCD的库:libdispatch()。
加载动态库其实就是加载动态库的mach-o文件,主要加载过程如下:
找到动态库的mach-o文件
打开并验证文件
在系统注册文件
调用对应的各种启动函数
由于该过程也是需要时间处理的,因此可以如下优化:
1.不用或者少用非系统库