Android启动流程

“当按下手机开机键的时候,究竟发生了什么”

总览

Android的启动流程是一个非常复杂的流程,如果有什么遗漏,还望多多指教。这里简单说下基本的流程:

(1)当按下手机的开机键的时候,引导芯片代码从与预定以(固化在ROM)的地方开始执行。加载Bootloader到RAM中执行。

(2)BootLoader主要用来拉起操作系统OS。

(2)Linux内核启动,寻找init.rc文件。

(3)启动init进程,开启属性服务,通过init进程启动Zygote进程。

(4)通过Zygote进程启动SystemServer进程,从而开启了Android世界的大门。

有这么一个比较形象的比喻:盘古(Linux内核)开天辟地之后,世界上诞生了女娲(init进程),女娲觉得自己很孤独,想着弄个人出来陪伴自己,于是捏了个人,亚当就这样诞生了(Zygote进程),时间长了,亚当觉得和妈妈在一起有些无聊了,就用自己的肋骨创建出了夏娃(SystemServer),于是新世界诞生了。

init进程

先从init进程说起,也就是上图中的进程号为1的进程。作为第一个进程,它被赋予及其重要的职责。启动属性、创建Zygote进程、挂载文件系统等等。

下图中描绘了init的启动流程以及如何启动Zygote进程(参考Android8.0)。未完待续。
在这里插入图片描述

公众号

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/helloworlddm/article/details/106304131