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

封装文件包冲突检测方法及装置、存储介质、计算机设备与流程

2022-11-19 09:35:47 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其是涉及到一种封装文件包冲突检测方法及装置、存储介质、计算机设备。


背景技术:

2.目前,java作为一种可以撰写跨平台应用软件的面向对象的程序设计语言,被广泛的应用于应用程序的开发。采用java语言进行应用程序的开发时,首先要编写文件后缀名为.java的源代码,然后通过编译器将源代码编译成与机器无关的二进制字节码(bytecode),即:字节码文件(class文件)。因此,在一个应用项目的开发过程中,通常会涉及大量的class文件,为了便于存储和使用,通常采用jar(java archive)包的形式,将一系列class文件集合在一起。为此,会产生多个不同版本的封装文件包。但是如果不同版本的封装文件包出现在一起会引发系统的功能异常。例如abc-01.jar版本和abc-02.jar版本中都存在相同名称的class文件,abc-01.jar中的class文件没有queryuser方法,而abc-02.jar中的class文件有queryuser方法。当程序加载时就会引发封装文件包冲突,即无法确定具体加载何种版本的封装文件包,如果选择加载abc-01.jar,那么程序功能在调用queryuser方法的时候,就会出现报错。
3.目前检测封装文件包冲突的方式需要工作人员基于对应用程序源代码原理的充分理解基础上,通过查看各代码间的依赖关系来查看是否存在封装文件包冲突,其过程繁琐、耗时较长,并且查找出的关键冲突点容易不准确,因此需要一种可以精准提示封装文件包冲突的封装文件包冲突检测方法。


技术实现要素:

4.有鉴于此,本技术提供了一种封装文件包冲突检测方法及装置、存储介质、计算机设备,实现了精准提示封装文件包冲突结果的封装文件包冲突检测方法。
5.根据本技术的一个方面,提供了一种封装文件包冲突检测方法,所述方法包括:
6.获取待检测应用程序的启动文件;
7.解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件;
8.对全部所述封装文件包包含的所述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表;
9.若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题。
10.可选地,所述若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题之后,所述方法还包括:
11.将所述任一封装文件包列表确定为待检测封装文件包列表,确定所述待检测封装文件包列表对应的待检测字节码文件名称;
12.在所述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测字节码文件名称匹配的多个待检测字节码文件;
13.依据所述待检测字节码文件,对所述应用程序进行封装文件包冲突检测。
14.可选地,所述依据所述待检测字节码文件,对所述应用程序进行封装文件包冲突检测,包括:
15.逐个运行所述待检测字节码文件,并在所述待检测字节码文件运行时查询所述待检测封装文件包的运行状态;
16.基于所述待检测字节码文件名称及所述待检测封装文件包的运行状态,确定所述应用程序的封装文件包冲突检测结果,并将所述封装文件包冲突检测结果显示于信息展示页面。
17.可选地,所述确定所述应用程序存在封装文件包冲突问题之后,所述方法还包括:
18.根据所述待检测封装文件包的运行状态,筛选待检测字节码文件运行时,未处于运行状态的所述待检测封装文件包,得到待处理封装文件包;
19.根据所述待处理封装文件包以及所述待处理封装文件包对应的待检测字节码文件名称,得到封装文件包冲突解决策略;
20.相应地,所述将所述封装文件包冲突检测结果显示于信息展示页面,包括:
21.将所述封装文件包冲突检测结果以及所述封装文件包冲突解决策略显示于信息展示页面。
22.可选地,所述待检测应用程序包括多个,所述获取待检测应用程序的启动文件之前,所述方法还包括:
23.为每个所述待检测应用程序分配一个检测线程;
24.相应地,所述获取待检测应用程序的启动文件,包括:
25.通过每个所述检测线程,获取各自对应的所述待检测应用程序的启动文件。
26.可选地,所述确定所述应用程序存在封装文件包冲突问题之后,所述方法还包括:
27.通过所述检测线程,获取所述待检测应用程序对应的目标设备ip及目标设备应用路径;
28.根据所述目标设备ip及所述目标设备应用路径,将所述待检测应用程序对应的所述封装文件包列表发送至目标设备,并根据所述封装文件包列表对所述应用程序进行封装文件包冲突检测。
29.可选地,所述确定所述应用程序存在封装文件包冲突问题之后,所述方法还包括:
30.接收封装文件包删除指令,其中,所述封装文件包删除指令携带待删除封装文件包;
31.根据所述待删除封装文件包对所述待检测应用程序进行数据清理。
32.根据本技术的另一方面,提供了一种封装文件包冲突检测装置,所述装置包括:
33.数据获取模块,用于获取待检测应用程序的启动文件;
34.数据解压模块,用于解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件;
35.数据整理模块,用于对全部所述封装文件包包含的所述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表;
36.冲突检测模块,用于若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题。
37.可选地,所述冲突检测模块,还用于:
38.将所述任一封装文件包列表确定为待检测封装文件包列表,确定所述待检测封装文件包列表对应的待检测字节码文件名称;
39.在所述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测字节码文件名称匹配的多个待检测字节码文件;
40.依据所述待检测字节码文件,对所述应用程序进行封装文件包冲突检测。
41.可选地,所述冲突检测模块,还用于:
42.逐个运行所述待检测字节码文件,并在所述待检测字节码文件运行时查询所述待检测封装文件包的运行状态;
43.基于所述待检测字节码文件名称及所述待检测封装文件包的运行状态,确定所述应用程序的封装文件包冲突检测结果,并将所述封装文件包冲突检测结果显示于信息展示页面。
44.可选地,所述装置还包括:策略生成模块,用于:
45.根据所述待检测封装文件包的运行状态,筛选待检测字节码文件运行时,未处于运行状态的所述待检测封装文件包,得到待处理封装文件包;
46.根据所述待处理封装文件包以及所述待处理封装文件包对应的待检测字节码文件名称,得到封装文件包冲突解决策略;
47.将所述封装文件包冲突检测结果以及所述封装文件包冲突解决策略显示于信息展示页面。
48.可选地,所述装置还包括:分配调用模块,用于:
49.为每个所述待检测应用程序分配一个检测线程;
50.通过每个所述检测线程,获取各自对应的所述待检测应用程序的启动文件。
51.可选地,所述分配调用模块,还用于:
52.通过所述检测线程,获取所述待检测应用程序对应的目标设备ip及目标设备应用路径;
53.根据所述目标设备ip及所述目标设备应用路径,将所述待检测应用程序对应的所述封装文件包列表发送至目标设备,并根据所述封装文件包列表对所述应用程序进行封装文件包冲突检测。
54.可选地,所述装置还包括:数据清理模块,用于:
55.接收封装文件包删除指令,其中,所述封装文件包删除指令携带待删除封装文件包;
56.根据所述待删除封装文件包对所述待检测应用程序进行数据清理。
57.依据本技术又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述封装文件包冲突检测方法。
58.依据本技术再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述封装文件包冲突检测方法。
59.借由上述技术方案,本技术提供的一种封装文件包冲突检测方法及装置、存储介质、计算机设备,首先获取待检测应用程序的启动文件,然后解压前述启动文件,得到多个封装文件包,并对每个前述封装文件包进行解析得到每个前述封装文件包包含的字节码文件,接着对全部前述封装文件包包含的前述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表,最后,根据前述封装文件包列表中封装文件包数量确定前述应用程序是否存在封装文件包冲突。通过解析待检测应用程序的启动文件,获得封装文件包进而获得每个前述封装文件包的字节码文件,通过构建相同文件名称的字节码文件对应的封装文件包列表,进而得到封装文件包列表中封装文件包数量,用于确定是否存在封装文件包冲突,实现了精准提示封装文件包冲突的封装文件包冲突检测方法。
60.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
61.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
62.图1示出了本技术实施例提供的一种封装文件包冲突检测方法的流程示意图;
63.图2示出了本技术实施例提供的另一种封装文件包冲突检测方法的流程示意图;
64.图3示出了本技术实施例提供的又一种封装文件包冲突检测方法的流程示意图;
65.图4示出了本技术实施例提供的又一种封装文件包冲突检测方法的流程示意图;
66.图5示出了本技术实施例提供的一种封装文件包冲突检测装置的结构示意图;
67.图6示出了本技术实施例提供的另一种封装文件包冲突检测装置的结构示意图。
具体实施方式
68.下文中将参考附图并结合实施例来详细说明本技术。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
69.在本实施例中提供了一种封装文件包冲突检测方法,如图1所示,该方法包括:
70.步骤101,获取待检测应用程序的启动文件。
71.在本技术上述实施例中,首先获取需要进行检测的应用程序的启动文件。具体的,用户通过部署平台或者其他能把应用放到多台ip服务器上部署起来的工具或设备,如图2所示,将系统a应用程序部署在系统a所在的服务器上进行启动,然后可以在部署平台对应用程序部署后自动触发检测,也可以提供一个冲突检测平台,用户可以随时手动通过冲突检测平台,触发检测即调用封装文件包的冲突检测方法,例如通过idetect-duplicate-class.sh对前述应用程序进行冲突检测,即获取待检测应用程序的启动文件,从而为后续具体的封装文件包的冲突检测做准备。其中,前述封装文件包的冲突检测方法与前述应用程序在同一台ip服务器中。
72.步骤102,解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件。
73.在本技术上述实施例中,接着,找到前述应用程序的启动文件,例如app_
start.jar文件,解压前述app_start.jar文件得到多个封装文件包,例如subjartlist,然后依次对前述subjartlist子文件列表进行解析,进而得到前述每个封装文件包中的多个字节码文件,即class文件。其中,java字节码类文件(.class)是java编译器编译java源文件(.java)产生的“目标文件”。
74.步骤103,对全部所述封装文件包包含的所述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表。
75.在本技术上述实施例中,再接着,对前述步骤102得到的全部前述封装文件包包含的前述class文件进行分组统计,构建相同文件名称的class文件对应的封装文件包列表。具体的,将key=class文件名称,value=具有class文件的封装文件包文件列表,最终得到具有相同文件名称的class文件对应的封装文件包列表。
76.步骤104,若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题。
77.最后,根据步骤103中得到的前述封装文件包列表对前述应用程序进行封装文件包冲突检测,如果前述封装文件包列表中包含多个封装文件包,则确定前述应用程序存在封装文件包冲突问题。因此,在本技术实施例中,客户可以根据提示查询前述应用程序是否存在封装文件包冲突,进而根据前述冲突情况对前述应用程序进行相应的调整与修改,提高了效率。
78.在本技术上述实施例中,可选地,步骤104中所述若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题之后,还包括:
79.步骤105,将所述任一封装文件包列表确定为待检测封装文件包列表,确定所述待检测封装文件包列表对应的待检测字节码文件名称。
80.步骤106,在所述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测字节码文件名称匹配的多个待检测字节码文件。
81.步骤107,依据所述待检测字节码文件,对所述应用程序进行封装文件包冲突检测。
82.在本技术上述实施例中,通过步骤103中得到的前述封装文件包列表,将所述任一封装文件包列表确定为待检测封装文件包列表,确定所述待检测封装文件包列表对应的待检测字节码文件名称,因此得到了所有封装文件包中class文件的键值对,然后查看所有键值对中是否有前述class文件名称对应的具有class文件的封装文件包文件列表的列表数量大于1。具体的,查询前述每个所述相同文件名称的class文件对应的封装文件包列表中包含的封装文件包数量,如果过存在一个封装文件包列表包含的封装文件包为多个,那么将前述的装文件包列表确定为待检测封装文件包列表,进而确定前述待检测封装文件包列表对应的待检测class文件名称,然后在前述待检测封装文件包列表对应的多个待检测封装文件包中获取与前述待检测class文件名称匹配的多个待检测class文件,接着在前述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测class文件名称匹配的多个待检测class文件,为此,得到了一个class文件存在于多个封装文件包的结果集合,最后依据前述待检测class文件,对前述应用程序进行封装文件包冲突检测。
83.在本技术上述实施例中,可选地,步骤107,包括:
84.步骤107-1,逐个运行所述待检测字节码文件,并在所述待检测字节码文件运行时
查询所述待检测封装文件包的运行状态。
85.步骤107-2,基于所述待检测字节码文件名称及所述待检测封装文件包的运行状态,确定所述应用程序的封装文件包冲突检测结果,并将所述封装文件包冲突检测结果显示于信息展示页面。
86.在本技术上述实施例中,接着,逐个运行前述待检测class文件,并在前述待检测class文件运行时,查询并记录前述待检测封装文件包的运行状态,然后根据前述待检测class文件名称及前述待检测封装文件包的运行状态,确定前述应用程序的封装文件包冲突检测结果,即循环所有冲突的class文件,然后去前述应用程序中查找哪个文件正在被使用,把class文件对应的一对封装文件包集合中没有被应用程序使用的封装文件包挑选出来,最后返回这些冲突的封装文件包然后又没有被使用的封装文件包并展示于前述信息展示页面中,为此,客户便清楚的了解应该如何排除冲突封装文件包。
87.通过应用本实施例的技术方案,获取待检测应用程序的启动文件,解压前述启动文件,得到多个封装文件包,并对每个前述封装文件包进行解析得到每个前述封装文件包包含的字节码文件,对全部前述封装文件包包含的前述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表,根据前述封装文件包列表中封装文件包数量确定前述应用程序是否存在封装文件包冲突,实现了精准提示封装文件包冲突的封装文件包冲突检测方法。
88.进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种封装文件包的冲突检测方法,如图3所示,该方法包括:
89.步骤201,为每个所述待检测应用程序分配一个检测线程,通过每个所述检测线程,获取各自对应的所述待检测应用程序的启动文件。
90.在本技术上述实施例中,首先部署平台在部署应用程序完成后,触发检测分支,即为每个前述待检测应用程序分配出一个检测线程,通过每个前述检测线程,触发封装文件包的冲突检测方法,获取各自对应的前述待检测应用程序的启动文件,进而准备进行封装文件包的冲突检测。
91.步骤202,解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件。
92.接着,分别针对每个待检测的应用程序,找到前述应用程序的启动文件,即app_start.jar文件,解压前述app_start.jar文件得到多个封装文件包,即subjartlist,然后循环前述subjartlist子文件列表,进而得到前述每个封装文件包解析到得多个class文件。
93.步骤203,对全部所述封装文件包包含的所述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表。
94.步骤204,通过所述检测线程,获取所述待检测应用程序对应的目标设备ip及目标设备应用路径。
95.步骤205,根据所述目标设备ip及所述目标设备应用路径,将所述待检测应用程序对应的所述封装文件包列表发送至目标设备,若存在任一封装文件包列表中包含多个封装文件包,则确定所述应用程序存在封装文件包冲突问题。
96.再接着,通过前述检测线程,获取前述待检测应用程序对应的目标设备ip及目标
设备应用路径。具体的,打开信息展示页面,由客户输入ip和应用路径两个参数,然后连接对应的ip服务器,根据前述目标设备ip及前述目标设备应用路径,将前述待检测应用程序对应的前述封装文件包列表发送至目标设备,并根据前述封装文件包列表对前述应用程序进行封装文件包冲突检测,即针对不同应用程序的冲突检测,通过各自对应的线程执行,最后确定前述应用程序是否存在封装文件包冲突。为此,通过分发到不同的机器上去执行不同的应用程序的封装文件包冲突检测,为此可以实现同时检测多台应用程序的封装文件包冲突。
97.通过应用本实施例的技术方案,首先为每个前述待检测应用程序分配一个检测线程,然后通过每个所述检测线程,获取各自对应的前述待检测应用程序的启动文件,得到每个前述封装文件包包含的class文件。然后对全部前述封装文件包包含的前述class文件进行统计,构建相同文件名称的class文件对应的封装文件包列表。最后通过前述检测线程,获取前述待检测应用程序对应的目标设备ip及目标设备应用路径,将前述待检测应用程序对应的前述封装文件包列表发送至目标设备,并根据前述封装文件包列表中封装文件包数量确定前述应用程序是否存在封装文件包冲突。为此,可以同时检测多个应用程序的封装文件包冲突,以便客户进行后续的批量调整与批量修改,提高了效率。
98.进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种封装文件包的冲突检测方法,如图4所示,该方法包括:
99.步骤301,获取待检测应用程序的启动文件,解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件。
100.在本技术上述实施例中,首先获取需要进行检测的应用程序的启动文件。接着,找到前述应用程序的启动文件,即app_start.jar文件,解压前述app_start.jar文件得到多个封装文件包,即subjartlist,然后循环前述subjartlist子文件列表,前述每个封装文件包又能解析得到多个class文件。
101.步骤302,若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题,将所述任一封装文件包列表确定为待检测封装文件包列表,确定所述待检测封装文件包列表对应的待检测字节码文件名称。
102.步骤303,在所述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测字节码文件名称匹配的多个待检测字节码文件。
103.在本技术上述实施例中,查询步骤302中得到的每个所述相同文件名称的class文件对应的封装文件包列表中包含的封装文件包数量,如果存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题,那么将前述的装文件包列表确定为待检测封装文件包列表,进而确定前述待检测封装文件包列表对应的待检测class文件名称,然后在前述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测class文件名称匹配的多个待检测字节码文件。
104.步骤304,逐个运行所述待检测字节码文件,并在所述待检测字节码文件运行时查询所述待检测封装文件包的运行状态,基于所述待检测字节码文件名称及所述待检测封装文件包的运行状态,确定所述应用程序的封装文件包冲突检测结果。
105.步骤305,根据所述待检测封装文件包的运行状态,筛选待检测字节码文件运行时,未处于运行状态的所述待检测封装文件包,得到待处理封装文件包。
106.接着,逐个运行前述待检测class文件,并在前述待检测class文件运行时,查询并记录前述待检测封装文件包的运行状态,然后根据前述待检测class文件名称及前述待检测封装文件包的运行状态,确定前述应用程序的封装文件包冲突检测结果,具体的,根据前述待检测封装文件包的运行状态,筛选待检测class文件运行时,未处于运行状态的前述待检测封装文件包,得到待处理封装文件包。
107.步骤306,根据所述待处理封装文件包以及所述待处理封装文件包对应的待检测字节码文件名称,得到封装文件包冲突解决策略,将所述应用程序的封装文件包冲突检测结果以及所述封装文件包冲突解决策略显示于所述展示页面。
108.在本技术上述实施例中,根据前述待处理封装文件包以及前述待处理封装文件包对应的待检测class文件名称,得到封装文件包冲突解决策略,即提示删除没有运行的冲突包或者更新发生冲突的封装文件包,以供客户参考,最终将前述应用程序的封装文件包冲突检测结果以及前述封装文件包冲突解决策略,显示于前述展示页面。
109.步骤307,接收封装文件包删除指令,其中,所述封装文件包删除指令携带待删除封装文件包,根据所述待删除封装文件包对所述待检测应用程序进行数据清理。
110.在本技术上述实施例中,可以接收封装文件包删除指令,即客户可以在获得前述封装文件包冲突检测结果以及前述封装文件包冲突解决策略后,选择进行数据清理。具体的,可以根据前述封装文件包删除指令携带的待删除封装文件包对前述待检测应用程序进行数据清理,同时可以启动定时数据清理,即客户可以选择每半小时、1小时或3小时自动进行数据清理,也可手动选择清理时间,可以用于不同的应用场景,灵活多变。
111.通过应用本实施例的技术方案,首先获取待检测应用程序的启动文件,接着解压前述启动文件,得到多个封装文件包,进而得到每个前述封装文件包包含的class文件,然后查询每个前述相同文件名称的class文件对应的封装文件列表中包含的封装文件包数量,如果存在一个封装文件包列表包含的封装文件包有多个,那么将前述封装文件包列表确定为待检测封装文件包列表,从而确定待检测封装文件包列表对应的待检测class文件名称,进而获取与前述检测class文件名称匹配的多个待检测class文件,然后通过运行前述多个待检测class文件,筛选前述待检测class文件运行时,未处于运行状态的前述待检测封装文件包,得到待处理封装文件包,根据前述待检测封装文件包的运行状态,筛选待检测class文件运行时,未处于运行状态的前述待检测封装文件包,得到待处理封装文件包,接收封装文件包删除指令,其中,前述封装文件包删除指令携带待删除封装文件包,根据前述待删除封装文件包对前述待检测应用程序进行数据清理。通过将应用程序的封装文件包冲突检测结果以及前述封装文件包冲突解决策略显示于前述展示页面,并增加数据清理功能,实现了精准提示封装文件包冲突结果的封装文件包冲突检测方法。
112.进一步的,作为图1方法的具体实现,本技术实施例提供了一种封装文件包冲突检测装置,如图5所示,该装置包括:
113.数据获取模块41,用于获取待检测应用程序的启动文件;
114.数据解压模块42,用于解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件;
115.数据整理模块43,用于对全部所述封装文件包包含的所述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表;
116.冲突检测模块44,用于若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题。
117.可选地,所述冲突检测模块44,还用于:
118.将所述任一封装文件包列表确定为待检测封装文件包列表,确定所述待检测封装文件包列表对应的待检测字节码文件名称;
119.在所述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测字节码文件名称匹配的多个待检测字节码文件;
120.依据所述待检测字节码文件,对所述应用程序进行封装文件包冲突检测。
121.可选地,所述冲突检测模块44,还用于:
122.逐个运行所述待检测字节码文件,并在所述待检测字节码文件运行时查询所述待检测封装文件包的运行状态;
123.基于所述待检测字节码文件名称及所述待检测封装文件包的运行状态,确定所述应用程序的封装文件包冲突检测结果,并将所述封装文件包冲突检测结果显示于信息展示页面。
124.进一步的,本技术实施例还提供了一种封装文件包冲突检测装置,如图6所示,该装置包括:
125.数据获取模块51,用于获取待检测应用程序的启动文件;
126.数据解压模块52,用于解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件;
127.数据整理模块53,用于对全部所述封装文件包包含的所述字节码文件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表;
128.冲突检测模块54,用于若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题。
129.策略生成模块55,用于根据所述待检测封装文件包的运行状态,筛选待检测字节码文件运行时,未处于运行状态的所述待检测封装文件包,得到待处理封装文件包,根据所述待处理封装文件包以及所述待处理封装文件包对应的待检测字节码文件名称,得到封装文件包冲突解决策略,将所述应用程序的封装文件包冲突检测结果以及所述封装文件包冲突解决策略显示于所述展示页面。
130.分配调用模块56,用于为每个所述待检测应用程序分配一个检测线程,通过每个所述检测线程,获取各自对应的所述待检测应用程序的启动文件。
131.数据清理模块57,用于接收封装文件包删除指令,其中,所述封装文件包删除指令携带待删除封装文件包,根据所述待删除封装文件包对所述待检测应用程序进行数据清理。
132.可选地,所述冲突检测模块54,还用于:
133.将所述任一封装文件包列表确定为待检测封装文件包列表,确定所述待检测封装文件包列表对应的待检测字节码文件名称;
134.在所述待检测封装文件包列表对应的多个待检测封装文件包中获取与所述待检测字节码文件名称匹配的多个待检测字节码文件;
135.依据所述待检测字节码文件,对所述应用程序进行封装文件包冲突检测。
136.可选地,所述冲突检测模块54,还用于:
137.逐个运行所述待检测字节码文件,并在所述待检测字节码文件运行时查询所述待检测封装文件包的运行状态;
138.基于所述待检测字节码文件名称及所述待检测封装文件包的运行状态,确定所述应用程序的封装文件包冲突检测结果,并将所述封装文件包冲突检测结果显示于信息展示页面。
139.可选地,所述分配调用模块56,还用于:
140.通过所述检测线程,获取所述待检测应用程序对应的目标设备ip及目标设备应用路径;
141.根据所述目标设备ip及所述目标设备应用路径,将所述待检测应用程序对应的所述封装文件包列表发送至目标设备,并根据所述封装文件包列表对所述应用程序进行封装文件包冲突检测。
142.需要说明的是,本技术实施例提供的一种封装文件包冲突检测装置所涉及各功能单元的其他相应描述,可以参考图1至图4方法中的对应描述,在此不再赘述。
143.基于上述如图1至图4所示方法,相应的,本技术实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1至图4所示的封装文件包冲突检测方法。
144.基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
145.基于上述如图1至图4所示的方法,以及图5及图6所示的虚拟装置实施例,为了实现上述目的,本技术实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图4所示的封装文件包冲突检测方法。
146.可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radio frequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、wi-fi接口)等。
147.本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
148.存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
149.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。获取待检测应用程序的启动文件,解压所述启动文件,得到多个封装文件包,并对每个所述封装文件包进行解析得到每个所述封装文件包包含的字节码文件,对全部所述封装文件包包含的所述字节码文
件进行统计,构建相同文件名称的字节码文件对应的封装文件包列表,若存在任一封装文件包列表中包含多个封装文件包数量,则确定所述应用程序存在封装文件包冲突问题,实现了精准提示封装文件包冲突的封装文件包冲突检测方法。
150.本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本技术所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
151.上述本技术序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本技术的几个具体实施场景,但是,本技术并非局限于此,任何本领域的技术人员能思之的变化都应落入本技术的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献