上电:按下开机键,硬件电路在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。
本文详细介绍了Android设备从按下开机键到显示主屏幕的过程。包括硬件复位、BIOS加载bootloader、Linux内核启动、SystemServer创建核心服务及HomeActivity的启动流程。

被折叠的 条评论
为什么被折叠?



