android /system/vold源码分析(1)
来源:互联网 发布:在淘宝上做虚拟充值 编辑:程序博客网 时间:2024/06/12 20:14
void是类似linux中udev功能的程序,它管理着可热插拔设备的热插拔工作。
main函数完成的VolumeManager, CommandListerer, NetlinkManager的初始化工作,并执行:
vm->start()
nm->start()
cl->startListener()
int main() {//下面定义了VOLD中三个重要的类 VolumeManager *vm; CommandListener *cl; NetlinkManager *nm; SLOGI("Vold 2.1 (the revenge) firing up"); mkdir("/dev/block/vold", 0755); /* For when cryptfs checks and mounts an encrypted filesystem */ klog_set_level(6); /* Create our singleton managers */ if (!(vm = VolumeManager::Instance())) { SLOGE("Unable to create VolumeManager"); exit(1); }; if (!(nm = NetlinkManager::Instance())) { SLOGE("Unable to create NetlinkManager"); exit(1); }; cl = new CommandListener(); vm->setBroadcaster((SocketListener *) cl); nm->setBroadcaster((SocketListener *) cl); if (vm->start()) { SLOGE("Unable to start VolumeManager (%s)", strerror(errno)); exit(1); } if (process_config(vm)) { SLOGE("Error reading configuration (%s)... continuing anyways", strerror(errno)); } if (nm->start()) { SLOGE("Unable to start NetlinkManager (%s)", strerror(errno)); exit(1); } coldboot("/sys/block");// coldboot("/sys/class/switch"); /* * Now that we're up, we can respond to commands */ if (cl->startListener()) { SLOGE("Unable to start CommandListener (%s)", strerror(errno)); exit(1); } // Eventually we'll become the monitoring thread while(1) { sleep(1000); } SLOGI("Vold exiting"); exit(0);}在NetlinkManager.h和VolumeManager.h中均定义了
SocketListener *mBroadcaster;void setBroadcaster(SocketListener *sl) { mBroadcaster = sl; }SocketListener *getBroadcaster() { return mBroadcaster; }CommandListener类是FrameworkListener子类,而FrameworkListener是SocketListener子类。
0 0
- android /system/vold源码分析(1)
- android /system/vold源码分析(2)
- android /system/vold源码分析(3)
- android /system/vold源码分析(4)
- android /system/vold源码分析(5)
- android /system/vold源码分析(6)
- android /system/vold源码分析(7)
- android /system/vold源码分析(8)
- Android-vold源码分析之handleBlockEvent(5)
- Android-vold源码分析之startListener(6)
- Android-vold源码分析之runCommand(7)
- Android-vold源码分析之handleBlockEvent(5)
- Android-vold源码分析之startListener(6)
- Android-vold源码分析之runCommand(7)
- Android磁盘管理-之vold源码分析
- Android-vold源码分析之handleBlockEvent
- Android-vold源码分析之startListener
- Android-vold源码分析之runCommand
- C语言文件
- iOS内核分析--iPhone手机存储
- JStorm-2.1.1初识及提交同名的Topology
- 基于VS2013的UML设计
- DispatchMessage函数
- android /system/vold源码分析(1)
- fragment 1
- C++第一次上机实验-1
- Ecshop截取变量中的字符长度
- ECSHOP设置,只有登录用户才能查看商品详情和商品价格
- Spring Mvc那点事---(11)Spring Mvc之mybatis增删改查
- 如何设置在一个Label上显示不同颜色的text
- tomcat 安装时出现 Failed to install Tomcat9 service
- ECSHOP 2.7.2 文件结构及各文件相应功能介绍