通过查看vold的代码,
我发现 main.cpp (system/vold/main.cpp) 中有几行代码我没有得到这些代码的真正功能。
那些是..
1.
vm->setBroadcaster((SocketListener *) cl);
nm->setBroadcaster((SocketListener *) cl);
2.
coldboot("/sys/block");
为什么vold在这里冷启动?
谁能解释一下为什么vold会这样做?
谢谢
通过向 /sys/block 树中的 uevent 文件发送“add”来为冷插拔设备完成冷启动。
我想我已经找到了第一个问题的答案。
vm->setBroadcaster((SocketListener *) cl);
nm->setBroadcaster((SocketListener *) cl);
在这种情况下,VolumeManager 和 NetlinkManager 需要向框架层的 MountService 发送通知。因此,CommandListener 充当 vm 和 nm 的广播器。:)