android的vold功能很强大,所谓的vold就是volume deamon,用于管理和控制android平台外部存储设备的后台进程,包括SD卡的热拔插,挂载和卸载、格式化。
它是一个进程,该进程主要包含了3个模块:NetlinkManager,VolumeManager,CommandListener。
以下分别简称为
NM模块,
VM模块,
CL模块
Vold的总体框图:
Vold的局部概念(Uevent,Netlink)
Netlink是Linux用户层进程与Kernel之间的一种通信机制。因为有了Netlink,用户层可以接受来自于Kernel的消息。
是一种消息或者说是事件,当SD卡插入手机之后,Kernel会通过Netlink发送消息给用户层,这个消息就是Uevent,它的实质是一系列的字符串。
VM模块的功能框图:
CL模块的简单功能演示图:
对于后面的代码,有空再来描述一下