1. 总体架构

2. 流程概览

2.1 开启Vold

2.2 引导Uevent

2.3 处理事件

Vold - Volume Daemon存储类的守护进程,作为Android的一个本地服务,负责处理诸如SD、USB等存储类设备的插拔等事件。

1. 总体架构

Vold服务由volumeManager统一管控,它将具体任务分别分派给netlinkManager, commandListener, directVolume, Volume去完成。

Vold服务向下通过socket机制与底层驱动交互,向上通过JNI, intent, socket, doCommand等机制与Java Framework交互。

2 流程概览

2.1 开启服务

初始化Android系统时开启Vold本地服务,

Vold在/dev/block下创建vold文件夹,开启VolumeManager, NetlinkManager, CommandListener。

2.2 引导Uevent

NetlinkManager负责监听底层Linux上报的uevent事件。

系统的SocketListner统一管理所有socket事件。

NetlinkListner负责解析socket事件。

最后由onEvent()将vold事件交还给NetlinkManager处理。

2.3 处理Block和Switch事件

NetlinkManager调用VolumeManager中处理vold事件的类。

handleBlockEvent()完成SD的挂载和卸载,具体交由DirectVolume完成。

handleSwitchEvent()完成由USB实现的U盘的连接。

两者最后都是通过setBroadcast()将ResponsibleCode经过nativeDaemonConnector的socket监听机制,最终上传到MountService作统一规划。

MountService里的onEvent()得到解析后的事件,完成两大任务,

-> 发送命令doCommand()通过commandListener传递给volumeManager

-> 将事件信息广播给相关服务,供上层应用使用。

转载自:http://blog.csdn.net/xiaxiangnanxp1989/article/details/8230171

android usb vold,android Vold Usb相关推荐

  1. android挂载usb设备,android usb挂载分析---MountService启动

    在android usb挂载分析----vold启动,我们的vold模块已经启动了,通信的机制也已经建立起来了,接下来我们分析一下MountService的启动,也就是我们FrameWork层的启动, ...

  2. android外接usb摄像头demo_手机USB接口有哪些功能 手机USB接口功能介绍【详解】

    手机身上的USB接口主要的任务就是充电,连接PC传输数据,你还能想到其他的功能吗?没错,它还能连接USB小风扇.小台灯等外设.但是,你以为所有手机在实现这些功能时的体验和效果都是一样的吗? 充电速度和 ...

  3. Android存储子系统流程--vold

    转:http://my.oschina.net/xcy2011sky/blog/492590?fromerr=Te05DFLK 目录[-] 系统分区挂载 外置分区挂载 Vold守候进程分析 Ueven ...

  4. Android存储系统-MountService 和vold 对外置存储的管理(2)

    前言 前边我在Android存储系统-MountService 和vold 对外置存储的管理(1) 中说了Android系统的磁盘挂载,知道外接磁盘可以格式化为PublicVolume分区, Publ ...

  5. android usb otg,android usb otg需要什么权限

    USB OTG功能如何打开及实现 USB OTG U盘 Keyboard Mouse 1.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确) 若HW确认支持O ...

  6. Android/C/C++ 中解决 USB UnMount(禁止USB端口)

    引:因为某些特殊需求,需要在某些设备接入车机的时候,动态UnMount USB设备,因为代码其中有一些方法是自定义过的,所以该文章仅供思路参考. (20200319 更新):在后续跟进中,发现如果卸载 ...

  7. android mnt asec,通过adb修改Android etc下的vold.fstab,调测vold.fstab

    一.修改vold.fstab /etc link到system/etc,需要修改/etc/vold.fstab,但vold.fstab为只读,在命令行下无法修改 使用adb来实现更改的目的,步骤: 1 ...

  8. android vold 分析,vold流程分析

    前言 框架 VOLD分析.png 代码分析 init进程启动vold Android起来后会解析init.rc,init.rc中启动了vold,代码如下 service vold /system/bi ...

  9. android架构+vold,Android Vold 架构简析

    李力琼(joni.kartorz.lee@gmail.com)软件工程师,热爱并致力于Linux平台的开源软件的开发,你可以用email与他联系.本文中Andorid系统的版本为4.3及以上. --- ...

最新文章

  1. spring boot--最基础的hello world
  2. R回归模型输出结果详细解读:summary、call、residuals、Coefficients、Assessing Model Fit
  3. 2018年人工智能全景图与发展趋势分析
  4. 什么是JSON?我为什么要使用它?
  5. Tomcat服务在Eclipse中能够正常启动,但页面出现404错误的解决方法
  6. 智能布线—更好的安全性
  7. python调用shell用什么类_python脚本中调用shell命令
  8. RuntimeError: Model class django.contrib.sites.models.Site doesn't declare an explicit app_label and
  9. 关于解决jdbc版本错误问题
  10. python集合的元素可以是_Python集合的元素中,为什么不可以是包含嵌套列表的元组?...
  11. MySQL从零到一解读增量同步数据到elasticsearch canal adapter方式(binlog)实现
  12. 为什么字节跳动、腾讯、阿里都在用 Python??
  13. dict.get 用法笔记
  14. P1651 塔 (动态规划)
  15. ES6学习笔记八(数值的扩展)
  16. java spring初始化_Spring框架初始化解析
  17. 编程大佬都推荐的Python编辑器
  18. 360浏览器如何改html5,360安全浏览器如何设置为默认浏览器
  19. html打印多了空白页,为什么打印Word文档会多打印出一空白页
  20. vue.js毕业设计,基于vue.js前后端分离电影院售票小程序系统设计与实现

热门文章

  1. Windows Server IIS+ARR反向代理(配置反向代理服务器)
  2. Linux中的python、mysql安装以及用户与权限
  3. webgl-矩阵、旋转、平移、缩放 glMatrix组件
  4. python对url格式解析的方法
  5. mysql利用颜表情绕过waf注入
  6. HTML常用代码合集速查表
  7. 概率论 中的 链式法则
  8. 捋一捋pytorch官方的FasterRCNN代码
  9. 2021-04-15 第一阶段day11
  10. Deepin V20.2网络里没有无线选项以及grup引导界面进不去Windows系统