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

Android磁盘管理-之vold源码分析(2)

 
阅读更多

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


Vold是Android系统处理磁盘的核心部分,取代了原来Linux系统中的udev,主要用来处理Android系统的热插拔存储设备。在Android2.2以后的系统中,vold源码已经移到了system目录下,vold目录包含以下源码:
├── Android.mk
├── Asec.h
├── CleanSpec.mk
├── CommandListener.cpp
├── CommandListener.h
├── Devmapper.cpp
├── Devmapper.h
├── DirectVolume.cpp
├── DirectVolume.h
├── Fat.cpp
├── Fat.h
├── hash.h
├── logwrapper.c
├── Loop.cpp
├── Loop.h
├── main.cpp
├── NetlinkHandler.cpp
├── NetlinkHandler.h
├── NetlinkManager.cpp
├── NetlinkManager.h
├── Process.cpp
├── Process.h
├── ResponseCode.cpp
├── ResponseCode.h
├── vdc.c
├── VoldCommand.cpp
├── VoldCommand.h
├── Volume.cpp
├── Volume.h
├── VolumeManager.cpp
├── VolumeManager.h
├── Xwarp.cpp
└── Xwarp.h


先简要说明一下类的继承关系,vold中比较重要的有以下几个类:
三大管理类:VolumeManager,CommandListener,NetlinkManager
其他处理类:Volume,DirectVolume,NetlinkHandler,Fat,ResponseCode
其他相关的类:NetlinkListener,SocketListener

1.VolumeManager管理Volume类;
2.DirectVolume类继承于Volume类,保存着磁盘信息与操作函数;
3.NetlinkManager类负责与内核uevent事件通信,期间,使用到了NetlinkListener和SocketListener类的函数;
4.Fat是格式化sd卡的函数;
5.ResponseCode保存着vold向framework反馈的值。

本文讲解main.cpp文件的源代码:



下篇文章开始从main函数的入口点深入分析流程。。

分享到:
评论

相关推荐

    Android-vold源码分析

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

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

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

    android系统挂载之vold详细分析

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

    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目录实现...

    android-vold.rar_android_android vold_vold

    在Android系统中,`vold`(Volume Daemon)是一个至关重要的服务,它负责管理设备的存储空间,包括内部存储和外部存储(如SD卡)。`vold`在系统启动时运行,提供对文件系统的挂载、卸载以及权限管理等功能。通过对`...

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

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

    Android 9.0 Vold 挂载流程分析

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

    USB之android_Vold分析.pdf

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

    android-vold.rar_android

    2. 文件系统管理:Vold管理不同分区的文件系统类型,如ext4、FAT32等,执行挂载和卸载操作,确保文件系统的稳定性和数据完整性。 3. USB设备管理:当USB设备插入时,Vold会检测并处理这些设备,将其作为一个新的...

    android代码VOLD代码分析

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

    android-vold架构[收集].pdf

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

    android系统vold透析.pdf

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

    USB之android_Vold_分析

    ### USB之android_Vold_分析 #### 1. Vold简介与udev的由来 ##### 1.1 udev的由来与特性 udev作为Linux 2.6内核的一个重要组成部分,它取代了传统的devfs,成为现代Linux系统中默认的设备管理工具。udev以守护...

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

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

    android vold模块详解

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

    Android-start-boot-analyze-.rar_android_android bootloader_andro

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

    android中Vold进程详解

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

    android系统vold透析

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

Global site tag (gtag.js) - Google Analytics