Android 系统启动流程

Android系统的启动流程如下图 (点击查看大图) 所示:

 Loader/层


1.当手机处于关机状态时,长按电源键开机,引导芯片开始从固化在Boot ROM里的预设代码开始执行,然后加载引导程序Boot Loader到RAM。
2.Boot Loader被加载到RAM之后开始执行,该程序主要完成检查RAM,初始化硬件参数等功能.


Kernel层


3.引导程序之后进入Android内核层,先启动swapper进程 (idle进程),该进程用来初始化进程管理、内存管理、加载Display、Camera Driver、Binder Driver等相关工作swapper进程之后再启动kthreadd进程,该进程会创建内核工作线程kworkder、软中断线程ksoftirad

4.thernal等内核守护进程,kthreadd进程是所有内核进程的鼻祖


Native层


5.接着会启动init进程,init进程是所有用户进程的鼻祖,它会接着孵化出ueventd、logd、healthd、installd.adbd、lmkd等用户守护进程,启动ServiceManager来管理系统服务,启动Bootnaim开机动画。

6.init进程通过解析init.rc文件fork生成Zygote进程,该进程是Android系统第一个Java进程,它是所有Java进程父进程,该进程主要完成了加载Zygotelnit类,注册Zygote Socket服务套接字;加载虚拟机;预加载Class; 预加载Resources。


Framework


7.init进程接着fork生成Media Server进程,该进程负责启动和管理整个C++ Framwork (包含AudioFlinger.Camera Service等服务)

8.Zygote进程接着会fork生成System Server进程,该进程负责启动和管理整个Java Framwork (包含ActivityManagerService、WindowManagerService等服务)。


App层


Zygote进程孵化出的第一个应用进程是Launcher进程(桌面),它还会孵化出Browser进程 (浏览器)Phone进程(电话)等。我们每个创建的应用都是一个单独的进程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值