一、冷启动
1、是什么?
从零开始启动APP,优化主要是优化冷启动
2、分析启动时间
1、通过添加环境变量可以打印出APP的启动时间分析
image.png
2、DYLD_PRINT_STATISTICS_DETAILS value设置为 1
image.png
3、启动时间
image.png
3、冷启动的3个阶段
image.png-
1、dyld阶段:
dyld,apple的动态链接器,可以用来装载Mach-O文件(可执行文件,动态库),Mach-O是一种文件格式
image.png
- 打开APP包,就可以看到这个黑色的
就包含了我们项目里的所有的代码,是一个可执行文件exec,也是一种Mach-O文件
image.png
- 我们所使用的比如 UIKit、Foundation这些库都不是包含在可执行文件里的, dyld根据我们代码的依赖说明,比如#import <UIKit/UIKit.h>
, dyld还会根据我们代码的依赖去递归装载这些动态库- 装载完毕会通知rutimez做下一步的处理
- 2 、runtime阶段:
- 3、main 阶段:
二、热启动
app已经在内存中,在后台存活着,再次点击图标进行唤醒
网友评论