这篇文章主要介绍“Android系统的启动流程”,在日常操作中,相信很多人在Android系统的启动流程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android系统的启动流程”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1. 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系统的启动流程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。