关于App启动速度优化

冷启动、热启动

冷启动:App启动前,它的进程不在系统里,系统新创建一个进程分配给它启动;
热启动:App冷启动后,将App退至后台,App进程还在系统里的情况下,用户重新进入App的过程;

App启动干了什么?如何优化?

  • main()函数执行前
    -加载可执行文件(.o);
    -加载动态链接库,bind符号绑定等;
    -运行时初始化,Objc相关类的注册,分类的注册;
    -执行+load()方法,attribute修饰的函数的调用,创建C++静态全局变量;
    优化:--减少动态库加载,如果使用动态库较多,可以将多个动态库进行合并;
    --减少启动后不会调用的方法;
    --+load()方法里面的内容放到首屏渲染完成后执行,或使用+initialize()代替;
    --控制C++全局变量的数量;
  • main()函数执行后(即main函数开始到appdelegate方法didfinish执行)
    -首屏初始化所需配置文件和读写操作;
    -列表数据读取;
    -首屏渲染计算,基本是渲染首屏的操作;
    优化:区分哪些是app启动后必须初始化的功能,哪些是对应功能开始使用时才需要初始化的,将这些初始化放到合适的阶段调用;
  • 首屏渲染完成后
    渲染完成后,就可以看到首页页面,一般就是其他业务基础功能的初始化,监听注册等; 这个阶段的优化一般就是整体的优化,包括功能、方法实现等;

今天就到这~

你可能感兴趣的:(关于App启动速度优化)