Android-vold源码分析

### Android-vold源码分析:理解U盘挂载机制 在深入探讨Android系统如何通过`vold`(Volume Daemon)管理U盘等外部存储设备的挂载与卸载之前,我们先简要介绍`vold`的角色。`vold`是Android系统中负责管理存储卷的守护进程,它不仅处理内部存储,还处理外部存储设备,如SD卡或U盘的挂载、卸载等操作。其核心功能之一是监听并响应内核发送的块设备事件,从而实现对外部存储设备的有效管理和访问。 #### 核心处理函数:`handleBlockEvent` `handleBlockEvent`函数是`vold`中的关键函数,用于接收并解析内核发出的块设备事件。这些事件可以是设备的添加、删除或状态改变。根据不同的事件类型,`handleBlockEvent`将调用相应的处理函数,包括: 1. **`handleDiskAdded`**:当检测到新磁盘(如U盘)的添加时被调用。 2. **`handleDiskRemoved`**:当磁盘被移除时调用。 3. **`handleDiskChanged`**:当磁盘的状态发生改变时调用。 4. **`handlePartitionAdded`**:当检测到新的分区被添加到已存在的磁盘上时调用。 5. **`handlePartitionRemoved`**:当分区从磁盘上被移除时调用。 6. **`handlePartitionChanged`**:当分区的状态发生变化时调用。 #### `handleDiskAdded`函数详解 当U盘插入时,`handleDiskAdded`函数被调用,负责收集关于新磁盘的基本信息,如主设备号(major)、次设备号(minor)以及分区数量(`NPARTS`)。这些信息对于后续识别和处理磁盘的各个分区至关重要。 - **主设备号和次设备号**:这两个参数用于唯一标识Linux系统中的设备,特别是在`/dev`目录下,每一个设备文件都有一个主次设备号组合,用以区分不同类型的硬件设备。 - **分区数量(`NPARTS`)**:表示磁盘上的分区总数,这在处理多分区磁盘时尤为重要,因为它帮助`vold`预知后续会有多少个`handlePartitionAdded`调用。 #### 存储设备识别顺序 `handleDiskAdded`函数执行后,`vold`将开始处理该磁盘上的各个分区。这个过程遵循一定的顺序:首先调用一次`handleDiskAdded`以获取磁盘级别的信息,然后对每个分区调用`handlePartitionAdded`。如果磁盘上有多个分区,包括可能的一个扩展分区(MBR限制为最多四个主分区),则`handlePartitionAdded`将被调用多次,直到所有分区都被正确识别和处理。 #### `mPendingPartsCount`变量的作用 `mPendingPartsCount`是一个全局变量,用于跟踪待处理的分区数量。在`handleDiskAdded`调用后,该变量被初始化为`mDiskNumParts`(即磁盘的分区数量)。随着每个分区的识别,`mPendingPartsCount`递减,直到所有分区都处理完毕,此时`mPendingPartsCount`应为0,表明该存储设备的所有事件已经完成处理。 #### 结论 通过深入分析`vold`源码中的`handleBlockEvent`及其相关函数,我们能够更好地理解Android系统是如何高效地管理和响应外部存储设备的插入与移除事件的。`vold`通过一系列精心设计的函数调用,确保了设备的快速识别和正确的挂载流程,为用户提供无缝的使用体验。对于希望深入研究Android系统底层存储管理的开发者而言,掌握`vold`的工作原理和其实现细节是至关重要的。

























- cj831112013-01-21缺前面几章。

- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 中学生网络成瘾原因及对策调查报告.doc
- 基于单片机的智能温控系统的设计与实现.doc
- 2023年自考试卷电力系统微型计算机继电保护试题.doc
- 国家开放大学电大《网络营销与策划》机考2套标准试题及答案42.docx
- (源码)基于多种算法策略的算法设计与分析课程实践项目.zip
- 项目管理工作手册第五版.doc
- 基于FreescaleHCS12系列单片机的结晶器振动控制系统_振动波形发生.doc
- 国家开放大学电大《中国现代文学专题》网络核心课分析题试题及答案4.docx
- 激光打孔熔池技术的COMSOL建模与应用:从原理到未来趋势 · 激光技术
- 软件开发-技术投标书.docx
- 基于WebGIS的物流信息系统的设计与实现.doc
- 智能化各施工专业界面划分及接口配合事宜.doc
- 基于单片机数字乐盒.doc
- (完整版)(重要1)江苏专转本计算机计算题.ppt
- 电子商务的基本概念及发展.ppt
- COMSOL多物理场耦合仿真技术在电力设备及材料分析中的应用


