77范文网 - 专业文章范例文档资料分享平台

mountservice框架分析

来源:网络收集 时间:2021-09-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

mountservice框架

一、进程启动和配置文件的分析

vold的全称是volume daemon。实际上是负责完成系统的CDROM, USB大容量存储,MMC卡等扩展存储的
挂载任务自动完成的守护进程。它提供的主要特点是支持这些存储外设的热插拔。在Android上的这个
vold系统和GNU/Linux的之间存在很大的差异,这里主要是分析Android上的vold系统的处理过程。
自Android 2.2开始,vold又做了大改动,升级为vold 2.0,之前的配置文件是
system/etc/vold.conf,vold 2.0变为system/etc/vold.fstab。

1、启动vold

在init.rc中启动VOLD这个守护线程和创建socket的命令如下:
service vold /system/bin/vold
socket vold stream 0660 root mount
ioprio be 2

2、配置vold.fstab

vold.fstab文件的格式是:
Format: dev_mount
label: -Label for the volume
mount_point -Where the volume will be mounted
part -Partition #(1 based), or 'auto' for first usable partition.
-List of sysfs paths to source devices

例如:
dev_mount sdcard /mnt/sdcard 1 /devices/platform/mxsdhci.0/mmc_host/mmc0

自Android 2.2后,SD mount的位置变为/mnt/sdcard。

二、控制流程分析

Vold关于SD card settings的代码位于:
packages/apps/Settings/src/com/android/settings/deviceinfo/Memory.java
Vold上层MountService的代码位于:
frameworks/base/services/java/com/android/server/MountService.java
Vold底层处理的代码位于:
system/vold/

1、Vold设计架构

Setting
|
MountService
|
CommandListener
|
VolumeManager - NetlinkManager
|
Volume - DirectVolume
|
SD/USB device

MountService会接收来之Setting的变化,及来自底层VolumeManager的信息,并对之分析判,然后
通过doMountVolume命令到底层。
Vold初始化时,会创建class NetlinkManager和VolumeManager,class NetlinkManager接收
来自底层的信息,然后传交给VolumeManager处理;
重要类class VolumeManager 仅有一个实例,它主要负责vold的管理操作,管理多个sd卡,usb各种
操作;重要类class Volume 可有多个实例,挂载多少个sd卡、usb,它就有多少个。重要类class
DirectVolume 封装了很多的方法和属性;重要类class CommandListener主要收到上层
MountService通过doMountVolume发来的命令,分析后,转交给VolumeManager处理;
VolumeManager处理信息后,或报告给
上层MountService,或交给volume执行具体操作(挂载
SD,USB).

2、Vold代码实现过程大致分为三步:

1).创建链接:
在vold作为一个守护进程,一方面接受驱动的信息,并把信息传给应用层;另一方面接受上层的命令并
完成相应操作。

所以这里的链接一共有两条:
(1)vold socket: 负责vold与应用层的信息传递;
(2)访问udev的socket: 负责vold与底层的信息传递;
这两个链接都是在进程的一开始完成创建的。

2).引导:
这里主要是在vold启动时,对现有外设存储设备的处理。首先,要加载并解析vold.fstab,
并检查挂载点是否已经被挂载(注:这里检查挂载点的用意不是很清楚!);其次,执行MMC卡挂
载; 最后,处理USB大容量存储。

3).事件处理:
这里通过对两个链接的监听,完成对动态事件的处理,以及对上层应用操作的响应。




百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说公务员考试mountservice框架分析在线全文阅读。

mountservice框架分析.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/gongwuyuan/1249191.html(转载请注明文章来源)

相关推荐:

Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: