android usb vold,android Vold Usb
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相关推荐
- android挂载usb设备,android usb挂载分析---MountService启动
在android usb挂载分析----vold启动,我们的vold模块已经启动了,通信的机制也已经建立起来了,接下来我们分析一下MountService的启动,也就是我们FrameWork层的启动, ...
- android外接usb摄像头demo_手机USB接口有哪些功能 手机USB接口功能介绍【详解】
手机身上的USB接口主要的任务就是充电,连接PC传输数据,你还能想到其他的功能吗?没错,它还能连接USB小风扇.小台灯等外设.但是,你以为所有手机在实现这些功能时的体验和效果都是一样的吗? 充电速度和 ...
- Android存储子系统流程--vold
转:http://my.oschina.net/xcy2011sky/blog/492590?fromerr=Te05DFLK 目录[-] 系统分区挂载 外置分区挂载 Vold守候进程分析 Ueven ...
- Android存储系统-MountService 和vold 对外置存储的管理(2)
前言 前边我在Android存储系统-MountService 和vold 对外置存储的管理(1) 中说了Android系统的磁盘挂载,知道外接磁盘可以格式化为PublicVolume分区, Publ ...
- android usb otg,android usb otg需要什么权限
USB OTG功能如何打开及实现 USB OTG U盘 Keyboard Mouse 1.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确) 若HW确认支持O ...
- Android/C/C++ 中解决 USB UnMount(禁止USB端口)
引:因为某些特殊需求,需要在某些设备接入车机的时候,动态UnMount USB设备,因为代码其中有一些方法是自定义过的,所以该文章仅供思路参考. (20200319 更新):在后续跟进中,发现如果卸载 ...
- android mnt asec,通过adb修改Android etc下的vold.fstab,调测vold.fstab
一.修改vold.fstab /etc link到system/etc,需要修改/etc/vold.fstab,但vold.fstab为只读,在命令行下无法修改 使用adb来实现更改的目的,步骤: 1 ...
- android vold 分析,vold流程分析
前言 框架 VOLD分析.png 代码分析 init进程启动vold Android起来后会解析init.rc,init.rc中启动了vold,代码如下 service vold /system/bi ...
- android架构+vold,Android Vold 架构简析
李力琼(joni.kartorz.lee@gmail.com)软件工程师,热爱并致力于Linux平台的开源软件的开发,你可以用email与他联系.本文中Andorid系统的版本为4.3及以上. --- ...
最新文章
- spring boot--最基础的hello world
- R回归模型输出结果详细解读:summary、call、residuals、Coefficients、Assessing Model Fit
- 2018年人工智能全景图与发展趋势分析
- 什么是JSON?我为什么要使用它?
- Tomcat服务在Eclipse中能够正常启动,但页面出现404错误的解决方法
- 智能布线—更好的安全性
- python调用shell用什么类_python脚本中调用shell命令
- RuntimeError: Model class django.contrib.sites.models.Site doesn't declare an explicit app_label and
- 关于解决jdbc版本错误问题
- python集合的元素可以是_Python集合的元素中,为什么不可以是包含嵌套列表的元组?...
- MySQL从零到一解读增量同步数据到elasticsearch canal adapter方式(binlog)实现
- 为什么字节跳动、腾讯、阿里都在用 Python??
- dict.get 用法笔记
- P1651 塔 (动态规划)
- ES6学习笔记八(数值的扩展)
- java spring初始化_Spring框架初始化解析
- 编程大佬都推荐的Python编辑器
- 360浏览器如何改html5,360安全浏览器如何设置为默认浏览器
- html打印多了空白页,为什么打印Word文档会多打印出一空白页
- vue.js毕业设计,基于vue.js前后端分离电影院售票小程序系统设计与实现