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

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.kler.cn/a/555211.html

相关文章:

  • 在win11 中 whisper-large-v3-turbo 的简单使用
  • java后端开发day16--字符串(二)
  • 【找工作】C++和算法复习(自用)
  • PHP+Apache+MySQL安装(Windows)
  • 从0开始的AI大模型学习---ollama+amd显卡本地化部署deepseek-r1
  • vue3 input type=“file” 修改样式
  • pdf转换成word在线 简单好用 支持批量转换 效率高 100%还原
  • Windows下Docker Compose使用教程
  • 游戏引擎学习第114天
  • java毕业设计之医院门诊挂号系统(源码+文档)
  • Redis-03高级篇中-多级缓存:
  • RK3588配置成为路由器
  • 网络初始2:网络编程--基于UDP和TCP实现回显器
  • Python中常见库 PyTorch和Pydantic 讲解
  • [Linux]——进程控制(中)
  • SpringSecurity基于配置方法控制访问权限:MVC匹配器、Ant匹配器
  • 【git】提交修改、回撤、回滚、Tag 操作讲解,与reset (--soft、--mixed、--hard) 的区别
  • ArkTS与ArkUI深度解析:鸿蒙应用开发的未来之路
  • Aseprite绘画流程案例(1)——画相机图标
  • Linux-C/C++《C++/1、C++基础》(C++语言特性、面向对象等)