当前位置: 首页 > news >正文

ios App的启动过程和启动优化

App的启动

app的启动主要分为两种:冷启动和热启动

冷启动

冷启动的意思就是app不在系统进程中,需要操作系统为其开启一个新的进程

热启动

热启动指的是,App只是短暂退出,后台进程还在系统中,不需要开启新的进程。

冷启动的过程

App的启动冷启动主要分为三个阶段:

(1)main函数执行之前

在main函数执行之前主要做的事情:

首先ios会在内核中创建进程分配内存,然后:

(1)读取加载可执行文件

(2)加载动态链接库:主要包括重定基地址(Rebase指针的调整)和bind符号

(3)OC运行时的初始化,包括OC相关Class的注册,category注册,selector的唯一性检查。

(4)初始化+load方法等

(2)main函数执行之后

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

设置的就是首屏渲染相关的方法,主要包括:

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

·首屏列表大量数据的读取

·首屏渲染的大量计算

(3)首屏渲染完成后

从渲染完成时开始,到 didFinishLaunchingWithOptions 方法作用域结束时结束。

启动的优化

(1)在main方法之前减少使用+load方法,在OC中将load内容放到渲染完成之后做,使用initialize方法代替+load(load方法在main调用前就会调用,+initialize方法只会在第一次调用时使用)

(2)合并多个动态库

(3)优化类、方法、全部变量

(4)main函数开始执行后到首屏渲染完成前只处理与屏幕相关的业务,其他非首屏业务的初始化、坚挺注册、配置文件读取等都放到首屏渲染完成后去做。

http://www.dtcms.com/a/29442.html

相关文章:

  • nlp|微调大语言模型初探索(3),qlora微调deepseek记录
  • IP组播基础
  • VSCode自定义快捷键和添加自定义快捷键按键到状态栏
  • **ARM Cortex-M4** 和 **ARM Cortex-M7* 运行freeRTOS
  • Linux系统资源监控:全面掌握目录、文件、内存和硬盘使用情况
  • 如何在本地和服务器新建mysql用户和密码
  • MATLAB学习之旅:数据插值与曲线拟合
  • 【Cadence射频仿真学习笔记】Pcell Designer设计电感学习笔记
  • Java集合框架之List接口详解
  • linux5-多任务--进程fork()
  • 自动化测试中如何高效进行元素定位!
  • 第1章 快速认识线程
  • 人工智能 - 脑机融合:人类脑组织操控机器人,具身智能时代的革命性突破
  • 拥抱健康生活,开启养生之旅
  • 分布式数据库:架构演进、核心挑战与行业落地实践
  • SpringSecurity初始化的本质
  • Stream流简单使用
  • 第三章:前端技术栈与性能关联
  • 设计模式--访问者模式【行为型模式】
  • A000目录
  • 【C】识别一份嵌入式工程文件
  • Qt 保留小数点 固定长度 QString 格式化
  • npm在install时提示要安装python问题处理
  • python:多重继承、MRO(方法解析顺序)
  • [问题处理]BCLinux您的授权码是无效的,请获得正确授权码
  • 从传统到轻量级5G:网络架构演变与优化路径
  • 讯飞唤醒+VOSK语音识别+DEEPSEEK大模型+讯飞离线合成实现纯离线大模型智能语音问答。
  • C++笔记之标准库中的std::copy 和 std::assign 作用于 std::vector
  • mongoose和lwip有啥区别
  • 基于SpringBoot+Vue癌症患者交流平台的设计与实现