Android系统的启动流程

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

第一阶段:BootLoader引导

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

第二阶段:linux内核启动

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

第三阶段: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中的一个进程。所以可以认为是同一个概念。

 

                                                                                                                                                

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值