mountservice框架分析
更新时间:2023-07-28 23:33:01 阅读量: 实用文档 文档下载
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).事件处理:
这里通过对两个链接的监听,完成对动态事件的处理,以及对上层应用操作的响应。
正在阅读:
mountservice框架分析07-28
大班社会:不一样的我10-15
《再塑生命的人》(海伦·凯乐)知识点02-22
《现代汉语》黄廖本3章习题07-21
童年的魔法梦作文800字07-07
小学数学第一册第一单元测试题01-02
乙肝肝病变过程03-23
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- mountservice
- 框架
- 分析
- 电子商务教案第5章 电子商务下的网络营销
- 因特网信息的查找与下载
- 全国小学生第三套广播体操希望风帆的动作规范
- 弗兰克-赫兹实验中氩管温度对实验曲线的影响
- 项目管理体系 (关系图)PMP,信息系统项目师
- 第2章 AT89s52单片机的结构
- 高一化学必修一期末试卷及答案
- 第6节 《物理性质与化学性质》(第一课时)
- 细胞生物学 第4章 细胞质膜
- access模拟题2010-06-12
- 描述离散动态系统的集合标识Petri网STPNs
- 商务沟通方法与技能知识点汇总
- 2014 物业经营管理 第九章 财务管理与绩效评价
- 土木工程混凝土论文中英文资料外文翻译文献
- 连铸技术创新的推动力
- 政治体制改革的历史与现状
- 2018-2019年度最新小学语文A版五年级下册《飞夺泸定桥》教案
- 有余数的除法评课
- 企业财务管理(复习题)
- 1789_汽车前灯罩的冲压模具设计