上电:按下开机键,硬件电路在CPU芯片复位引脚上产生复位脉冲,CPU从 固定ROM中读取BIOS程序。
加载boot loader:Bios程序会去固定的位置查找引导程序,并加载到内存。然后跳转到内存中引导程序的首地址,执行引导程序。
加载linux内核:引导程序会从指定位置加载Linux内核程序到内存,并初始化系统运行环境,然后跳转到内核代码程序。
StartKernel:启动kernel程序,初始化系统内核,创建参与内核管理的线程,并创建init进程(用户进程,PID=1)。
Init进程创建Zygote和加载property service
Zygote创建dalvik虚拟机,并注册JNI函数。然后通过JNI调用java层的main方法。在java空间创建System Server进程。
System Server创建系统必要的一些服务,AMS、WMS、Surface Flinger等,然后Service Server进入阻塞态。
AMS调用systemReady(),创建出Android第一个应用程序,Home Activity。