导入文件的处理方法和装置、存储介质及电子设备与流程

文档序号:28427708发布日期:2022-01-12 00:35阅读:92来源:国知局
导入文件的处理方法和装置、存储介质及电子设备与流程

1.本发明涉及计算机技术领域,具体而言,涉及一种导入文件的处理方法和装置、存储介质及电子设备。


背景技术:

2.在ios开发中,一般用#import来表示导入头文件,导入头文件的作用是将目标.h文件的内容全部拷贝到当前文件中。当项目中大量使用导入头文件,会影响项目整体的编译速度,增加编译时长。
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.根据本发明实施例的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器运行的程序,程序被至少一个处理器运行时执行上述的导入文件的处理方法。
28.在本发明实施例中,在获取到包括多个导入文件的目标文件之后,可以从多个导入文件中筛选出未使用的第一导入文件,并进一步地对目标文件中的第一导入文件对应的数据进行注释,得到注释后的目标文件,对注释后的目标文件进行编译,得到编译结果,最后基于编译结果确定是否删除第一导入文件对应的数据。容易注意到的是,可以通过对第一导入文件对应的数据进行注释和编译的方式,实现无用导入文件的自动验证,并且可以基于编译结果确定是否删除第一导入文件对应的数据,从而实现删除目标文件中无用导入文件的目的,进而达到了减少项目文件的冗余代码,提升编译速度的技术效果,解决了相关技术中项目文件中包含大量导入头文件导致编译速度较慢的技术问题。
附图说明
29.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
30.图1是根据本发明实施例的一种导入文件的处理方法的流程图;
31.图2是根据本发明实施例的一种可选的无用导入文件的排查流程的实现模块的示意图;
32.图3是根据本发明实施例的一种可选的注释还原模块的实现功能的示意图;
33.图4是根据本发明实施例的一种可选的编译验证模块的实现功能的示意图;
34.图5是根据本发明实施例的一种可选的编译验证模块的实现流程的流程图;
35.图6是根据本发明实施例的一种可选的删除无用导入文件模块的实现功能的示意图;
36.图7是根据本发明实施例的一种导入文件的处理装置的示意图。
具体实施方式
37.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
38.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
39.为了减少项目的编译时长,一种优化方法是排出项目中无用导入头文件,相关技术中给出了确定项目里一些文件中存在的无用导入的技术方案,但是,该方案需要开发人员进行手动排查,如果无用导入的数量较多,则开发人员需要繁琐的验证无用导入并删除,耗时耗力。
40.根据本发明实施例,提供了一种导入文件的处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
41.图1是根据本发明实施例的一种导入文件的处理方法的流程图,如图1所示,该方法包括如下步骤:
42.步骤s100,获取目标文件,其中,目标文件包括:多个导入文件。
43.上述步骤中的目标文件可以是项目中使用多个导入文件的任意一个代码文件。由于使用多个导入文件的目标文件数量较多,为了减少排查数量,在一种可选的实施例中,可以将项目中需要排查无用导入文件的代码文件作为目标文件。
44.上述步骤中的导入文件的作用可以是将导入文件的内容全部拷贝到目标文件中,例如,可以是导入头文件、导入库文件等,但不仅限于此。
45.步骤s102,从多个导入文件中筛选出未使用的第一导入文件。
46.在一种可选的实施例中,可以采用相关技术中的技术方案筛选出目标文件中存在的无用导入文件,即上述的第一导入文件。
47.步骤s104,对目标文件中的第一导入文件对应的数据进行注释,得到注释后的目标文件。
48.上述步骤中的第一导入文件对应的数据可以是代码数据,例如,以导入头文件为例进行说明,导入头文件的类名为classa,则对应的代码行可以是#import“classa.h”。
49.在一种可选的实施例中,可以通过在代码行前面加上两个“/”符号的方式对该代码行进行注释,从而后续代码编译过程中,不会对该代码行进行编译。例如,仍以导入头文件为例进行说明,对于代码行#import“classa.h”,注释后该行代码为//#import“classa.h”。
50.需要说明的是,由于筛选出的无用导入文件的数量较多,可以预先针对每个文件设置一个类名数组,通过该类名数组存储筛选出的无用导入文件的类名,然后通过依次对类名数组中每个类名对应的导入文件进行注释、编译的方式,达到对所有无用导入文件进行自动验证和排查的目的。
51.步骤s106,对注释后的目标文件进行编译,得到编译结果。
52.上述步骤中的编译结果可以是指编译命令成功或失败的结果。对于无用导入文件,在将相应的代码行进行注释之后,并不会影响整个文件的正常编译过程,因此可以得到编译成功的编译结果;对于有用的导入文件,在将相应的代码行进行注释之后,会影响整个文件的正常编译过程,因此可以得到编译失败的编译结果,并且可以查看到具体失败的原
因是缺少导入文件。
53.在一种可选的实施例中,可以通过对筛选出的无用导入文件进行注释,并通过执行编译命令成功与否的方式,实现对筛选出的无用导入文件进行自动排查验证的目的。
54.步骤s108,基于编译结果确定是否删除第一导入文件对应的数据。
55.由于编译结果可以准确反映出导入文件是否被目标文件使用,在一种可选的实施例中,可以基于编译结果确定是否删除目标文件中的代码行,其中,如果编译结果是编译成功,则表明目标文件未使用该导入文件,该导入文件是无用导入文件,因此可以将该导入文件删除;如果编译结果是编译失败,则表明目标文件使用了该导入文件,该导入文件不是无用导入文件,因此需要进行保留。
56.通过上述步骤,在获取到包括多个导入文件的目标文件之后,可以从多个导入文件中筛选出未使用的第一导入文件,并进一步地对目标文件中的第一导入文件对应的数据进行注释,得到注释后的目标文件,对注释后的目标文件进行编译,得到编译结果,最后基于编译结果确定是否删除第一导入文件对应的数据。容易注意到的是,可以通过对第一导入文件对应的数据进行注释和编译的方式,实现无用导入文件的自动验证,并且可以基于编译结果确定是否删除第一导入文件对应的数据,从而实现删除目标文件中无用导入文件的目的,进而达到了减少项目文件的冗余代码,提升编译速度的技术效果,解决了相关技术中项目文件中包含大量导入头文件导致编译速度较慢的技术问题。
57.在本发明上述实施例中,基于编译结果确定是否删除第一导入文件对应的数据包括:在编译结果为编译成功的情况下,确定删除第一导入文件对应的数据;在编译结果为编译失败的情况下,确定保留第一导入文件对应的数据。
58.在一种可选的实施例中,如果编译结果是编译成功,则表明目标文件未使用第一导入文件,验证出第一导入文件是无用导入文件,因此可以将第一导入文件对应的数据删除;如果编译结果是编译失败,则表明目标文件使用了第一导入文件,验证出第一导入文件不是无用导入文件,因此需要将第一导入文件对应的数据保留。
59.在本发明上述实施例中,在确定保留第一导入文件对应的数据之后,对第一导入文件对应的数据进行还原。
60.由于上述的注释过程是直接对目标文件中的代码行进行的,因此,为了避免目标文件使用的导入文件被注释,导致目标文件无法编译成功的情况,在验证出第一导入文件不是无用导入文件,也即,目标文件会使用第一导入文件之后,可以对已经注释的代码行进行注释还原。例如,仍以导入头文件为例进行说明,对于代码行#import“classa.h”,注释还原后该行代码为#import“classa.h”。
61.需要说明的是,可以通过对注释或注释还原后的代码进行替换保留,重新写入到目标文件的方式,避免注释或注释还原出现错误。
62.在本发明上述实施例中,对目标文件中的第一导入文件对应的数据进行注释,得到注释后的目标文件包括:遍历目标文件的目标区域,并从目标区域获取当前行数据对应的第二导入文件的类名;当第二导入文件的类名和第一导入文件的类名相同时,确定当前行数据为第一导入文件对应的数据,并对当前行数据进行注释,得到注释后的目标文件。
63.上述步骤中的目标区域可以是目标文件中导入文件所在的区域,该区域可以位于目标文件的头部,也可以是位于目标文件的特定位置。
64.在一种可选的实施例中,目标文件包含的所有导入文件对应的数据均位于目标区域中,为了实现对第一导入文件对应的数据进行注释的目的,可以对目标区域内的所有代码行进行遍历,通过正则表达式的方式获取到当前代码行对应的第二导入文件的类名,如果第二导入文件的类名与第一导入文件的类名相同,或第二导入文件的类名与目标数组中读取到的第一个类名相同,则可以对当前代码行进行注释。
65.在本发明上述实施例中,在遍历目标文件的目标区域之前,该方法还包括:获取预设标识在目标文件中的第一位置,并确定目标文件的开始位置至第一位置之间的区域为目标区域。
66.上述步骤中的预设标识可以用于标识目标区域的结束位置,由于目标文件实现代码区域以@implementation为开头,因此预设标识可以是@implementation。
67.在一种可选的实施例中,导入文件(如导入头文件)一般放在目标文件的开始,因此,可以从目标文件的开始遍历至第一预设标识的位置,也即,目标区域是目标文件的开始位置至第一预设标识对应的位置之间的区域,例如,目标区域可以是以目标文件的开始位置为头部,以@implementation为尾部的中间区域。
68.在本发明上述实施例中,获取目标文件包括:获取文件地址集合;读取文件地址集合中的第一个文件地址;确定第一个文件地址对应的文件为目标文件。
69.上述步骤中的文件地址集合可以是项目中的所有代码文件的地址所构成的集合,也可以是需要排查无用导入文件的代码文件的地址所构成的集合。
70.在一种可选的实施例中,由于文件地址集合中的文件地址数量较多,为了确保排查准确性和效率,可以采用逐个文件排查的方式实现,也即,可以读取文件地址结合中的第一个文件地址,然后将第一个文件地址对应的文件作为目标文件,在目标文件排查结束之后,可以将该文件的文件地址从文件地址集合中删除,继续对文件地址集合中的其他文件地址对应的文件进行排查。
71.在本发明上述实施例中,在从多个导入文件中筛选出多个第一导入文件的情况下,对第一导入文件对应的数据进行注释,得到注释后的目标文件包括:从多个类名数组中获取目标文件对应的目标类名数组,其中,每个类名数组用于存储每个类名数组对应的文件中未使用的多个导入文件的类名;读取目标类名数组中存储的第一个类名;对第一个类名对应的导入文件进行注释,得到注释后的目标文件。
72.在一种可选的实施例中,对于文件地址集合包含的所有文件地址对应的文件,如果通过筛选发现其可能存在无用导入文件,则可以为其构建一个对应的类名数组,并将筛选出的无用导入文件的类名存储在该类名数组中,方便针对类名数组中存储的每个类名对应的导入文件进行自动排查。因此,上述的多个类名数组可以是针对可能存在无用导入文件所构建的数组,每个数组存储有相应文件中无用导入文件的类名。
73.可以针对文件地址集合中所有文件地址对应的文件进行筛选,并将筛选出的第一导入文件存储至类名数组中,在所有文件地址集合中所有文件均完成筛选之后,开始对所有筛选出的第一导入文件进行自动排查的目的。在此基础上,可以从当前排查对应的类名数组中,读取第一个类名,并将该类名对应的导入文件作为注释和编译的对象,该导入文件排查结束之后,可以将该导入文件对应的类名删除,避免由于类名数组中一直存储有类名,导致排查过程无法结束的情况。
74.需要说明的是,对第一个类名对应的导入文件进行注释和编译的流程可以参考上述步骤s104至s108,在此不做赘述。
75.在本发明上述实施例中,在获取目标文件对应的目标类名数组之前,该方法还包括:获取文件地址集合包含的文件地址的第一数量;确定多个类名数组的第二数量;当第一数量与第二数量相同时,获取目标文件对应的目标类名数组。
76.在一种可选的实施例中,无用导入文件的排查过程需要根据文件地址和类名数组之间的对应关系获取每个文件对应的无用导入文件,例如,文件地址集合为:[/users/desktop/file1.m、/users/desktop/file2.m、/users/desktop/file3.m],多个类名数组为[[class1a、class1b、class1c]、[class2a、class2b]、[class3a]]。
[0077]
因此,首先需要判断地址文件集合中文件地址的第一数量与构建的多个类名数组的第二数量是否相同,如果相同,则可以继续进行排查流程,获取目标类名数组,并读取第一个类名,然后对第一个类名对应的导入文件对应的数据进行注释;如果不同,则结束排查流程。
[0078]
在本发明上述实施例中,在基于编译结果确定是否删除第一导入文件对应的数据之后,删除目标类名数组中存储的第一导入文件对应的类名,并重新执行读取目标类名数组中存储的第一个类名,对第一个类名对应的导入文件进行注释,得到注释后的目标文件的步骤,直至目标类名数组为空数组。
[0079]
在一种可选的实施例中,为了避免类名数组中一直存储有类名,导致排查流程无法结束的情况,在对第一导入文件进行排查,也即,确定删除第一导入文件对应的数据,或保留第一导入文件对应的数据之后,都需要将第一导入文件对应的类名从目标类名数组中删除,此时,目标类名数组中原来的第二个类名变为现在的第一个类名,可以再次读取目标类名数组中存储的第一个类名,并继续进行排查过程,达到对目标类名数组中存储的所有类名对应的导入文件进行排查的目的。
[0080]
在本发明上述实施例中,当目标类名数组为空数组时,删除文件地址集合中的目标文件对应的文件地址,并重新执行读取文件地址集合中的第一个文件地址,确定第一个文件地址对应的文件为目标文件的步骤,直至文件地址集合为空集合。
[0081]
在一种可选的实施例中,为了文件地址集合中一直存储有文件地址,导致排查流程无法结束的情况,在对目标文件筛选出的所有导入文件进行排查之后,都需要将目标文件对应的文件地址从文件地址集合中删除,此时,文件地址集合中原来的第二个文件地址变为现在的第一个文件地址,可以再次读取文件地址集合中的第一个文件地址,并继续进行排查过程,达到对文件地址集合中所有文件地址对应的文件进行排查的目的。
[0082]
下面结合图2至图6对本发明一种优选的实施例进行详细说明。目标文件中可能存在的无用导入文件的筛选过程在此不做赘述。通过筛选可以确定可能存在无用导入文件的文件地址集合,以及存储有无用导入文件对应的类名的类名数组。
[0083]
无用导入文件的排查流程可以通过如图2所示的验证给定参数模块、获取零时参数模块、注释还原模块、编译验证模块和删除无用导入文件模块实现,其中,通过验证给定参数模块可以判定文件地址集合和类名数组的数量是否一致,如果一致,则通过获取零时参数模块可以获取文件地址集合的第一个文件地址,确定该文件地址对应的目标类别数组,并读取出第一个类名,将文件地址、第一个类名作为参数传入到注释还原模块。
[0084]
注释还原模块的实现功能如图3所示,该模块可以传入三个参数,依次为文件路径、无用导入文件、有用导入文件,具体功能如下:校验参数、读取文件导入区域、注释无用导入、还原有用导入和文件重写,其中,通过校验参数功能可以判断文件路径参数是否存在,如果存在则进行后续流程,不存在直接结束当前模块;通过读取文件导入区域功能可以读取文件导入区域内当前导入的类名;通过注释无用导入功能可以判断当前导入的类名和传入的无用导入文件是否一致,如果一致,则对当前行代码进行注释;通过还原有用导入功能可以判断当前导入的类名和传入的有用导入文件是否一致,且该行必须为已注释。如果一致,则对当前行进行注释还原;通过文件重写功能可以对注释或注释还原后的代码进行替换保留,重新写入到当前文件里。
[0085]
编译验证模块的实现功能如图4所示,该模块会循环执行,直到给定的文件地址的数组为空才结束当前模块流程,具体功能如下:执行编译、当前无用导入集合为零和当前无用导入集合不为零,具体实现流程如图5所示。其中,通过执行编译功能可以执行编译命令,获取编译结果,如果编译成功,把当前文件地址加入到可删除文件集合中,最后输出给删除无用导入文件模块使用。通过当前无用导入集合为零功能可以在无用导入集合(即上述的类名数组)为零的情况下,如果当前编译失败,则需要对上一次注释的过程进行还原,并对文件地址集合中第一个元素进行删除,同时删除该文件地址对应的类名数组,删除之后再判断文件地址集合,如果为空则结束当前模块流程;不为空再获取当前文件地址集合的第一个元素,确定该文件地址对应的目标类别数组,并读取出第一个类名,将文件地址、第一个类名作为参数传入到注释还原模块。通过当前无用导入集合不为零功能可以在无用导入集合(即上述的类名数组)不为零的情况下,读取下一个无用导入文件并注释,如果当前编译成功,把当前文件地址和下一个无用导入文件作为参数传到注释还原模块;如果当前编译失败,把当前文件地址、下一个无用导入文件、当前无用导入文件作为参数传到注释还原模块,最后,删除无用导入集合第一个元素。
[0086]
删除无用导入文件模块的实现功能如图6所示,该模块对编译验证模块输出的可删除文件地址数组进行遍历,删除当前文件地址中注释的导入,具体功能如下:校验参数、读取文件导入区域和删除无用导入。其中,校验参数功能和读取文件导入区域功能与注释还原模块的功能相同,在此不做赘述。通过删除无用导入功能可以在头文件导入区域,如果当前行包含注释导入代码,则对当前行进行删除,最后保存当前文件。
[0087]
通过上述方案,可以对无用导入文件进行验证,免去了开发人员繁琐的验证无用导入的时间,并且可以对查找到的无用导入文件进行删除,减少了冗余代码,也进一步提升了编译速度。
[0088]
根据本发明实施例,还提供了一种导入文件的处理装置,该装置可以执行上述实施例中的导入文件的处理方法,该装置的具体实现方案与优选应用场景与上述实施例相同,在此不做赘述。
[0089]
图7是根据本发明实施例的一种导入文件的处理装置的示意图,如图7所示,该装置包括:
[0090]
获取模块70,用于获取目标文件,其中,目标文件包括:多个导入文件。
[0091]
筛选模块72,用于从多个导入文件中筛选出未使用的第一导入文件。
[0092]
注释模块74,用于对目标文件中的第一导入文件对应的数据进行注释,得到注释
后的目标文件。
[0093]
编译模块76,用于对注释后的目标文件进行编译,得到编译结果。
[0094]
删除模块78,用于基于编译结果确定是否删除第一导入文件对应的数据。
[0095]
可选地,删除模块还用于在编译结果为编译成功的情况下,确定删除第一导入文件对应的数据;在编译结果为编译失败的情况下,确定保留第一导入文件对应的数据。
[0096]
可选地,该装置还包括:还原模块,用于在确定保留第一导入文件对应的数据之后,对第一导入文件对应的数据进行还原。
[0097]
可选地,注释模块包括:遍历单元,用于遍历目标文件的目标区域,并从目标区域获取当前行数据对应的第二导入文件的类名;注释单元,用于当第二导入文件的类名和第一导入文件的类名相同时,确定当前行数据为第一导入文件对应的数据,并对当前行数据进行注释,得到注释后的目标文件。
[0098]
可选地,注释模块还包括:区域确定单元,用于获取预设标识在目标文件中的第一位置,并确定目标文件的开始位置至第一位置之间的区域为目标区域。
[0099]
可选地,获取模块包括:集合获取单元,用于获取文件地址集合;地址读取单元,用于读取文件地址集合中的第一个文件地址;文件确定单元,用于确定第一个文件地址对应的文件为目标文件。
[0100]
可选地,注释模块包括:数组获取单元,用于从多个类名数组中获取目标文件对应的目标类名数组,其中,每个类名数组用于存储每个类名数组对应的文件中未使用的多个导入文件的类名;类名读取单元,用于读取目标类名数组中存储的第一个类名;注释单元还用于对第一个类名对应的导入文件进行注释,得到注释后的目标文件。
[0101]
可选地,注释模块还包括:数量获取单元,用于获取文件地址集合包含的文件地址的第一数量;数量确定单元,用于确定多个类名数组的第二数量;数组获取单元还用于当第一数量与第二数量相同时,获取目标文件对应的目标类名数组。
[0102]
可选地,注释模块还包括:类名删除单元,用于在基于编译结果确定是否删除第一导入文件对应的数据之后,删除目标类名数组中存储的第一导入文件对应的类名;类名执行单元,用于重新执行类名读取单元和注释单元的功能,直至目标类名数组为空数组。
[0103]
可选地,注释模块还包括:地址删除单元,用于当目标类名数组为空数组时,删除文件地址集合中的目标文件对应的文件地址;地址执行单元,用于重新执行地址读取单元和文件确定单元的功能,直至文件地址集合为空集合。
[0104]
根据本发明实施例,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例中的导入文件的处理方法。
[0105]
根据本发明实施例,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器运行的程序,程序被至少一个处理器运行时执行上述实施例中的导入文件的处理方法。
[0106]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0107]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术数据,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为
一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0108]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0109]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0110]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0111]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1