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
更多相关文章
- android系统框架()
- Android init进程——属性服务
- android 进程间通信使用aidl和Messenger类
- windows系统Android模拟器安装apk
- Android用户apk如何获得系统(system)权限
- Android 学生管理系统 之 SQLite数据库操作
- Android 系统稳定性之ANR
- Android中杀进程的几种方法 (1) - killBackgroundProcesses
- Android编译系统详解