在分析 Init 进程的启动流程前,我们先来看一下Android系统开机启动流程,经历了哪些关键的步骤,Init 进程时从哪里开始被启动的。
当电源按下时引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序Bootloader到RAM,然后执行。
引导程序是在Android操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行。
内核kernel启动时,设置缓存、被保护存储器、计划列表,加载驱动。当内核完成系统设置,它首先在系统文件中寻找”init”文件,然后启动root进程或者系统的第一个进程。
Init 进程作为 Android 系统中用户空间的第一个进程,它在整个Android系统中扮演了重要的角色,比如负责启动servicemanager(binder 服务管家)、创建 Zygote 进程(Java 进程的鼻祖)、启动属性服务、初始化 Selinux等。