Android系统的启动流程

这篇文章主要介绍“Android系统的启动流程”,在日常操作中,相信很多人在Android系统的启动流程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android系统的启动流程”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联专注于企业成都营销网站建设、网站重做改版、桃源网站定制设计、自适应品牌网站建设、H5响应式网站商城建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为桃源等各大城市提供网站开发制作服务。

1. Android 系统启动流程示意图

Android系统的启动流程

启动过程: Loader -> Kernel -> Native -> Framework -> App 。

2. Android 系统启动过程

Loader

Loader 层执行过程分为两步:

1. Android 设备上电以后,引导芯片执行固化在 Boot ROM 里的启动引导代码,加载 Boot Loader 代码到内存;

2. Boot Loader 代码开始执行,检查 RAM ,完成硬件的初始化,加载Linux内核代码到内存。

Kernel

Linux 内核开始启动,初始化各种软硬件环境,加载驱动程序,挂载根文件系统,执行init程序。

Native

1. init 进程 fork 出 logd 、 healthd 、 installd 、 adbd 等用户守护进程;

2. 启动 ServiceManager 和 MediaServer(本地服务);

3. fork 出 Zygote 进程,Zygote 进程是所有 Java 进程的父进程。

Framework

Framework 层由 C++ Framework 层和 Java Framework 层组成。

  • C++ Framework 层

C++ Framework 层主要运行本地服务,即 MediaServer 进程,它是由 init 进程 fork 而来,负责启动和管理整个 C++ framework ,包含 AudioFlinger ,Camera Service 等服务。

  • Java Framework 层

Java Framework 层主要运行 SystemServer 进程,SystemServer 进程是 Zygote 进程 fork 出的第一个 Java 进程,SystemServer 负责启动和管理 Java Framework ,主要管理 Android 服务,如 ActivityManagerService ,NotificationManagerService ,WindowManagerService 等,它们均以线程的方式运行在 SystemServer 进程中。

App

Zygote 进程 fork 出来的第一个 App 进程是 Launcher ,即桌面 App ,所有的 App 进程都是由 Zygote 进程 fork 生成的

到此,关于“Android系统的启动流程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章题目:Android系统的启动流程
文章来源:http://myzitong.com/article/jsohce.html