Android Framework的启动过程

本文深入解析了Android系统从Linux内核加载到Home应用程序启动的全过程,包括Linux内核的加载、init进程的作用、ContextManager、MediaServer、Zygote进程以及SystemServer的核心作用,以及Home应用程序的启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值