作者:gzshun. 原创作品,转载请标明出处!


Vold是Android系统处理磁盘的核心部分,取代了原来Linux系统中的udev,主要用来处理Android系统的热插拔存储设备。在Android2.2以后的系统中,vold源码已经移到了system目录下,vold目录包含以下源码:
├── Android.mk
├── Asec.h
├── CleanSpec.mk
├── CommandListener.cpp
├── CommandListener.h
├── Devmapper.cpp
├── Devmapper.h
├── DirectVolume.cpp
├── DirectVolume.h
├── Fat.cpp
├── Fat.h
├── hash.h
├── logwrapper.c
├── Loop.cpp
├── Loop.h
├── main.cpp
├── NetlinkHandler.cpp
├── NetlinkHandler.h
├── NetlinkManager.cpp
├── NetlinkManager.h
├── Process.cpp
├── Process.h
├── ResponseCode.cpp
├── ResponseCode.h
├── vdc.c
├── VoldCommand.cpp
├── VoldCommand.h
├── Volume.cpp
├── Volume.h
├── VolumeManager.cpp
├── VolumeManager.h
├── Xwarp.cpp
└── Xwarp.h


先简要说明一下类的继承关系,vold中比较重要的有以下几个类:
三大管理类:VolumeManager,CommandListener,NetlinkManager
其他处理类:Volume,DirectVolume,NetlinkHandler,Fat,ResponseCode
其他相关的类:NetlinkListener,SocketListener

1.VolumeManager管理Volume类;
2.DirectVolume类继承于Volume类,保存着磁盘信息与操作函数;
3.NetlinkManager类负责与内核uevent事件通信,期间,使用到了NetlinkListener和SocketListener类的函数;
4.Fat是格式化sd卡的函数;
5.ResponseCode保存着vold向framework反馈的值。

本文讲解main.cpp文件的源代码:



下篇文章开始从main函数的入口点深入分析流程。。

更多相关文章

  1. 【Android】菜单功能的实现:弹出Popup菜单 以及小结
  2. flutter 学习总结
  3. Android的四个组件类型的使用实例
  4. Android(安卓)判断程序是否是第一次启动
  5. Hello Android(安卓)- PULL方式解析XML
  6. Android键盘系统相关代码分析(1)
  7. ClipboardService(CBS)中的权限管理
  8. android中-----JSON数据解析
  9. android media server 解析1-media player service 结构部分

随机推荐

  1. Flutter学习五之网络请求和轮播图的实现
  2. 收藏 Android系统 init 启动过程分析
  3. android回调接口的两种方式
  4. Android(安卓)Handle的使用(转)
  5. Android招财进宝手势密码的实现
  6. Android通信方式(三)------WebService补
  7. Android内存泄漏优化总结
  8. Google 将原生 Android(安卓)的键盘放上
  9. Android(安卓)bluetooth development
  10. 【Android】内嵌数据库IDE(可视化操作类)