Android 的volume服务主要是用来管理usb/sd卡 等外部存储设备。平台可以对外部存储设备进行操作和轮询状态,当外部存储设备状态发生变化时,volume 服务也会即时报告平台。

相关代码主要位于:
system/core/vold
frameworks/base/services/java/com/android/server/MountListener.java
frameworks/base/services/java/com/android/server/MountService.java
frameworks/base/core/java/android/os/IMountService.aidl
hardware/libhardware_legacy/mount/IMountService.cpp
hardware/libhardware_legacy/include/hardware_legacy/IMountService.h

下图概述了这些组件之间的关系。但是没有搞清楚IMountService.h/cpp是干什么用的。

还有一点值得注意,MountService被一个Android内部类ServiceManager注册(SystemServer.java):
ServiceManager.addService("mount", new MountService(context))
以这种方式注册有名服务(named service),所注册的服务是一个实现了aidl产生的stub类的派生类,并不需要实现一个Service的派生类。ServiceManager仅供Android平台内部使用。

更多相关文章

  1. Android(安卓)添加系统服务
  2. android、ios与服务器端php使用rsa加密解密通讯
  3. Android(安卓)启动过程详解
  4. ArcGIS Runtime for Android(安卓)使用异步GP服务绘制等值线
  5. android中LayoutInflater的使用
  6. Android客户端向服务器端发送数据的流程(1)
  7. Android系统中的广播(Broadcast)机制注册注销发送原理总结
  8. android 实现图片上传功能 Tomcat作为服务器
  9. Android平台移植初解

随机推荐

  1. Android(安卓)4.0 CTS Debug
  2. 谷安: Android(安卓)Market 网上商店发现
  3. HTC:Desire HD 的 Android(安卓)4.0 升級
  4. Android(安卓)studio项目发布到Maven中央
  5. Android(安卓)MediaCodec 音频转码——硬
  6. Android(安卓)Matrix矩阵原理详解
  7. Android多点触控技术实战 针对图片自由缩
  8. Android(安卓)TCP通信的简单实例以及常见
  9. 纪念一下坑爹的蓝牙扫描枪连接(Android外
  10. Android学习进阶路线导航线路(附源码)