Android系统启动流程

Android启动流程
在这里插入图片描述

1,启动BootLoader:
长按电源键,引导芯片启动,引导芯片从ROM中预设的引导程序开始执行,加载引导程序到RAM,BootLoader检查RAM、初始化硬件参数,初始化环境,最终将系统OS拉起并运行。
2,加载系统内核:
等硬件初始化完成后,进入Kernel空间,在Kernel层主要做一些加载硬件驱动,初始化进程管理等操作。首先启动Swapper进程(pid=0),用于初始化进程管理、内存管理、加载驱动等。再启动kthread进程(pid=2),这是linux内核进程,是所有内核进程的鼻祖。
3,启动init进程:
在kernel层加载完毕后,硬件设备驱动会与HAL层交互,初始化进程管理等操作会启动init进程(pid=1),也可以称为root进程,这是第一个用户进程,此时已经进入用户空间(Native层),Android所有进程都是init进程创建的。Init.rc是一个配置文件,文件中记录着init进程需要执行的操作,是Init进程启动后的执行脚本。Init进程会启动一系列的守护进程和各种服务进程。
4,Zygote进程:
由init进程启动,zygote是Android最重要的进程之一,后续所有应用进程都是由zygore进程fork出来,因此它是Android所有应用进程的父进程,它会加载虚拟机、启动SystemServer进程(zygote启动的第一个进程),SystemServer进程的作用就是启动各种系统服务并管理它们(包含三大类:引导服务、核心服务、其他服务)。Zygote进程还会注册Android系统框架JNI调用到虚拟机中。
5,Launcher进程:
zygorte也会启动APP进程,Launcher进程就是由zygote启动的第一个APP进程,Launcher进程是桌面启动进程。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值