CN112035119A - 一种数据删除方法及装置 - Google Patents

一种数据删除方法及装置 Download PDF

Info

Publication number
CN112035119A
CN112035119A CN202010889769.9A CN202010889769A CN112035119A CN 112035119 A CN112035119 A CN 112035119A CN 202010889769 A CN202010889769 A CN 202010889769A CN 112035119 A CN112035119 A CN 112035119A
Authority
CN
China
Prior art keywords
data
application program
redundant
calling
determining
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
Application number
CN202010889769.9A
Other languages
English (en)
Other versions
CN112035119B (zh
Inventor
袁磊红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202010889769.9A priority Critical patent/CN112035119B/zh
Publication of CN112035119A publication Critical patent/CN112035119A/zh
Application granted granted Critical
Publication of CN112035119B publication Critical patent/CN112035119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种数据删除方法及装置,涉及数据处理技术领域,其中,上述方法包括:确定应用程序的所有数据,应用程序的数据为:应用程序安装于电子设备的情况下会存储于应用程序的安装路径下的数据;获得应用程序的数据的调用次数,调用次数为:对应用程序的所有功能进行测试过程中得到的应用程序的数据被调用的次数;根据所获得的调用次数,从所有数据中确定冗余数据;从所有数据中删除冗余数据。应用本发明实施例提供的方案删除数据,减小了应用程序的数据占用的存储空间。

Description

一种数据删除方法及装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据删除方法及装置。
背景技术
为了不断满足用户的使用需求,应用程序的开发人员需要更新应用程序以增加新功能,这样应用程序的文件中将不断加入与新增功能对应的数据。
鉴于上述情况,随着应用程序更新,应用程序的数据越来越多,对于应用程序而言冗余数据也越来越多,应用程序的数据占用的存储空间越来越大。
发明内容
本发明实施例的目的在于提供一种数据删除方法及装置,以减小应用程序的数据占用的存储空间。具体技术方案如下:
在本发明实施例的第一方面,首先提供了一种数据删除方法,所述方法包括:
确定应用程序的所有数据,其中,所述应用程序的数据为:所述应用程序安装于电子设备的情况下会存储于所述应用程序的安装路径下的数据;
获得所述应用程序的数据的调用次数,其中,所述调用次数为:对所述应用程序的所有功能进行测试过程中得到的所述应用程序的数据被调用的次数;
根据所获得的调用次数,从所述所有数据中确定冗余数据;
从所述所有数据中删除所述冗余数据。
本发明的一个实施例中,所述根据所获得的调用次数,从所述所有数据中确定冗余数据,包括:
根据所获得的调用次数,将所述所有数据中在所述测试过程中未被调用过的数据确定为冗余数据。
本发明的一个实施例中,所述根据所获得的调用次数,从所述所有数据中确定冗余数据,包括:
根据所获得的调用次数,在所述所有数据中确定调用次数小于预设次数的数据,作为冗余数据,其中,所述预设次数是基于所述应用程序的各个数据的调用次数确定的。
本发明的一个实施例中,所述根据所获得的调用次数,在所述所有数据中确定调用次数小于预设次数的数据,作为冗余数据,包括:
确定目标数据占用存储空间的大小,其中,所述目标数据为:所述所有数据中调用次数小于预设次数的数据;
根据目标数据占用存储空间大小的排列顺序,选择排列顺序中前预设数量个目标数据作为冗余数据。
本发明的一个实施例中,在服务器中未存储有所述冗余数据的情况下,所述从所述所有数据中删除所述冗余数据,包括:
向服务器上传所述冗余数据之后,从所述所有数据中删除所述冗余数据。
在本发明实施例的第二方面,还提供了一种数据删除装置,所述装置包括:
所有数据确定模块,用于确定应用程序的所有数据,其中,所述应用程序的数据为:所述应用程序安装于电子设备的情况下会存储于所述应用程序的安装路径下的数据;
次数获得模块,用于获得所述应用程序的数据的调用次数,其中,所述调用次数为:对所述应用程序的所有功能进行测试过程中得到的所述应用程序的数据被调用的次数;
冗余数据确定模块,用于根据所获得的调用次数,从所述所有数据中确定冗余数据;
数据删除模块,用于从所述所有数据中删除所述冗余数据。
本发明的一个实施例中,所述冗余数据确定模块,包括:
第一数据确定子模块,用于根据所获得的调用次数,将所述所有数据中在所述测试过程中未被调用过的数据确定为冗余数据。
本发明的一个实施例中,所述冗余数据确定模块,包括:
第二数据确定子模块,用于根据所获得的调用次数,在所述所有数据中确定调用次数小于预设次数的数据,作为冗余数据,其中,所述预设次数是基于所述应用程序的各个数据的调用次数确定的。
本发明的一个实施例中,所述第二数据确定子模块,具体用于:
确定目标数据占用存储空间的大小,其中,所述目标数据为:所述所有数据中调用次数小于预设次数的数据;
根据目标数据占用存储空间大小的排列顺序,选择排列顺序中前预设数量个目标数据作为冗余数据。
本发明的一个实施例中,在服务器中未存储有所述冗余数据的情况下,所述数据删除模块,具体用于:
向服务器上传所述冗余数据之后,从所述所有数据中删除所述冗余数据。
在本发明实施例的第三方面,一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本发明实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
在本发明实施例的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。
应用本发明实施例提供的方案删除数据时,通过确定应用程序的所有数据,以及在对应用程序的所有功能进行测试的过程中,应用程序的数据被调用的调用次数,可以确定应用程序不经常被调用的冗余数据,删除所确定的冗余数据。由以上可见,通过本发明实施例提供的方案可以删除应用程序不经常被调用的数据,从而可以减小应用程序的数据占用的存储空间。常规应用程序中提供的清理缓存选项基本上是,开发人员基于经验对指定的缓存文件的删除,这导致被去除的原有功能相对应的数据依然保留在设备中,即使更新后的应用程序不再调用到该部分数据。但通过本发明实施例提供的方案可以准确的定位应用程序中的这部分冗余数据,针对更新应用程序可能带来的冗余数据精准删除,从而进一步减小了应用程序的数据占用的存储空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的第一种数据删除方法的流程示意图;
图2A为本发明实施例中提供的第二种数据删除方法的流程示意图;
图2B为本发明实施例中提供的第三种数据删除方法的流程示意图;
图2C为本发明实施例中提供的第四种数据删除方法的流程示意图;
图3为本发明实施例中提供的第一种数据删除装置的结构示意图;
图4A为本发明实施例中提供的第二种数据删除装置的结构示意图;
图4B为本发明实施例中提供的第三种数据删除装置的结构示意图;
图5为本发明实施例中提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
由于当前随着应用程序更新应用程序的数据占用的存储空间越来越大,为解决这一问题,本发明实施例提供了一种数据删除方法及装置。
本发明的一个实施例中,提供了一种数据删除方法,上述方法包括:
确定应用程序的所有数据,其中,上述应用程序的数据为:上述应用程序安装于电子设备的情况下会存储于上述应用程序的安装路径下的数据。
获得上述应用程序的数据的调用次数,其中,上述调用次数为:对上述应用程序的所有功能进行测试过程中得到的上述应用程序的数据被调用的次数。
根据所获得的调用次数,从上述所有数据中确定冗余数据。
从上述所有数据中删除上述冗余数据。
由以上可见,通过本发明实施例提供的方案可以删除应用程序不经常被调用的数据,从而可以减小应用程序的数据占用的存储空间。常规应用程序中提供的清理缓存选项基本上是,开发人员基于经验对指定的缓存文件的删除,这导致被去除的原有功能相对应的数据依然保留在设备中,即使更新后的应用程序不再调用到该部分数据。但通过本发明实施例提供的方案可以准确的定位应用程序中的这部分冗余数据,针对更新应用程序可能带来的冗余数据精准删除,从而进一步减小了应用程序的数据占用的存储空间。
下面通过具体的实施例对本发明实施例提供的数据删除方法及装置进行说明。
参见图1,本发明实施例提供了第一种数据删除方法的流程示意图。上述数据删除方法包括以下步骤S101-S104。
S101:确定应用程序的所有数据。
其中,上述应用程序的数据为:上述应用程序安装于电子设备的情况下会存储于上述应用程序的安装路径下的数据。
本发明的一个实施例中,上述应用程序的数据可以为应用程序的安装文件中包含的数据,在将上述安装文件安装于电子设备之后,安装文件中包含的数据会被存储于上述应用文件的安装路径下。
另外,上述应用程序的数据也可以为安装于电子设备的应用程序的安装路径下已存储的数据,上述应用程序安装路径下已存储的数据可能为首次安装该应用程序时安装文件中包含的数据,也可能为升级该应用程序时用于升级该应用程序的升级包中包含的数据,也可能为使用该应用程序的过程中获取或生成的数据。
例如,在电子设备的操作系统为iOS系统的情况下,同一个应用程序的数据均存储于该电子设备对应的沙盒目录中,上述沙盒目录中包含Documents、Library、SystemData和tmp文件夹,因此遍历上述沙盒目录可以确定应用程序的所有数据。
本发明的一个实施例中,应用程序的数据可以包括:以文件为单位被调用的数据和/或以文件中的一条记录为单位被调用的数据。
其中,由于部分数据仅能以文件为单位被调用,因此应用程序的仅能以文件为单位被调用的数据以文件的形式存储在电子设备中。而部分数据能够以文件中的一条记录为单位被调用,因此应用程序的能够以文件中的一条记录为单位被调用的数据以文件中的记录的形式存储在电子设备中。
例如,上述以文件为单位被调用的数据可以为数据库文件、日志文件、缓存文件、图片与视频等。在电子设备的操作系统为iOS系统的情况下,上述以文件中的一条记录为单位被调用的数据可以为plist用户偏好文件中的一条记录。
具体的,在上述应用程序的数据是以文件为单位被调用的数据的情况下,可以确定并存储文件的文件标识,从而确定并区分应用程序的文件,不同文件的文件标识不同,例如,上述文件标识可以包括:文件的文件路径与文件名称等。
在上述应用程序的数据是以文件中的一条记录为单位被调用的数据的情况下,可以确定并存储文件的文件标识与记录在文件中的记录标识,从而确定并区分应用程序的文件中的记录,不同文件的文件标识不同,各个记录在同一文件中的记录标识不同,例如,上述文件标识可以为:文件的文件路径与文件名称等,上述记录标识可以为:记录的记录名称、记录编号等。
S102:获得上述应用程序的数据的调用次数。
其中,上述调用次数为:对上述应用程序的所有功能进行测试过程中得到的上述应用程序的数据被调用的次数。
具体的,由于对上述应用程序的所有功能进行测试的过程中,实现上述所有功能所需要使用的所有数据均会被调用,因此可以在对上述应用程序的所有功能进行测试的过程中获得上述应用程序的数据调用次数。
其中,上述应用程序的功能可以包括:查询应用程序的数据的功能、写入应用程序的数据的功能、更改应用程序的数据的功能等。
可以在Debug模式下对应用程序的所有功能进行测试。
其中,在本发明实施例应用于编辑上述应用程序的安装文件的电子设备中的情况下,可以通过后续描述的步骤A-步骤B确定上述应用程序的数据的调用次数,在此暂不详述。
在本发明实施例应用于安装有上述应用程序的电子设备中的情况下,可以获得编辑上述应用程序的安装文件的电子设备确定出的调用次数,从而获得上述调用次数。
本发明的一个实施例中,由于每一数据与调用次数一一对应,因此可以将数据的标记作为主键,将调用次数作为值,以主键-值的形式存储各个数据的调用次数。在上述应用程序的数据是以文件为单位被调用的数据的情况下,上述数据的标记可以为文件标记,在上述应用程序的数据是以文件中的一条记录为单位被调用的数据的情况下,上述数据的标记可以为文件标记与记录标记的组合。
具体的,可以使用哈希函数将作为主键的数据的标识映射为哈希值,将数据的标识与各个数据的调用次数存储在哈希表中。
S103:根据所获得的调用次数,从上述所有数据中确定冗余数据。
具体的,由于数据的调用次数可以反映数据被使用的情况,在运行上述应用程序时,会经常使用调用次数高的数据,不经常使用调用次数低的数据。上述应用程序的不经常使用的数据,可以被称为冗余数据。
本发明的一个实施例中,可以通过步骤S103A确定上述冗余数据,也可以通过步骤S103B确定上述冗余数据,在此暂不详述。
S104:从上述所有数据中删除上述冗余数据。
具体的,由于上述冗余数据为上述应用程序的不经常使用的数据,因此删除上述冗余数据对应用程序造成的影响较小,且能够减小上述应用程序占用的存储空间。
由以上可见,通过本发明实施例提供的方案可以删除应用程序不经常被调用的数据,从而可以减小应用程序的数据占用的存储空间。常规应用程序中提供的清理缓存选项基本上是,开发人员基于经验对指定的缓存文件的删除,这导致被去除的原有功能相对应的数据依然保留在设备中,即使更新后的应用程序不再调用到该部分数据。但通过本发明实施例提供的方案可以准确的定位应用程序中的这部分冗余数据,针对更新应用程序可能带来的冗余数据精准删除,从而进一步减小了应用程序的数据占用的存储空间。
本发明的又一个实施例中,应用程序中往往包含用于与电子设备的操作系统进行交互的系统数据,但由于应用程序中往往不提供调用系统数据的接口,因此在确定应用程序的数据的过程中可以不考虑上述系统数据。
例如,在电子设备的操作系统为iOS系统的情况下,应用程序的系统文件均存储于该应用程序对应的SystemData文件夹中,因此在确定上述应用程序的数据的过程中可以不确定上述SystemData文件夹中的数据。
另外,应用程序中往往也包含在应用程序运行过程中生成的临时数据,在安装上述应用程序的电子设备被重新启动后,上述临时数据会被删除,因此临时文件不会始终占用电子设备的存储空间,因此在使用本方案删除应用程序的冗余数据的过程中可以不考虑上述临时数据。
例如,在电子设备的操作系统为iOS系统的情况下,应用程序的临时文件均存储于该应用系统对应的tmp文件夹中,因此在确定上述应用程序的数据的过程中可以不确定上述tmp文件夹中的数据。
因此,本发明的一个实施例中,上述应用程序的数据为:上述应用程序安装于电子设备的情况下会存储于上述应用程序的安装路径下、且除系统数据和/或临时数据之外的数据。
由以上可见,上述应用程序的数据中不包含系统数据和/或临时数据,因此在删除数据的过程中需要处理的数据的数量较少,因此提高了删除数据的过程的效率。
本发明的一个实施例中,可以通过以下步骤A-步骤B获得上述调用次数。
步骤A:确定上述所有数据中各个数据的新调用方式。
其中,每一数据的新调用方式为:基于该数据的预设调用方式生成的、用于在该数据被调用过程中记录该数据的调用次数的方式。
具体的,由于应用程序的各个功能均是通过应用程序中预设的方式实现的,因此调用应用程序的数据的过程也是通过预设调用方式实现的,预设调用方式每调用数据一次,上述数据的调用次数便增加一次,因此需要统计数据被调用方式调用的次数,但由于现有技术中调用方式仅用于调用应用程序的数据,并不会记录调用数据的次数,因此需要对预设调用方式进行调整,生成新调用方式,上述新调用方式在保留预设调用方式的功能的基础上,还用于记录该数据被调用的次数。除此之外,上述新调用方式还可以记录该数据的名称、路径、所占用的存储空间的大小等任一数据或任意组合的数据。
并且,由于使用预设调用方式可以调用上述应用程序的数据,针对每一数据存在用于调用该数据的预设调用方式,用于调用不同数据的预设调用方式可能相同,因此可以将对应的预设调用方式相同的数据确定为同一类数据。基于预设调用方式可以生成新调用方式,使用新调用方式可以在调用上述应用程序的数据的基础上,记录该数据被调用的调用次数。因此可以将用于调用同一类数据的预设调用方式对应的新调用方式确定为该类数据的新调用方式。
本发明的一个实施例中,可以通过hook原理将预设调用方式映射为新调用方式。
例如,可以通过以下代码定义新的将字符串写入文件的方法。
@implementation NSString(NewMethod)
-(BOOL)newWriteToFile:(NSString*)path atomically(BOOL)useAuxiliaryFile
encoding:(NSStringEncoding)enc error:(NSError**)error{
//存储文件的名称、路径、占用的存储空间大小、调用次数
[self saveFileInfoWithFileName]:[self getFileName:path]WithFilePath:path WithFileSize:[self getFileSize:path]WithFileCallTimes:[selfgetCallTimes:path]];
Return[self newWriteToFile:path atomically:useAuxiliaryFile encoding:enc error:error];
}
其中,path为数据路径,getFileName用于获取数据名称,getFileSize用于获取数据占用存储空间的大小,getCallTimes用于获取数据被调用的调用次数。
通过以下代码将预设的方式替换为新实现的方式。
Method originalMethod=class_getInstanceMethod([NSString class],@selector(WriteToFile:atomically:encoding:error:));
Method swizzledMethod=class_getInstanceMethod([NSString class],@selector(newWriteToFile:atomically:encoding:error:));
BOOL didAddMethod=class_addMethod([NSString class],@selector(newWriteToFile:atomically:encoding:error:),method_getImplementation(swizzledMethod),method_getTypeEncoding(swizzledMethod));
if(didAddMethod){
class_replaceMethod([NSString class],@selector
(newWriteToFile:atomically:encoding:error:),method_getImplementation
(originalMethod),method_getTypeEncoding(originalMethod));
}
method_exchangeImplementations(originalMethod,swizzledMethod);
其中,didAddMethod用于表示是否存在预设的方式,若不存在则添加预设的方式。定义了预设的调用.cache缓存文件的方式originalMethod,用于将字符串写入.cache缓存文件,并且定义了新实现的调用.cache缓存文件的方式swizzledMethod,用于将字符串写入.cache缓存文件并记录该数据被调用的次数、数据路径、数据名称与数据占用存储空间的大小。
通过method_exchangeImplementations(originalMethod,swizzledMethod)将预设的方式originalMethod替换为新实现的调用方式swizzledMethod。
步骤B:在上述测试过程中,使用上述所有数据中的各个数据的新调用方式调用数据,获得数据的调用次数。
由以上可见,由于新调用方式不仅能够实现预设调用方式原本的功能,还能记录数据被调用的次数,因此使用上述新调用方式调用数据可以在不影响应用程序的功能测试的情况下,确定各个数据在测试过程中被调用的次数。
参见图2A,提供了第二种数据删除方法的流程示意图,与前述图1相比,上述步骤S103可以通过S103A实现。
S103A:根据所获得的调用次数,将上述所有数据中在上述测试过程中未被调用过的数据确定为冗余数据。
具体的,由于上述测试过程为:对上述应用程序的所有功能进行测试的过程,因此在上述测试过程中未被调用过的数据即为上述应用程序的所有功能均不会使用到的数据,因此可以将在上述测试过程中未被调用过的数据确定为冗余数据。
本发明的一个实施例中,可以在第一数据表中记录上述所有数据的标识,从而确定上述所有数据,且可以以数据的标识作为主键,以数据的调用次数作为值,以主键-值的形式在第二数据表中存储各个数据的调用次数。由于只有被调用过的数据才能获取到调用次数,因此只要存储有调用次数的数据便是在上述测试过程中被调用过的数据,被调用过的数据的标识与调用次数便会被存储于第二数据表中。而不同数据的标识不同,因此可以确定第一数据表中存储有的、但第二数据表的主键中不包含的数据的标识,将所确定的数据的标识对应的数据作为冗余数据。
由以上可见,由于在上述测试过程中未被调用过的数据,在运行上述应用程序的过程中也不会被调用,因此可以将在上述测试过程中未被调用过的数据确定为冗余数据,删除未被调用过的冗余数据不会对应用程序的运行造成影响。
参见图2B,提供了第三种数据删除方法的流程示意图,与前述图1相比,上述步骤S103可以通过S103B实现。
S103B:根据所获得的调用次数,在上述所有数据中确定调用次数小于预设次数的数据,作为冗余数据。
其中,上述预设次数是基于上述应用程序的各个数据的调用次数确定的。例如,上述预设次数可以是上述应用程序的各个数据的调用次数的平均值、中值等。
具体的,上述调用次数小于预设次数的数据包含未被调用过的数据和在运行应用程序的过程中较少被使用的数据,因此删除上述冗余数据对应用程序的影响较小,为了降低应用程序占用的存储空间也可以将上述冗余数据删除。
本发明的一个实施例中,可以随机从调用次数小于预设次数的数据中选择数据作为冗余数据,也可以将所有调用次数小于预设次数的数据均作为冗余数据,或根据应用程序的功能,从调用次数小于预设次数的数据中选择数据,如较少被用户点击的页面中的图片数据等,作为冗余数据,还可以通过以下步骤C-步骤D从目标数据中选择冗余数据。
步骤C:确定目标数据占用存储空间的大小。
其中,上述目标数据为:上述所有数据中调用次数小于预设次数的数据。
具体的,可以根据各个数据的新调用方式确定数据占用存储空间的大小,也可以扫描应用程序,确定应用程序中各个数据占用存储空间的大小。
步骤D:根据目标数据占用存储空间大小的排列顺序,选择排列顺序中前预设数量个目标数据作为冗余数据。
具体的,由于应用程序中占用存储空间较大的数据越多,应用程序的数据占用的存储空间越多,因此可以根据目标数据占用存储空间由大到小的顺序,优先选择占用存储空间大的目标数据作为冗余数据。
例如,上述预设数量可以基于需求或经验制定,常规可设定为5个、10个等。
另外,也可以选择占用存储空间的大小大于预设存储空间的目标数据作为冗余数据。
例如,上述预设存储空间可以基于需求或经验制定,常规可设定为50M、200M等。
由以上可见,由于在上述测试过程中调用次数为0,即未被调用过的数据,在运行上述应用程序的过程中也不会被调用,因此可以将在上述测试过程中未被调用过的数据确定为冗余数据。另外,由于在上述测试过程中调用次数大于0且小于预设次数的数据,在运行上述应用程序的过程中较少被调用,删除上述冗余数据可以减小应用程序的数据占用的存储空间大小,并且对应用程序的使用不会造成较大的影响。
参见图2C,提供了第四种数据删除方法的流程示意图,在服务器中未存储有上述冗余数据的情况下,与前述图2B相比,上述步骤S104可以通过S104A实现。
S104A:向服务器上传上述冗余数据之后,从上述所有数据中删除上述冗余数据。
具体的,由于上述冗余数据中包含调用次数大于0但小于预设次数,即在运行应用程序的过程中较少被使用的数据。上述数据虽然较少被使用,但上述数据在应用程序运行的过程中依然有被调用的可能,若完全删除则应用程序无法调用上述数据,从而对应用程序的运行造成影响。
因此可以向服务器上传上述冗余数据,使得服务器中能够存储上述冗余数据,若在运行应用程序的过程中使用到上述冗余数据,可以从上述服务器中获取上述冗余数据,在安装有上述应用程序的电子设备能够连接到服务器的情况下,上述应用程序的使用不会被影响。
而对于服务器中已存储有的冗余数据,无需将上述冗余数据再次上传至服务器,可以直接删除上述冗余数据。
由以上可见,将上述冗余数据上传至服务器之后再删除上述冗余数据,可以使得在运行上述应用程序的过程中使用到上述冗余数据的情况下,运行上述应用程序的电子设备可以从服务器中获取到上述冗余数据,因此上述应用程序的运行不会受到影响。
本发明提供的另一个实施例,在该实施例中,开发人员对之前开发的应用程序进行功能升级,为了避免给安装上述应用程序的用户设备增加冗余文件,开发人员在应用程序的升级版本上线前,先删除应用程序的安装包和升级包中的冗余数据,再上线删除冗余数据后的应用程序的安装包和升级包,从而使得用户设备能获取并安装上述安装包或升级包。该实施例中数据删除方法,具体包括如下步骤:
开发人员开发应用程序时使用的电子设备首先确定所开发的应用程序中所有数据的调用次数,确定调用次数较少的冗余数据,并删除应用程序的安装包和升级包中的冗余数据。
由以上可见,本发明实施例提供的方案通过删除应用程序的安装包和升级包中的冗余数据,减小了安装包和升级包占用的存储空间的大小。若用户设备中未安装旧版本的应用程序,则用户设备会获取并安装上述安装包,由于安装包中的冗余数据被删除,因此用户设备安装上述安装包之后,应用程序占用的存储空间较小。
若用户设备中已安装有旧版本的应用程序,则用户设备会获取并安装上述升级包,升级包中的数据会覆盖应用程序安装路径下的原始数据。由于升级包中的冗余数据已被删除,因此用户设备安装上述升级包之后,安装目录中的冗余数据会被覆盖删除,因此降低了应用程序占用用户设备的存储空间的大小。
本发明提供的另一个实施例,在该实施例中,用户设备在对之前下载使用的应用程序进行功能升级时,需先获取升级包,并通过安装升级包来实现对该应用程序的功能升级。该实施例中数据删除方法,具体包括如下步骤:
开发人员开发应用程序时使用的电子设备对应用程序进行全功能测试,从而确定应用程序的数据的调用次数,并向安装有上述应用程序的用户设备发送上述调用次数。
用户设备在接收到上述调用次数之后,可以确定应用程序安装路径下的所有数据,并确定其中调用次数较少的数据作为冗余数据,从而删除冗余数据。
由以上可见,本发明实施例中确定冗余数据的过程是由用户设备完成的,用户设备接收到各个数据的调用次数后可以确定应用程序安装路径下的冗余数据,并直接从用户设备本地的存储空间中删除冗余数据,从而降低应用程序占用的存储空间的大小。与上述数据删除方法相对应,本发明实施例还提供了一种数据删除装置。
参见图3,本发明实施例提供了第一种数据删除装置的结构示意图,上述装置包括:
所有数据确定模块301,用于确定应用程序的所有数据,其中,所述应用程序的数据为:所述应用程序安装于电子设备的情况下会存储于所述应用程序的安装路径下的数据;
次数获得模块302,用于获得所述应用程序的数据的调用次数,其中,所述调用次数为:对所述应用程序的所有功能进行测试过程中得到的所述应用程序的数据被调用的次数;
冗余数据确定模块303,用于根据所获得的调用次数,从所述所有数据中确定冗余数据;
数据删除模块304,用于从所述所有数据中删除所述冗余数据。
由以上可见,通过本发明实施例提供的方案可以删除应用程序不经常被调用的数据,从而可以减小应用程序的数据占用的存储空间。常规应用程序中提供的清理缓存选项基本上是,开发人员基于经验对指定的缓存文件的删除,这导致被去除的原有功能相对应的数据依然保留在设备中,即使更新后的应用程序不再调用到该部分数据。但通过本发明实施例提供的方案可以准确的定位应用程序中的这部分冗余数据,针对更新应用程序可能带来的冗余数据精准删除,从而进一步减小了应用程序的数据占用的存储空间。
参见图4A,本发明的一个实施例中,提供了第二种数据删除装置的结构示意图,与前述图3所示的实施例相比,上述冗余数据确定模块303,包括:
第一数据确定子模块303A,用于根据所获得的调用次数,将所述所有数据中在所述测试过程中未被调用过的数据确定为冗余数据。
由以上可见,由于在上述测试过程中未被调用过的数据,在运行上述应用程序的过程中也不会被调用,因此可以将在上述测试过程中未被调用过的数据确定为冗余数据,删除未被调用过的冗余数据不会对应用程序的运行造成影响。
参见图4B,本发明的一个实施例中,提供了第三种数据删除装置的结构示意图,与前述图3所示的实施例相比,上述冗余数据确定模块303,包括:
第二数据确定子模块303B,用于根据所获得的调用次数,在所述所有数据中确定调用次数小于预设次数的数据,作为冗余数据,其中,所述预设次数是基于所述应用程序的各个数据的调用次数确定的。
本发明的一个实施例中,上述第二数据确定子模块303B,具体用于:
确定目标数据占用存储空间的大小,其中,所述目标数据为:所述所有数据中调用次数小于预设次数的数据;
根据目标数据占用存储空间大小的排列顺序,选择排列顺序中前预设数量个目标数据作为冗余数据。
由以上可见,由于在上述测试过程中调用次数为0,即未被调用过的数据,在运行上述应用程序的过程中也不会被调用,因此可以将在上述测试过程中未被调用过的数据确定为冗余数据。另外,由于在上述测试过程中调用次数大于0且小于预设次数的数据,在运行上述应用程序的过程中较少被调用,删除上述冗余数据可以减小应用程序的数据占用的存储空间大小,并且对应用程序的使用不会造成较大的影响。
本发明的一个实施例中,在服务器中未存储有所述冗余数据的情况下,与前述图4B所示的实施例相比,上述数据删除模块304,具体用于:
向服务器上传所述冗余数据之后,从所述所有数据中删除所述冗余数据。
由以上可见,将上述冗余数据上传至服务器之后再删除上述冗余数据,可以使得在运行上述应用程序的过程中使用到上述冗余数据的情况下,运行上述应用程序的电子设备可以从服务器中获取到上述冗余数据,因此上述应用程序的运行不会受到影响。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现上述任一所述的数据删除方法。
应用本发明实施例提供的电子设备删除数据时,通过本发明实施例提供的方案可以删除应用程序不经常被调用的数据,从而可以减小应用程序的数据占用的存储空间。常规应用程序中提供的清理缓存选项基本上是,开发人员基于经验对指定的缓存文件的删除,这导致被去除的原有功能相对应的数据依然保留在设备中,即使更新后的应用程序不再调用到该部分数据。但通过本发明实施例提供的方案可以准确的定位应用程序中的这部分冗余数据,针对更新应用程序可能带来的冗余数据精准删除,从而进一步减小了应用程序的数据占用的存储空间。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的数据删除方法。
应用本实施例提供的计算机可读存储介质中存储的计算机程序删除数据时,通过本发明实施例提供的方案可以删除应用程序不经常被调用的数据,从而可以减小应用程序的数据占用的存储空间。常规应用程序中提供的清理缓存选项基本上是,开发人员基于经验对指定的缓存文件的删除,这导致被去除的原有功能相对应的数据依然保留在设备中,即使更新后的应用程序不再调用到该部分数据。但通过本发明实施例提供的方案可以准确的定位应用程序中的这部分冗余数据,针对更新应用程序可能带来的冗余数据精准删除,从而进一步减小了应用程序的数据占用的存储空间。。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据删除方法。
执行本实施例提供的计算机程序产品删除数据时,通过本发明实施例提供的方案可以删除应用程序不经常被调用的数据,从而可以减小应用程序的数据占用的存储空间。常规应用程序中提供的清理缓存选项基本上是,开发人员基于经验对指定的缓存文件的删除,这导致被去除的原有功能相对应的数据依然保留在设备中,即使更新后的应用程序不再调用到该部分数据。但通过本发明实施例提供的方案可以准确的定位应用程序中的这部分冗余数据,针对更新应用程序可能带来的冗余数据精准删除,从而进一步减小了应用程序的数据占用的存储空间。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种数据删除方法,其特征在于,所述方法包括:
确定应用程序的所有数据,其中,所述应用程序的数据为:所述应用程序安装于电子设备的情况下会存储于所述应用程序的安装路径下的数据;
获得所述应用程序的数据的调用次数,其中,所述调用次数为:对所述应用程序的所有功能进行测试过程中得到的所述应用程序的数据被调用的次数;
根据所获得的调用次数,从所述所有数据中确定冗余数据;
从所述所有数据中删除所述冗余数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所获得的调用次数,从所述所有数据中确定冗余数据,包括:
根据所获得的调用次数,将所述所有数据中在所述测试过程中未被调用过的数据确定为冗余数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所获得的调用次数,从所述所有数据中确定冗余数据,包括:
根据所获得的调用次数,在所述所有数据中确定调用次数小于预设次数的数据,作为冗余数据,其中,所述预设次数是基于所述应用程序的各个数据的调用次数确定的。
4.根据权利要求3所述的方法,其特征在于,所述根据所获得的调用次数,在所述所有数据中确定调用次数小于预设次数的数据,作为冗余数据,包括:
确定目标数据占用存储空间的大小,其中,所述目标数据为:所述所有数据中调用次数小于预设次数的数据;
根据目标数据占用存储空间大小的排列顺序,选择排列顺序中前预设数量个目标数据作为冗余数据。
5.根据权利要求3或4所述的方法,其特征在于,在服务器中未存储有所述冗余数据的情况下,所述从所述所有数据中删除所述冗余数据,包括:
向服务器上传所述冗余数据之后,从所述所有数据中删除所述冗余数据。
6.一种数据删除装置,其特征在于,所述装置包括:
所有数据确定模块,用于确定应用程序的所有数据,其中,所述应用程序的数据为:所述应用程序安装于电子设备的情况下会存储于所述应用程序的安装路径下的数据;
次数获得模块,用于获得所述应用程序的数据的调用次数,其中,所述调用次数为:对所述应用程序的所有功能进行测试过程中得到的所述应用程序的数据被调用的次数;
冗余数据确定模块,用于根据所获得的调用次数,从所述所有数据中确定冗余数据;
数据删除模块,用于从所述所有数据中删除所述冗余数据。
7.根据权利要求6所述的装置,其特征在于,所述冗余数据确定模块,包括:
第一数据确定子模块,用于根据所获得的调用次数,将所述所有数据中在所述测试过程中未被调用过的数据确定为冗余数据。
8.根据权利要求6所述的装置,其特征在于,所述冗余数据确定模块,包括:
第二数据确定子模块,用于根据所获得的调用次数,在所述所有数据中确定调用次数小于预设次数的数据,作为冗余数据,其中,所述预设次数是基于所述应用程序的各个数据的调用次数确定的。
9.根据权利要求8所述的装置,其特征在于,所述第二数据确定子模块,具体用于:
确定目标数据占用存储空间的大小,其中,所述目标数据为:所述所有数据中调用次数小于预设次数的数据;
根据目标数据占用存储空间大小的排列顺序,选择排列顺序中前预设数量个目标数据作为冗余数据。
10.根据权利要求8或9所述的装置,其特征在于,在服务器中未存储有所述冗余数据的情况下,所述数据删除模块,具体用于:
向服务器上传所述冗余数据之后,从所述所有数据中删除所述冗余数据。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN202010889769.9A 2020-08-28 2020-08-28 一种数据删除方法及装置 Active CN112035119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010889769.9A CN112035119B (zh) 2020-08-28 2020-08-28 一种数据删除方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010889769.9A CN112035119B (zh) 2020-08-28 2020-08-28 一种数据删除方法及装置

Publications (2)

Publication Number Publication Date
CN112035119A true CN112035119A (zh) 2020-12-04
CN112035119B CN112035119B (zh) 2024-03-08

Family

ID=73586982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010889769.9A Active CN112035119B (zh) 2020-08-28 2020-08-28 一种数据删除方法及装置

Country Status (1)

Country Link
CN (1) CN112035119B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102516A (zh) * 2014-07-21 2014-10-15 北京金山安全软件有限公司 一种应用程序卸载方法及装置
WO2017005126A1 (zh) * 2015-07-06 2017-01-12 张兆琦 一种面向多硬件平台的应用程序管理方法
CN108021372A (zh) * 2016-11-01 2018-05-11 深圳市中兴微电子技术有限公司 一种应用程序的管理方法和装置
CN108134878A (zh) * 2017-12-22 2018-06-08 苏州人为峰软件科技有限公司 基于安卓系统的智能手机冗余数据清理方法
CN109522020A (zh) * 2018-09-29 2019-03-26 中国平安人寿保险股份有限公司 安卓系统安装包瘦身方法、装置、终端及存储介质
CN109885324A (zh) * 2019-02-25 2019-06-14 北京达佳互联信息技术有限公司 一种应用程序安装包的处理方法、装置、终端及存储介质
CN110737604A (zh) * 2019-08-30 2020-01-31 北京奇艺世纪科技有限公司 一种自动清理内存的方法、装置、电子设备及存储介质
CN111078276A (zh) * 2019-12-20 2020-04-28 北京字节跳动网络技术有限公司 应用程序的冗余资源处理方法、装置、设备及存储介质
CN111399849A (zh) * 2020-03-18 2020-07-10 北京奇艺世纪科技有限公司 一种应用程序安装包的确定方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102516A (zh) * 2014-07-21 2014-10-15 北京金山安全软件有限公司 一种应用程序卸载方法及装置
WO2016011862A1 (zh) * 2014-07-21 2016-01-28 北京金山安全软件有限公司 一种应用程序卸载方法及装置
WO2017005126A1 (zh) * 2015-07-06 2017-01-12 张兆琦 一种面向多硬件平台的应用程序管理方法
CN108021372A (zh) * 2016-11-01 2018-05-11 深圳市中兴微电子技术有限公司 一种应用程序的管理方法和装置
CN108134878A (zh) * 2017-12-22 2018-06-08 苏州人为峰软件科技有限公司 基于安卓系统的智能手机冗余数据清理方法
CN109522020A (zh) * 2018-09-29 2019-03-26 中国平安人寿保险股份有限公司 安卓系统安装包瘦身方法、装置、终端及存储介质
CN109885324A (zh) * 2019-02-25 2019-06-14 北京达佳互联信息技术有限公司 一种应用程序安装包的处理方法、装置、终端及存储介质
CN110737604A (zh) * 2019-08-30 2020-01-31 北京奇艺世纪科技有限公司 一种自动清理内存的方法、装置、电子设备及存储介质
CN111078276A (zh) * 2019-12-20 2020-04-28 北京字节跳动网络技术有限公司 应用程序的冗余资源处理方法、装置、设备及存储介质
CN111399849A (zh) * 2020-03-18 2020-07-10 北京奇艺世纪科技有限公司 一种应用程序安装包的确定方法及系统

Also Published As

Publication number Publication date
CN112035119B (zh) 2024-03-08

Similar Documents

Publication Publication Date Title
US9454356B2 (en) Method of and terminal for updating library file in system application
US20170308369A1 (en) Data processing method and device of preset application after upgrading
US20010044935A1 (en) Information processing method and apparatus and recording medium
JP2010198383A (ja) ストレージ装置、ソフトウェア更新方法およびソフトウェア更新プログラム
CN108920691B (zh) 前端静态资源的管理方法、装置、计算机设备及存储介质
CN107368513B (zh) 客户端数据库更新的方法及装置
CN110457049B (zh) 实现插件自动化的方法、装置、电子设备及存储介质
CN111782339A (zh) 一种容器创建方法、装置、电子设备及存储介质
KR101624005B1 (ko) 소프트웨어 컴포넌트 상태에 대한 접근 제어
CN111176705B (zh) 特征库的升级方法及装置
CN112035119B (zh) 一种数据删除方法及装置
CN111488483A (zh) 曲库更新方法、装置、终端和非临时性计算机可读存储介质
CN111176720A (zh) 一种实现在多系统中运行应用程序的控制方法、控制装置
CN115454933A (zh) 文件处理方法、装置、设备、存储介质及程序产品
CN110083509B (zh) 一种日志数据的规整方法及装置
JP6136738B2 (ja) 管理プログラム、管理装置および管理方法
CN112965697A (zh) 一种代码文件的生成方法、装置及电子设备
US20050149270A1 (en) Componentware creating method, apparatus and recording medium
CN108427678B (zh) 安卓系统查找应用资源文件的方法
KR20180113739A (ko) 파일 접근 정보 상속 방법 및 그 방법이 적용된 파일 시스템
CN112241395B (zh) 应用程序文件的清理方法、装置、终端设备及存储介质
CN112817923B (zh) 应用程序数据处理方法及装置
CN111949287B (zh) 软件升级方法和装置
JP2014063447A (ja) 業務文書処理装置、業務文書処理方法及び業務文書処理プログラム
CN112558975B (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