Android系统启动流程

news/2024/9/17 3:40:56

在Android中系统的启动流程是一个经常会被问到的问题,那么下面我们通过一张图来说明一下

 从上面的图片中可以看到它的一个启动流程.

1.BootLoader

  首先,当我们点击电源开关后,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行,
这时执行的就是BootLoader,它会去初始化硬件 映射内存等,完成上面操作后就好加载并启动内核(kerner)

2.kernel

  kernel启动后,会去初始化各种软硬件环境,加载驱动程序,挂载根文件系统……,完成上面工作后回去寻找init文件,并执行这个文件来启动init进程

其实就是system\core\init\init.c文件的main方法

3.init进程

  init进程是系统第一个进程,进程ID为1,它主要有两个作用,

  1.挂载目录,比如/sys、/dev、/proc等,

  2.解析并运行init.rc配置文件,根据配置文件启动各种系统服务,Zygote,ServiceManager, surfaceFlinger,MediaServer等

  init.rc中的Zygote配置如下: (system/core/rootdir/init.rc)

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server

4.Zygote进程

  Zygote进程主要包含两大模块,

    socket服务端:用于接收启动新的Dalvik进程命令

    共享资源和类:共享类是在preload-classes文件中定义的,共享资源是在preload-resources文件中定义。Zygote装载好了这些类和资源后,新的Dalvik进程就不需要在装载这些类和资源

  Zygote启动分为两个阶段,

    启动虚拟机:

    启动system_Server服务: 加载共享资源,注册Zygote socket监听,启动system_server进程,进入循环监听模式,最好退出Zygote监听

启动系统服务

  在system_server进程中会启动一些其它的系统服务,包括电源管理,Activity管理,AWS PWS 等等.

启动laucher

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31997.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Linux-文件特殊权限

day13今日安排默写昨日作业讲解文件权限篇综合知识脑图特殊权限(了解)linux提供的12个特殊权限 默认的9位权限 rwx rwx rwx还有三个隐藏的特殊权限,如下 suid 比如 /usr/bin/passwdsgidsbit 特殊权限对照表类别 suid sgid sticky字符表示 S S T出现位置 用户权限位x 用户组…

Golang初学:文件操作,标准库

go version go1.22.1 windows/amd64 Windows 11 + amd64 x86_64 x86_64 GNU/Linux ---序章 读取文件内容,写入新文件(可能存在、也可能不存在)。相关标准库io fs os path filepath Show Code func CopyFile() {// 测试文件拷贝var fsrc, fdst stringvar start time.Timefsr…

OpenPCDet训练自定义数据

官网也提供了步骤,这里详细介绍下训练自己数据的过程以及中间遇到的一些问题。训练模型这里采用PointRCNN,具体的介绍参考:https://www.cnblogs.com/xiaxuexiaoab/p/18033887 一、准备数据集 数据集这一块我们需要准备好原始点云数据、物体目标标注文件、以及训练和验证对应…

PPO-KL散度近端策略优化玩cartpole游戏

其实KL散度在这个游戏里的作用不大,游戏的action比较简单,不像LM里的action是一个很大的向量,可以直接用surr1,最大化surr1,实验测试确实是这样,而且KL的系数不能给太大,否则惩罚力度太大,action model 和ref model产生的action其实分布的差距并不太大import gym impor…

steam发行问题

非常重要,最新steam营销推广 https://store.steampowered.com/news/group/4145017/view/4191238396458987547

软件设计模式概念篇

创建型模式 1、创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。 2、为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不需要清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。…

mysql中explain命令详解

前言 我们可以使用 explain 命令来查看 SQL 语句的执行计划,从而帮助我们优化慢查询。 使用注意:使用的 mysql 版本为 8.0.28数据准备 CREATE TABLE `tb_product2` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT 商品ID,`name` varchar(20) DEFAULT NULL COMMENT 商品名称,`…

vasp极化计算

为什么我算一个结构,理论上应该是右极化态的,为什么只有离子极化,没有电子极化?是铁电相构建有问题还是计算的数据有问题?