关于App启动速度优化

冷启动、热启动

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

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

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

今天就到这~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近在做一款陌生人社交的软件,市场上这类软件都是大同小异。为了能让产品比竞品更具竞争力,做为开发者,除了完成来自产...
    码代码的小马阅读 2,405评论 0 1
  • 前言:本文简单描述APP启动过程和监控,一些深入原理性的东西可能需要绕路了,站在大神的肩膀上,简单总结跟APP启动...
    梦蕊dream阅读 8,079评论 1 14
  • 背景 一个项目做的时间长了,启动流程往往容易杂乱,库也用的越来越多,APP的启动时间也会慢慢变长。本次将针对iOS...
    酱油瓶2阅读 8,840评论 0 12
  • 1. App的启动分为三个主要阶段: main()函数执行前 main()函数执行后(从main函数执行,到设置s...
    冰风v落叶阅读 12,342评论 13 55
  • 我是让时间 冲淡我对你的感情 还是让它 证明我的真诚 我不知道 时间知道 可也许 我知道 时间却不一定知道 爱你 ...
    施小龙阅读 2,929评论 0 6