9-3一个App从点击图标,到程序启动,运行,最后到退出,系统发生了什么?
来源:9-3 RunLoop事件循环机制相关面试问题

lsyyyy
2019-03-13
老师说的那个是match point吗,不太确定
答案:我们调用了main函数之后,会调用UIApplicationMain函数,在函数内部会启动主线程runloop,经历了一系列的处理,最终主线程runloop处于休眠状态,此时我们点击屏幕,会产生match point,基于match point,最终会转成一个source1,把主线程唤醒运行处理,最后当我们把程序杀死,会发生runloop的退出,此时会发送通知,即将退出runloop,runloop退出之后,线程也就销毁掉了。
写回答
2回答
-
慕函数8714826
2021-06-18
先进行编译,加载.h.m等文件,然后进行预编译,将文件生成.i文件,进行编译,将.i文件转化成汇编语言文件.s文件,然后进行汇编,生成mach-o文件。然后开始启动app,系统开启一个进程,加载mach-o文件,得到dyld的路径,加载dyld到进程里,然后递归加载所依赖的动态库,包括系统的和依赖的第三方的。然后进行rebase指针的调整,bind符号绑定。然后初始化runtime,注册class,catecory等,调用每个类的load函数,然后寻找main函数的入口,执行main函数,开启主线程的runloop。执行到appdelegate里面。
00 -
于海
2019-03-15
你说的大致上是没问题的,点击app图标之后main之前发生了很多事,可比如动态链接器做程序可执行文件的加载 启动runtime 初始化libdispatch等等
00
相似问题