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模塊的簡單功能演示圖:
對於後面的代碼,有空再來描述一下