iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 系统的分区介绍
  • 255
分享到

Android 系统的分区介绍

linuxandroid车载系统 2023-09-02 10:09:35 255人浏览 独家记忆
摘要

由于Android系统采用linux架构,所以Android的系统分区可以类比同样采用Linux架构的操作系统(如windows)。 Android系统分区分类 现在一般常见的Android分区方式共有三种,在不同的Android系统版本上

由于Android系统采用linux架构,所以Android的系统分区可以类比同样采用Linux架构的操作系统(如windows)。

Android系统分区分类

现在一般常见的Android分区方式共有三种,在不同的Android系统版本上会采用不同的分区方式。

传统分区(non-A/B分区)一般常见于Android10及以下的手机

A/B分区(部分机型会存在,是两种更常用机型的过渡阶段)

virtual A/B分区(VA/B)

  1. modem分区,主要是手机短信的通讯模块;
  2. bootloader分区,主要用于线刷;
  3. recovery分区,只有用于普通刷机;
  4. boot分区,用于启动;
  5. system分区,系统分区;
  6. data分区,用户分区;
  7. cache分区:存储使用过程中的缓存数据
  8. vendor:包含有厂商私有的可执行程序、库、系统服务和app等。可以将此分区看做是system分区的补充,厂商定制ROM的一些功能都可以放在此分区。
modem分区
bootloader分区
recovery分区
boot分区
system分区
data分区
cache分区

双清就是指对data分区和cache分区进行清理。

boot分区:由 kernel 和 ramdisk 构成。存放BootLoader程序,起开机启动和引导作用,是手机接通电源后跑通的第一个程序。他的下级kernel(内核)分区,负责扩充操作系统(如Android OS,MIUI)的功能,负责管理设备硬件调度,系统进程,设备内存等,维持操作系统的稳定性。boot分区另一下级ramdisk(虚拟内存)分区,该分区存放一些kernel分区运行必须的驱动,让内核率先跑通虚拟的文件系统,再通过ramdisk分区中的驱动,跑通真正的文件系统(有点拗口,简而言之就是真正文件系统的临时替代品)。要注意的是ramdisk分区的实际数据存储于RAM中。那么当boot分区损坏时,导致BootLoader程序没法跑通,故卡在开机第一屏(卡米)。当然当我们修改CPU调度或者给GPU超频时,也需要修改boot分区的文件。

system分区:这个分区包含了整个操作系统除 kernel 和 ramdisk 之外的其它部分,包括 Android UI 和设备上预装的 APP。删除这个分区只会同步将 Android 系统从设备上卸载掉,而不会导致设备不能重启,因此你依然可以顺利让设备进入到 recovery 或 bootloader 模式来为它重新刷入一个新的 ROM。举一个天真的例子,如果将存放在system中的MIUI14系统文件全部改成origin OS 3(这年头什么UI都敢叫自己OS了),那么你就完成了刷入origin OS 3的步骤。

recovery 分区:相当于一个备用的 boot 分区,利用它我们可以使设备启动到恢复模式窗口来进行一些高级的恢复和维护操作。

data分区:也被称作 userdata,是用户数据被存储的地方——也就是说你的联系人、短信、配置文件和你自己安装的 APP 都位于这里。删除这个分区相当于将你的设备恢复出厂设置,你的设备会变得和你第一次开机或最后一次刷入官方/自定义 ROM 后一样。你在设备上点击清除用户数据或恢复出厂设置按钮后,实际上清除掉的就是这个分区。

cache分区:存放的是 Android 系统中经常被访问的数据和 APP 的部件。删除这个分区不会对你的个人数据造成影响,这个分区上的数据会随着你继续使用设备被重新收集并存储在这里。

misc分区:包含了各种以开关量形式保存的系统配置,包括 CID(Carrier or Region ID)、USB配置和某些硬件配置等。这是个很重要的分区,如果它遭到了破坏或有数据丢失,那么设备的一些功能可能无法正常使用

Android系统的启动

启动概述:Loader > Kernel > Native > Framework > Application

细分:BootRom > Bootloader > Kernel > Init > Zygote > SystemServer > Launcher

Loader层主要包括Boot Rom和Boot Loader;
Kernel层主要是Android内核层;
Native层主要是包括init进程以及其fork出来的用户空间的守护进程、HAL层、开机动画等;
Framework层主要是AMS和PMS等Service的初始化;
Application层主要指SystemUI、Launcher的启动;

bootloader分区分成两个部分,分别叫做primary bootloader和secondary stage bootloader。Primary bootloader主要执行硬件检测,确保硬件能正常工作后将secondary stage bootloader拷贝到内存(RAM)开始执行。Secondary stage bootloader会进行一些硬件初始化工作,获取内存大小信息等,然后根据用户的按键进入到某种启动模式。

fastboot模式:fastboot是android定义的一种简单的刷机协议,用户可以通过fastboot命令行工具来进行刷机。比如说fastboot flash boot boot.img这个命令就是把boot.img的内容刷写到boot分区中。

recovery模式:recovery是android定义的一个标准刷机协议。当进入recovery模式时,secondary stage bootloader从recovery分区开始启动,recovery分区实际上是一个简单的Linux系统,当内核启动完毕后,开始执行第一个程序init(init程序是Linux系统所有程序的老祖宗)。init会启动一个叫做recovery的程序(recovery模式的名称也由此而来)。通过recovery程序,用户可以执行清除数据,安装刷机包等操作。

手机除了普通的CPU芯片以外,还有MODEM处理器芯片。该芯片的功能就是实现手机必需的通信功能,大家通常所的刷RADIO就是刷写modem分区。

系统OTA升级流程

非A/B升级

  • Android系统收到服务端下发的OTA推送,将OTA包下载至cache分区。
  • OTA包下载完成后,将向misc分区写入指令,表明下次启动时进入recovery模式并使用该OTA包进行升级。
  • 重启手机。
  • 重启后最先进入bootloader,bootloader会先判断按键组合、电源寄存器等,随后会读取misc分区的内容并解析。由于步骤2中已经向misc分区写入了指令,此处bootloader读取指令后会引导启动recovery系统。
  • 进入recovery,读取cache分区中的OTA包,并解析其中的升级脚本,按照其指令对系统各个分区进行升级。如果recovery自身也需要升级,会在此过程中向system中写入recovery-from-boot.p文件,这是一个recovery升级所需要的patch。
  • recovery会清除misc分区。
  • 重启手机。
  • 重启后最先进入bootloader,判断按键组合、电源寄存器、misc分区内容等,默认情况会启动Android系统,此时已经是OTA升级后的新版本系统。
  • 新版本Android系统启动后,会检查是否存在recovery-from-boot.p文件,如果存在,则会对recovery进行升级。

A/B升级

在Android O之后,Google引入了一种新的分区结构,称为A/B分区,与之对应,传统分区结构被称为non-A/B分区。

A/B分区结构,顾名思义,将系统分区分成了A和B两个槽(slot),手机启动时会选择A槽或者B槽启动,运行过程中仅使用当前槽位的分区。一旦当前运行的槽出现问题,系统仍可以选择另一个槽进行启动,从而保证系统良好的可用性。

采用A/B分区结构,能够实现无缝升级。例如用户正在运行A槽,此时收到OTA推送,则系统会在后台一边下载OTA数据,一边同时对B槽进行升级。当B槽系统升级完成,用户会收到重启提示,此时重启手机将自动切换到B槽的新版本系统。在此过程中,仅重启操作是会被用户感知的,这个重启与普通重启的耗时没有什么区别。

如果OTA失败,也仅仅是待升级的槽出现问题,可以重新尝试OTA,并不会影响用户当前运行的系统。

由于A/B分区结构可以实现一边从服务端获取OTA数据,一边直接写入待升级的槽,不需要临时存储OTA包的空间,因此不再需要在cache或userdata分区预留足够空间。

来源地址:https://blog.csdn.net/Jason_Lee155/article/details/131701975

--结束END--

本文标题: Android 系统的分区介绍

本文链接: https://www.lsjlt.com/news/390628.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android 系统的分区介绍
    由于Android系统采用Linux架构,所以Android的系统分区可以类比同样采用Linux架构的操作系统(如Windows)。 Android系统分区分类 现在一般常见的Android分区方式共有三种,在不同的Android系统版本上...
    99+
    2023-09-02
    linux android 车载系统
  • Android 系统属性(SystemProperties)介绍
    我们在开发过程中有时需要使用系统属性,例如获取系统软件版本,获取设备名名称等,有时也需要设置自定义属性。本文将基于Android 10(Q)介绍Android系统属性(以下简称prop)使用,下文围绕...
    99+
    2023-09-03
    android
  • MySQL分区介绍
    不论创建何种类型的分区,如果表中存在主键或唯一索引时,分区列必须是唯一索引的一个组成部分 mysql> create table t1(     -> col1 i...
    99+
    2024-04-02
  • Android Q Labs 通用系统映像介绍
    Android Q Labs 通用系统映像是一种用于开发和测试Android Q系统的镜像文件。这个映像文件包含了Android Q...
    99+
    2023-09-21
    Android
  • Oracle分区表介绍
    http://blog.csdn.net/gapapp/article/details/11631371 一. 分区表理论知识     &n...
    99+
    2024-04-02
  • 分布式系统CAP的原理介绍
    CAP原理中,有三个要素: 一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance) Consistency 一致性 一致性指“all ...
    99+
    2024-04-02
  • 工人工资分账系统的介绍
    什么是工人工资分账系统? 工人工资分账系统是一种用于管理工人薪资分配的软件系统。它可以帮助企业有效地管理员工的工资和福利,提高工作效率和准确性。工人工资分账系统的功能工人工资分账系统通常具有以下功能:员工信息管理:可以录入员工的基本信息,如...
    99+
    2024-01-30
    工人工资 系统
  • win8系统下磁盘分区的几种操作方式介绍
    在Win8系统下,磁盘分区可以通过以下几种方式进行操作:1. 使用磁盘管理工具:Win8系统自带了一个磁盘管理工具,可以通过控制面板...
    99+
    2023-08-30
    win8
  • 最简单的win7系统硬盘分区图文方法介绍
    新买回来一台预装Win7系统的电脑,发现硬盘只有C盘一个分区,这样用起来太不方便了,需要给硬盘重新分区才行。一提到分区,很多用户可能首先会想到PQ这样的分区软件,其实在Win7中,不需要使用任何第三方软件,也不需要进入命...
    99+
    2023-05-26
    win7 系统硬盘分 图文 硬盘分区 系统 方法
  • 对Windows Server 2008系统自带的磁盘分区进行无损分区的教程图文介绍
      如果想对磁盘分区进行无损调整的话,往往需要下载使用专业的磁盘管理工具来完成,例如常用的工具有PartitionMagic、PowerQuest等,如此说来,难道没有专业的磁盘管理工具帮忙,我们就没有办法对磁盘分区进行...
    99+
    2023-06-02
    Windows Server 2008 win2008系统 磁盘分区 无损分区 无损 自带 分区 系统
  • C++  系统IO流介绍
    目录1、iostream标准库 2、namespace 3、C和C++输出区别 4、总结 前言: 本次讲解一个小知识点,也是最常见的一个知识点:iostream;不管编写什么程序,必...
    99+
    2024-04-02
  • Linux操作系统介绍
    1,Linux操作系统介绍**什么是操作系统操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。2,Li...
    99+
    2023-06-05
  • 【Android车载系列】第1章 车载系统整体介绍
    1 车载操作系统         汽车操作系统是从传统汽车电子不断演变而来的,传统汽车电子产品可分为两类: 一类是汽车电子控制装置,通过直接向执行机构(如电子阀门、继电器开关、执行马达)发送指令,以控制车辆关键部件(如发动机、变...
    99+
    2023-08-31
    Android 车载开发 Automotive 车载系统
  • 纯净版系统win7与旗舰版win7系统有啥区别的介绍
    小编经常遇到一个问题,那就是win7纯净版和旗舰版的区别是什么!其实这个问题是普遍存在的,经常有人会这么问,所以今天小编就来跟大家说说纯净版系统win7与旗舰版win7系统有啥区别的介绍,大家一起来看看吧。1、Win7纯净版系统,是Win7...
    99+
    2023-07-10
  • linux系统的ftp命令介绍
    本篇内容主要讲解“linux系统的ftp命令介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux系统的ftp命令介绍”吧!FTP命令是Internet用户使用最频繁的命令之一,不论是在D...
    99+
    2023-06-13
  • ASP.NET Core的日志系统介绍
    .net core是内置了日志系统的,本文这里简单的介绍一下它的基本用法。如下是一个简单的示例:  var service = new ServiceCollection(...
    99+
    2024-04-02
  • Node.js中的模块系统介绍
    为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js ...
    99+
    2024-04-02
  • Win8系统添加不同时区的时钟方法介绍
    在新版本的 Windows 8系统中,你其实是可以为系统添加最多到 3 个不同时区的时钟,可以方便不少有跨国联系的朋友,下面小编说说方法。  具体的方法是,点击托盘里的时间显示,然后点击「更改日期和时间设置」...
    99+
    2023-06-06
    Win8 时区 时钟 系统 添加
  • window7操作系统中用diskpart工具划分扩展分区图文教程介绍
    在安装系统划分硬盘分区过程中及系统安装后我们了解到,MBR分区表最多只支持4个主分区,有些时候需要划分更多的分区,那么就会涉及到使用系统自带的diskaprt命令划分扩展分区与逻辑分区了,下文介绍详细的操作方法 (因分区...
    99+
    2023-06-01
    window7 操作系统 扩展分区 diskpart diskpart工具 划分扩展分区 图文 中用 工具
  • linux下磁盘分区的详细介绍
    这篇文章主要讲解了“linux下磁盘分区的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下磁盘分区的详细介绍”吧!Centos下磁盘管理   ...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作