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架构也就清楚了。剩余的就是细节,有需要的时候在细细研究解析。

更多相关文章

  1. Android(安卓)WiFi--系统架构
  2. Android(安卓)微信接入公共平台回调失败
  3. Android学习之多线程编程(handler篇)
  4. 【Android】BroadcastReceiver发送intent给service或者activity
  5. stagefright 架构分析(四) MediaExtractor
  6. Android编程调试Log类使用详解
  7. Android(安卓)sensor架构(二)SystemSensorManager以及JNI、sensorS
  8. Android的Handler常见的面试问题
  9. Android(安卓)常用mimeType表

随机推荐

  1. Linux-自己创建动态库静态库
  2. 多队列网卡CPU中断均衡
  3. Linux系统编程——进程间通信:信号中断处
  4. Linux下安装mysql 出现依赖包冲突解决方
  5. ubi文件系统制作,还是"-c"选项的问题
  6. 求GridControl_11.1.0.1.0_Linux_x86-64_
  7. Linux 系统下 DNS 服务器的架设
  8. Linux CentOS6环境下MySQL5.1升级至MySQL
  9. Linux 开/关 ICMP 回应(防止被ping)
  10. 《Unix & Linux 大学教程》 - 第十九章(一