1. Linux内核。
Android是基于Linux内核的系统平台,启动的时候,首先通过bootloader,加载Linux内核。在Linux加载启动的时候,与普通的Linux启动过程相同,先初始化内核,然后调用init 进程。
2. init。
Android init进程对各种设备进行初始化,运行Android Framework所需用的各种Daemon、Context Manager、Media Server、Zygote等。
以下是init进程执行的Daemon进程。
- USB Daemon(usbd):管理USB链接。
- Android Debug Bridge Daemon (adbd):Android Debug Bridge链接管理。
- Debugger Daemon(debuggerd):地宫Debugger系统。
- Radio Interface Layer Daemon(rild):管理无限通信链接。
3. Context Manager
Context Manager是一个管理Android系统服务的重要进程。系统服务是组成Android Framework的重要组件,提供从相机、音频、视频处理到各种应用程序制作所需要的重要API。
Context Maneger提供运行与ANdroid内的各种系统服务信息。应用程序或Framework内部模块在调用系统服务的时候,需要先想服务管理器申请,然后通过Binder IPC调用系统服务。
在启动的时候,Android所有系统服务都要把各自的handler信息注册到COntext Manager,此时BinderIPC用来进行进程间的通信。
4. Media Server
Media Server用于运行基于C/C++的本地系统服务,如Audio Flinger(负责音频输出),Camera等。
5. Zygote
Zygote进程用于缩短ANdroid应用程序加载的时间,每当执行Java应用程序的时候,Zygote就会派生出一个紫禁城来执行应用程序,改紫禁城就是用来执行Java应用程序的虚拟机。
6. System Server
System Server是Android系统的几个核心进程,他是由Zygote进程创建的,在Android启动过程中位于Zygote之后。在System Server中可以看到它简历的Anroid中的大部分服务。如Activity Manager Service,Location Manager Service等。
关于Android启动过程
最新推荐文章于 2024-04-08 13:51:52 发布