Android Framework的启动过程

Android框架揭秘》笔记

Android启动过程包含从Linux内核加载到Home应用程序启动的整个过程。

1. Linux内核

Android启动时首先通过bootloader加载Linux内核。启动Linux内核将挂载根文件系统,然后初始化系统环境,最后启动init进程(第一个进程),完成启动。

2. init进程

init进程对各种设备进行初始化(??), 解析init.rc脚本,运行Android Framework所需要的各个Daemon、Context Manager、Media Server以及Zygote等

1) Context Manager提供Android各种系统服务相关的信息,系统启动时所有系统服务都要把各自的handle注册到Context Manager。

2) Meida Server 用于运行本地系统服务,如Camera等。

3) Zygote进程用于缩短Android应用程序加载时间。每当启动Java应用程序时,Zygote就会fork 一个子进程来执行Java程序。

3. System Server

System Server是Android系统中的一个核心进程,它由Zygote进程创建。 System Server 建立Android中的大部分服务,如Activity Manager Service、Location Manager Service(这些服务会注册到Context Manager当中,提供给app或Framework调用)

4. Home

System Server启动服务后, 将在Activity Manager Service的回调方法systemReady()方法中启动第一个应用程序Home

参考:

http://www.linuxidc.com/Linux/2011-04/33966p8.htm

http://www.2cto.com/os/201109/103386.html

猜你喜欢

转载自410063005.iteye.com/blog/1750022