Android系统的启动流程

Android系统的启动分为三个阶段:

第一阶段:BootLoader引导

当我们按下开机键的时候会通过一段引导程序启动,BootLoader就是为操作系统启动之前做的准备,初始化硬件设备以及给内核传递必要的数据。

第二阶段:linux内核启动

由引导程序初始完硬件设备后便开始触发linux内核启动。linux内核初始化完成之后开始加载Android系统。

Android系统的启动流程_第1张图片

第三阶段:Android系统启动即ramdisk.img与system.img

Android的启动过程是从进程init开始的,所以它是后续所有进程的祖先进程。(system/core/init)init进程根据脚本建立起几个基本服务,其中就包括Zygote进程。

Zygote进程奠定了Android系统的基础,Zygote进程启动之后才建立起了Android真正的运行空间。

     Andriod系统中的进程分为两种:App进程和运行系统服务的System进程。这些进程都是由Zygote进程创建的(Zygote进程通过复制自身创建),所以Zygote又被称为孵化器。Zygote进程在启动的时候会在内部创建一个虚拟机实例,所以Zygote进程创建的进程可以很快的从内部获取一个虚拟机实例拷贝。

   Zygote进程启动完之后会立即启动System进程,这些进程包括:ActivityMangerService、ContentService、WindowManagerService、PackageManagerService等。Zygote建立好了,利用Socket通讯,接收ActivityManangerService的请求,Fork应用程序。

以上就是Android系统的启动过程。

面试题:Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?

dvm就是Dalivk虚拟机,每个应用程序都运行在自己的进程中,都有一个独立的Dalivk虚拟机实例。每个DVM都是Linux中的一个进程。所以可以认为是同一个概念。

 

                                                                                                                                                

你可能感兴趣的:(Android系统的启动流程)