application冷启动优化
2018-08-02 本文已影响30人
child_cool
app启动过程
- 解析info.plist
- 加载相关信息,例如闪屏
- 沙盒建立、权限检查
- mach-o加载
- 如果是胖二进制文件(通用二进制文件),寻找合适当前CPU类别的部分
- 加载所依赖的mach-o文件(递归调用mach-o加载方法)
- 定位内部、外部指针引用,如字符串、函数
- 执行声明为attribute((constructor))的C函数
- 加载类扩展(Category)中的方法
- C++静态对象加载、调用ObjC的 +load 函数
- 程序执行
- 调用main函数
- 调用UIApplicationMain函数
- 调用applicationWillFinishLaunching方法
引用:https://blog.csdn.net/Tencent_Bugly/article/details/77363817?locationNum=1&fps=1
优化方式
- 降低加载的动态库数量
- 降低oc类的数量
- c的constructor函数减少使用
- 降低c++静态对象数量
- oc的load方法尽量用dispatch_once代替
- 减少分类的数量
- viewdidload中的内容延迟加载
- 去掉无用的文件资源和类