首页> 中国专利> 一种基于Android系统的磁盘配额控制方法及系统

一种基于Android系统的磁盘配额控制方法及系统

摘要

本发明公开一种基于Android系统的磁盘配额控制方法及系统,其中,方法包括步骤:A、在智能设备安装应用时,解析应用安装包中的配置文件,获取应用的包名信息及标识信息,并将应用的包名及标识记录到一磁盘配额配置文件中;B、在应用启动后,智能设备的该应用向设备供应商的管理服务器发出获取磁盘配额的请求;C、所述管理服务器查找到该应用的磁盘限额,将查找到的磁盘限额信息返回至智能设备;D、智能设备将磁盘限额记录到磁盘配额配置文件中,然后为该应用分配对应限额的磁盘空间,并对应用运行过程进行监控,使其缓存的数据大小不超过分配的磁盘空间。本发明保证多个应用在进行数据缓冲时,设备能够正常的运行。

著录项

  • 公开/公告号CN105094692A

    专利类型发明专利

  • 公开/公告日2015-11-25

    原文格式PDF

  • 申请/专利权人 TCL集团股份有限公司;

    申请/专利号CN201410216738.1

  • 发明设计人 田静;余潘虎;吕华;

    申请日2014-05-22

  • 分类号G06F3/06;G06F17/30;

  • 代理机构深圳市君胜知识产权代理事务所;

  • 代理人王永文

  • 地址 516006 广东省惠州市仲恺高新技术开发区十九号小区

  • 入库时间 2023-12-18 12:21:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-13

    授权

    授权

  • 2015-12-23

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20140522

    实质审查的生效

  • 2015-11-25

    公开

    公开

说明书

技术领域

本发明涉及磁盘管理领域,尤其涉及一种基于Android系统的磁盘限额控制方法及系统。

背景技术

从标准清晰度(SD)、增强清晰度(ED)、高清晰度(HD)再到全高清(FULLHD)、超高清(UHD),用户对视频源清晰度的需求不断提高,这就使得各个视频应用更加集中地在系统后台抢占设备中的存储资源。在Android系统中,当开启多个视频播放线程时,每个应用都会请求更高的磁盘空间进行视频数据缓冲,没有有效的控制必然会影响设备的正常运行。不仅仅是视频应用,其他应用对磁盘空间的需求也越来越大,但现有的Android系统磁盘管理方法还无法有效控制各应用的磁盘配额,导致应用在运行时,经常超出限额,导致应用强制退出。

因此,现有技术还有待于改进和发展。

发明内容

鉴于上述现有技术的不足,本发明的目的在于提供一种基于Android系统的磁盘配额控制方法及系统,旨在解决现有的磁盘管理方法无法对磁盘配额有效控制的问题。

本发明的技术方案如下:

一种基于Android系统的磁盘配额控制方法,其中,包括步骤:

A、在智能设备安装应用时,解析应用安装包中的配置文件,获取应用的包名信息及标识信息,并将应用的包名及标识记录到一磁盘配额配置文件中;

B、在应用启动后,智能设备的该应用向设备供应商的管理服务器发出获取磁盘配额的请求;

C、所述管理服务器查找到该应用的磁盘限额,将查找到的磁盘限额信息返回至智能设备;

D、智能设备将磁盘限额记录到磁盘配额配置文件中,然后为该应用分配对应限额的磁盘空间,并对应用运行过程进行监控,使其缓存的数据大小不超过分配的磁盘空间。

所述的基于Android系统的磁盘配额控制方法,其中,所述步骤C中,应用提供商预先向设备供应商购买该应用在智能设备上的磁盘限额,设备供应商的管理服务器接收到获取磁盘限额的请求后,查找该应用的应用提供商所购买的磁盘限额,将查找到的磁盘限额信息返回至该智能设备。

所述的基于Android系统的磁盘配额控制方法,其中,所述步骤D之后还包括:当应用提供商重新向设备供应商购买该应用在智能设备上的磁盘限额时,设备供应商的管理服务器将该应用新的磁盘限额广播至该智能设备,由该智能设备进行同步。

所述的基于Android系统的磁盘配额控制方法,其中,所述步骤A之前,在Android系统内核开始编译后,获取quota源码,并生成quota命令的执行文件,在内核加载完毕后,执行quota开启命令,开启限额分配服务。

所述的基于Android系统的磁盘配额控制方法,其中,所述步骤D具体包括:

D1、执行quota配置命令为应用分配该限额对应的磁盘空间;

D2、修改磁盘分区/mnt/sdcard中的软硬限制值为对应的限额值。

所述的基于Android系统的磁盘配额控制方法,其中,所述步骤C中,当应用的磁盘限额发生变化时,将新的磁盘限额信息发送至智能设备,由智能设备进行同步。

所述的基于Android系统的磁盘限额分配方法,其中,所述应用为视频应用。

一种基于Android系统的磁盘配额控制系统,其中,包括:

应用解析模块,用于在智能设备安装应用时,解析应用安装包中的配置文件,获取应用的包名信息及标识信息,并将应用的包名及标识记录到一磁盘配额配置文件中;

请求发送模块,用于在应用启动后,向设备供应商的管理服务器发出获取磁盘配额的请求;

限额返回模块,用于查找到该应用的磁盘限额,将查找到的磁盘限额信息返回至智能设备;

磁盘空间分配模块,用于将磁盘限额记录到磁盘配额配置文件中,然后为该应用分配对应限额的磁盘空间,并对应用运行过程进行监控,使其缓存的数据大小不超过分配的磁盘空间。

所述的基于Android系统的磁盘配额控制系统,其中,还包括:

加载模块,用于在Android系统内核开始编译后,获取quota源码,并生成quota命令的执行文件,在内核加载完毕后,执行quota开启命令,开启限额分配服务。

所述的基于Android系统的磁盘配额控制系统,其中,所述磁盘空间分配模块具体包括:

配置单元,用于执行quota配置命令为应用分配该限额对应的磁盘空间;

修改单元,用于修改磁盘分区/mnt/sdcard中的软硬限制值为对应的限额值。

所述的基于Android系统的磁盘配额控制系统,其中,还包括:

同步模块,用于当应用提供商重新向设备供应商购买该应用在智能设备上的磁盘限额时,将该应用新的磁盘限额广播至该智能设备,由该智能设备进行同步。

有益效果:本发明利用Linux的磁盘管理特性对不同UID的每个应用端口进行磁盘限额控制,实现了有效的存储资源管理,保证多个应用在进行数据缓冲时,设备能够正常的运行。

附图说明

图1为本发明一种基于Android系统的磁盘配额控制方法较佳实施例的流程图。

图2为图1所示方法中步骤S104的具体流程图。

图3为本发明的方法中通过收费控制管理磁盘空间具体实施例的流程图。

图4为本发明一种基于Android系统的磁盘配额控制系统较佳实施例的结构框图。

图5为图4所示系统中磁盘空间分配模块的具体结构框图。

具体实施方式

本发明提供一种基于Android系统的磁盘配额控制方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1为本发明一种基于Android系统的磁盘配额控制方法较佳实施例的流程图,如图所示,其包括步骤:

S101、在智能设备安装应用时,解析应用安装包中的配置文件,获取应用的包名信息及标识信息,并将应用的包名及标识记录到一磁盘配额配置文件中;

S102、在应用启动后,智能设备的该应用向设备供应商的管理服务器发出获取磁盘配额的请求;

S103、所述管理服务器查找到该应用的磁盘限额,将查找到的磁盘限额信息返回至智能设备;

S104、智能设备将磁盘限额记录到磁盘配额配置文件中,然后为该应用分配对应限额的磁盘空间,并对应用运行过程进行监控,使其缓存的数据大小不超过分配的磁盘空间。

本发明实施例是基于Android系统实现的,Android操作系统的内核属于Linux内核的一个分支,具有Linux的磁盘限额调度和管理功能。Linux自身提供了支持磁盘限额的编译选项,其中的Quota为开源项目,且可获取可编译源码,Quota可以为不同用户控件分配磁盘限额并进行运行监控。

Android给每个APK(应用)进程分配一个单独的用户空间,每个用户空间以UID标示,对应一个Linux用户,系统运行时将为其创建一个沙箱,防止其他应用程序影响。

所述步骤S101之前,在Android系统内核开始编译后,获取quota源码,并生成quota命令的执行文件,在内核加载完毕后,执行quota开启命令,开启限额分配服务。

在具体实施时,首先在Android内核源码根目录中执行makemenuconfig(内核配置)打开Linux内核配置,进入文件系统配置子界面,quotasupport选项前打*确认,完成Android内核对磁盘配额的支持。然后在Android系统内核开始编译后,执行apt-getsourcequota(获取quota源码指令)获取quota源码并在执行./configure和make后内核中将生成quota命令的执行文件,其中,quotaon表示开启磁盘空间限制,edquota编辑用户的磁盘空间大小。

在Android内核加载完成后,需在设备系统的初始化文件init.rc中开启配额管理服务,即执行quota开启命令/system/bin/quotaon–au,a表示限额的磁盘分区为/mnt/sdcard,u表示开启用户空间的磁盘限制。

Quota将作为一个后台服务长存,对应用所对应进程进行监控,以确保各应用缓存的数据不超过分配的磁盘空间。

在步骤S101中,在应用安装时,先解析应用安装包中的配置文件AndroidManifest.xml,获取应用的包名信息(packagename信息)及标识信息(android:sharedUserId(与签名对应的节点信息)),系统结合应用签名信息为应用分配对应的用户空间并以系统中唯一固定不变的一个UID作为标识,不同的应用由于包名和签名均不同将分配不同的UID,然后将应用的包名及标识记录到一磁盘配额配置文件中,如:

PIDPRCPU%S#THRVSSRSSPCYUIDName

497900%S16843792K87956Kbgu0_a100com.pplive.androidpad

510700%S16876992K65664Kbgu0_a99com.letv.tv519210%S22848544K61308Kbgu0_a98com.tencent.qqlivehd529511%S29961796K111476Kbgu0_a97com.sohutv.tv550810%S19912432K88160Kfgu0_a95com.qiyi.video560310%S23878440K47156Kbgu0_a93com.youku.tv

上述的Name选项即为包名简称,在Android中共享UID需在Manifest(系统文件)节点中增加android:sharedUserId属性,并使用对应的签名工具为其签名即可。Android应用的UID均大于10000,以u0_a[num]形式表示,对应数值为10000+num,例如u0_a100表示UID为10100,bgu0_a99表示UID为10099,依次类推。

按照上述方法,磁盘配额配置文件的格式可按照表一的方式设置,其中Value表示应用的磁盘限额大小:

表一

packagenameUIDValuecom.youku.tv10093com.qiyi.video10095com.sohutv.tv10097com.tencent.qqlivehd10098com.letv.tv10099com.pplive.androidpad10100

所述的磁盘配额配置文件存储在智能设备上,当设备中磁盘限额服务启动后,通过设备中的该磁盘配额配置文件即可查找到各应用的磁盘限额并依次进行管理。

在步骤S102中,应用启动后,智能设备的该应用向设备供应商的管理服务器(也称磁盘管理服务器)发出获取磁盘配额的请求,以便请求磁盘读写权限进行数据缓存;具体可通过连接互联网向设备供应商的管理服务器发出请求,在发出请求时,还将应用包名的信息发送到管理服务器,以便管理服务器查找到对应的应用的磁盘限额信息。

在步骤S103中,应用提供商预先向设备供应商购买该应用在智能设备上的磁盘限额,设备供应商的管理服务器接收到获取磁盘限额的请求后,根据应用包名(packagename)查找到该应用的应用提供商所购买的磁盘限额,再将磁盘限额信息返回至智能设备。

以视频应用为例,应用提供商为了保证超高分辨率视频源的正常播放,往往需要更大的磁盘空间,因此需要请求更高的磁盘限额大小,即通过收费控制各应用的磁盘限额,若需要大的磁盘限额,则需付出更多的购买金额,保证各应用具有一个合理的磁盘限额,而不会发生各应用在系统后台抢占设备存储资源的问题。当应用提供商所购买的磁盘限额发生变化时,设备供应商的管理服务器就会将新的磁盘限额信息发送至智能设备,由智能设备进行同步,从而实现磁盘限额大小的同步,这实现了磁盘限额的动态调配,磁盘限额信息实时同步,便于对设备应用磁盘限额进行实时动态管理。设备提供商的数据库中存储有各应用的磁盘限额,其存储格式可按照表二方式设置,一列为应用包名,一列为磁盘限额大小:

表二

packagenameValuecom.youku.tv200Mcom.qiyi.video800Mcom.sohutv.tv200Mcom.tencent.qqlivehd200Mcom.letv.tv0Mcom.pplive.androidpad200M

在步骤S104中,智能设备接收到磁盘限额信息后,解析出信息中的应用的包名和相对应的磁盘限额大小,然后将各应用的磁盘限额记录到磁盘配额配置文件中,然后为应用分配对应限额的磁盘空间,若磁盘限额发生变化,则磁盘配额配置文件也会同步刷新,从而及时满足各应用新的磁盘使用配额需求,在应用运行过程中,设备系统对运行的应用进行监控,使应用缓存的数据大小不超过分配的磁盘空间,从而实现对磁盘配额的有效管理。磁盘配额配置文件的内容会更新至表三:

表三

packagenameUIDValuecom.youku.tv10093200Mcom.qiyi.video10095800Mcom.sohutv.tv10097200Mcom.tencent.qqlivehd10098200Mcom.letv.tv100990Mcom.pplive.androidpad10100200M

具体的,如图2所示,所述步骤S104具体包括:

S201、执行quota配置命令为应用分配该限额对应的磁盘空间;

设备系统在后台执行quota配置命令,具体为执行edquota命令为应用所属用户分配对应的磁盘限额大小Value,执行edquota命令格式为:edquota–u10093,其中的u表示要配置的应用包名。

S202、修改磁盘分区/mnt/sdcard中的软硬限制值为对应的限额值。

本步骤是修改磁盘分区/mnt/sdcard中的软硬限制值为Value的内容,完成磁盘配额的配置,如:

edquota-u10093

Filesystemblockssofthardinodessofthard

/mnt/sdcard804000004000001000

edquota-u10095

Filesystemblockssofthardinodessofthard

/mnt/sdcard802000002000001000

本实施例中的应用为视频应用,因为视频应用所需的磁盘空间较大,所以进行视频数据缓冲时,将会受到本发明磁盘配额控制方法的管控,当超出磁盘限额时,配额管理服务将强制程序退出,如com.pplive.androidpad缓存数据超过200M时,应用由于无法对磁盘继续读写将产生IO读写错误强制退出。

在所述步骤S104之后还包括步骤:

当应用提供商重新向设备供应商购买该应用在智能设备上的磁盘限额时,设备供应商的管理服务器将该应用新的磁盘限额广播至该智能设备,由该智能设备进行同步。当应用所需资源越来越大时,需要请求更多的磁盘空间使用权限,所以需要向控制磁盘资源的设备供应商申请更大的磁盘限额。

本发明实施例就是将智能设备通过网络与设备供应商的管理服务器连接,实时管理磁盘限额,应用提供商向设备供应商购买磁盘限额,再由设备供应商的管理服务器将磁盘限额广播至全网在线的智能设备,而智能设备则由设备后台磁盘限额服务来实现限额控制,当应用磁盘受限时,应用提供商重新向设备供应商购买更大的磁盘限额,付费后从而得到更大的磁盘空间,这样智能设备就会为对应的应用分配更大的磁盘空间,从而实现收费控制管理磁盘空间。

下面提供一通过收费控制管理磁盘空间的具体实施例,如图3所示,其包括步骤:

S301、应用提供商向设备供应商购买磁盘限额;

S302、设备供应商的管理服务器将该应用的磁盘限额广播至全网在线设备;

S303、设备通过后台磁盘限额服务实现磁盘限额管理;

S304、当应用的磁盘受限时,强制退出并发出异常报告至应用提供商;

S305、应用提供商重新向设备供应商购买更大磁盘限额,并支付更多费用;

S306、设备供应商的管理服务器将新的磁盘限额广播至全网在线设备;

S307、设备应用根据新的磁盘限额获取更多的磁盘空间。

下面通过一具体实施例来对本发明进行具体说明。

用户1在设备1上安装了优酷视频应用,该应用的UID为10093,打开优酷视频应用进行视频数据缓冲前,需连接到优酷媒体服务器,优酷媒体服务器向设备供应商的磁盘管理服务器发出请求,获取应用提供商购买的磁盘限额,磁盘管理服务器查询其数据库得到应用提供商购买的磁盘限额大小为200M,视频播放过程中设备后台磁盘管理将监控UID为10093的磁盘限额不能超过200M。

用户2在设备2上安装爱奇艺视频应用,该应用的UID为10095,打开爱奇艺应用进行视频数据缓冲前,需连接到爱奇艺媒体服务器,爱奇艺媒体服务器向设备供应商的磁盘管理服务器发出请求,获取购买的磁盘限额,磁盘管理服务器查询其数据库得到应提供商购买的磁盘限额大小为800M,视频播放过程中设备后台磁盘管理将监控UID为10095的磁盘限额不能超过800M。

当用户1使用设备1上的优酷视频观看视频,同时用户2使用设备2上的爱奇艺视频观看视频时,若两个应用所缓存的数据均超过200M时,用户1在设备1上无法进行视频缓冲,将中断播放;而用户2在设备2上可以继续进行视频缓冲,正常播放。

用户3在设备3上分别安装了乐视及爱奇艺视频应用,乐视应用的UID为10099,爱奇艺视频应用的UID为10095,并且同时打开,准备进行视频数据缓冲播放,此时根据设备供应商的管理服务器查询到两家应用提供商购买的磁盘配额数分别为0M(乐视应用)和800M(爱奇艺视频应用),即乐视应用未获取磁盘配额将不能对磁盘进行读写,数据缓冲停止并退出。

当爱奇艺视频的应用提供商重新购买了设备终端中的磁盘配额数据,如降低为400M,在用户2和用户3分别打开设备2和设备3时,会重新进行磁盘配额限制。此时缓存超过400M时,爱奇艺视频应用将无法对磁盘缓冲读写,并被强制退出。

通过本发明的方法,监控不同应用的视频应用缓存读写,由设备供应商通过网络控制磁盘限额大小,对全网所有设备进行统一管理,建立不同包名的应用于申请的磁盘限额之间的对应关系,实现设备内部的磁盘有效管理,确保了当开启多个视频播放线程时,进行有效的控制。

基于上述方法,本发明还提供一种基于Android系统的磁盘配额控制系统较佳实施例,如图4所示,其包括:

应用解析模块100,用于在智能设备安装应用时,解析应用安装包中的配置文件,获取应用的包名信息及标识信息,并将应用的包名及标识记录到一磁盘配额配置文件中;此应用解析模块100设置在智能设备上,用来在安装应用时获取应用的包名信息以及标识信息,然后将获取到的上述信息记录到智能设备上的一磁盘配额配置文件中,在该磁盘配额配置文件中,具有三类信息:包名、标识、磁盘限额,应用解析模块100获取到包名信息以及标识信息后,将上述信息记录到磁盘配额配置文件中,磁盘限额信息则由其他模块添加至磁盘配额配置文件中。

请求发送模块200,用于在应用启动后,向设备供应商的管理服务器发出获取磁盘配额的请求;请求发送模块200设置在智能设备上,用于向设备供应商的管理服务器发送请求,以获取磁盘配额,在发送请求时,还将应用包名的信息发送到所述管理服务器,以便管理服务器查找到对应的应用的磁盘限额信息。

限额返回模块300,用于查找到该应用的磁盘限额,将查找到的磁盘限额信息返回至智能设备;此限额返回模块300设置在所述管理服务器上,其在接收到获取磁盘配额的请求后,查找该应用的应用提供商所购买的磁盘限额,再将磁盘限额信息返回至智能设备。在管理服务器的数据库中存储了应用提供商所购买的应用的磁盘限额信息,如上表二所示,其记录了应用的包名以及磁盘限额信息,通过该表提供的信息即可获取到各应用的磁盘限额信息,这样限额返回模块300就能将获取到应用的磁盘限额信息返回给智能设备。

当某个应用需要更大的磁盘空间时,就需要向设备供应商付出更多的购买金额,并由设备供应商的管理服务器来记录各应用所对应的磁盘限额,这样就实现了通过收费来控制各应用所拥有的磁盘空间的目的。当应用提供商所购买的磁盘限额发生变化时,设备供应商的管理服务器就会将新的磁盘限额信息发送至智能设备,由智能设备进行同步,从而实现磁盘限额大小的同步,这实现了磁盘限额的动态调配,磁盘限额信息实时同步,便于对设备应用磁盘限额进行实时动态管理。

磁盘空间分配模块400,用于将磁盘限额记录到磁盘配额配置文件中,然后为该应用分配对应限额的磁盘空间,并对应用运行过程进行监控,使其缓存的数据大小不超过分配的磁盘空间。此磁盘空间分配模块400设置在智能设备上,在接收到限额返回模块300返回的磁盘限额信息后,可将该应用的磁盘限额记录到前述的磁盘配额配置文件中,从而将应用的三类信息都记录在磁盘配额配置文件上。然后为该应用分配对应限额的磁盘空间,若磁盘限额发生变化,则磁盘配额配置文件也会同步刷新,在应用运行过程中,设备系统对运行的应用进行监控,使应用缓存的数据大小不超过分配的磁盘空间,从而实现对磁盘配额的有效管理。

进一步,所述系统还包括:

加载模块,用于在Android系统内核开始编译后,获取quota源码,并生成quota命令的执行文件,在内核加载完毕后,执行quota开启命令,开启限额分配服务。Quota将作为一个后台服务长存,对应用所对应进行监控,以确保各应用缓存的数据不超过分配的磁盘空间。

进一步,如图5所示,所述磁盘空间分配模块400具体包括:

配置单元410,用于执行quota配置命令为应用分配该限额对应的磁盘空间;配置单元410在后台执行quota配置命令,具体为执行edquota命令为应用所属用户分配对应的磁盘限额大小Value,执行edquota命令格式为:edquota–u10093,其中的u表示要配置的应用包名,10093表示UID。

修改单元420,用于修改磁盘分区/mnt/sdcard中的软硬限制值为对应的限额值。修改单元420用来修改磁盘分区/mnt/sdcard中的软硬限制值为Value的内容,完成磁盘配额的配置。

进一步,所述系统还包括:

同步模块,用于当应用提供商重新向设备供应商购买该应用在智能设备上的磁盘限额时,将该应用新的磁盘限额广播至该智能设备,由该智能设备进行同步。例如某个应用在使用过程中,其缓冲的数据过多,那么其应用提供商就会向设备供应商购买更多的磁盘限额,并由设备供应商的管理服务器记录新的磁盘限额,当应用提供商所购买的磁盘限额发生变化时,设备供应商的管理服务器就会将新的磁盘限额信息发送至智能设备,由智能设备进行同步,从而实现磁盘限额大小的同步,从而实现了磁盘限额的动态调配,磁盘限额信息实时同步,便于对设备应用磁盘限额进行实时动态管理。

关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。

综上所述,本发明利用Linux的磁盘管理特性对不同UID的每个应用端口进行磁盘限额控制,实现了有效的存储资源管理,保证多个应用在进行数据缓冲时,设备能够正常的运行。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号