Vold架构最最重要的其实是两个Socket的创建和监听
1. Vold Socket
2. Kernel-Uevent Socket
理解清楚这两个Socket的用途,以及它们什么时候创建和使用,就能清晰理解整个Vold架构了。
首先讲讲Vold架构在整个Android系统的位置。
Android系统从上到下依次是,App、Application Framework、Library、Linux Kernel。
Vold架构处于Library层,它负责接收下层Linux Kernel Usb Driver向上发送的Usb Add、Remove、Change消息。
Vold对这些消息处理后,在向上Application Framework层发送Usb change、mounted、unmounted消息。
同时,Vold也能接收上层Application Framework层向下发送的mount、unmount、format等消息。
问题来了,
Vold怎么接收下层Linux Kernel Usb Driver向上发送的消息?
Vold对这些消息处理后,怎么向上Application Framework层发送的消息?
Vold怎么接收上层Application Framework层向下发送的消息?
答案就是上面提到的两个Socket,
Vold通过Kernel-Uevent Socket接收下层Linux Kernel Usb Driver向上发送的消息。
Vold对这些消息处理后,通过Vold Socket向上Application Framework层发送的消息。
Vold通过Vold Socket接收上层Application Framework层向下发送的消息。
这就是整个Vold架构的最最重要的地方了。
详细看下面复杂的时序图吧。
理解了上面那张图,对于Vold架构也就清楚了。剩余的就是细节,有需要的时候在细细研究解析。
- 大小: 413.1 KB
分享到:
相关推荐
android中vold代码分析,主要用来自动挂载设备
Uevent 简介 NetLink 简介 MountService 功能介绍: MountService 同 StroageManager 的交互 MountService 同 Vold 的交互
android系统vold透析 Vold的全称是 Volume Daemon
解析android中Vold进程,让大家更好更快的掌握Vold
android-vold架构[收集].pdf
通过kernel–>vold–>StorageManagerService这样的架构去逐级上报热插拔事件。 一、Vold 入口 --> /system/vold/main.c int main(int argc, char** argv) { atrace_set_tracing_enabled(false); setenv(ANDROID...
USB之android_Vold分析.pdf
Android vold 多U盘多分区挂载实现 可以对比原生的vold代码查看修改
此篇文章详细描述了USB之android_Vold_分析
主要目录 1 Vold简介 2 Vold功能介绍 3 Vold通信 4 USB Storage Framework结构分析
Android-vold源码分析
USB之android_Vold分析,分析了linux udev与android vold的关系由来,vold的功能、架构,使用netlink的通信过程。kernel的uevent发送,framework层的处理、磁盘的挂载等等。
android系统vold架构与流程透析
android 对插入设备后产生的反应,诉说连接的响应与挂载
android中VOLD代码框架的讲解和分析,设计到存储管理
Vold(volume Daemon),即Volume守护进程,用来管理Android中存储类的热拔插事件,处于Kernel和Framework之间,是两个层级连接的桥梁。先来看一下Vold在Android系统的整体架构。 原创文章 9获赞 0访问量 499 关注 ...
本文档详细地介绍了android系统挂载中的vold,对vold的由来、功能、内部架构以及通信等方面进行了较为详细的介绍与较为深入的分析,是学习android挂载方面知识的一份比较好的材料。