文件构建方法及装置、电子设备、计算机可读存储介质制造方法及图纸

技术编号:25308079 阅读:24 留言:0更新日期:2020-08-18 22:27
本公开提供了一种文件构建方法及装置,其中,本公开首先获取实现目标功能的多个依赖文件;之后,从所述多个依赖文件中,筛选包括相同名称的类的N个目标依赖文件;将所述具有相同名称的所述类的名称修改为互不相同的名称;最后,针对包括修改后的名称的类的每个目标依赖文件,分别基于修改名称后的类,生成新的依赖文件。本公开并未直接删除三方文件或依赖文件中相同名称的类,而是将相同名称的类进行名称修改,得到的各个依赖文件中不包括相同名称的类,从而能够正常形成可执行代码格式的文件,并且能够保证目标功能的正常实现。

【技术实现步骤摘要】
文件构建方法及装置、电子设备、计算机可读存储介质
本公开涉及计算机软件领域,具体而言,涉及一种文件构建方法及装置。
技术介绍
在进行程序开发的时候,某一功能的实现会依赖很多的三方文件,例如,在安卓系统的应用程序开发时,某一功能依赖的三方文件以mavenmodule形式存储到gradle中。由于不同的三方文件来源不同,不可避免的在不同的三方文件中会出现相同名称的类,包含相同名称的类的三方文件在合并生成可执行代码格式(dex)的文件时,会出现错误。目前,通常采用的方法是只保留其中一个三方文件中具有该名称的类,将其它三方文件中该名称的类删除。但是,如果不同三方文件中,相同名称的类只是名称相同,类所对应的代码和功能均不相同,简单的删除类同样会造成生成的可执行代码格式的文件无法实现其应该实现的功能。
技术实现思路
有鉴于此,本公开至少提供一种文件构建方法及装置。第一方面,本公开提供了一种文件构建方法,包括:获取实现目标功能的多个依赖文件;其中,每个所述依赖文件中包括至少一个类;从所述多个依赖文件中,筛选包括相同名称的类的N个目标依赖文件;其中,N为大于或等于2的正整数;将所述具有相同名称的所述类的名称修改为互不相同的名称;针对包括修改后的名称的类的每个所述目标依赖文件,分别基于修改名称后的类,生成新的依赖文件。在一种可能的实施方式中,所述将所述具有相同名称的所述类的名称修改为互不相同的名称,包括:确定所述N个目标依赖文件中具有的相同名称的类的数量;若所述数量等于1,则从所述N个目标依赖文件中选取N-1个待处理依赖文件,并修改每个所述待处理依赖文件中的所述相同名称的类的名称,以使所述N个目标依赖文件中所述具有相同名称的类的名称互不相同;若所述数量大于1,则针对每个所述相同名称的类,将该类所在的各个目标依赖文件中的该类的名称修改为互不相同的名称。在一种可能的实施方式中,所述将所述具有相同名称的所述类的名称修改为互不相同的名称,包括:基于预定保持规则,对所述待处理依赖文件进行混淆处理,以使所述N个目标依赖文件中的所述具有相同名称的类的名称互不相同。在一种可能的实施方式中,所述预定保持规则为:保持所述待处理依赖文件中,除具有相同名称的类以外的所有类不发生更改;保持所述待处理依赖文件中,具有相同名称的类的方法和字段不发生更改。在一种可能的实施方式中,所述针对包括修改后的名称的类的每个所述目标依赖文件,分别基于修改名称后的类,生成新的依赖文件,包括:针对包括修改后的名称的类的每个所述目标依赖文件,获取该目标依赖文件的配置文件;基于该目标依赖文件中的修改名称后的类,生成基础依赖文件;基于该目标依赖文件的配置文件和基础依赖文件,生成该目标依赖文件对应的新的依赖文件。在一种可能的实施方式中,所述基于该目标依赖文件中的修改名称后的类,生成基础依赖文件,包括:判断该目标依赖文件中是否包括预设文件;若该目标依赖文件中包括预设文件,则基于该目标依赖文件中的修改名称后的类生成新的类文件;包括所述预设文件的所述目标依赖文件包括原类文件;利用所述新的类文件替换该目标依赖文件中的所述原类文件,得到所述基础依赖文件。在一种可能的实施方式中,上述文件构建方法还包括:将生成的新的依赖文件存入三方库中,并将该新的依赖文件对应的原来的依赖文件删除。在一种可能的实施方式中,上述文件构建方法还包括:将每个所述依赖文件中的类进行合并处理;基于合并后的类生成预设的可执行代码格式的文件。第二方面,本公开还公开了一种文件构建装置,包括:文件获取模块,用于获取实现目标功能的多个依赖文件;其中,每个所述依赖文件中包括至少一个类;文件筛选模块,用于从所述多个依赖文件中,筛选包括相同名称的类的N个目标依赖文件;其中,N为大于或等于2的正整数;名称修改模块,用于将所述具有相同名称的所述类的名称修改为互不相同的名称;文件生成模块,用于针对包括修改后的名称的类的每个所述目标依赖文件,分别基于修改名称后的类,生成新的依赖文件。在一种可能的实施方式中,所述名称修改模块在将所述具有相同名称的所述类的名称修改为互不相同的名称时,用于:确定所述N个目标依赖文件中具有的相同名称的类的数量;若所述数量等于1,则从所述N个目标依赖文件中选取N-1个待处理依赖文件,并修改每个所述待处理依赖文件中的所述相同名称的类的名称,以使所述N个目标依赖文件中所述具有相同名称的类的名称互不相同;若所述数量大于1,则针对每个所述相同名称的类,将该类所在的各个目标依赖文件中的该类的名称修改为互不相同的名称。第三方面,本公开提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述文件构建方法的步骤。第四方面,本公开还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述文件构建方法的步骤。本公开上述装置、电子设备、和计算机可读存储介质,至少包含与本公开上述方法的任一方面或任一方面的任一实施方式的技术特征实质相同或相似的技术特征。本公开提供了一种文件构建方法及装置,其中,本公开首先获取实现目标功能的多个依赖文件;之后,从所述多个依赖文件中,筛选包括相同名称的类的N个目标依赖文件;将所述具有相同名称的所述类的名称修改为互不相同的名称;最后,针对包括修改后的名称的类的每个目标依赖文件,分别基于修改名称后的类,生成新的依赖文件。本公开并未直接删除三方文件或依赖文件中相同名称的类,而是将相同名称的类进行名称修改,得到的各个依赖文件中不包括相同名称的类,从而能够正常形成可执行代码格式的文件,并且能够保证目标功能的正常实现。附图说明为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了安卓系统中生成实现某一功能的可执行代码格式的文件的流程图;图2示出了本公开实施例提供的一种文件构建方法的流程图;图3示出了本公开实施例提供的另一种文件构建方法中生成新的依赖文件的流程图;图4示出了本公开实施例提供的一种文件构建装置的结构示意图;图5示出了本公开实施例提供的一种电子设备的结构示意图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,应当理解,本公开中附图仅起到说明和描述的本文档来自技高网...

【技术保护点】
1.一种文件构建方法,其特征在于,包括:/n获取实现目标功能的多个依赖文件;其中,每个所述依赖文件中包括至少一个类;/n从所述多个依赖文件中,筛选包括相同名称的类的N个目标依赖文件;其中,N为大于或等于2的正整数;/n将具有相同名称的所述类的名称修改为互不相同的名称;/n针对包括修改后的名称的类的每个所述目标依赖文件,分别基于修改名称后的类,生成新的依赖文件。/n

【技术特征摘要】
1.一种文件构建方法,其特征在于,包括:
获取实现目标功能的多个依赖文件;其中,每个所述依赖文件中包括至少一个类;
从所述多个依赖文件中,筛选包括相同名称的类的N个目标依赖文件;其中,N为大于或等于2的正整数;
将具有相同名称的所述类的名称修改为互不相同的名称;
针对包括修改后的名称的类的每个所述目标依赖文件,分别基于修改名称后的类,生成新的依赖文件。


2.根据权利要求1所述的文件构建方法,其特征在于,所述将所述具有相同名称的所述类的名称修改为互不相同的名称,包括:
确定所述N个目标依赖文件中具有的相同名称的类的数量;
若所述数量等于1,则从所述N个目标依赖文件中选取N-1个待处理依赖文件,并修改每个所述待处理依赖文件中的所述相同名称的类的名称,以使所述N个目标依赖文件中所述具有相同名称的类的名称互不相同;
若所述数量大于1,则针对每个所述相同名称的类,将该类所在的各个目标依赖文件中的该类的名称修改为互不相同的名称。


3.根据权利要求2所述的文件构建方法,其特征在于,所述将所述具有相同名称的所述类的名称修改为互不相同的名称,包括:
基于预定保持规则,对所述待处理依赖文件进行混淆处理,以使所述N个目标依赖文件中的所述具有相同名称的类的名称互不相同。


4.根据权利要求3所述的文件构建方法,其特征在于,所述预定保持规则为:
保持所述待处理依赖文件中,除具有相同名称的类以外的所有类不发生更改;
保持所述待处理依赖文件中,具有相同名称的类的方法和字段不发生更改。


5.根据权利要求1所述的文件构建方法,其特征在于,所述针对包括修改后的名称的类的每个所述目标依赖文件,分别基于修改名称后的类,生成新的依赖文件,包括:
针对包括修改后的名称的类的每个所述目标依赖文件,获取该目标依赖文件的配置文件;
基于该目标依赖文件中的修改名称后的类,生成基础依赖文件;
基于该目标依赖文件的配置文件和基础依赖文件,生成该目标依赖文件对应的新的依赖文件。


6.根据权利要求5所述的文件构建方法,其特征在于,所述基于该目标依赖文件中的修改名称后的类,生成基础依赖文件,包括:
判断该目标依赖文件中是否包括预设文件;
若该目标依...

【专利技术属性】
技术研发人员:答奇李伯涵
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1