Android 启动流程分析

流程

上电:按下开机键,硬件电路在CPU芯片复位引脚上产生复位脉冲,CPU从 固定ROM中读取BIOS程序。

加载boot loader:Bios程序会去固定的位置查找引导程序,并加载到内存。然后跳转到内存中引导程序的首地址,执行引导程序。
加载linux内核:引导程序会从指定位置加载Linux内核程序到内存,并初始化系统运行环境,然后跳转到内核代码程序。
StartKernel:启动kernel程序,初始化系统内核,创建参与内核管理的线程,并创建init进程(用户进程,PID=1)。
Init进程创建Zygote和加载property service
Zygote创建dalvik虚拟机,并注册JNI函数。然后通过JNI调用java层的main方法。在java空间创建System Server进程。
System Server创建系统必要的一些服务,AMS、WMS、Surface Flinger等,然后Service Server进入阻塞态。
AMS调用systemReady(),创建出Android第一个应用程序,Home Activity。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值