CN111581165A - Android应用外存限额监控工具及其使用方法 - Google Patents
Android应用外存限额监控工具及其使用方法 Download PDFInfo
- Publication number
- CN111581165A CN111581165A CN202010355349.2A CN202010355349A CN111581165A CN 111581165 A CN111581165 A CN 111581165A CN 202010355349 A CN202010355349 A CN 202010355349A CN 111581165 A CN111581165 A CN 111581165A
- Authority
- CN
- China
- Prior art keywords
- file
- application
- cloud object
- monitoring
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1737—Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种Android应用外存限额监控工具及其使用方法,该工具包括嵌入式关系数据库接口层、对象存储接口层和文件监控层。嵌入式关系数据库接口层用于LRU(最近最少使用)算法和数据库的对接以及保存上传至云对象存储的文件信息。对象存储接口层用于LRU算法和云对象存储的对接及封装对云对象存储的操作函数。文件监控层使用文件监控工具FileObserver监控文件的状态变化,包括文件的打开、修改、写完成和删除状态。使用本发明工具前,需要指定应用外存限额大小以及云对象存储的配置信息。本发明工具能监控应用对文件的操作,自动完成手机应用文件从本地到云对象存储的取回和上传操作,实现限额管理。通过本发明能灵活管理手机文件,节省手机存储空间。
Description
技术领域
本发明涉及计算机的技术领域,尤其是指一种Android应用外存限额监控工具及其使用方法。
背景技术
近些年,在IT技术蓬勃的发展的浪潮下,计算机各项技术为不同领域的发展都起到了巨大的推动作用。在不同的领域中,为了满足用户的使用需求,PC 端和手机端的各种应用层出不穷。手机应用更新换代频繁,这些应用占据的存储空间从最初的几兆到现在的几百兆甚至一两个吉字节。虽然手机存储空间也变得越来越大,但是应用使用过程中产生的大量文件仍然会将有限的手机存储空间占满。虽然手机应用占据的存储空间越来越大,但是不同应用产生的数据量是不一样的,例如,相册和社交软件之类的应用,由于使用的频率很高,自然而然产生的数据量会更多。那么能否根据不同的应用设定不同的外存限额,一方面更好地利用手机存储空间,另一方面更高效地管理应用产生的数据。
与此同时,云对象存储在IT技术发展的背景下迅速发展,凭借其海量,安全以及高性能等特点脱颖而出。随着目前5G技术的到来,从云对象存储下载或者上传文件的网络传输时间能得到极大的缩短,能进一步为云对象存储的发展和使用推波助澜。
虽然目前存在即拍即传的这些实际案例,但Android中并没有一个能用于对应用外存限额监控的工具。但是在目前的手机应用产生如此大量的文件的背景之下,需要有一款能用于Android应用外存限额的监控工具来协助文件系统管理手机应用占据的存储空间。因此将云对象存储作为手机应用的后备存储空间为我们提供了解决手机存储空间有限这个问题的思路。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提出了一种基于云对象存储后备的Android应用外存限额监控工具及其使用方法,能监控应用对文件的操作,自动完成手机应用文件从本地到云对象存储的取回和上传操作,实现限额管理,从而灵活管理手机文件,节省手机存储空间。
为实现上述目的,本发明所提供的技术方案为:Android应用外存限额监控工具,包括:
文件监控层,由配置文件、LRU算法和文件状态监控三部分组成,其使用文件监控工具FileObserver监控应用中文件的状态变化,包括文件的打开、修改、写完成和删除状态;
嵌入式关系数据库接口层,用于LRU算法和SQLite关系数据库的对接,并封装对数据库操作的函数;
对象存储接口层,用于LRU算法和云对象存储的对接,并封装对云对象存储操作的函数。
进一步,所述嵌入式关系数据库接口层的后端为SQLite关系数据库,同时在该层封装操作SQLite关系数据库的函数,包括增加、修改、删除和查询SQLite 关系数据库中字段的函数,当文件监控层监控到应用删除本地文件时,会查询 SQLite关系数据库中是否有该文件记录,当SQLite关系数据库中有该文件记录时,则需要同时删除本地文件和该文件在SQLite关系数据库中的记录,当文件监控层监控到应用触发外存限额时,则需要将上传至云对象存储的文件信息写入SQLite关系数据库中;所述SQLite关系数据库中用文件属性表记录上传文件的属性,文件属性表中的字段包括文件名称以及文件最后的修改时间,所述文件属性表中记录的文件信息用于判断文件在本地还是云对象存储中。
进一步,所述对象存储接口层的后端是一个云对象存储,所述云对象存储用于存储手机应用从手机本地上传至云对象存储的文件;当文件监控层监控到应用打开文件时,需要判断该文件是否在云对象存储中,当文件在云对象存储时,则需要先将文件从云对象存储取回本地后再打开文件;当文件监控层监控到应用删除文件时,需要先判断文件是否在云对象存储中,当文件在云对象存储时,则需同时删除该文件在本地和云对象存储的记录,否则直接删除文件的本地记录即可;其中,判断文件是否在云对象存储是根据嵌入式关系数据库中有无该文件记录来决定,当文件监控层监控到应用触发外存限额时,则需要根据LRU算法将应用在本地文件夹中的部分文件上传到云对象存储中。
进一步,所述文件监控层中的配置文件能够根据不同的需求进行设置,开发人员通过配置文件自定义手机应用外存限额大小,根据自定义的额度,能够对手机应用外存自动进行限额管理,当应用所占存储空间超过指定外存限额时,文件监控层会自动完成对应用文件从本地上传至云对象存储的操作;其中,所述配置文件包括应用外存限额以及云对象存储的相关信息。
进一步,所述文件监控层中的LRU算法采用LinkedHashMap<key,value>数据结构实现,这里key代表文件名名称,value表示文件大小;当监控到文件的写完成状态时,需要将文件的key和value存储进LinkedHashMap中, LinkedHashMap中的记录用于应用触发外存限额时选择从本地上传至云对象存储的文件;所有value值的和表示当前已使用的应用外存大小。
进一步,所述文件状态监控会监控文件的修改状态,当应用修改文件时,会监控到文件的修改状态,文件监控层会根据嵌入式关系数据库接口层中的文件记录判断文件是否在云对象存储,如果文件在本地则能够直接修改,否则需要先从云对象存储将该文件下载至本地才能修改。
进一步,所述文件状态监控会监控文件的写完成状态,当应用打开或者修改的文件被关闭时,会监控到文件的写完成状态,此时文件监控层会获取当前文件的文件名称和文件大小组成key和value存储进LRU算法的数据结构中,然后文件监控层会检测应用大小是否超过指定外存限额,如果没有超过指定限额,则文件正常存储到应用在手机本地文件目录下即可,否则,文件监控层会根据LRU算法中的记录将应用在本地文件夹中的部分文件上传到云对象存储中。
进一步,所述文件状态监控会监控文件的打开状态,当应用打开文件时,会监控到文件打开的状态,此时文件监控层会通知嵌入式关系数据库接口层检测文件属性表中是否有该文件在云对象存储的记录,由此判断文件在本地还是云对象存储,如果文件在本地,则直接在本地中打开该文件,如果文件存在于云对象存储,则先从云对象存储中取回该文件,并将该文件在SQLite关系数据库和云对象存储的记录删除,表示该文件已经存在于本地,然后再打开该文件。
进一步,所述文件状态监控会监控文件的删除状态,当应用删除文件时,会监控到文件的删除状态,此时文件监控层会通知嵌入式关系数据库接口层检测文件属性表中是否有该文件在云对象存储的记录,如果文件在本地,直接删除该文件即可,如果文件在云对象存储中,则需要同时删除该文件在SQLite关系数据库和云对象存储中的记录。
本发明也提供了上述Android应用外存限额监控工具的使用方法,包括以下步骤:
S1、在开发环境中创建一个新项目,该新项目为Android应用的权限配置,此时,需要在项目的配置文件中添加访问网络,获取网络状态,获取当前WIFI 接入状态以及WLAN热点信息,获取写外存,获取读外存权限的申明;
S2、设置应用对象,即Application对象,通过获取Application对象,能够让Android应用外存限额监控工具得到当前应用的上下文环境,Application对象是Android框架的一个系统组件,用来存储系统的一些信息,Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,因为它是全局的单例的,所以通过Application对象来进行一些数据传递、数据共享、数据缓存操作;在Android应用外存限额监控工具中,已将Application实现了继承,使用时只需要在导入该Android应用外存限额监控工具之后,在应用的相关文件中添加申明即可;
S3、在Android应用开发文件夹app/libs中放置Android应用外存限额监控工具,并在项目的build.gradle(Module:app)文件中添加对该文件的依赖,让开发者能调用Android应用外存限额监控工具中的接口初始化配置文件;
S4、开通并初始化云对象存储空间
Android应用外存限额监控工具采用第三方云对象存储作为后备,因此需要引入第三方云对象存储的相关配置信息,同时需要在应用开发环境的 build.gradle(Module:app)文件中添加对第三方云对象存储的依赖,从而能够利用第三方云对象存储存储提供的服务;
S5、动态获取访问外部存储空间的权限
Android为了进一步保护手机的文件安全,获取手机外部存储空间的访问权限,除了要在应用开发环境的文件中申明相关权限之外,还要提供动态访问外部存储空间的代码;Android应用外存限额监控工具中封装了动态访问外部存储空间权限的函数,类名为PermissionUtils,只需要在应用的主函数中调用该函数即可;
S6、初始化配置文件并启动Android应用外存限额监控工具
Android应用外存限额监控工具成功导入之后,调用Android应用外存限额监控工具中的接口初始化配置文件,包括应用外存限额以及云对象存储的相关信息,然后在FileObserver的子类中填写应用在外部存储空间中的相关文件夹,最后启动监控即可实现对应用在外存限额下的监控。
本发明与现有技术相比,具有如下优点与有益效果:
1、本发明工具使用云对象存储作为手机应用存储空间的后备。云对象存储综合了文件存储和块存储的优点,同时具有了块存储的高速直接访问以及文件存储的数据共享优势,能提供高可靠性,跨平台性以及安全的数据共享的存储体系结构。
2、本发明工具能够自动监测手机应用对文件的操作,并利用配置信息中给定的应用存储限定额度,根据监控应用对文件的不同操作状态完成不同的操作,自动完成对应用文件从本地到云对象存储的上传或者取回操作,从而能更灵活的使用应用外存空间,对产生较大数据量的应用有更明显的优化效果。
3、本发明工具使用非常方便,只需要在开发人员在应用的开发过程中导入该工具到开发环境的指定文件夹下即可,根据自己的实际需求对应用外存设置不同的限额。
4、由于5G技术的到来,能极大地加快从云对象存储中下载和本地往云对象存储上传文件的传输速度,减少了传输时延,为本发明工具的实际应用提供了很大推动作用。本发明工具能充分利用5G网络的速度和云对象存储的海量高性能等特点为手机应用提供服务。
附图说明
图1是本实施例提供的Android应用外存限额监控工具架构图。
图2是本实施例提供的文件监控层工作流程图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
如图1所示,本实施例所提供的Android应用外存限额监控工具,包括嵌入式关系数据库接口层、对象存储接口层、文件监控层。其中,文件监控层由配置文件、LRU算法和文件状态监控三部分组成。
所述嵌入式关系数据库接口层的后端为SQLite关系数据库,同时在该层封装操作SQLite关系数据库的函数,包括增加、修改、删除、查询SQLite关系数据库中字段的函数。当文件监控层监控到应用删除本地文件时,会查询SQLite 关系数据库中是否有该文件记录。当SQLite关系数据库中有该文件记录,则需要同时删除本地文件和该文件在SQLite关系数据库中的记录。当文件监控层监控到应用触发外存限额时,则需要将上传至云对象存储的文件信息写入SQLite 关系数据库中。
所述SQLite关系数据库中用文件属性表记录上传文件的属性,文件属性表中的字段包括文件名称以及文件最后的修改时间。表的字段设计和字段含义如表1所示:
表1文件信息表
字段名称 | 字段功能 |
FileName | 标识文件的名称 |
Modify_Time | 标识文件的最后修改时间 |
所述对象存储接口层的后端是一个云对象存储,云对象存储用于存储手机应用从手机本地上传至云对象存储的文件。当文件监控层监控到应用打开文件时,需要判断该文件是否在云对象存储中,当文件在云对象存储时,则需要先将文件从云对象存储取回本地后再打开文件。当文件监控层监控到应用删除文件时,需要先判断文件是否在云对象存储中,当文件在云对象存储时,则需同时删除该文件在本地和云对象存储的记录,否则直接删除文件的本地记录即可。判断文件是否在云对象存储是根据嵌入式关系数据库接口层中有无该文件记录来决定。当文件监控层监控到应用触发外存限额时,则需要根据LRU算法将将应用在本地文件夹中的部分文件上传到云对象存储中。总之,凡是需要从云对象存储中对文件进行的操作都由该层负责实现和完成。
所述文件监控层中的LRU算法采用LinkedHashMap<key,value>数据结构实现,在该工具的设计中,key代表文件名,value表示文件大小。当监控到文件的写完成状态时,需要将文件的key和value存储进LinkedHashMap中。 LinkedHashMap中的记录用于应用触发外存限额时选择需要从本地上传至云对象存储的文件名称。所有文件的value值的和表示当前已使用的应用存储空间。
所述文件监控层中的配置文件包括应用外存限额以及云对象存储的相关信息,云对象存储的相关信息在开通第三方云对象存储服务后可得到。该Android 应用外存限额监控工具的配置文件具体如表2所示:
表2配置文件表
配置信息名称 | 配置信息作用 |
endPoint | 访问域名 |
bucketName | 云对象存储存储空间名称 |
accessKeyId | 云对象存储账户 |
accessKeySecret | 云对象存储密钥 |
StorageSize | 应用存储空间大小 |
所述文件监控层采用文件监控工具FileObserver对文件的打开、修改、写完成和删除状态进行监控。针对不同的监控采用不同的处理方式,如图2所示。
监控到文件被打开时:
当应用打开文件时,会监控到文件的打开状态。文件监控层会通知嵌入式关系数据库接口层检测文件属性表中是否有该文件在云对象存储的记录,由此判断文件在本地还是云对象存储,如果文件在本地,则直接在本地中打开该文件,如果文件存在于云对象存储中,则先从云对象存储中取回该文件,并将该文件在SQLite关系数据库中的记录删除,表示该文件已经存在于本地,然后再打开该文件。
监控到文件被修改时:
当应用修改文件时,会监控到文件的修改状态。文件监控层会根据嵌入式关系数据库接口层中的文件记录判断文件是否在云对象存储。如果文件在本地则可直接修改,否则需要先从云对象存储将该文件下载至本地才能修改。当文件从云对象存储下载之后,需要删除文件在云对象存储和SQLite关系数据库中的记录,表示文件已存在于本地。
监控到文件写完成时:
当应用打开或者修改的文件被关闭,会监控到文件的写完成状态。文件监控层会获取当前文件的文件名称和文件大小组成key和value存储进LRU算法的数据结构中。然后文件监控层会检测应用的大小是否超过指定外存限额大小。如果没有超过外存限额大小,则文件正常存储到应用在手机本地文件目录下即可,否则,文件监控层会根据LRU算法中的记录将应用在本地文件夹中的部分文件上传到云对象存储中。
监控到文件被修改时:
当应用删除文件时,会监控到文件的删除状态。文件监控层会通知嵌入式关系数据库接口层检测文件属性表中是否有该文件在云对象存储的记录。如果文件在本地,直接删除该文件即可。如果文件在云对象存储,则需要同时删除该文件在SQLite关系数据库和云对象存储中的记录。
下面为本实施例上述Android应用外存限额监控工具的使用方法,包括以下步骤:
S1、在开发环境中创建一个新项目。以Android应用的权限配置为例,需要在项目的配置文件中添加访问网络,获取网络状态,获取当前WIFi接入状态以及WLAN热点信息,获取写外存,获取读外存等权限的申明。
S2、设置Application(应用)对象,通过获取Application对象,可以让Android 应用外存限额监控工具得到当前应用的上下文环境。Application对象是Android 框架的一个系统组件,用来存储系统的一些信息。Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个。因为它是全局的单例的,所以通过Application对象来进行一些数据传递、数据共享、数据缓存等操作。在 Android应用外存限额监控工具中,已将Application实现了继承,使用时只需要在导入该Android应用外存限额监控工具之后,在应用的相关文件中添加申明即可。
S3、在Android应用开发文件夹app/libs中放置该Android应用外存限额监控工具,并在项目的build.gradle(Module:app)文件中添加对该文件的依赖,让开发者能调用该Android应用外存限额监控工具中的接口初始化配置文件。
S4、开通并初始化云对象存储空间。该工具采用第三方云对象存储空间作为后备,因此需要引入第三方云对象存储的相关配置信息,同时需要在应用开发环境的build.gradle(Module:app)文件中添加对第三方云对象存储的依赖,从而可以利用第三方云对象存储提供的服务。
S5、动态获取访问外部存储空间的权限。Android为了进一步保护手机的文件安全,获取手机外部存储空间的访问权限,除了要在应用开发环境的文件中申明相关权限之外,还要提供动态访问外部存储空间的代码。该Android应用外存限额监控工具中封装了动态访问外部存储空间权限的函数,类名为PermissionUtils,只需要在应用的主函数中调用该函数即可。
S6、初始化配置文件并启动Android应用外存限额监控工具。Android应用外存限额监控工具成功导入之后,调用Android应用外存限额监控工具中的接口初始化配置文件,包括应用外存限额以及云对象存储的相关信息。然后在 FileObserver的子类中填写应用在外部存储空间中的相关的文件夹。最后启动监控即可实现对应用在外存限额下的监控。
以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
Claims (10)
1.Android应用外存限额监控工具,其特征在于,包括:
文件监控层,由配置文件、LRU算法和文件状态监控三部分组成,其使用文件监控工具FileObserver监控应用中文件的状态变化,包括文件的打开、修改、写完成和删除状态;
嵌入式关系数据库接口层,用于LRU算法和SQLite关系数据库的对接,并封装对SQLite关系数据库操作的函数;
对象存储接口层,用于LRU算法和云对象存储的对接,并封装对云对象存储的操作函数。
2.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述嵌入式关系数据库接口层的后端为SQLite关系数据库,同时在该层封装操作SQLite关系数据库的函数,包括增加、修改、删除和查询SQLite关系数据库中字段的函数,当文件监控层监控到应用删除本地文件时,会查询SQLite关系数据库中是否有该文件记录,当SQLite关系数据库中有该文件记录时,则需要同时删除本地文件和该文件在SQLite关系数据库中的记录,当文件监控层监控到应用触发外存限额时,则需要将上传至云对象存储的文件信息写入SQLite关系数据库中;所述SQLite关系数据库中用文件属性表记录上传文件的属性,文件属性表中的字段包括文件名称以及文件最后的修改时间,所述文件属性表中记录的文件信息用于判断文件在本地还是云对象存储中。
3.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述对象存储接口层的后端是一个云对象存储,所述云对象存储用于存储手机应用从手机本地上传至云对象存储的文件;当文件监控层监控到应用打开文件时,需要判断该文件是否在云对象存储中,当文件在云对象存储时,则需要先将文件从云对象存储取回本地后再打开文件;当文件监控层监控到应用删除文件时,需要先判断文件是否在云对象存储中,当文件在云对象存储时,则需同时删除该文件在本地和云对象存储中的记录,否则直接删除文件的本地记录即可;其中,判断文件是否在云对象存储是根据SQLite关系数据库中有无该文件记录来决定,当文件监控层监控到应用触发外存限额时,则需要根据LRU算法将应用在本地文件夹中的部分文件上传到云对象存储中。
4.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述文件监控层中的配置文件能够根据不同的需求进行设置,开发人员通过配置文件自定义手机应用外存限额大小,根据自定义的额度,能够对手机应用外存自动进行限额管理,当应用所占存储空间超过指定外存限额时,文件监控层会自动完成对应用文件从本地上传至云对象存储的操作;其中,所述配置文件包括应用外存限额以及云对象存储的相关信息。
5.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述文件监控层中的LRU算法采用LinkedHashMap<key,value>数据结构实现,这里key代表文件名名称,value表示文件大小;当监控到文件的写完成状态时,需要将文件的key和value存储进LinkedHashMap中,LinkedHashMap中的记录用于应用触发外存限额时选择从本地上传至云对象存储的文件;所有value值的和表示当前已使用的应用外存大小。
6.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述文件状态监控会监控文件的修改状态,当应用修改文件时,会监控到文件的修改状态,文件监控层会根据SQLite关系数据库接口层中的文件记录判断文件是否在云对象存储,如果文件在本地则能够直接修改,否则需要先从云对象存储将该文件下载至本地才能修改。
7.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述文件状态监控会监控文件的写完成状态,当应用打开或者修改的文件被关闭时,会监控到文件的写完成状态,此时文件监控层会获取当前文件的文件名称和文件大小组成key和value存储进LRU算法的数据结构中,然后文件监控层会检测应用大小是否超过指定外存限额,如果没有超过指定限额,则文件正常存储到应用在手机本地文件目录下即可,否则,文件监控层会根据LRU算法中的记录将应用在本地文件夹中的部分文件上传到云对象存储中。
8.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述文件状态监控会监控文件的打开状态,当应用打开文件时,会监控到文件打开的状态,此时文件监控层会通知嵌入式关系数据库接口层检测文件属性表中是否有该文件在云对象存储的记录,由此判断文件在本地还是云对象存储中,如果文件在本地,则直接在本地中打开该文件,如果文件存在于云对象存储中,则先从云对象存储中取回该文件,并将该文件在SQLite关系数据库和云对象存储的记录都删除,表示该文件已经存在于本地,然后再打开该文件。
9.根据权利要求1所述的Android应用外存限额监控工具,其特征在于:所述文件状态监控会监控文件的删除状态,当应用删除文件时,会监控到文件的删除状态,此时文件监控层会通知嵌入式关系数据库接口层检测文件属性表中是否有该文件在云对象存储的记录,如果文件在本地,直接删除该文件即可,如果文件在云对象存储中,则需要同时删除该文件在SQLite关系数据库和云对象存储的记录。
10.权利要求1至9任意一项所述的Android应用外存限额监控工具的使用方法,其特征在于,包括以下步骤:
S1、在开发环境中创建一个新项目,该新项目为Android应用的权限配置,此时,需要在项目的配置文件中添加访问网络,获取网络状态,获取当前WIFI接入状态以及WLAN热点信息,获取写外存,获取读外存权限的申明;
S2、设置应用对象,即Application对象,通过获取Application对象,能够让Android应用外存限额监控工具得到当前应用的上下文环境,Application对象是Android框架的一个系统组件,用来存储系统的一些信息,Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,因为它是全局的单例的,所以通过Application对象来进行一些数据传递、数据共享、数据缓存操作;在Android应用外存限额监控工具中,已将Application实现了继承,使用时只需要在导入该Android应用外存限额监控工具之后,在应用的相关文件中添加申明即可;
S3、在Android应用开发文件夹app/libs中放置Android应用外存限额监控工具,并在项目的build.gradle(Module:app)文件中添加对该文件的依赖,让开发者能调用Android应用外存限额监控工具中的接口初始化配置文件;
S4、开通并初始化云对象存储空间
Android应用外存限额监控工具采用第三方云对象存储作为后备,因此需要引入第三方云对象存储的相关配置信息,同时需要在应用开发环境的build.gradle(Module:app)文件中添加对第三方云对象存储的依赖,从而能够利用第三方云对象存储提供的服务;
S5、动态获取访问外部存储空间的权限
Android为了进一步保护手机的文件安全,获取手机外部存储空间的访问权限,除了要在应用开发环境的文件中申明相关权限之外,还要提供动态访问外部存储空间的代码;Android应用外存限额监控工具中封装了动态访问外部存储空间权限的函数,类名为PermissionUtils,只需要在应用的主函数中调用该函数即可;
S6、初始化配置文件并启动Android应用外存限额监控工具
Android应用外存限额监控工具成功导入之后,调用Android应用外存限额监控工具中的接口初始化配置文件,包括应用外存限额以及云对象存储的相关信息,然后在FileObserver的子类中填写应用在外部存储空间中的相关文件夹,最后启动监控即可实现对应用在外存限额下的监控。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010355349.2A CN111581165B (zh) | 2020-04-29 | 2020-04-29 | Android应用外存限额监控工具及其使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010355349.2A CN111581165B (zh) | 2020-04-29 | 2020-04-29 | Android应用外存限额监控工具及其使用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111581165A true CN111581165A (zh) | 2020-08-25 |
CN111581165B CN111581165B (zh) | 2023-04-21 |
Family
ID=72124549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010355349.2A Active CN111581165B (zh) | 2020-04-29 | 2020-04-29 | Android应用外存限额监控工具及其使用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111581165B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693232A (zh) * | 2011-03-23 | 2012-09-26 | 腾讯科技(深圳)有限公司 | 一种删除文件的方法及文件删除装置 |
CN104219283A (zh) * | 2014-08-06 | 2014-12-17 | 上海爱数软件有限公司 | 基于云存储的文件按需下载和自动同步方法及其装置 |
CN110008188A (zh) * | 2019-03-31 | 2019-07-12 | 华南理工大学 | 一种文件系统级的应用软件外存限额系统 |
CN110515548A (zh) * | 2019-08-15 | 2019-11-29 | 浙江万朋教育科技股份有限公司 | 一种避免浪费第三方云存储空间的方法 |
-
2020
- 2020-04-29 CN CN202010355349.2A patent/CN111581165B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693232A (zh) * | 2011-03-23 | 2012-09-26 | 腾讯科技(深圳)有限公司 | 一种删除文件的方法及文件删除装置 |
CN104219283A (zh) * | 2014-08-06 | 2014-12-17 | 上海爱数软件有限公司 | 基于云存储的文件按需下载和自动同步方法及其装置 |
CN110008188A (zh) * | 2019-03-31 | 2019-07-12 | 华南理工大学 | 一种文件系统级的应用软件外存限额系统 |
CN110515548A (zh) * | 2019-08-15 | 2019-11-29 | 浙江万朋教育科技股份有限公司 | 一种避免浪费第三方云存储空间的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111581165B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8412685B2 (en) | Method and system for managing data | |
US7941409B2 (en) | Method and apparatus for managing data compression and integrity in a computer storage system | |
CN100390796C (zh) | 用于扩展属性的延迟删除的方法和系统 | |
CN106484906B (zh) | 一种分布式对象存储系统闪回方法及装置 | |
US6449607B1 (en) | Disk storage with modifiable data management function | |
CN105094695B (zh) | 一种存储方法和系统 | |
TW201211800A (en) | Migration of metadata and storage management of data in a first storage environment to a second storage environment | |
CN109804359A (zh) | 用于将数据回写到存储设备的系统和方法 | |
CN114048185B (zh) | 一种分布式文件系统中海量小文件透明打包存储与访问的方法 | |
US11106394B2 (en) | Storing an entity as an object or a file in a hybrid storage system based on an accessing protocol | |
CN112800019A (zh) | 基于Hadoop分布式文件系统的数据备份方法及系统 | |
CN103197987A (zh) | 一种数据备份的方法、数据恢复的方法及系统 | |
US8082230B1 (en) | System and method for mounting a file system on multiple host computers | |
US7725507B1 (en) | Dynamic directories | |
CN103246718B (zh) | 文件访问方法、装置和设备 | |
CN115729951B (zh) | 数据查询方法、系统、设备及计算机可读存储介质 | |
CN113326288A (zh) | 数据处理方法、装置、电子设备 | |
CN111581165B (zh) | Android应用外存限额监控工具及其使用方法 | |
US7451279B2 (en) | Storage system comprising a shared memory to access exclusively managed data | |
SG192868A1 (en) | Variants of files in a file system | |
CN110008188B (zh) | 一种文件系统级的应用软件外存限额系统 | |
JP2000036022A5 (zh) | ||
CN112286448B (zh) | 对象访问方法、装置、电子设备及机器可读存储介质 | |
CN104285221A (zh) | 对跨各内容源的内容的高效原地保留 | |
CN114416676A (zh) | 数据处理方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |