[发明专利]一种安卓系统上挂载多分区存储设备的方法在审
申请号: | 201410677928.3 | 申请日: | 2014-11-24 |
公开(公告)号: | CN104391657A | 公开(公告)日: | 2015-03-04 |
发明(设计)人: | 葛晶波;刘棨;包乔晋;王海波 | 申请(专利权)人: | 上海盈方微电子有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F17/30 |
代理公司: | 上海新天专利代理有限公司 31213 | 代理人: | 龚敏 |
地址: | 201203 上海市浦东新区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 系统 上挂载多 分区 存储 设备 方法 | ||
技术领域
本发明涉及安卓系统上存储设备挂载方法,尤其是一种安卓系统上挂载多分区存储设备的方法。
背景技术
安卓默认方案只能识别多分区存储设备的第一个逻辑分区,剩下的分区都是无法识别的。这样就会造成磁盘空间的浪费。例如,有一些存储设备因为存储空间很大,需要分区管理,例如移动硬盘,用户把它插到安卓设备上,却无法识别,就造成了磁盘空间的浪费。而用户期望的是更全面的文件管理。
如图1所示,在安卓系统上,热插拔存储设备的管理分为这几个部分,kernel(内核)、vold(存储类的守护进程)、frameworks(应用接口层):
1、kernel:在内核中,主要体现在驱动抛出相应的uevent(含有存储设备信息的事件)供本地存储守护进程分析处理。当一个存储设备插入到系统中或从系统中移除时,kernel 中相应的驱动会第一时间识别,将存储设备信息诸如分区数量、存储设备容量等这些信息通过uevent 的方式发送出去。发送的uevent个数和类型也是和存储设备属性有关系的,一般的存储设备就只有一个分区,所以一般情况下会陆续发送 2个uevent:1个存储设备类型的uevent,(即“disk”类型的uevent)包含分区个数等信息,1个分区类型的 uevent,(即“partition”类型的uevent)包含了该分区详细信息;如果有多个分区,那么会是先发送 1 个”disk”的 uevent,然后陆续发送逐个分区的 uevent;如果0个分区,那么只会发送1个“disk”的 uevent。而存储设备移除的发送顺序是相反的,先依次发送“partition”的uevent,最后发送“disk”的uevent。
2、vold:存储类的守护进程,作为安卓的一个本地服务,接收内核的消息,负责处理诸如SD、USB 等存储类设备的插拔等事件。
3、frameworks:这一层提供了一些接口如挂载卸载等可以让用 户根据自己的需求去主动管理相应的存储设备。主要是挂载服务MountService。
当一个存储设备插入到系统中或从系统中移除时,kernel 中相应的驱动会第一时间识别,将存储设备信息诸如分区数量、设备容量等这些信息通过 uevent 的方式发送出去。
vold这个守护进程会处理内核发出来的存储设备相关的uevent,但是只会处理fstab文件中所写的存储区块,就是说在 fstab 里面配置了几个存储设备,那么 vold 就只支持几个相应存储设备的挂载。存储设备如果有多个分区,这些分区信息显然不在fstab列表里,所以安卓默认策略无法支持多分区存储设备。图2是现有技术的安卓默认的处理流程,按此流程只能挂载存储设备的一个分区。
名词解释:fstab文件:存放了安卓系统支持的存储设备列表的一个配置文件。
发明内容
本发明的目的是,在有一些存储设备因为存储空间很大,需要分区管理,可以把每一个分区都成功挂载供用户使用,避免了磁盘空间的浪费。
本发明的具体技术方案是:一种安卓系统上挂载多分区存储设备的方法,包括如下步骤:
步骤一,插拔外部存储设备时,内核发出包含所有节点信息的事件;
步骤二,判断本地存储守护进程监测到内核事件,事件中的节点信息是否包含在安卓的已知列表里;若是,则上层挂载服务:更新磁盘状态,创建一个线程通知本地存储守护进程执行具体的挂载命令,仅挂载一个分区;若否,则本地存储守护进行,添加到可处理列表里,通知上层挂载服务,上层挂载服务:接收到通知,将节点信息添加到支持列表,并将该节点挂载;
步骤三,挂载完成。
有益效果
1.打破配置文件对存储设备数量及分区的限制
既然要支持多分区挂载,就不能遵循安卓默认的机制,必须打破配置文件对存储设备数量及分区的限制,vold中必须要对fstab文件规定外的uevent进行处理,根据uevent中包含的各分区的信息将这些分区挂载到文件系统合适的目录。vold中有个列表mVolumes是存储fstab中的存储设备列表信息的,在android默认系统上这个列表是固定的;要支持多分区挂载,就要在存储设备插入时动态添加存储设备节点列表到这个mVolumes中,再通知上层挂载服务将此节点也添加到它所支持的存储设备列表里,最后再进行mount挂载操作。
2.挂载点的创建与删除
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海盈方微电子有限公司,未经上海盈方微电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410677928.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种精确分析任务WCET的自动化方法
- 下一篇:一种截屏方法及装置