美文网首页工作生活
iOS App 启动都干了哪些事儿

iOS App 启动都干了哪些事儿

作者: Vergil_wj | 来源:发表于2019-07-03 12:28 被阅读0次

    App 启动我们指的是从用户点击 App 开始,到用户看到第一个界面这个阶段。总结来说,App 的启动主要包括三个阶段:

    1、main() 函数执行前;

    2、main() 函数执行后;

    3、首屏渲染完成后;

    main() 函数执行前

    在 main() 函数执行前,系统主要会做下面几件事情:

    • 加载可执行文件(App 的 .o 文件的集合);

    • 加载动态链接库,进行 rebase 指针调整和 bind 符号绑定;

    • Objc 运行时的初始处理,包括 Objc 相关类注册、category 注册、selector 唯一性检查等;

    • 初始化,包括了执行 +load() 方法、attribute((constructor)) 修饰函数的调用、创建 C++ 静态全局变量;

    main() 函数执行后

    main() 函数执行后的阶段,指的是从 main() 函数执行开始到 appDelegate 的 didFinishLaunchingWithOptions 方法里首屏渲染相关方法执行完成。

    首页的业务代码都是要在这个阶段,也就是首屏渲染前执行的,主要包括了:

    • 首屏初始化所需要配置文件的读写操作;

    • 首屏列表大数据的读取;

    • 首屏渲染的大量计算等;

    首屏渲染完成后

    这个阶段主要主要指的是非首屏其他业务服务模块的初始化、监听的注册、配置文件的读取等。从函数上来看,这个阶段指的就是截止到 didFinishLaunchingWithOptions 方法作用域内执行首屏渲染之后的所有方法执行完成。简单来说,这个阶段指从渲染完成时开始,到 didFinishLaunchingWithOptions 方法作用域结束时结束。

    这个阶段用户已经能够看到 App 的首页信息了,所以优化的优先级排在最后。但是,那些会卡主主线程的方法还是需要最优先处理的,不然还是会影响到用户后面的交互操作。

    参考资料:

    iOS 开发高手课 -- 戴铭

    相关文章

      网友评论

        本文标题:iOS App 启动都干了哪些事儿

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