一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

安卓工程重复图片检测方法及装置与流程

2022-07-13 17:53:13 来源:中国专利 TAG:


1.本发明涉及金融领域中的应用开发技术领域,尤其涉及一种安卓工程重复图片检测方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.近年来,随着安卓应用体量的不断增加,其模块化拆分愈发细致,一旦架构层面设计不合理,就会导致模块间引入重复的图片资源,例如,登录模块与转账模块都引入了标题头返回图标,且文件命名不同,这会导致安装包大小急剧增加。


技术实现要素:

4.本发明实施例提供一种安卓工程重复图片检测方法,用以识别安卓工程开发中引用的文件命名不同的重复文件,降低安装包的大小,该方法包括:
5.在工程编译阶段,遍历工程全量目录,识别图片文件;
6.记录识别的每个图片文件的文件路径和摘要值;
7.比对所有图片文件的摘要值,确定是否存在相同摘要值的图片文件;
8.当比对完成后,记录相同摘要值的图片文件对应的文件路径,阻塞本次工程编译。
9.本发明实施例还提供一种安卓工程重复图片检测装置,用以识别安卓工程开发中引用的文件命名不同的重复文件,降低安装包的大小,该装置包括:
10.遍历模块,用于在工程编译阶段,遍历工程全量目录,识别图片文件;
11.记录模块,用于记录识别的每个图片文件的文件路径和摘要值;
12.比对模块,用于比对所有图片文件的摘要值,确定是否存在相同摘要值的图片文件;
13.记录模块,还用于当比对完成后,记录相同摘要值的图片文件对应的文件路径,阻塞本次工程编译。
14.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述安卓工程重复图片检测方法。
15.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述安卓工程重复图片检测方法。
16.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述安卓工程重复图片检测方法。
17.本发明实施例中,在工程编译阶段,首先遍历工程全量目录,识别其中包含的图片文件;之后记录识别的每个图片文件的文件路径和摘要值;再比对所有图片文件的摘要值,确定是否存在相同摘要值的图片文件;当比对完成后,记录相同摘要值的图片文件对应的
文件路径,阻塞本次工程编译。由于当每个图片文件的内容一致时,即使其命名不同,其摘要值也相同,因此,可以通过摘要值是否相同来识别相同或不同命名的两个图片文件是否为相同图片文件。当识别出存在多个相同图片文件后,可以保留其中一个图片文件,删除其他图片文件,需要该图片文件的模块引用该唯一保留的图片文件,在不影响安卓工程应用开发的基础上,降低了安装包的大小,提升了用户下载、安装应用的体验。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
19.图1为本发明实施例中一种安卓工程重复图片检测方法的流程图;
20.图2为本发明实施例中另一种安卓工程重复图片检测方法的流程图;
21.图3为本发明实施例中另一种安卓工程重复图片检测方法的流程图;
22.图4为本发明实施例中一种安卓工程重复图片检测装置的结构示意图;
23.图5为本发明实施例中一种计算机设备的结构示意图。
具体实施方式
24.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
25.本发明实施例提供了一种安卓工程重复图片检测方法,如图1所示,该方法包括步骤101至步骤104:
26.步骤101、在工程编译阶段,遍历工程全量目录,识别图片文件。
27.遍历工程全量目录时,可以通过文件的后缀名,或者,还可以通过文件名中是否包含某些专属于图片文件的字符来识别是否为图片文件。比如说,当工程全量目录中,一文件的后缀名为.jpg,则确认该文件为图片文件。
28.具体的,如图2所示,步骤101在工程编译阶段,遍历工程全量目录,识别图片文件,可以执行为如下步骤1011:
29.步骤1011、在工程编译阶段,利用gradle脚本遍历工程全量目录,识别图片文件。
30.gradle是一个项目自动化构建的开源工具,基于groovy特定语言来声明项目设置。
31.安卓工程在编译阶段,可以通过gradle脚本来实现自定义逻辑,安卓gradle插件提供了一系列的应用程序编程接口(application programming interface,api)供开发人员使用。
32.利用gradle脚本可以快速的遍历工程全量目录,识别其中的图片文件,尽可能减少编译过程所需花费的时间。
33.步骤102、记录识别的每个图片文件的文件路径和摘要值。
34.每个图片文件的文件路径和摘要值可以以文件形式,如excel文档或者word文档
等形式进行记录,保存在工程build目录中,以备后续的摘要值对比过程。
35.文件路径的记录,可以方便开发人员修改相应文件路径下的图片文件,删除其中重复的图片文件,减少开发人员的处理时间。
36.本发明实施例中,在执行步骤102记录识别的每个图片文件的文件路径和摘要值之前,如图3所示,还可以执行如下步骤201:
37.步骤201、利用摘要算法,计算每个图片文件的摘要值,其中,使用的摘要算法包括sha256。
38.安全散列算法(secure hash algorithm,sha)是一个密码散列函数家族,是联邦信息处理标准(federal information processing standards,fips)所认证的安全散列算法,能计算出一个数字消息所对应的、长度固定的字符串。sha256是目前比较主流的一种摘要算法,可以生成文件的256位(32字节)摘要值。
39.每一个文件都可以通过摘要算法得到其唯一值,如果两个文件的内容一致,即使文件命名不同,其摘要值(如sha256值)也是相同的。通过比对是否存在相同的摘要值,即可判断是否存在相同的图片文件。
40.步骤103、比对所有图片文件的摘要值,确定是否存在相同摘要值的图片文件。
41.相同图片文件的摘要值相同。如果比对得到相同摘要值,则可以确定该摘要值对应的多个图片文件为相同的图片文件。
42.步骤104、当比对完成后,记录相同摘要值的图片文件对应的文件路径,阻塞本次工程编译。
43.本发明实施例中,如果存在重复的图片文件,则在通过比对之后,可能得到一组至多组相同摘要值的图片文件,比如说,a图片和b图片的摘要值相同,为一组重复图片文件;d图片、e图片和f图片的摘要值相同,为另一组重复图片文件。
44.在一次编译过程中,可以识别得到所有组的重复图片文件。当所有摘要值比对完毕后,如果存在重复的图片文件,则抛错,阻塞停止编译。同时,可以生成所有重复图片文件的存储记录,该存储记录中包含重复文件的文件路径,提供给开发人员以供开发人员对重复图片文件进行修改。
45.本发明实施例中,在阻塞本次工程编译之后,当再次进行工程编译时,清空存储的上一次编译过程中生成的相同摘要值的图片文件对应的文件路径的存储记录,重新执行步骤101至步骤104中方法,直至记录完相同摘要值的图片文件对应的文件路径,阻塞本再次进行的工程编译,或者,当比对确定不存在相同摘要值的图片文件后,完成本再次进行的工程编译。
46.如果在本再次编译过程中,仍发现了重复图片,则将重复图片文件的存储记录提供给开发人员修改;如果比对确定不存在重复图片文件后,则确定工程全脸目录中不再存在重复图片,符合每一图片文件唯一性的需求,结束编译。
47.本发明实施例中,在工程编译阶段,首先遍历工程全量目录,识别其中包含的图片文件;之后记录识别的每个图片文件的文件路径和摘要值;再比对所有图片文件的摘要值,确定是否存在相同摘要值的图片文件;当比对完成后,记录相同摘要值的图片文件对应的文件路径,阻塞本次工程编译。由于当每个图片文件的内容一致时,即使其命名不同,其摘要值也相同,因此,可以通过摘要值是否相同来识别相同或不同命名的两个图片文件是否
为相同图片文件。当识别出存在多个相同图片文件后,可以保留其中一个图片文件,删除其他图片文件,需要该图片文件的模块引用该唯一保留的图片文件,在不影响安卓工程应用开发的基础上,降低了安装包的大小,提升了用户下载、安装应用的体验。
48.本发明实施例中还提供了一种安卓工程重复图片检测装置,如下面的实施例所述。由于该装置解决问题的原理与安卓工程重复图片检测方法相似,因此该装置的实施可以参见安卓工程重复图片检测方法的实施,重复之处不再赘述。
49.如图4所示,该装置400包括:
50.遍历模块401,用于在工程编译阶段,遍历工程全量目录,识别图片文件;
51.记录模块402,用于记录识别的每个图片文件的文件路径和摘要值;
52.比对模块403,用于比对所有图片文件的摘要值,确定是否存在相同摘要值的图片文件;
53.记录模块402,还用于当比对完成后,记录相同摘要值的图片文件对应的文件路径,阻塞本次工程编译。
54.在本发明实施例的一个实现方式中,遍历模块,用于:
55.在工程编译阶段,利用gradle脚本遍历工程全量目录,识别图片文件。
56.在本发明实施例的一个实现方式中,装置还包括:
57.计算模块,用于利用摘要算法,计算每个图片文件的摘要值,其中,使用的摘要算法包括sha256。
58.在本发明实施例的一个实现方式中,装置还包括:
59.存储模块,用于当再次进行工程编译时,清空存储的相同摘要值的图片文件对应的文件路径,触发遍历模块、记录模块和比对模块重新执行遍历工程全量目录,识别图片文件及之后执行的方法,直至记录完相同摘要值的图片文件对应的文件路径,阻塞本再次进行的工程编译,或者,当比对确定不存在相同摘要值的图片文件后,完成本再次进行的工程编译。
60.本发明实施例中,在工程编译阶段,首先遍历工程全量目录,识别其中包含的图片文件;之后记录识别的每个图片文件的文件路径和摘要值;再比对所有图片文件的摘要值,确定是否存在相同摘要值的图片文件;当比对完成后,记录相同摘要值的图片文件对应的文件路径,阻塞本次工程编译。由于当每个图片文件的内容一致时,即使其命名不同,其摘要值也相同,因此,可以通过摘要值是否相同来识别相同或不同命名的两个图片文件是否为相同图片文件。当识别出存在多个相同图片文件后,可以保留其中一个图片文件,删除其他图片文件,需要该图片文件的模块引用该唯一保留的图片文件,在不影响安卓工程应用开发的基础上,降低了安装包的大小,提升了用户下载、安装应用的体验。
61.本发明实施例还提供一种计算机设备,图5为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的安卓工程重复图片检测方法中全部步骤,该计算机设备具体包括如下内容:
62.处理器(processor)501、存储器(memory)502、通信接口(communications interface)503和通信总线504;
63.其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;所述通信接口503用于实现相关设备之间的信息传输;
64.所述处理器501用于调用所述存储器502中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的安卓工程重复图片检测方法。
65.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述安卓工程重复图片检测方法。
66.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述安卓工程重复图片检测方法。
67.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
68.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
69.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
70.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
71.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献