本次主要讲解存储模块如U盘等设备在android设备中的管理和使用的模块。本次主要基于android 8.1版本进行解析。不同android版本 vold的内容可能会有所差异。读者可对比阅读解析。
1 Vold介绍
Android中Vold是volume Daemon,即Volume守护进程;Android没有使用Linux平台下的udev来处理磁盘,于是Google写了一个类似udev功能的vold,充当了kernel与framework之间的桥梁;作为Android的一个本地服务,负责处理诸如SD、USB等存储类设备的插拔等事件。
2 Vold架构
Vold在系统中以守护进程存在,是一个单独的进程,下一节会介绍Vold的启动流程。处于Kernel和Framework之间,是两个层级连接的桥梁。下图是Vold在Android系统的整体架构。

Vold主要是接收Kernel的uevent消息,然后NetLinkManager将消息放在NetLinkHandler队列送到VolumeManager,最终将消息传递到Framework的StorageManager。最后StorageManager会将数据存储下来,消息通知到在StorageManager