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

Android-vold源码分析之卸载SD卡(9)

 
阅读更多
作者:gzshun. 原创作品,转载请标明出处!
来源:http://blog.csdn.net/gzshun


本文分析卸载sd卡的源码,这些涉及的内容比较少,走过就行。在Android系统,系统设置里面,
提供了挂载,卸载与格式化的功能。在这里,我们可以回忆一下,Android在挂载sd卡有几个途径,
卸载又是有几种方法?
一、挂载sd卡,有2种方式:
1.用户自己挂载sd卡;
2.自动挂载sd卡,这时候是在Android系统启动完成后挂载的,所以可以看成是自动挂载;

二、卸载sd卡,有2种方式:
1.用户自己卸载sd卡;
2.用户移除sd卡;
卸载sd卡,1和2看起来有点矛盾,但这相当于平时我们在电脑使用U盘一样,
一种是先安全删除再移除U盘;
一种是不安全删除直接移除U盘;
所以在Android系统中,卸载sd卡有两个途径:
1.Framework下发卸载命令(volume unmount sdcard force),卸载sd卡;
2.vold捕获到移除事件,如果是非安全删除sd卡,那么就卸载sd卡。

所以挂载与卸载sd卡的两种方法不同,挂载sd卡都是由Framework下发命令,而卸载sd卡则不同。

一、先来分析Framework下发卸载命令:

截取CommandListener类其中的源码:

这条卸载命令的格式是:volume unmount sdcard true/false.
这里有一个强制卸载的标志,也就是force参数,如果命令包含“force”字符串,那么就强制
卸载sd卡,接下来看unmountVolume卸载函数:


开始看卸载函数,以下函数均做简化,不再贴出大量源码,Android系统的源码实在太多:

二、vold捕获移除事件,调用卸载函数:



卸载函数基本就这些,下一篇文章继续,格式化sd卡。。。

分享到:
评论

相关推荐

    Android-vold源码分析

    vold的存在使得Android系统能够更加灵活地管理和响应外部存储设备的变化,如SD卡的插入与移除。 #### 二、vold的工作流程与结构 vold在Android系统中的工作流程可以分为几个关键步骤: 1. **Linux Kernel**:当...

    android-vold.rar_android_android vold_vold

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

    android-vold.rar_android

    在Android操作系统中,Vold(Volume Daemon)是一个至关重要的组件,它负责管理设备的存储系统,包括内部存储、外部SD卡以及各种类型的USB存储设备。Vold作为系统服务运行在特权用户空间,确保了对存储设备的访问...

    android-vold架构[收集].pdf

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

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

    Vold是一个本地服务,它在Android中扮演着重要角色,负责处理如SD卡、USB存储设备的插拔事件。 1. **Vold总体架构** Vold服务由`volumeManager`统一管理,它调度不同的模块协同工作。这些模块包括: - `...

    android系统挂载之vold详细分析

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

    USB之android_Vold_分析

    Vold(Volume Daemon)是Android操作系统中一个重要的组件,负责管理外部存储设备如USB存储和SD卡等。它的核心职责包括识别、挂载和卸载存储设备,以及处理设备的各种状态变化。本篇文章将详细剖析Vold的工作原理,...

    USB之android_Vold分析.pdf

    Vold,即Volume Daemon,是Android系统中用于管理外部存储设备(如USB、SD卡等)的核心组件。它的功能涵盖了设备的检测、挂载、卸载以及状态监控等多个方面。Vold的设计理念源于udev,但在Android环境下进行了定制化...

    android系统vold透析.pdf

    Vold,即Volume Daemon,是Android系统中用于管理外部存储设备(如USB、SD卡)的重要组件。它继承了Linux内核中udev的设计理念,但针对Android环境进行了定制化改进。 ##### 1.1 udev的由来 udev是Linux 2.6内核中...

    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源码——开发之SD卡的使用.zip

    - Android源码中,`android.os.storage`包包含了与外部存储交互的相关类,如`StorageManager`,可以用于挂载、卸载、查询SD卡状态等操作。 - `MediaScannerConnection`类用于扫描新添加或修改的文件,使其在媒体库...

    android代码VOLD代码分析

    它的作用主要是与内核层通信,并对外部存储设备如USB和SD卡等进行管理。VOLD在Android设备中扮演着非常重要的角色,尤其是在处理存储设备连接与断开、文件系统挂载、权限控制等场景中。而udev则是Linux系统中负责...

    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透析

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

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

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

    android中Vold进程详解

    它接收来自内核的外部设备消息,用于管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等。 Vold进程框架设计主要由三个模块组成:NetlinkManager、VolumeManager和CommandListener。...

Global site tag (gtag.js) - Google Analytics