CN115079959B - 一种文件管理的方法、装置及电子设备 - Google Patents
一种文件管理的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115079959B CN115079959B CN202210888514.XA CN202210888514A CN115079959B CN 115079959 B CN115079959 B CN 115079959B CN 202210888514 A CN202210888514 A CN 202210888514A CN 115079959 B CN115079959 B CN 115079959B
- Authority
- CN
- China
- Prior art keywords
- file
- preset
- program
- hot spot
- application program
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种文件管理的方法、装置、电子设备及存储介质,所述方法包括:获取至少一个预设程序与触发事件的对应关系;当检测到第一触发事件时,对预设程序进行热点文件识别;当检测到第二触发事件时,暂停对预设程序进行热点文件识别;获取对预设程序进行热点文件识别的累计时长,若累计时长大于第一阈值,则停止对预设程序进行热点文件识别,并依据识别结果确定热点文件。本申请实现了依据预设程序的使用频次来识别高频访问的热点文件,并将识别得到的热点文件存储至内存中,以使预设程序在运行时能够快速对热点文件进行访问,进而保证预设程序能够在高频使用场景下稳定流畅的运行,极大地提高了用户体验。
Description
技术领域
本申请涉及文件管理领域,具体而言,涉及一种文件管理的方法、装置、电子设备及计算机可读存储介质。
背景技术
由于读写硬盘的速度比读写内存慢很多,所以为了避免每次读写文件时,都需要对硬盘进行读写操作,Linux 内核使用页缓存机制来对文件中的数据进行缓存。Linux以页大小为单位将磁盘中的数据缓存在内存中。
页缓存机制实际上是用空间换取时间的方法,在设备内存大小固定的情况下,缓存的文件页也是有限制的。因此需要在限制范围内缓存更多更高频的热点文件,而不是令所有文件都长时间缓存在内存中。
然而针对于不同设备的不同内存大小、不同操作系统,以及每个用户的使用习惯不同,现有技术中通常采用固定的识别策略进行热点文件的识别,导致热点文件的识别与程序的真实运行情况存在着较大误差,引起程序运行卡顿等问题,影响用户体验。
因此,如何识别并保护热点文件为本领域需要解决的技术问题。
发明内容
为了解决现有技术中无法识别并保护热点文件的问题,本申请提供一种文件管理的方法。
一种文件管理的方法,包括:
获取至少一个预设程序与触发事件的对应关系;所述触发事件包括第一触发事件及第二触发事件,所述第一触发事件为触发对所述预设程序进行热点文件识别的事件,所述第二触发事件为触发暂停对所述预设程序进行热点文件识别的事件;
当检测到所述第一触发事件时,对所述预设程序进行热点文件识别;
当检测到所述第二触发事件时,暂停对所述预设程序进行热点文件识别;
获取对所述预设程序进行热点文件识别的累计时长,若所述累计时长大于第一阈值,则停止对所述预设程序进行热点文件识别,并依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件,将所述热点文件存储至内存中。
可选地,所述预设程序包括预设应用程序;
在获取至少一个预设程序与触发事件的对应关系之前,所述方法还包括:
获取至少一个应用程序的运行频率;
依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序。
可选地,所述获取至少一个应用程序的运行频率,包括:
每隔预设时间段均获取至少一个应用程序的运行频率;
所述依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,对应包括:
依据当前时间段下的所述至少一个应用程序的运行频率,从所述至少一个应用程序中确定当前时间段下的预设应用程序。
可选地,所述依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,包括:
确定所述运行频率大于第二阈值的应用程序为所述预设应用程序。
可选地,所述依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,包括:
按照运行频率由大到小的顺序对所述至少一个应用程序进行排序;
确定排名前第一预设数目的应用程序为所述预设应用程序。
可选地,所述第一触发事件包括切前台事件,所述第二触发事件包括切后台事件。
可选地,所述预设程序包括操作系统;
所述第一触发事件包括亮屏事件,所述第二触发事件包括熄屏事件。
可选地,在将所述热点文件存储至内存中之后,所述方法还包括:
获取所述热点文件的确定时间以及所述热点文件的刷新周期,并依据所述确定时间及所述刷新周期判断是否需要刷新所述热点文件;
若是,则将所述热点文件从所述内存中删除,并返回执行所述获取至少一个预设程序与触发事件的对应关系的步骤。
可选地,在依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件之后,所述方法还包括:
当检测到所述预设程序进行版本更新时,将所述热点文件从所述内存中删除,并返回执行所述获取至少一个预设程序与触发事件的对应关系的步骤。
可选地,在依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件之后,所述方法还包括:
获取所述热点文件的文件信息,并将所述热点文件的文件信息保存至非易失性存储介质中;
当设备重启后,从所述非易失性存储介质中获取所述热点文件的文件信息,并依据所述热点文件的文件信息将所述热点文件保存至所述内存中。
可选地,所述对所述预设程序进行热点文件识别,包括:
获取所述预设程序对至少一个文件的访问频率;
依据所述预设程序对至少一个文件的访问频率从所述至少一个文件中确定所述热点文件。
可选地,所述依据所述预设程序对至少一个文件的访问频率从所述至少一个文件中确定所述热点文件,包括:
将所述访问频率大于第三阈值的文件标记为所述热点文件。
可选地,所述依据所述预设程序对至少一个文件的访问频率从所述至少一个文件中确定所述热点文件,包括:
按照所述访问频率由大到小的顺序对所述至少一个文件进行排序;
将排名前第二预设数目的文件标记为所述热点文件。
一种文件管理装置,包括:
第一获取模块,用于获取至少一个预设程序与触发事件的对应关系;所述触发事件包括第一触发事件及第二触发事件,所述第一触发事件为触发对所述预设程序进行文件管理的事件,所述第二触发事件为触发暂停对所述预设程序进行文件管理的事件;
第一检测模块,用于当检测到所述第一触发事件时,对所述预设程序进行文件管理;
第二检测模块,用于当检测到所述第二触发事件时,暂停对所述预设程序进行文件管理;
第二获取模块,用于获取对所述预设程序进行文件管理的累计时长,若所述累计时长大于第一阈值,则停止对所述预设程序进行文件管理,并依据对所述预设程序进行文件管理得到的识别结果确定热点文件,将所述热点文件存储至内存中。
一种电子设备,包括:
处理器和存储器,所述存储器用于存储至少一条指令,所述指令由所述处理器加载并执行时以实现如上述的文件管理的方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的文件管理的方法。
本申请实施例提供的文件管理的方法,通过预先获取至少一个预设程序与触发事件的对应关系,并在检测到第一触发事件时,对预设程序进行热点文件识别,在检测到第二触发事件时,暂停对预设程序进行热点文件识别,进而实现了依据预设程序的使用频次来识别高频访问的热点文件;在热点文件识别的累计时长大于第一阈值时,停止对预设程序进行热点文件识别,并依据得到的识别结果确定热点文件,将热点文件存储至内存中,以使预设程序在运行时能够快速对热点文件进行访问,进而保证预设程序能够在高频使用场景下稳定流畅的运行,极大地提高了用户体验。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例所提供的一种页缓存的示意图;
图2为本申请实施例所提供的一种文件管理的方法的流程图;
图3为本申请实施例所提供的一种文件管理过程示意图;
图4为本申请实施例所提供的另一种文件管理的方法的流程图;
图5为本申请实施例所提供的一种文件管理软件的整体框架示意图;
图6为本申请实施例所提供的一种各应用程序使用情况的示意图;
图7为本申请为实施例所提供的一种热点文件信息保存的示意图;
图8为本申请实施例所提供的一种文件管理装置的结构示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了便于理解,本申请实施例这里介绍本申请实施例涉及的术语:
1)、页缓存:为了提升对文件的读写效率,Linux 内核会以页大小(4KB)为单位,将文件划分为多数据块。当程序对文件中的某个数据块进行读写操作时,内核首先会申请一个文件页(称为页缓存)与文件中的数据块进行绑定。请参考图1,为本申请实施例所提供的一种页缓存的示意图,如图1所示,当用户对文件进行读写时,实际上是对文件的页缓存进行读写。所以对文件进行读写操作时,会分为以下两种情况进行处理:
当从文件中读取数据时,如果要读取的数据所在的页缓存已经存在,那么就直接把页缓存的数据拷贝给用户即可。否则,内核首先会申请一个空闲的内存页(页缓存),然后从文件中读取数据到页缓存,并且把页缓存的数据拷贝给用户。
当向文件中写入数据时,如果要写入的数据所在的页缓存已经存在,那么直接把新数据写入到页缓存即可。否则,内核首先会申请一个空闲的内存页(页缓存),然后从文件中读取数据到页缓存,并且把新数据写入到页缓存中。对于被修改的页缓存,内核会定时把这些页缓存刷新到文件中。
基于页缓存机制实际上是用空间换取时间的方法,在设备内存大小固定的情况下,缓存的文件页也是有限制的。因此需要在限制范围内缓存更多更高频的热点文件,而不是令所有文件都长时间缓存在内存中。
由于不同设备的不同内存大小、不同操作系统,以及每个用户的使用习惯不同,例如:
用户A:使用的设备内存大小为6GB ,系统版本为A系统10版本,平时使用手机时A应用、B应用、C应用的使用时长占了95%;
用户B:使用的设备内存大小为8GB,系统版本A系统12版本,平时打游戏很多,W游戏和A应用的使用时长占90%;
用户C:使用的设备内存大小为8GB,系统版本B系统10版本,喜欢拍小视频并发布,相机应用、A应用、C应用的使用时长占95%;
而现有技术中通常采用固定的识别策略进行热点文件的识别,导致热点文件的识别与程序的真实运行情况存在着较大误差,引起程序运行卡顿等问题,影响用户体验。故本申请提供了一种文件管理的方法,用于解决上述问题。
请参考图2,为本申请实施例所提供的一种文件管理的方法的流程图,包括如下步骤:
步骤S01,获取至少一个预设程序与触发事件的对应关系。
在本申请实施例中,预设程序即为预先确定的需要进行热点文件检测的程序,触发事件即为触发暂停对预设程序进行热点文件识别或触发暂停对预设程序进行热点文件识别的事件。获取预设程序与触发事件的对应关系的目的在于,当检测到预设程序对应的触发事件时,触发对该预设程序进行热点文件识别或暂停对该预设程序进行热点文件识别,进而实现依据预设程序的使用频次来识别高频访问的热点文件。
在本申请实施例中,该触发事件包括第一触发事件及第二触发事件,第一触发事件为触发对预设程序进行热点文件识别的事件,第二触发事件为触发暂停对预设程序进行热点文件识别的事件。
在一个具体实施例中,处理器可以依据接收到的对应关系建立指令,预先建立预设程序与触发事件的对应关系,并存储至预设存储路径中,在需要进行热点文件识别之前,处理器从该预设存储路径中获取该预设程序与触发事件的对应关系。
在一个具体实施例中,该预设程序与触发事件的对应关系具体可以为保存有预设程序与对应的触发事件的对应关系表,也可以为其他用于表征预设程序与触发事件的对应关系的数据结构,本申请对预设程序与触发事件的对应关系的表现形式不作具体限定。
在一个具体实施例中,该预设程序包括操作系统;第一触发事件包括亮屏事件,第二触发事件包括熄屏事件。这里以手机操作系统为例进行说明,当处理器检测到亮屏事件时,包括但不限于手机开机时屏幕点亮以及手机由休眠状态被唤醒时屏幕点亮,触发对该操作系统进行热点文件识别;当处理器检测到熄屏事件时,包括但不限于手机关机时屏幕熄灭以及手机由工作状态进入休眠状态时屏幕熄灭,触发暂停对该操作系统进行热点文件识别。
即当用户需要使用手机时,将手机开机或者将手机从熄屏状态唤醒,手机的操作系统进入高速运行状态,此时处理器为了实现准确识别操作系统高频访问的热点文件,对手机处于亮屏状态时的操作系统进行热点文件识别;当用户不需要使用手机或不需要对亮屏状态的手机进行操作时,将手机关机或者令手机进入熄屏状态,手机的操作系统进入停止运行状态或低速运行状态,因此操作系统不会对文件进行高频访问,此时处理器为了实现准确识别操作系统高频访问的热点文件,暂停对手机处于熄屏状态时的操作系统进行热点文件识别。
本实施例中提到的高速运行状态为相对于手机关机时操作系统处于停止运行状态以及手机熄屏时操作系统处于低速运行状态的运行状态。
在一个具体实施例中,该预设程序包括预设应用程序,该预设应用程序可以根据应用程序的运行频率来确定,即在执行步骤S01获取至少一个预设程序与触发事件的对应关系之前,还可以执行如下步骤实现预设应用程序的确定:
步骤S11,获取至少一个应用程序的运行频率。
在一个具体实施例中,该运行频率用于表征用户对该应用程序的使用频率,该运行频率可以依据预设时间段内应用程序的打开次数来确定,也可以依据预设时间段内应用程序的运行时长来确定,本申请对应用程序的运行频率的获取方式不作具体限定。
步骤S12,依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序。
在本申请实施例中,依据至少一个应用程序的运行频率从至少一个应用程序中确定预设应用程序的目的在于,筛选高频运行的应用程序进行热点文件识别,对于低频运行的应用程序不进行热点文件识别,进而保证识别到的热点文件均为高频访问文件。
在一个具体实施例中,步骤S12中提到的,依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,其具体可以为:
确定所述运行频率大于第二阈值的应用程序为所述预设应用程序。
即在本申请实施例中,第二阈值即为用于筛选预设应用程序的最低运行频率,当应用程序的运行频率大于第二阈值时,则认为该应用程序为有资格进行热点文件识别的高频应用程序。例如,某一时间段内手机内应用程序的运行频率分别为:A应用50%,B应用30%,C应用20%,第二阈值为25%,那么该时间段内的预设应用程序则为A应用和B应用。
在一个具体实施例中,步骤S12中提到的,依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,其具体也可以为:
按照运行频率由大到小的顺序对所述至少一个应用程序进行排序;
确定排名前第一预设数目的应用程序为所述预设应用程序。
即在本申请实施例中,依据应用程序的运行频率进行排序,选择排名前第一预设数目的应用程序为有资格进行热点文件识别的高频应用程序。例如,某一时间段内手机内应用程序的运行频率分别为:A应用50%,B应用30%,C应用20%,那么应用程序的排名顺序为A应用、B应用、C应用,若第一预设数目为2,则该时间段内的预设应用程序则为A应用和B应用。
在一个具体实施例中,由于用户对于应用程序的使用情况是会变化的,如删除旧应用程序和下载新应用程序,导致预设应用程序也会发生变化,因此为进一步提高对高频应用识别的准确度,还可以每隔预设时间段对该预设应用程序进行刷新,即步骤S11中提到的获取至少一个应用程序的运行频率,其具体可以为:
每隔预设时间段均获取至少一个应用程序的运行频率;
在此基础上,步骤S12中提到的依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,其对应可以为:
依据当前时间段下的所述至少一个应用程序的运行频率,从所述至少一个应用程序中确定当前时间段下的预设应用程序。
在本实施例中,通过每隔预设时间段来确定预设应用程序,避免了由于用户对应用程序使用情况的改变而导致高频应用识别出现误差,进一步了提高对高频应用识别的准确度。
在一个具体实施例中,当该预设程序为预设应用程序时,该第一触发事件可以为切前台事件,该第二触发事件为切后台事件。这里以手机应用程序为例进行说明,当处理器检测到切前台事件时,包括但不限于用户点击该预设应用程序图标以打开该预设应用程序,以及用户从后台软件中选定该预设应用程序切换到前台,触发对该预设应用程序进行热点文件识别;当处理器检测到切后台事件时,包括但不限于用户关闭该预设应用程序,以及用户从后台软件中选定该预设应用程序之外的其他应用程序切换到前台,导致该预设应用程序切换至后台,触发暂停对该预设应用程序进行热点文件识别。
请参考图3,为本申请实施例所提供的一种文件管理过程示意图,如图3所示,在本实施例中,先依据至少一个应用程序的运行频率从至少一个应用程序中确定预设应用程序,以筛选高频运行的应用程序进行热点文件识别,对于低频运行的应用程序不进行热点文件识别,进而保证识别到的热点文件均为高频访问文件。在确定预设应用程序后,检测到切前台事件时对预设程序进行热点文件识别,检测到切后台事件时,暂停对预设程序进行热点文件识别。
步骤S02,当检测到所述第一触发事件时,对所述预设程序进行热点文件识别。
在本申请实施例中,对预设程序进行热点文件识别的目的在于,识别预设程序在运行过程中高频访问的热点文件,并将热点文件存储至内存中,以使预设程序在运行时能够快速对热点文件进行访问,进而保证预设程序能够在高频使用场景下稳定流畅的运行。
在一个具体实施例中,可以依据预设程序对文件的访问频率来确定热点文件,即步骤S02中提到的,对预设程序进行热点文件识别,其具体通过执行如下步骤实现:
步骤S21,获取预设程序对至少一个文件的访问频率。
在一个具体实施例中,该访问频率可以依据预设程序在预设时间段内对该文件的访问次数来确定,也可以依据预设时间段在预设时间段内对该文件的访问时长来确定,本申请对预设程序对文件的访问频率的获取方式不作具体限定。
步骤S22,依据预设程序对至少一个文件的访问频率从至少一个文件中确定热点文件。
在一个具体实施例中,步骤S22中提到的,依据预设程序对至少一个文件的访问频率从至少一个文件中确定热点文件,其具体可以为:
将访问频率大于第三阈值的文件标记为热点文件。
即在本申请实施例中,第三阈值即为用于筛选热点文件的最低访问频率,当文件的访问频率大于第二阈值时,则认为该文件为热点文件。例如,某一时间段内预设程序对文件的访问频率分别为:A文件40%,B文件35%,C文件25%,第三阈值为30%,那么该时间段内该预设程序的热点文件为A文件和B文件。
在一个具体实施例中,步骤S22中提到的,依据预设程序对至少一个文件的访问频率从至少一个文件中确定热点文件,其具体也可以为:
按照访问频率由大到小的顺序对至少一个文件进行排序;
将排名前第二预设数目的文件标记为热点文件。
即在本申请实施例中,依据文件的访问频率进行排序,选择排名前第二预设数目的文件为热点文件。例如,某一时间段内预设程序对文件的访问频率分别为:A文件40%,B文件35%,C文件25%,那么文件的排名顺序为A文件、B文件、C文件,若第二预设数目为1,则该时间段内该预设程序的热点文件为A文件。
步骤S03,当检测到所述第二触发事件时,暂停对所述预设程序进行热点文件识别。
在一个具体实施例中,当检测到第二触发事件时,暂停对该预设程序进行热点文件识别,以保证该预设程序的热点文件识别的准确性。
在一个具体实施例中,在暂停对所述预设程序进行热点文件识别之后,当再次检测到该第一触发事件时,还可以继续对该预设程序进行热点文件识别,即在执行完步骤S03之后,如果满足步骤S02的执行条件,还可以返回执行步骤S02。
在一个具体实施例中,当该预设程序为预设应用程序、第一触发事件为切前台事件、第二触发事件为切后台事件时,由于预设应用程序切后台即意味着其他应用程序切前台,而如果切换后的应用程序同样也为预设应用程序,那么在暂停对所述预设程序进行热点文件识别之后,当检测到其他预设程序的第一触发事件时,还可以对该第一触发事件对应的预设程序进行热点文件识别。
步骤S04,获取对所述预设程序进行热点文件识别的累计时长,若所述累计时长大于第一阈值,则停止对所述预设程序进行热点文件识别,并依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件,将所述热点文件存储至内存中。
在本申请实施例中,该第一阈值为预先设置的对预设程序进行热点文件识别的最优时长,当对预设程序进行热点文件识别的累计时长大于第一阈值时,则证明此时已得到最优时长下的热点文件识别结果,此时停止对预设程序进行热点文件识别,并依据对预设程序进行热点文件识别得到的识别结果确定热点文件,将热点文件存储至内存中。
例如,针对于不同内存大小、不同操作系统,以及每个用户的使用习惯不同的情况:
用户A:使用的设备内存大小为6GB ,系统版本为A系统10版本,平时使用手机时A应用、B应用、C应用的使用时长占了95%;
用户B:使用的设备内存大小为8GB,系统版本A系统12版本,平时打游戏很多,W游戏和A应用的使用时长占90%;
用户C:使用的设备内存大小为8GB,系统版本B系统10版本,喜欢拍小视频并发布,相机应用、A应用、C应用的使用时长占95%;
本申请通过预先获取A应用、B应用、C应用、W游戏、相机应用与触发事件的对应关系,针对于A应用,本申请在检测到A应用切换到前台时,对A应用进行热点文件识别;在检测到A应用切换到后台时,暂停对A应用进行热点文件识别;获取对A应用进行热点文件识别的累计时长,若累计时长大于第一阈值,则停止对A应用进行热点文件识别,并依据对A应用进行热点文件识别得到的识别结果确定热点文件,将热点文件存储至内存中,针对于B应用、C应用、W游戏、相机应用同样以上述方式将对应的热点文件存储至内存中,以使A应用、B应用、C应用、W游戏、相机应用在运行时能够快速对热点文件进行访问,进而保证各个应用能够在高频使用场景下稳定流畅的运行。
在一个具体实施例中,当对预设程序进行热点文件识别的累计时长小于第一阈值时,则证明此时尚未得到最优时长下的热点文件识别结果,此时还可以返回执行步骤S02,在检测到所述第一触发事件时,继续对预设程序进行热点文件识别。
本申请实施例提供的文件管理的方法,通过预先获取至少一个预设程序与触发事件的对应关系,并在检测到第一触发事件时,对预设程序进行热点文件识别,在检测到第二触发事件时,暂停对预设程序进行热点文件识别,进而实现了依据预设程序的使用频次来识别高频访问的热点文件;在热点文件识别的累计时长大于第一阈值时,停止对预设程序进行热点文件识别,并依据得到的识别结果确定热点文件,将热点文件存储至内存中,以使预设程序在运行时能够快速对热点文件进行访问,进而保证预设程序能够在高频使用场景下稳定流畅的运行,极大地提高了用户体验。
请参考图4,为本申请实施例所提供的另一种文件管理的方法的流程图,该方法包括如下步骤:
步骤S01,获取至少一个预设程序与触发事件的对应关系。
步骤S02,当检测到所述第一触发事件时,对所述预设程序进行热点文件识别。
步骤S03,当检测到所述第二触发事件时,暂停对所述预设程序进行热点文件识别。
步骤S04,获取对所述预设程序进行热点文件识别的累计时长,若所述累计时长大于第一阈值,则停止对所述预设程序进行热点文件识别,并依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件,将所述热点文件存储至内存中。
步骤S31:获取所述热点文件的确定时间以及所述热点文件的刷新周期,并依据所述确定时间及所述刷新周期判断是否需要刷新所述热点文件。
若是,则执行步骤S32。
在本申请实施例中,获取所述热点文件的确定时间,其具体可以通过在依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件的同时记录当前时刻作为该热点文件的确定时间。
在一个具体实施例中,由于应用程序在运行过程中,其访问的文件会随着用户使用情况的变化而变化,如利用阅读应用程序读小说时更换其他小说进行阅读,导致热点文件也会发生变化,因此为进一步提高对高频访问的热点文件识别的准确度,还可以预先设定该热点文件的刷新周期,并依据该确定时间及该刷新周期判断是否需要刷新该热点文件。
在一个具体实施例中,当依据确定时间及刷新周期确定不需要刷新热点文件时,则不作任何处理。
步骤S32:将所述热点文件从所述内存中删除。
在本申请实施例中,在将所述热点文件从所述内存中删除之后,返回执行步骤S01。
在本申请实施例中,当需要刷新该热点文件时,则将热点文件从内存中删除,并返回执行步骤S01获取至少一个预设程序与触发事件的对应关系,以重新对预设程序进行热点文件识别,保证识别得到的热点文件的时效性。
在一个具体实施例中,在执行完步骤S04,依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件之后,所述方法还包括:
当检测到所述预设程序进行版本更新时,将所述热点文件从所述内存中删除,并返回执行步骤S01获取至少一个预设程序与触发事件的对应关系。
在本申请实施例中,当预设程序进行版本更新时,因为应用程序升级或者操作系统升级之后,部分文件会发生变化,导致之前识别到的热点文件在升级后可能会发生变化,故本申请实施例在检测到预设程序进行版本更新时,将热点文件从内存中删除,并返回执行步骤S01获取至少一个预设程序与触发事件的对应关系,以重新对预设程序进行热点文件识别,保证识别得到的热点文件的准确性。
进一步的,由于应用程序和操作系统升级之后,升级后的程序需要经过运行一段时间之后才能稳定,例如在应用程序升级完成之后,点开该应用程序后还会进行新下载文件压缩包的解压缩,此时对压缩文件的访问只进行此一次,因此为避免此时间段内程序对压缩文件的访问影响到热点文件的识别,还可以预先设置程序升级延时,用于在程序稳定后再进行热点文件识别,进一步提高识别得到的热点文件的准确性。
在一个具体实施例中,在执行完步骤S04,依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件之后,所述方法还包括:
获取所述热点文件的文件信息,并将所述热点文件的文件信息保存至非易失性存储介质中;
当设备重启后,从所述非易失性存储介质中获取所述热点文件的文件信息,并依据所述热点文件的文件信息将所述热点文件保存至所述内存中。
在本申请实施例中,在热点文件识别完成后,会将保护在内存中,但是重启设备后,这些热点文件就会丢失,这时候就需要重新识别。为了避免出现频繁的识别热点文件的情况,本申请将热点文件的文件信息保存至非易失性存储介质中,当设备重启后,从非易失性存储介质中获取热点文件的文件信息,并依据热点文件的文件信息将热点文件保存至内存中,进而不需要在设备重启后重新识别热点文件。
请参考图5,为本申请实施例所提供的一种文件管理软件的整体框架示意图。
本申请实施例以预设程序为预设应用程序为例,如图5所示,本申请实施例中该文件管理软件的识别策略的核心思想是:软件框架层包括预设应用程序识别模块、前后台识别模块、决策模块、命令下发模块、持久化管理模块、计时管理模块,各模块进行如下工作:
1)预设应用程序识别模块预先根据用户实际使用设备时,一段时间内的各个应用程序的使用频次来识别高频使用的预设应用程序,请参考图6,为本申请实施例所提供的一种各应用程序使用情况的示意图,如图6所示,该用户使用应用程序的前三位为A应用,B应用,C应用,前五位为A应用,B应用,C应用,D应用,E应用。
2)前后台识别模块识别预设应用程序切换到前台时,决策模块生成开始进行热点文件识别的决策,命令下发模块下发该开始进行热点文件识别的决策;前后台识别模块识别预设应用程序切换到后台时,决策模块生成暂停进行热点文件识别的决策,命令下发模块下发该暂停进行热点文件识别的决策。
3)位于函数接口层的热点文件命令管理模块解析命令下发模块下发的决策,并将解析得到的热点文件识别指令或暂停热点文件识别指令下发到位于内核的热点文件识别模块,热点文件识别模块执行该热点文件识别指令或暂停热点文件识别指令,完成对热点文件的识别或暂停识别。
4)计时管理模块记录几个重要信息:预设应用程序识别时间、预设应用程序刷新周期、热点文件累计识别时长、热点文件刷新周期、热点文件上次识别完成时间。
当热点文件累计识别时长大于热点文件识别窗长时,结束本次识别,并将当前系统时间保存为热点文件上次识别完成时间。
在接收到预设应用程序前台事件时,判断当前时间与上次识别完成时间的差值是否大于热点文件刷新间隔,如果大于,则重新开始热点文件识别,否则忽略。
当预设应用程序获取成功后,记录当前系统时间为预设应用程序识别时间,随着用户的使用情况转变,预设应用程序也会发生变化,因此在预设应用程序刷新周期达到之后需要再次识别预设应用程序。
5)升级管理模块保存的关键参数有应用程序升级延时和系统升级延时,因为应用程序和系统升级之后,新的文件需要稳定一段时间,因此在稳定后再开始识别出的热点文件才是精准有效的,因此加了两个延时参数,应用程序或者系统升级事件发生时,延时多久开始热点文件识别。
6)持久化管理模块将识别到的热点文件列表及识别信息存储成到非易失性存储介质的方式来持久化保存。假设之前已完成过热点文件识别,当用户重启手机之后,首先会从存储中读取热点文件列表,并将列表中的文件标记成热点文件,同时读取上次识别的信息。当新一轮热点文件识别完成之后,会把热点文件列表保存到非易失性存储介质中,同时保存本次识别信息。请参考图7,为本申请为实施例所提供的一种热点文件信息保存的示意图,如图7所示,在完成热点文件识别之后,将热点文件信息从位于函数接口层的列表寄存器中保存到存储器的索引节点列表中;当用户重启手机之后,首先会从存储中读取热点文件列表,并将列表中的文件标记成热点文件,同时读取上次识别的信息。当新一轮热点文件识别完成之后,会把热点文件列表保存到非易失性存储介质中,同时保存本次识别信息。
请参考图8,为本申请实施例所提供的一种文件管理装置的结构示意图,该装置包括:
第一获取模块10,用于获取至少一个预设程序与触发事件的对应关系;所述触发事件包括第一触发事件及第二触发事件,所述第一触发事件为触发对所述预设程序进行文件管理的事件,所述第二触发事件为触发暂停对所述预设程序进行文件管理的事件;
第一检测模块20,用于当检测到所述第一触发事件时,对所述预设程序进行文件管理;
第二检测模块30,用于当检测到所述第二触发事件时,暂停对所述预设程序进行文件管理;
第二获取模块40,用于获取对所述预设程序进行文件管理的累计时长,若所述累计时长大于第一阈值,则停止对所述预设程序进行文件管理,并依据对所述预设程序进行文件管理得到的识别结果确定热点文件,将所述热点文件存储至内存中。
在上述实施例的基础上,在一个具体实施例中,所述预设程序包括预设应用程序;
该第一获取模块10还用于:
获取至少一个应用程序的运行频率;
依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序。
在上述实施例的基础上,在一个具体实施例中,该第一获取模块10具体用于:
每隔预设时间段均获取至少一个应用程序的运行频率;
依据当前时间段下的所述至少一个应用程序的运行频率,从所述至少一个应用程序中确定当前时间段下的预设应用程序。
在上述实施例的基础上,在一个具体实施例中,所述预设程序包括操作系统;
所述第一触发事件包括亮屏事件,所述第二触发事件包括熄屏事件。
在上述实施例的基础上,在一个具体实施例中,该第二获取模块40还用于:
获取所述热点文件的确定时间以及所述热点文件的刷新周期,并依据所述确定时间及所述刷新周期判断是否需要刷新所述热点文件;
若是,则将所述热点文件从所述内存中删除,并返回执行所述获取至少一个预设程序与触发事件的对应关系的步骤。
在上述实施例的基础上,在一个具体实施例中,该第二获取模块40还用于:
当检测到所述预设程序进行版本更新时,将所述热点文件从所述内存中删除,并返回执行所述获取至少一个预设程序与触发事件的对应关系的步骤。
在上述实施例的基础上,在一个具体实施例中,该第二获取模块40还用于:
获取所述热点文件的文件信息,并将所述热点文件的文件信息保存至非易失性存储介质中;
当设备重启后,从所述非易失性存储介质中获取所述热点文件的文件信息,并依据所述热点文件的文件信息将所述热点文件保存至所述内存中。
在一个具体实施例中,本实施例提供一种电子设备,包括处理器和存储器,存储器用于存储至少一条指令,指令由处理器加载并执行时以实现上述的文件管理的方法,其执行方式和有益效果类似,在这里不再赘述。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的文件管理的方法,其执行方式和有益效果类似,在这里不再赘述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种文件管理的方法,其特征在于,包括:
获取至少一个预设程序与触发事件的对应关系;所述触发事件包括第一触发事件及第二触发事件,所述第一触发事件为触发对所述预设程序进行热点文件识别的事件,所述第二触发事件为触发暂停对所述预设程序进行热点文件识别的事件;
当检测到所述第一触发事件时,对所述预设程序进行热点文件识别;
当检测到所述第二触发事件时,暂停对所述预设程序进行热点文件识别;
获取对所述预设程序进行热点文件识别的累计时长,若所述累计时长大于第一阈值,则停止对所述预设程序进行热点文件识别,并依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件,将所述热点文件存储至内存中;
其中,所述对所述预设程序进行热点文件识别,包括:
获取所述预设程序对至少一个文件的访问频率;
依据所述预设程序对至少一个文件的访问频率从所述至少一个文件中确定所述热点文件;
其中,所述预设程序包括操作系统或者预设应用程序;
当所述预设程序包括预设应用程序时,在所述获取至少一个预设程序与触发事件的对应关系之前,所述方法还包括:
获取至少一个应用程序的运行频率;
依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序;
所述依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,包括:
确定所述运行频率大于第二阈值的应用程序为所述预设应用程序;或者,按照运行频率由大到小的顺序对所述至少一个应用程序进行排序,确定排名前第一预设数目的应用程序为所述预设应用程序。
2.根据权利要求1所述的方法,其特征在于,所述获取至少一个应用程序的运行频率,包括:
每隔预设时间段均获取至少一个应用程序的运行频率;
所述依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,对应包括:
依据当前时间段下的所述至少一个应用程序的运行频率,从所述至少一个应用程序中确定当前时间段下的预设应用程序。
3.根据权利要求1所述的方法,其特征在于,当所述预设程序包括预设应用程序时,所述第一触发事件包括切前台事件,所述第二触发事件包括切后台事件。
4.根据权利要求1所述的方法,其特征在于,当所述预设程序包括操作系统时,所述第一触发事件包括亮屏事件,所述第二触发事件包括熄屏事件。
5.根据权利要求1所述的方法,其特征在于,在将所述热点文件存储至内存中之后,所述方法还包括:
获取所述热点文件的确定时间以及所述热点文件的刷新周期,并依据所述确定时间及所述刷新周期判断是否需要刷新所述热点文件;
若是,则将所述热点文件从所述内存中删除,并返回执行所述获取至少一个预设程序与触发事件的对应关系的步骤。
6.根据权利要求1所述的方法,其特征在于,在依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件之后,所述方法还包括:
当检测到所述预设程序进行版本更新时,将所述热点文件从所述内存中删除,并返回执行所述获取至少一个预设程序与触发事件的对应关系的步骤。
7.根据权利要求1所述的方法,其特征在于,在依据对所述预设程序进行热点文件识别得到的识别结果确定热点文件之后,所述方法还包括:
获取所述热点文件的文件信息,并将所述热点文件的文件信息保存至非易失性存储介质中;
当设备重启后,从所述非易失性存储介质中获取所述热点文件的文件信息,并依据所述热点文件的文件信息将所述热点文件保存至所述内存中。
8.根据权利要求1所述的方法,其特征在于,所述依据所述预设程序对至少一个文件的访问频率从所述至少一个文件中确定所述热点文件,包括:
将所述访问频率大于第三阈值的文件标记为所述热点文件。
9.根据权利要求1所述的方法,其特征在于,所述依据所述预设程序对至少一个文件的访问频率从所述至少一个文件中确定所述热点文件,包括:
按照所述访问频率由大到小的顺序对所述至少一个文件进行排序;
将排名前第二预设数目的文件标记为所述热点文件。
10.一种文件管理装置,其特征在于,包括:
第一获取模块,用于获取至少一个预设程序与触发事件的对应关系;所述触发事件包括第一触发事件及第二触发事件,所述第一触发事件为触发对所述预设程序进行文件管理的事件,所述第二触发事件为触发暂停对所述预设程序进行文件管理的事件;
第一检测模块,用于当检测到所述第一触发事件时,对所述预设程序进行文件管理;
第二检测模块,用于当检测到所述第二触发事件时,暂停对所述预设程序进行文件管理;
第二获取模块,用于获取对所述预设程序进行文件管理的累计时长,若所述累计时长大于第一阈值,则停止对所述预设程序进行文件管理,并依据对所述预设程序进行文件管理得到的识别结果确定热点文件,将所述热点文件存储至内存中;
其中,所述对所述预设程序进行热点文件识别,包括:
获取所述预设程序对至少一个文件的访问频率;
依据所述预设程序对至少一个文件的访问频率从所述至少一个文件中确定所述热点文件;
其中,所述预设程序包括操作系统或者预设应用程序;
当所述预设程序包括预设应用程序时,所述第一获取模块还用于:
获取至少一个应用程序的运行频率;
依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序;
所述依据所述至少一个应用程序的运行频率从所述至少一个应用程序中确定所述预设应用程序,包括:
确定所述运行频率大于第二阈值的应用程序为所述预设应用程序;或者,按照运行频率由大到小的顺序对所述至少一个应用程序进行排序,确定排名前第一预设数目的应用程序为所述预设应用程序。
11.一种电子设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储至少一条指令,所述指令由所述处理器加载并执行时以实现如权利要求1-9中任意一项所述的文件管理的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9中任意一项所述的文件管理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210888514.XA CN115079959B (zh) | 2022-07-26 | 2022-07-26 | 一种文件管理的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210888514.XA CN115079959B (zh) | 2022-07-26 | 2022-07-26 | 一种文件管理的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115079959A CN115079959A (zh) | 2022-09-20 |
CN115079959B true CN115079959B (zh) | 2023-06-09 |
Family
ID=83243223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210888514.XA Active CN115079959B (zh) | 2022-07-26 | 2022-07-26 | 一种文件管理的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115079959B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015158700A (ja) * | 2014-02-21 | 2015-09-03 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
CN109033247A (zh) * | 2018-07-05 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种应用程序的管理方法、装置、存储介质及终端 |
CN109240611A (zh) * | 2018-08-28 | 2019-01-18 | 郑州云海信息技术有限公司 | 小文件冷热数据分层方法、小文件数据访问方法及其装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763437B (zh) * | 2010-02-10 | 2013-03-27 | 华为数字技术(成都)有限公司 | 高速缓冲存储实现方法及装置 |
CN106293445B (zh) * | 2015-06-29 | 2021-03-23 | 腾讯科技(深圳)有限公司 | 应用程序使用数据的获取方法、装置及终端设备 |
CN110427582A (zh) * | 2018-04-28 | 2019-11-08 | 华为技术有限公司 | 文件缓存的读取方法和装置 |
-
2022
- 2022-07-26 CN CN202210888514.XA patent/CN115079959B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015158700A (ja) * | 2014-02-21 | 2015-09-03 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
CN109033247A (zh) * | 2018-07-05 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种应用程序的管理方法、装置、存储介质及终端 |
CN109240611A (zh) * | 2018-08-28 | 2019-01-18 | 郑州云海信息技术有限公司 | 小文件冷热数据分层方法、小文件数据访问方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115079959A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106471478B (zh) | 用于在非易失性数据存储设备内以原子的方式执行多个写事务的设备控制器和方法 | |
US8397017B2 (en) | Controller and data storage device | |
JP6527577B2 (ja) | ファイルシステムにおけるフラッシング | |
US10558569B2 (en) | Cache controller for non-volatile memory | |
CN108549556B (zh) | 一种应用程序加速方法、装置、终端及存储介质 | |
KR101842321B1 (ko) | 세그먼트화된 캐시 | |
US20180189144A1 (en) | Apparatus and method for memory storage to protect data-loss after power loss | |
CN109491592B (zh) | 存储设备及其数据写入方法、存储装置 | |
WO2017052595A1 (en) | Variable cache for non-volatile memory | |
US20160062895A1 (en) | Method for disk defrag handling in solid state drive caching environment | |
US20130304972A1 (en) | Control device, storage device, and storage control method | |
CN114063922A (zh) | 一种主从库流复制加速方法及装置、设备及介质 | |
CN111949220A (zh) | 存储设备异常断电恢复方法及存储设备 | |
CN110597457A (zh) | 一种固态硬盘、固态硬盘的控制方法及控制器 | |
CN106991059B (zh) | 对数据源的访问控制方法 | |
US9507657B2 (en) | Investigation program, information processing apparatus, and information processing method | |
CN115639971A (zh) | 数据写入方法、装置、电子设备、存储介质及程序产品 | |
CN115079959B (zh) | 一种文件管理的方法、装置及电子设备 | |
CN113342276A (zh) | 一种日志保存方法、系统、设备以及介质 | |
JP2006350633A (ja) | データ管理方法及びデータ管理システム | |
CN115509454A (zh) | 一种固态硬盘数据的写入方法、装置、电子设备以及介质 | |
CN113918485B (zh) | 一种闪存资料防丢失方法、装置、设备及存储介质 | |
CN113485642A (zh) | 数据缓存方法及装置 | |
CN114168495A (zh) | 存储设备的增强的预读能力 | |
CN112783802B (zh) | 一种ssd中优化读干扰处理的方法 |
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 |