参考链接:
引言
Google官方提供的经典分层架构图,从下往上依次分为Linux内核、HAL、系统Native库和Android运行时环境、Java框架层以及应用层这5层架构,其中每一层都包含大量的子模块或子系统。
这幅图很清晰的展现了Android系统从下往上的层次关系,这种关系恰好也是整个系统启动大过程的缩影。
init是Linux系统中用户空间的第一个进程,要搞清楚Android的启动过程,我们先来看一下Linux系统的启动过程。
Linux启动过程
第一步:加载内核
操作系统接管硬件以后,首先读入 /boot 目录下的内核文件
第二步:启动初始化进程
内核文件加载以后,就开始运行第一个程序 /sbin/init,它的作用是初始化系统环境。
由于init是第一个运行的程序,它的进程编号(pid)就是 1。其他所有进程都从它衍生,都是它的子进程。