美文网首页
iOS APP启动时间优化

iOS APP启动时间优化

作者: ios小蜗牛 | 来源:发表于2020-05-26 14:52 被阅读0次

    APP启动分为冷启动和热启动。

    冷启动:App 点击启动前,它的进程不在系统里,需要系统新创建一个进程分配给它启动的情况。

    热启动:App 在冷启动后用户将 App 退后台,在 App 的进程还在系统里的情况下,用户重新启动进入 App 的过程。

    冷启动分两个阶段。

    第一个阶段:程序启动到main函数。

    第二个阶段:main函数到显示第一个界面。

    第一个阶段做了什么?

    1.加载可执行文件。

    2.加载动态链接库。

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

    4.初始化,包括了执行 +load() 方法、创建 C++ 静态全局变量。

    如何优化第一阶段?

    1.减少动态库加载。

    2.减少加载启动后不会去使用的类或者方法。

    3.+load() 方法里的内容可使用 +initialize() 方法替换掉。因为在一个 +load() 方法里,进行运行时方法替换操作会带来 4 毫秒的消耗。

    4.控制 C++ 全局变量的数量。

    第二个阶段做了什么?

    1.运行appDelegate中didFinishLaunchingWithOptions里面的代码。

    2.执行首页初始化所需配置文件的读写操作。

    3.首页数据的读取和计算。

    如何优化第二阶段?

    1.少在didFinishLaunchingWithOptions里做操作。

    2.如果不是必要的操作,就放在第一页面加载完毕之后在做,如果是必要的耗时操作,就用子线程的方式去做。

    相关文章

      网友评论

          本文标题:iOS APP启动时间优化

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