`
shangjava
  • 浏览: 1231059 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android-vold源码分析之handleBlockEvent(5)

 
阅读更多

作者:gzshun. 原创作品,转载请标明出处!

上篇文章分析到了handleBlockEvent函数,该函数包含了以下6个处理函数:


以下是精简版的handleBlockEvent函数:


这样看起来就比较清楚每个函数的作用了,贴源码其实是比较直接的方法,程序员对代码都比较敏感,一看就明白意思,好,开始分析。


随后就是handlePartitionAdded函数了,这个函数要识别插入的设备的所有分区,源码如下:


磁盘在被系统识别完后,可能发生改变,这种改变的例子如下:
在Linux系统,大家格式化硬盘就会使用到了,就是fdisk命令,该命令会修改磁盘的一些分区参数,
当然,fdisk只是把分区信息写到存储设备的第一个设备节点或扩展节点。
fdisk里面有一个操作是修改分区类型id,按“t”就能修改,当修改完成后,保存退出fdisk,磁盘的设备节点
将会重新生成。
这里是Android系统,也可能遇到这种情况,以下是源码:


分区的改变:


以上两个参数基本没涉及到什么重要的内容,看下源码就行。
刚才上面分析了handleDiskAdded和handlePartitionAdded,这两个增加磁盘或分区的函数,当然也需要
对应移除磁盘或分区的函数,是handleDiskRemoved和handlePartitionRemoved函数。


移除一块存储设备比较方便,当移除分区涉及的比较多,移除分区需要卸载分区,并且删除设备节点,以下是删除分区的源码:


这几章介绍了磁盘事件的处理,总算可以告一段落,这些工作就是在main函数中的nm->start()函数负责的,下一篇文章可以分析其他处理函数了,但这些事件的处理起着至关重要的作用,如果没有做这些工作,framework也就根本不理会也不知道底层发生了什么事情。
下一篇继续磁盘操作部分。。

分享到:
评论

相关推荐

    Android-vold源码分析

    通过vold源码的深入分析,我们可以窥见Android系统架构的复杂性与精妙之处。vold不仅体现了Android在设备管理方面的灵活性和高效性,也展示了其模块化设计的思想,即通过松耦合的组件和高效的通信机制,构建出一个既...

    android-vold.rar_android_android vold_vold

    这份资料可能是对`vold`源码的分析,帮助开发者理解如何自定义`vold`行为,或者优化存储相关的功能。 学习和理解`vold`的工作原理对于Android系统开发者、驱动开发者和安全研究人员尤其有价值。它可以提升对系统...

    android-vold.rar_android

    5. MTP(Media Transfer Protocol)与PTP(Picture Transfer Protocol)支持:Vold为Android设备提供了MTP和PTP协议,使得用户可以通过电脑或其他设备以媒体设备的方式进行数据交换。 三、Vold的运行机制 Vold服务...

    android-vold架构[收集].pdf

    Android Vold(Volume Daemon)是Android系统中的一个重要组件,它主要负责管理移动设备上的外部存储设备,如SD卡和USB存储设备。Vold作为一个本地服务,监控并响应这些存储设备的插入、移除和其他相关操作,确保...

    Android磁盘管理-系统源码分析.docx

    Android系统的磁盘管理是其核心功能之一,涉及到系统架构的多个层次。本文档主要分析了Android磁盘管理的关键组件——Vold(Volume Daemon)以及其工作流程。Vold是一个本地服务,它在Android中扮演着重要角色,负责...

    Android 9.0 Vold 挂载流程分析

    在Android 系统中所有的热插拔设备都是通过Vold 进程挂载的。通过kernel–>vold–>StorageManagerService这样的架构去逐级上报热插拔事件。 一、Vold 入口 --> /system/vold/main.c int main(int argc, char** ...

    USB之android Vold分析 storage分析 高清版

    USB之android_Vold分析,分析了linux udev与android vold的关系由来,vold的功能、架构,使用netlink的通信过程。kernel的uevent发送,framework层的处理、磁盘的挂载等等。

    android系统挂载之vold详细分析

    在Android系统中,vold(Volume Daemon)是一个核心的组件,用于管理USB存储和SD卡等外部存储设备。要深入理解vold的工作原理,我们首先需要了解udev,因为在概念和功能上,vold是udev在Android平台上的替代。 udev...

    USB之android_Vold分析.pdf

    ### USB之android_Vold分析 #### 1. Vold简介 Vold,即Volume Daemon,是Android系统中用于管理外部存储设备(如USB、SD卡等)的核心组件。它的功能涵盖了设备的检测、挂载、卸载以及状态监控等多个方面。Vold的...

    android系统vold透析.pdf

    通过上述分析可以看出,Vold在Android系统中扮演着极其重要的角色,它不仅负责管理外部存储设备,还作为连接内核层与应用层的关键桥梁。理解Vold的工作原理对于深入研究Android系统的存储管理机制至关重要。

    android平台ntfs-3g移植源码,可直接mm编译

    android平台移植ntfs-3g使支持ntfs格式tf卡、U盘、stat硬盘挂载,解压文件到external目录下,mm编译成功后,可手动指行 ntfs-3g /dev/block/vold/* /storage/sdcard1 或者添加 Ntfs.cpp Ntfs.h到system/vold目录实现...

    USB之android_Vold_分析

    ### USB之android_Vold_分析 #### 一、引言 在深入探讨Android系统中Vold的基本原理及其与USB相关的实现细节之前,我们先来简要回顾一下Vold的背景和重要性。Vold(Volume Daemon)是Android操作系统中一个重要的...

    android代码VOLD代码分析

    在Android操作系统中,VOLD即Volume Daemon,是负责管理存储设备的一个守护进程。它的作用主要是与内核层通信,并对外部存储设备如USB和SD卡等进行管理。VOLD在Android设备中扮演着非常重要的角色,尤其是在处理存储...

    android中Vold进程详解

    Vold进程的源码分析表明,它的主要功能是管理和控制外部存储设备。Vold进程的main函数主要完成了以下几个步骤:创建Vold设备文件夹、初始化Vold相关的类实例、创建CommandListener并设置Broadcaster、启动Volume...

    Android vold 多U盘多分区挂载实现

    在Android系统中,`vold`(Volume Daemon)是一个关键的系统服务,它负责管理设备上的存储设备,包括内部存储、外部SD卡以及USB设备。本文将深入探讨如何在Android系统上实现对多个U盘及多分区的挂载,基于描述中的...

    android系统vold透析

    **Vold**(Volume Daemon)是Android系统中用于管理外部存储设备的核心组件之一,它负责处理与USB存储设备、SD卡等相关的任务。Vold的功能类似于Linux系统中的**udev**,即用于设备管理的守护进程,但它更适应...

    Android-start-boot-analyze-.rar_android_android bootloader_andro

    Android系统启动过程分析 本文主要介绍Android系统的启动过程,以Androidinit进程之后部分为主,init之前部分同标准Linux内核启动完全相同。于Android启动过程复杂,涉及C、C++及java部分内容,本文以流程分析为主线...

    android vold模块详解

    MountService在Android系统中负责文件系统的挂载和卸载,Vold需要与之交互来执行存储设备挂载的操作。在某些情况下,Vold还需要与StorageManager进行交互,以处理存储相关的信息,比如存储空间的使用情况和存储设备...

Global site tag (gtag.js) - Google Analytics