数据分区的存储空间管理方法及装置与流程

文档序号:12747896阅读:264来源:国知局
数据分区的存储空间管理方法及装置与流程

本发明涉及数据存储技术领域,尤其涉及一种数据分区的存储空间管理方法及装置。



背景技术:

android设备的分区包括系统分区,数据分区。数据分区用于存储各类用户数据与应用程序,是用户可以读写的。擦除这个分区,等同于恢复出厂设置,也就是android系统第一次启动时的状态,或者是最后一次安装官方或第三方ROM后的状态。一般需要对数据分区设定容量限额,并且防止黑客向数据分区非法写入数据,或者防止创建非法文件对数据分区进行恶意破坏。

因为运行中的android系统大部分用户操作的数据都会默认保存在数据分区,如新下载安装的应用数据、应用运行的缓存数据、应用下载的图片视频等文件,使数据分区容易被填满而导致android系统异常。各个应用可以都有检测数据分区可用空间的措施,但大多数情况下应用只是在进行下载任务之前检测一下数据分区的可用空间,并不会在下载过程中间歇的检测。当多个应用同时下载数据时,他们在下载前检测data可用空间都是够用的,但可能会出现多个应用同时下载时,数据分区被“填满”的问题。

android系统一般使用DSMS(Device Storage Monitor Service)服务来监测系统内部存储空间的状态,如果设备的剩余存储空间小于某一个阀值(默认是存储空间的10%,这个值可以设置)时将会向用户发送剩余空间不足的警告,让用户释放一些空间。下面以数据分区为例,说明一下这个流程:

DSMS每隔1分钟检测一下数据分区剩余空间的大小,当数据分区可用空间小于阀值(分区总大小的10%到500M之间)时,会自动进行一次清缓存的操作;清除缓存后再计算数据分区的可用空间,如果还是小于阀值,则会给通知栏发送一个警告通知,并发送ACTION_DEVICE_STORAGE_LOW广播。用户可以开启应用管理器,手动对各个应用数据进行清除以达到增加数据分区可用空间的目的,同时应用自身也可以监听ACTION_DEVICE_STORAGE_LOW广播来做一些特殊的处理,例如,Email应用接受到此广播时会停止当前的收发邮件的操作。DSMS服务检测到空间已满,会发送空间已满的广播;检测到剩余空间已经大于阀值,而之前发出过存储空间低或者空间不足的提示,会取消上述提示并发送ACTION_DEVICE_STORAGE_OK广播。如果这一分钟内下载的数据量非常大,有可能空间已满的广播还没有发出,数据分区就已经满了,导致应用无法正常运行。



技术实现要素:

本发明提供一种数据分区的存储空间管理方法及装置,旨在及时发现数据分区的存储空间不足,预防出现存储空间快速从不足到全满而导致应用无法正常运行的情况。

为实现上述目的,本发明提供一种数据分区的存储空间管理方法,该数据分区的存储空间管理方法包括:

按照第一预设频率检测数据分区的剩余存储空间;

当检测到所述剩余存储空间小于第一预设阈值时,按照第二预设频率检测数据分区中剩余存储空间,其中,所述第二预设频率大于所述第一预设频率;

当检测到所述剩余存储空间小于第二预设阈值时,显示存储空间已满的警告信息以及应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间,其中,所述第二预设阈值小于所述第一预设阈值。

可选地,所述数据分区的存储空间管理方法还包括:

当检测到所述剩余存储空间小于第二预设阈值时,设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值;

在每次调用写函数向所述数据分区写入数据之前,根据所述预设属性的值判断所述数据分区的剩余存储空间是否小于第二预设阈值;

若剩余存储空间小于第二预设阈值,则向应用层发送读写异常的提示信息;

若剩余存储空间大于或者等于所述第二预设阈值,则调用写函数向所述数据分区写入数据。

可选地,所述数据分区的存储空间管理方法还包括:

当检测到所述剩余存储空间量小于第一预设阈值时,显示存储空间不足的警告信息以及应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间。

可选地,所述数据分区的存储空间管理方法还包括:

当检测到所述剩余存储空间小于第二预设阈值时,判断系统当前是否处于完成启动的状态;

若系统当前处于完成启动的状态,则执行设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值的步骤。

可选地,所述按照第二预设频率检测数据分区中剩余存储空间的步骤之后,所述数据分区的存储空间管理方法还包括:

当检测到所述剩余存储空间大于或者等于第二预设阈值时,设置所述预设属性的值,以将所述数据分区的存储量标记为大于或者等于所述第二预设阈值。

此外,为实现上述目的,本发明还提供一种数据分区的存储空间管理装置,该数据分区的存储空间管理装置包括:

分区监测模块,用于按照第一预设频率检测数据分区的剩余存储空间;

以及,当检测到所述剩余存储空间小于第一预设阈值时,按照第二预设频率检测数据分区中剩余存储空间,其中,所述第二预设频率大于所述第一预设频率;

信息提示模块,用于当检测到所述剩余存储空间小于第二预设阈值时,显示存储空间已满的警告信息,其中,所述第二预设阈值小于所述第一预设阈值;

界面显示模块,用于当检测到所述剩余存储空间小于第二预设阈值时,显示应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间。

可选地,所述数据分区的存储空间管理装置还包括:

系统属性模块,用于当检测到所述剩余存储空间小于第二预设阈值时,设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值;

数据读写模块,用于在每次调用写函数向所述数据分区写入数据之前,根据所述预设属性的值判断所述数据分区的剩余存储空间是否小于第二预设阈值;以及,若剩余存储空间小于第二预设阈值,则向应用层发送读写异常的提示信息;若剩余存储空间大于或者等于所述第二预设阈值,则调用写函数向所述数据分区写入数据。

可选地,所述信息提示模块还用于:当检测到所述剩余存储空间量小于第一预设阈值时,显示存储空间不足的警告信息;

所述界面显示模块还用于:当检测到所述剩余存储空间量小于第一预设阈值时,显示应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间。

可选地,所述数据分区的存储空间管理装置还包括:

状态判断模块,用于当检测到所述剩余存储空间小于第二预设阈值时,判断系统当前是否处于完成启动的状态;

所述系统属性模块还用于:若系统当前处于完成启动的状态,则设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值。

可选地,所述系统属性模块还用于:当检测到所述剩余存储空间大于或者等于第二预设阈值时,设置所述预设属性的值,以将所述数据分区的存储量标记为大于或者等于所述第二预设阈值。

本发明提出的数据分区的存储空间管理方法及装置,在向数据分区写入数据的过程中,按照一定的频率检测数据分区的剩余存储空间,当检测到剩余存储空间小于第一预设阈值时,增大检测数据分区中剩余存储空间的频率,优化检测剩余存储空间大小的频率,及早发现分区剩余存储空间不足的情况,当检测到剩余存储空间小于第二预设阈值时,说明此时数据分区的剩余存储空间已经不多,如果再有一定量的数据写入,可能会导致数据分区被写满,进而影响到应用的正常运行,因此,在检测到剩余存储空间小于第二预设阈值时,即发出警告信息,同时显示应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间,能够预防出现存储空间快速从不足到全满而导致应用无法正常运行的情况。

附图说明

图1为本发明数据分区的存储空间管理方法第一实施例的流程图;

图2为本发明数据分区的存储空间管理方法第二实施例的流程图;

图3为本发明数据分区的存储空间管理装置第一实施例的功能模块示意图;

图4为本发明数据分区的存储空间管理装置第二实施例的功能模块示意图;

图5为本发明数据分区的存储空间管理装置第三实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种数据分区的存储空间管理方法。参照图1所示,为本发明数据分区的存储空间管理方法第一实施例的流程图。

在本实施例中,该数据分区的存储空间管理方法包括:

步骤S10,按照第一预设频率检测数据分区的剩余存储空间;

步骤S20,当检测到所述剩余存储空间小于第一预设阈值时,按照第二预设频率检测数据分区中剩余存储空间,其中,所述第二预设频率大于所述第一预设频率;

本实施例提出的方法适用于具有智能操作系统的手机、平板电脑等移动终端,以下以安装有android操作系统的手机为例进行说明。该实施例提出的方法中的各个步骤可以由不同的功能模块来实现。

手机上安装有各种各样的应用,这些应用在运行过程中,会出现向数据分区,即手机的存储空间,写入数据的情况,例如下载图片、下载文件等。

定时地对数据分区的剩余存储空间的大小进行检测,例如,可以按照第一预设频率进行检测,当检测到剩余存储空间小于第一预设阈值时,认为当前的剩余存储空间已经不足,此时,用于检测剩余存储空间量的模块可以发送ACTION_DEVICE_STORAGE_LOW广播,以告知其他的功能模块,当前的存储空间已经不足,为了防止在写入数据的过程中发生空间已满导致应用运行出错,加快剩余存储空间的检测,即按照第二预设频率对数据分区的剩余存储空间进行检测。

一般情况下,第一预设阈值的大小可以根据手机的数据分区的总大小来设置,例如,可以设置为数据分区的总大小的10%到500M之间;第一预设频率可以是每40秒至1分钟检测一次,第二预设频率小于第一预设频率,例如,可以是每10-30秒检测一次。

步骤S30,当检测到所述剩余存储空间小于第二预设阈值时,显示存储空间已满的警告信息以及应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间,其中,所述第二预设阈值小于所述第一预设阈值。

当按照第二预设频率检测到剩余存储空间小于第二预设阈值时,显示存储空间已满的警告信息,以及应用数据管理界面,用户可以基于该应用该数据管理界面,清除应用数据,以释放存储空间,现有技术中,在通知栏发送警示信息,用户不容易注意到,本实施例提出的方式相对于现有的通知方式,能够使用户直观的看到空间已满的警告,并且快速地对应用数据进行清理,不需要用户再手动去开启数据管理应用,及时地进行数据的清理。

此时,用于检测剩余存储空间量的模块发送ACTION_DEVICE_STORAGE_NOT_FULL广播,以告知其他的功能模块,当前的存储空间已满。

本实施例中,第二预设阈值小于第一预设阈值,可选地,第二预设阈值为第一预设阈值的1/4。

进一步地,作为一种实施方式,在剩余存储空间不足时,发出存储空间不足的警告信息以及应用数据管理界面,此时,虽然剩余存储空间仍有余量,但是随着写数据的进行,余量会越来越小,为了使用户能够及早地对应用数据进行清理,以释放存储空间,在检测到剩余存储空间小于第一预设阈值时,显示存储空间不足的警告信息以及应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清理以释放存储空间。

本实施例提出的数据分区的存储空间管理方法,在向数据分区写入数据的过程中,按照一定的频率检测数据分区的剩余存储空间,当检测到剩余存储空间小于第一预设阈值时,增大检测数据分区中剩余存储空间的频率,优化检测剩余存储空间大小的频率,及早发现分区剩余存储空间不足的情况,当检测到剩余存储空间小于第二预设阈值时,说明此时数据分区的剩余存储空间已经不多,如果再有一定量的数据写入,可能会导致数据分区被写满,进而影响到应用的正常运行,因此,在检测到剩余存储空间小于第二预设阈值时,即发出警告信息,同时显示应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间,能够预防出现存储空间快速从不足到全满而导致应用无法正常运行的情况。

基于第一实施例提出本发明数据分区的存储空间管理方法的第二实施例。参照图2所示,在本实施例中,在步骤S10之后,该数据分区的存储空间管理方法还包括:

步骤S40,当检测到所述剩余存储空间小于第二预设阈值时,设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值;

步骤S50,在每次调用写函数向所述数据分区写入数据之前,根据所述预设属性的值判断所述数据分区的剩余存储空间是否小于第二预设阈值;

步骤S60,若剩余存储空间小于第二预设阈值,则向应用层发送读写异常的提示信息;

步骤S70,若剩余存储空间大于或者等于所述第二预设阈值,则调用写函数向所述数据分区写入数据。

本实施例的方法中提供一预设属性和一用于设置该预设属性的值的模块,可选地,该预设属性为sys.device.storage.low,其默认值为false,当检测到剩余存储空间小于第二预设阈值时,将sys.device.storage.low的值设置为true,即当前存储空间不足。

进一步地,由于用户对应用数据清理后,存储空间被释放,因此,当检测到所述剩余存储空间大于或者等于第二预设阈值时,设置所述预设属性的值,以将所述数据分区的存储量标记为大于或者等于所述第二预设阈值。也就是说,在检测到剩余存储空间大于或者等于第二预设阈值时,将sys.device.storage.low的值设置为false,即当前剩余存储空间充足。

由于绝大部分的Android应用写文件都是通过FileOutputStream、OutputStreamWriter、FileWriter等java io类来实现的,而这些类最终会调用到IoBridge.java的write函数,对于用于向数据分区中写入数据的数据读写模块来说,在每次调用函数Posix.write往分区写数据时之前,增加对上述预设属性的值判断,根据该预设属性的值来判断当前的数据分区的剩余存储空间是否小于第二预设阈值。若sys.device.storage.low的值为true,则向应用层发送读写异常,若sys.device.storage.low的值为false,则调用函数Posix.write继续执行写操作。用于设置该预设属性的值的模块在设置属性值后,会分享至共享内存,因此,对于数据读写模块来说,使用获取预设属性值的方式判断数据分区可用空间是否小于第二预设阈值比直接计算数据分区的可用空间来说,极大地提高了效率。

基于第一实施例或者第二实施例提出本发明数据分区的存储空间管理方法的第三实施例。在本实施例中,在检测到剩余存储空间小于第二预设阈值时,判断系统是否处于完成启动状态;若系统当前处于完成启动的状态,则执行设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值的步骤。

本实施例中通过设置系统属性sys.boot_completed的值来表示系统是否已经启动完成,如果确认系统是在启动完成后的运行状态,则设置预设属性sys.device.storage.low为true,反之则置为false。

由于手机在写数据的过程中可能由于应用的设置等原因出现系统重新启动的情况,而设置预设属性的值则需要在系统启动完成,并且正常运行时,才能够进行设置,因此,在本实施中,在设置系统属性之前,无论是将sys.device.storage.low的值设置为true,还是将sys.device.storage.low的值设置为false,在此之前都会获取系统属性sys.boot_completed的值,以判断系统是否当前处于完成启动的后的运行状态。在确认系统是在启动完成后的运行状态时,再对预设属性sys.device.storage.low进行设置。

本发明还提出一种数据分区的存储空间管理装置。

参照图3所示,为本发明数据分区的存储空间管理装置第一实施例的功能模块示意图。

在该实施例中,该数据分区的存储空间管理装置包括:

分区监测模块10,用于按照第一预设频率检测数据分区的剩余存储空间;

以及,当检测到所述剩余存储空间小于第一预设阈值时,按照第二预设频率检测数据分区中剩余存储空间,其中,所述第二预设频率大于所述第一预设频率;

本实施例提出的装置可以是具有智能操作系统的手机、平板电脑等移动终端,以下以安装有android操作系统的手机为例进行说明。该实施例提出的装置所包含的各个功能模块用于执行不同的功能。

手机上安装有各种各样的应用,这些应用在运行过程中,会出现向数据分区,即手机的存储空间,写入数据的情况,例如下载图片、下载文件等。分区监测模块10定时地对数据分区的剩余存储空间的大小进行检测,例如,可以按照第一预设频率进行检测,当检测到剩余存储空间小于第一预设阈值时,认为当前的剩余存储空间已经不足,此时,分区监测模块10可以发送ACTION_DEVICE_STORAGE_LOW广播,以告知其他的功能模块,当前的存储空间已经不足,为了防止在写入数据的过程中发生空间已满导致应用运行出错,加快剩余存储空间的检测,即按照第二预设频率对数据分区的剩余存储空间进行检测。

一般情况下,第一预设阈值的大小可以根据手机的数据分区的总大小来设置,例如,可以设置为数据分区的总大小的10%到500M之间;第一预设频率可以是每40秒至1分钟检测一次,第二预设频率小于第一预设频率,例如,可以是每10-30秒检测一次。

信息提示模块20,用于当检测到所述剩余存储空间小于第二预设阈值时,显示存储空间已满的警告信息,其中,所述第二预设阈值小于所述第一预设阈值;

界面显示模块30,用于当检测到所述剩余存储空间小于第二预设阈值时,显示应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间。

当按照第二预设频率检测到剩余存储空间小于第二预设阈值时,信息提示模块20显示存储空间已满的警告信息,界面显示模块30显示应用数据管理界面,用户可以基于该应用该数据管理界面,清除应用数据,以释放存储空间,现有技术中,在通知栏发送警示信息,用户不容易注意到,本实施例提出的方式相对于现有的通知方式,能够使用户直观的看到空间已满的警告,并且快速地对应用数据进行清理,不需要用户再手动去开启数据管理应用,及时地进行数据的清理。

此时,分区监测模块10发送ACTION_DEVICE_STORAGE_NOT_FULL广播,以告知其他的功能模块,当前的存储空间已满。

本实施例中,第二预设阈值小于第一预设阈值,可选地,第二预设阈值为第一预设阈值的1/4。

进一步地,作为一种实施方式,信息提示模块20在剩余存储空间不足时,发出存储空间不足的警告信息,界面显示模块30显示应用数据管理界面,此时,虽然剩余存储空间仍有余量,但是随着写数据的进行,余量会越来越小,为了使用户能够及早地对应用数据进行清理,以释放存储空间,在检测到剩余存储空间小于第一预设阈值时,显示存储空间不足的警告信息以及应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清理以释放存储空间。

本实施例提出的数据分区的存储空间管理装置,在向数据分区写入数据的过程中,按照一定的频率检测数据分区的剩余存储空间,当检测到剩余存储空间小于第一预设阈值时,增大检测数据分区中剩余存储空间的频率,优化检测剩余存储空间大小的频率,及早发现分区剩余存储空间不足的情况,当检测到剩余存储空间小于第二预设阈值时,说明此时数据分区的剩余存储空间已经不多,如果再有一定量的数据写入,可能会导致数据分区被写满,进而影响到应用的正常运行,因此,在检测到剩余存储空间小于第二预设阈值时,即发出警告信息,同时显示应用数据管理界面,以供用户基于所述应用数据管理界面进行数据清除以释放存储空间,能够预防出现存储空间快速从不足到全满而导致应用无法正常运行的情况。

基于第一实施例提出本发明数据分区的存储空间管理装置的第二实施例。参照图4所示,在本实施例中,该数据分区的存储空间管理装置还包括:

系统属性模块40,用于当检测到所述剩余存储空间小于第二预设阈值时,设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值;

数据读写模块50,用于在每次调用写函数向所述数据分区写入数据之前,根据所述预设属性的值判断所述数据分区的剩余存储空间是否小于第二预设阈值;

数据读写模块50还用于:若剩余存储空间小于第二预设阈值,则向应用层发送读写异常的提示信息;以及,若剩余存储空间大于或者等于所述第二预设阈值,则调用写函数向所述数据分区写入数据。

本实施例提供一预设属性,可选地,该预设属性为sys.device.storage.low,其默认值为false,当检测到剩余存储空间小于第二预设阈值时,将sys.device.storage.low的值设置为true,即当前存储空间不足。

进一步地,由于用户对应用数据清理后,存储空间被释放,因此,当检测到所述剩余存储空间大于或者等于第二预设阈值时,系统属性模块40设置所述预设属性的值,以将所述数据分区的存储量标记为大于或者等于所述第二预设阈值。也就是说,在检测到剩余存储空间大于或者等于第二预设阈值时,系统属性模块40将sys.device.storage.low的值设置为false,即当前剩余存储空间充足。

由于绝大部分的Android应用写文件都是通过FileOutputStream、Output StreamWriter、FileWriter等java io类来实现的,而这些类最终会调用到IoBr idge.java的write函数,数据读写模块50在每次调用函数Posix.write往分区写数据时之前,增加对上述预设属性的值判断,根据该预设属性的值来判断当前的数据分区的剩余存储空间是否小于第二预设阈值。若sys.device.storage.low的值为true,则数据读写模块50向应用层发送读写异常,若sys.device.storage.low的值为false,则数据读写模块50调用函数Posix.write继续执行写操作。系统属性模块40在设置属性值后,会分享至共享内存,因此,对于数据读写模块50来说,使用获取预设属性值的方式判断数据分区可用空间是否小于第二预设阈值比直接计算数据分区的可用空间来说,极大地提高了效率。

基于第一实施例或者第二实施例提出本发明数据分区的存储空间管理装置的第三实施例。参照图5所示,在本实施例中,该数据分区的存储空间管理装置还包括:

状态判断模块60,用于当检测到所述剩余存储空间小于第二预设阈值时,判断系统当前是否处于完成启动的状态;

系统属性模块40还用于:若系统当前处于完成启动的状态,则设置预设属性的值,以将所述数据分区的剩余存储空间标记为小于第二预设阈值。

本实施例中通过设置系统属性sys.boot_completed的值来表示系统是否已经启动完成,如果确认系统是在启动完成后的运行状态,则系统属性模块40设置预设属性sys.device.storage.low为true,反之则置为false。

由于手机在写数据的过程中可能由于应用的设置等原因出现系统重新启动的情况,而设置预设属性的值则需要在系统启动完成,并且正常运行时,才能够进行设置,因此,在本实施中,在设置系统属性之前,无论是将sys.device.storage.low的值设置为true,还是将sys.device.storage.low的值设置为false,在此之前状态判断模块60都会获取系统属性sys.boot_completed的值,以判断系统是否当前处于完成启动的后的运行状态。在确认系统是在启动完成后的运行状态时,系统属性模块40再对预设属性sys.device.storage.low进行设置。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1