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

相关推荐
Cutecat_1 天前
视频字幕处理工具横向:提取模式 vs 编辑模式,该如何选择
android·前端·ios·语音识别
大熊猫侯佩1 天前
WWDC26 SwiftUI 进化之路:砸碎黑盒,彻底迎来开发自由!
ios·swiftui·swift
游戏开发爱好者81 天前
iPhone真机调试有哪些方法?一次定位推送权限问题时整理出来的几种方案
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
大熊猫侯佩2 天前
WWDC26 最被忽视的王炸:告别“伪并发”陷阱,Swift 6.4 的 async defer
ios·swift·编程语言
h-189-53-6712072 天前
苹果开发者账号防关联3.2f隔离环境传包提审iOS开发上架的高效隔离方案:iOSUploader工具实用解析
ios·ios上架·ios审核·苹果审核·苹果开发者账号·苹果开发者封号
Legendary_0082 天前
LDR6020P:iPad 一体式皮套键盘 OTG 应用的核心引擎
ios·计算机外设·ipad
Digitally2 天前
如何高效地将文件从电脑传输到 iPad:6 种简单方法
ios·电脑·ipad
萤萤七悬3 天前
【Python笔记】AI帮封装Airtest IOS-WDA touch操作时的factor坐标转换
笔记·python·ios
库奇噜啦呼3 天前
【iOS】源码学习-锁的原理
学习·ios·cocoa