Android系统启动笔记
-
启动电源以及系统启动:当电源按下时引导芯片从预定义的地方(固化在ROM)开始执行,加载引导程序BootLoader到RAM,然后执行。
-
引导程序BootLoader:BootLoader是在Android系统开始运行前的引导程序,主要用于把系统OS拉起来并运行。
-
Linux内核启动:当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当其完成系统设置时,会先在系统文件中寻找init.rc文件,并启动init进程。
-
init进程启动:初始化和启动属性服务,并且启动Zygote进程。
-
Zygote进程启动:创建JVM并为其注册JNI方法,创建服务器端Socket,启动SystemServer进程。
-
SystemServer进程启动:启动Binder线程池和SystemServiceManager,并且启动各种系统服务 (例如:AMS(ActivityMannagerService)、PackageManagerService、CremaService、BluetoothService等) 。
-
Launcher启动:被SystemServer进程启动的AMS会启动Launcher,(AMS会在PMS启动结束后的回调启动Launcher) Launcher启动后会将已安装应用的快捷图标显示到系统桌面上。
《Android进阶解密》-刘望舒