美文网首页iOS开发知识小集2019最新iOS面试(OC+swift)
App 启动优化策略?最好结合启动流程来说

App 启动优化策略?最好结合启动流程来说

作者: natewang | 来源:发表于2018-10-07 20:46 被阅读16次
  1. App启动过程
  • 解析Info.plist

    加载相关信息,例如如闪屏

    沙箱建立、权限检查

  • Mach-O加载

如果是胖二进制文件,寻找合适当前CPU类别的部分

加载所有依赖的Mach-O文件(递归调用Mach-O加载的方法)

定位内部、外部指针引用,例如字符串、函数等

执行声明为attribute((constructor))的C函数

加载类扩展(Category)中的方法

C++静态对象加载、调用ObjC的 +load 函数

  • 程序执行

调用main()

调用UIApplicationMain()

调用applicationWillFinishLaunching

main之前的优化

动态库加载越多,启动越慢。

ObjC类越多,启动越慢

C的constructor函数越多,启动越慢

C++静态对象越多,启动越慢

ObjC的+load越多,启动越慢

main之后的优化

rootViewController及其childViewController的加载、view及其subviews的加载

具体做法可以打点记录各种vc view的初始化时间。

主要还是针对不同业务的优化,在我的项目中,有个后台串行的队列,去初始化各种不需要立即加载的资源,注册各种三方。

https://mp.weixin.qq.com/s/Kf3EbDIUuf0aWVT-UCEmbA

相关文章

网友评论

    本文标题:App 启动优化策略?最好结合启动流程来说

    本文链接:https://www.haomeiwen.com/subject/kvqraftx.html