本文主要简单总结下Android系统启动过程。
首先看下别人总结系统启动过程图,图来自博客。
第一步:设备芯片ROM上写好了上电后代码执行的地方,会在ROM上查找boot loader执行的地址。
第二步:boot loader执行,完成硬件的初始化,寻找Linux kernel的地址。
第三步:kernel执行,初始化各种软硬件环境,加载驱动程序,挂载根文件系统,并启动第一个用户空间的进程init进程。
第四步:从init进程开始,是Android系统启动重点分析的对象。
init 进程主要完成工作有:
创建与挂在系统目录,包括/dev, /proc, /sys等;
根据init.rc 系统启动脚本启动一系列服务和进程。
由init进程启动的启动的进程包括:
一些守护进程,例如vold,debuggerd,installd等;
service_manager进程,此进程统一管