Android的启动流程为:Boot Rom -> Boot Loader -> Linux Kernel -> Init -> Zygote -> SystemServer -> Launcher
BootLoader层
1)Boot Rom是嵌入处理器芯片内的一小块掩模ROM或写保护闪存。它包含处理器在上电或复位时执行的第一个代码。根据某些带式引脚或内部保险丝的配置,它可以决定从哪里加载要执行的代码的下一部分以及如何或是否验证其正确性或有效性。
2)Boot Loader(加载引导程序)负责查找和加载应该在芯片上运行的最终操作系统或固件。与Boot Rom的一个主要区别是它通常在可写闪存中,可以更换或升级。
(注:ROM和RAM都是一种存储技术,只是两者原理不同,RAM为随机存储,掉电不会保存数据,而ROM可以在掉电的情况下,依然保存原有的数据。 … 本来的含义是:ROM是Read Only Memory的意思,也就是说这种存储器只能读,不能写。 而RAM是Random Access Memory的缩写。)
Kernel层
Android平台的基础是Linux内核,比如ART虚拟机最终调用底层Linux内核来执行功能。Linux内核的安全机制为Android提供相应的保障,也允许设备制造商为内核开发硬件驱动程序。