编译文件的更新方法、装置、服务器及存储介质与流程

文档序号:26003492发布日期:2021-07-23 21:21阅读:95来源:国知局
编译文件的更新方法、装置、服务器及存储介质与流程

本公开涉及软件开发技术领域,尤其涉及一种编译文件的更新方法、装置、服务器、存储介质及计算机程序产品。



背景技术:

在软件程序开发过程中,需要使用大量编译文件,比如字节码文件。随着开发进程的多次迭代,会有性能更好且功能相同的编译文件被开发出来。

现有技术中,对编译文件的更新方法,通常是通过人工手动逐个修改编译文件中的相关变量类型;另一种就是只能对第三方库中的类型进行修改,无法对源代码以及资源文件的类型进行修改;由此可见,这种更新方式比较繁琐,工作量较大,造成编译文件的更新效率较低。



技术实现要素:

本公开提供一种编译文件的更新方法、装置、服务器、存储介质及计算机程序产品,以至少解决相关技术中编译文件的更新效率较低的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种编译文件的更新方法,包括:

根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件;所述第一配置信息中包括预设文件标识集合,所述预设文件标识集合包括至少一个预设文件标识,所述目标编译文件为文件标识与所述预设文件标识集合中包括的各个预设文件标识均不匹配的编译文件;

根据所述预设配置文件中的第二配置信息,识别出所述目标编译文件中的待替换类型;所述第二配置信息中包括待替换类型与目标类型之间的类型替换关系;

根据所述类型替换关系,将所述目标编译文件中的所述待替换类型更新为对应的目标类型,得到更新后的目标编译文件。

在一示例性实施例中,所述预设文件标识集合中包括第一预设标识集合和第二预设标识集合;

所述根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件,包括:

获取所述编译文件集合中的编译文件的第一文件标识和第二文件标识;

从所述编译文件集合中,筛选出所述第一文件标识与所述第一预设标识集合中的各个第一预设标识不匹配,且所述第二文件标识与所述第二预设标识集合中的各个第二预设标识不匹配的编译文件,作为所述目标编译文件。

在一示例性实施例中,所述根据所述预设配置文件中的第二配置信息,识别出所述目标编译文件中的待替换类型,包括:

获取所述类型替换关系中的所述待替换类型;

从所述目标编译文件中包含的类型中,筛选出与所述待替换类型匹配的类型,作为所述目标编译文件中的待替换类型。

在一示例性实施例中,所述预设配置文件中还包括第三配置信息;

在得到更新后的目标编译文件之后,还包括:

根据所述预设配置文件中的第三配置信息,从与所述目标编译文件关联的资源文件中确定出目标资源文件;所述第三配置信息中包括待替换资源类型与目标资源类型之间的资源类型替换关系,所述目标资源文件为包含有至少一个所述待替换资源类型的资源文件;

根据所述资源类型替换关系,将所述目标资源文件中的所述待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

在一示例性实施例中,所述根据所述资源类型替换关系,将所述目标资源文件中的所述待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件,包括:

识别出所述资源类型替换关系中的所述待替换资源类型;

从所述目标资源文件中包含的资源类型中,筛选出与所述待替换资源类型匹配的资源类型,作为所述目标资源文件中的待替换资源类型;

将所述目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

在一示例性实施例中,在得到更新后的目标资源文件之后,还包括:

对所述更新后的目标资源文件进行编译,得到编译资源文件;

将与所述目标资源文件对应的历史编译资源文件,更新为所述编译资源文件;所述历史编译资源文件与所述编译资源文件的编译格式相同。

根据本公开实施例的第二方面,提供一种编译文件的更新装置,包括:

文件确定单元,被配置为执行根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件;所述第一配置信息中包括预设文件标识集合,所述预设文件标识集合包括至少一个预设文件标识,所述目标编译文件为文件标识与所述预设文件标识集合中包括的各个预设文件标识均不匹配的编译文件;

类型确定单元,被配置为执行根据所述预设配置文件中的第二配置信息,识别出所述目标编译文件中的待替换类型;所述第二配置信息中包括待替换类型与目标类型之间的类型替换关系;

类型更新单元,被配置为执行根据所述类型替换关系,将所述目标编译文件中的所述待替换类型更新为对应的目标类型,得到更新后的目标编译文件。

在一示例性实施例中,所述预设文件标识集合中包括第一预设标识集合和第二预设标识集合;

所述文件确定单元,还被配置为执行获取所述编译文件集合中的编译文件的第一文件标识和第二文件标识;从所述编译文件集合中,筛选出所述第一文件标识与所述第一预设标识集合中的各个第一预设标识不匹配,且所述第二文件标识与所述第二预设标识集合中的各个第二预设标识不匹配的编译文件,作为所述目标编译文件。

在一示例性实施例中,所述类型确定单元,还被配置为执行获取所述类型替换关系中的所述待替换类型;从所述目标编译文件中包含的类型中,筛选出与所述待替换类型匹配的类型,作为所述目标编译文件中的待替换类型。

在一示例性实施例中,所述预设配置文件中还包括第三配置信息;

所述装置还包括资源文件更新单元,被配置为执行根据所述预设配置文件中的第三配置信息,从与所述目标编译文件关联的资源文件中确定出目标资源文件;所述第三配置信息中包括待替换资源类型与目标资源类型之间的资源类型替换关系,所述目标资源文件为包含有至少一个所述待替换资源类型的资源文件;根据所述资源类型替换关系,将所述目标资源文件中的所述待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

在一示例性实施例中,所述资源文件更新单元,还被配置为执行识别出所述资源类型替换关系中的所述待替换资源类型;从所述目标资源文件中包含的资源类型中,筛选出与所述待替换资源类型匹配的资源类型,作为所述目标资源文件中的待替换资源类型;将所述目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

在一示例性实施例中,所述装置还包括编译资源文件更新单元,被配置为执行对所述更新后的目标资源文件进行编译,得到编译资源文件;将与所述目标资源文件对应的历史编译资源文件,更新为所述编译资源文件;所述历史编译资源文件与所述编译资源文件的编译格式相同。

根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面的任一项实施例中所述的编译文件的更新方法。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,包括:当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行第一方面的任一项实施例中所述的编译文件的更新方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从所述计算机可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的编译文件的更新方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件;第一配置信息中包括预设文件标识集合,预设文件标识集合包括至少一个预设文件标识,目标编译文件为文件标识与预设文件标识集合中包括的各个预设文件标识均不匹配的编译文件;根据预设配置文件中的第二配置信息,识别出目标编译文件中的待替换类型;第二配置信息中包括待替换类型与目标类型之间的类型替换关系;根据类型替换关系,将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件;这样,实现了根据预设配置文件对编译文件中的目标编译文件进行类型更新的目的,无需人工逐个修改,提高了编译文件的更新效率,进而提高了开发效率;同时避免了人工在逐个处理时出现失误,而造成其他不可预知的问题,导致开发进度被拖延;采用第一配置信息和第二配置信息分别用于文件识别和类型替换,在进行编译文件更新时能够批量处理,同时具有较高的准确性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种编译文件的更新方法的应用环境图。

图2是根据一示例性实施例示出的一种编译文件的更新方法的流程图。

图3是根据一示例性实施例示出的从编译文件集合中确定出目标编译文件的步骤的流程图。

图4是根据一示例性实施例示出的识别出目标编译文件中的待替换类型的步骤的流程图。

图5是根据一示例性实施例示出的得到更新后的目标编译文件的步骤的流程图。

图6是根据一示例性实施例示出的另一种编译文件的更新方法的流程图。

图7是根据一示例性实施例示出的又一种编译文件的更新方法的流程图。

图8是根据一示例性实施例示出的一种资源编译文件的更新方法的流程图。

图9是根据一示例性实施例示出的一种编译文件的更新装置的框图。

图10是根据一示例性实施例示出的一种服务器的内部结构图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开所提供的编译文件的更新方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行交互。参考图1,服务器120获取终端110预先设定好的预设配置文件;然后服务器120根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件;第一配置信息中包括预设文件标识集合,预设文件标识集合包括至少一个预设文件标识,目标编译文件为文件标识与预设文件标识集合中包括的各个预设文件标识均不匹配的编译文件;服务器120根据预设配置文件中的第二配置信息,识别出目标编译文件中的待替换类型;第二配置信息中包括待替换类型与目标类型之间的类型替换关系;服务器120根据类型替换关系,将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件;此外,服务器120还可以将更新后的目标编译文件发送给终端110。其中,终端110可以是但不限于各种智能手机、平板电脑或笔记本电脑等,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

图2是根据一示例性实施例示出的一种编译文件的更新方法的流程图,如图2所示,编译文件的更新方法用于如图1所示的服务器中,包括以下步骤。

在步骤s210中,根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件;第一配置信息中包括预设文件标识集合,预设文件标识集合包括至少一个预设文件标识,目标编译文件为文件标识与预设文件标识集合中包括的各个预设文件标识均不匹配的编译文件。

其中,预设配置文件是指预先配置好的包括多个配置信息的应用文件,可以被计算机、服务器、终端等识别;预设配置文件可以使用json格式进行设定。

其中,编译文件可以是java字节码文件(.class文件)或是其他由代码、编码构成的文件。

其中,第一配置信息是指能够从编译文件集合中对某个或某些编译文件进行识别的文件标识,预设文件标识即为第一配置信息中记载的文件标识,文件标识可以是文件名、类名以及所属的包名等,预设文件标识集合是指由多个预先设定的文件标识所组成的集合。

其中,编译文件集合是由编译文件根据某些属性形成的文件集合,例如同属于一个文件路径,同属于一个项目等。

具体地,服务器从预设配置文件包括的多个配置信息中提取或解析得到第一配置信息;根据第一配置信息获取预设文件标识集合中的预设文件标识,然后根据预设文件标识对编译文件集合中的编译文件进行反选,即挑选出与预设文件标识不匹配的编译文件作为目标编译文件。通过反选的设置,使得预设配置文件能够通过较少的条件对编译文件集合中的编译文件进行筛选,提高了编译文件更新的效率。

例如,第一配置信息中的预设文件标识集合记载有一预设文件标识为a;编译文件集合中有两个编译文件,一个文件名为a,一个文件名为b;则服务器根据可以识别出文件名为a的编译文件与预设文件标识匹配,文件名为b的编译文件与预设文件标识不匹配,则服务器确定与预设文件标识不匹配的文件名为b的编译文件作为目标编译文件。

在步骤s220中,根据预设配置文件中的第二配置信息,识别出目标编译文件中的待替换类型;第二配置信息中包括待替换类型与目标类型之间的类型替换关系。

其中,待替换类型是指能够表示编译文件类型的信息;目标类型是指待替换类型需要被替换成为的类型;例如将a类型替换为b类型,则a类型为待替换类型,b类型为目标类型。

其中,第二配置信息是指记载了编译文件中具体需要被替换的类型以及对应的调换后的类型,例如a1-b1,a2-b2,a3-b3这样的信息,服务器能够从第二配置信息中识别出a1、a2、a3是需要被替换的类型,而替换的目标分别为b1、b2、b3。

具体地,服务器从预设配置文件包括的多个配置信息中提取或解析得到第二配置信息;再对第二配置信息进行进一步解析,识别出多个需要被替换的类型作为待替换类型;根据该待替换类型对各个目标编译文件进行查找,识别出目标编译文件中对应的待替换类型。第二配置信息中记载了待替换类型与目标类型之间的类型替换关系,通过该关系能够快速确定出对应的待替换类型或者目标类型,提高了待替换类型的确定效率。

在步骤s230中,根据类型替换关系,将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件。

其中,类型替换关系可以是明确的替换对应关系,例如a1类型替换为b1类型;类型替换关系也可以是一种规则,例如在符合某种条件的情况下将a1类型替换为b1类型,否则替换为b2类型等。在该类型替换关系中,a1类型相当于待替换类型,而被替换为的b1或b2类型相当于目标类型。

其中,更新后的目标编译文件是相对于未替换前的旧的编译文件而言的,当编译文件中的变量类型被更新后相当于得到了一个新的编译文件。

具体地,服务器通过第一配置信息确定出了需要被替换的编译文件作为目标编译文件,再根据第二配置信息从目标编译文件中再次筛选,得到包含有待替换类型的目标编译文件;最后根据类型替换关系将目标编译文件中的待替换类型,替换为目标类型。例如,服务器识别出目标编译文件q中的待替换类型为a1,类型替换关系为a1-b1,则服务器将q中的变量类型a1替换为b1后得到了更新后的q,记为q’;则q’相对于q来说是更新后的目标编译文件。通过类型替换关系能够确定出与待替换类型对应的目标类型,替换后即得到更新后的目标编译文件;类型替换关系的确定使得批量替换处理能够有据可行,提高了编译文件的变量类型更新的效率。

上述编译文件的更新方法中,通过根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件;第一配置信息中包括预设文件标识集合,预设文件标识集合包括至少一个预设文件标识,目标编译文件为文件标识与预设文件标识集合中包括的各个预设文件标识均不匹配的编译文件;根据预设配置文件中的第二配置信息,识别出目标编译文件中的待替换类型;第二配置信息中包括待替换类型与目标类型之间的类型替换关系;根据类型替换关系,将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件;这样,实现了根据预设配置文件对编译文件中的目标编译文件进行类型更新的目的,无需人工逐个修改,提高了编译文件的更新效率,进而提高了开发效率;同时避免了人工在逐个处理时出现失误,而造成其他不可预知的问题,导致开发进度被拖延;采用第一配置信息和第二配置信息分别用于文件识别和变量类型替换,在进行编译文件更新时能够批量处理,具有较高的准确性。

在一示例性实施例中,预设文件标识集合中包括第一预设标识集合和第二预设标识集合;

如图3所示,在步骤s210中,根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件,具体可以通过以下步骤实现:

在步骤s211中,获取编译文件集合中的编译文件的第一文件标识和第二文件标识;

其中,第一文件标识和第二文件标识是指编译文件携带的两个标识信息,第一文件标识可以是文件名,第二文件标识可以是所属包名。

其中,第一文件标识集合是指由编译文件集合中的各个编译文件的第一文件标识所组成的集合;第二文件标识集合是指由编译文件集合中的各个编译文件的第二文件标识所组成的集合;

具体地,编译文件通常携带有多个文件标识,服务器根据第一配置信息会先确定出至少一个文件标识类别,然后根据文件标识类别对编译文件的文件标识进行识别,得到所需的文件标识作为第一文件标识、第二文件标识等。

在步骤s212中,从编译文件集合中,筛选出第一文件标识与第一预设标识集合中的各个第一预设标识不匹配,且第二文件标识与第二预设标识集合中的各个第二预设标识不匹配的编译文件,作为目标编译文件。

其中,第一预设标识是指不需要进行替换的编译文件的文件名,第二预设标识是指不需要进行替换的编译文件的所属包名。第一预设标识和第二预设标识是预设文件标识的子标识,分别与第一文件标识和第二文件标识对应;即第一预设标识和第二预设标识分别为文件名和所属包名。

具体地,第一配置信息可以理解为黑名单信息,即第一配置信息中记载的都是不需要进行替换的编译文件的标识信息;服务器可以根据第一预设标识和第二预设标识分别对编译文件携带的第一文件标识和第二文件标识先后或同时进行匹配,并完成筛选;最终得到第一文件标识与各个第一预设标识不匹配,且第二文件标识与各个第二预设标识均不匹配的编译文件,作为目标编译文件。

进一步地,服务器存在三种确定出目标编译文件的方式:(1)服务器先确定出第一文件标识和第一预设标识不匹配的编译文件,基于此再进一步确定出第二文件标识和第二预设标识不匹配的编译文件得到目标编译文件;(2)服务器先确定出第二文件标识和第二预设标识不匹配的编译文件,在基于此确定出第一文件标识和第一预设标识不匹配的编译文件得到目标编译文件;(3)服务器同时根据编译文件的第一文件标识与第二预设标识,分别与第一预设标识与第二预设标识进行匹配,将均不匹配的编译文件作为目标编译文件,直到识别完所有编译文件。

本公开实施例提供的技术方案,通过预先记载于第一配置信息中的第一文件标识和第二文件标识对编译文件进行反向筛选,将均不匹配的编译文件作为目标编译文件;第一配置信息中不匹配的文件标识可以降低第一配置信息的生成难度和复杂程度,同时提高服务器处理的效率,提高了编译文件的更新效率。

在一示例性实施例中,如图4所示,在步骤s220中,根据预设配置文件中的第二配置信息,识别出目标编译文件中的待替换类型,具体可以通过以下步骤实现:

在步骤s221中,获取类型替换关系中的待替换类型。

其中,类型替换关系由多组待替换类型和对应的目标类型组成,可以根据该类型替换关系找出所有对应于待替换类型的目标类型,以及对应于目标类型的待替换类型。

在步骤s222中,从目标编译文件中包含的类型中,筛选出与待替换类型匹配的类型,作为目标编译文件中的待替换类型。

具体地,服务器遍历目标编译文件所包含的类型,同时将类型与替换关系中的待替换类型进行比对,若服务器检测到目标编译文件中的类型是替换关系中的待替换类型,则服务器将目标编译文件所包含的类型识别为目标编译文件中的待替换类型。

举例说明,类型替换关系中记载有a1-b1,a2-b2,a3-b3,a4-b4,其中a为待替换类型,b为目标类型;则服务器可以从类型替换关系中获取到待替换类型a1,a2,a3,a4;在根据a1,a2,a3,a4去遍历各个目标编译文件,将目标编译文件中存在有a1,a2,a3,a4类型的作为目标编译文件中的待替换类型,例如目标编译文件q为a1-z1,则识别目标编译文件q中的待替换类型为a1。

本公开实施例提供的技术方案,利用了第二配置信息中记载的类型替换关系,得到所有需要被替换类型,在对筛选出的目标编译文件进行查找,确定出目标编译文件中要被替换的类型,提高了查找效率和目标确定的准确度,提高了编译文件的更新效率。

在一示例性实施例中,如图5所示,在步骤s230中,根据类型替换关系,将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件,具体可以通过以下步骤实现:

在步骤s231中,根据类型替换关系,确定与目标编译文件中的待替换类型对应的目标类型。

在步骤s232中,将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件。

具体地,服务器在进行目标类型的替换时,针对每个目标编译文件中的待替换类型,需要根据目标编译文件中的待替换类型先查询类型替换关系中对应的目标类型;确定了对应的目标类型之后,利用目标类型将待替换类型进行替换,完成对目标编译文件的更新,得到更新后的目标编译文件。

本公开实施例提供的技术方案,利用了第二配置信息中记载的类型替换关系,在查找到目标编译文件中的待替换类型之后,通过对应的目标类型进行替换处理,得到更新后的目标编译文件,实现了目标编译文件的更新;无需人工逐个修改,提高了编译文件的更新效率,进而提高了开发效率;同时避免了人工在逐个处理时出现失误,而造成其他不可预知的问题,导致开发进度被拖延;采用第一配置信息和第二配置信息分别用于文件识别和编译替换,在进行编译文件更新时能够批量处理,并具有较高的准确性。

在一示例性实施例中,在步骤s230中,在得到更新后的目标编译文件之后,还包括:根据预设配置文件中的第三配置信息,从与目标编译文件关联的资源文件中确定出目标资源文件;第三配置信息中包括待替换资源类型与目标资源类型之间的资源类型替换关系,目标资源文件为包含有至少一个待替换资源类型的资源文件;根据资源类型替换关系,将目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

其中,资源文件是指程序在运行时会读取的文件;程序会使用资源文件中的类型构造对象,因此需要与相关联的目标编译文件的变量类型一致;

其中,在android开发过程中,java中的类型除了存在于字节码文件中,还存在于一些xml资源文件中;

其中,编译时期,xml资源文件会编译成二进制文件,加快运行时的解析速度。因此在对编译文件进行更新之后还需要对相关联的资源文件进行相同内容的更新以保证类型一致。资源文件还可以存储在第三方库中,因此对目标资源文件的确定应该全面。

其中,第三配置信息是指记载了资源文件中待替换资源类型与目标资源类型之间的类型替换关系的文件。

具体地,服务器先找到所有与目标编译文件关联的库,包括本地库和第三方库;服务器识别这些库中的资源文件,寻找这些资源文件的编译中包含有至少一个待替换资源类型的资源文件,并将包含有至少一个待替换资源类型的资源文件识别为目标资源文件;在进行替换时,先从资源类型替换关系中识别出与待替换资源类型对应的目标资源类型,之后进行替换。

本公开实施例提供的技术方案,利用了第三配置信息中记载的资源文件的资源类型替换关系,实现了对资源文件中资源类型的更新,保证了目标编译文件更新后资源文件的同步更新,无需人工逐个修改对应的资源文件,提高了资源文件的更新效率,进而提高了整体的开发效率。

在一示例性实施例中,根据资源类型替换关系,将目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件,包括:识别出资源类型替换关系中的待替换资源类型;从目标资源文件中包含的资源类型中,筛选出与待替换资源类型匹配的资源类型,作为目标资源文件中的待替换资源类型;将目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

具体地,服务器根据资源类型替换关系中记载的待替换资源类型,识别到包含有该待替换资源类型的目标资源文件;服务器根据资源类型替换关系中与待替换资源类型对应的目标资源类型,对目标资源文件进行编译更新,即将目标资源文件的变量类型由待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件完成对目标资源文件的更新。

本公开实施例提供的技术方案,利用了资源类型替换关系中记载的待替换资源类型与目标资源类型的对应关系,实现了对资源文件中资源类型的替换更新,保证了目标文件更新后资源文件的同步更新,无需人工逐个修改资源文件中的资源类型,提高了资源文件的更新效率,以及编译更新的准确程度。

在一示例性实施例中,在得到更新后的目标资源文件之后,还包括:对更新后的目标资源文件进行编译,得到编译资源文件;将与目标资源文件对应的历史编译资源文件,更新为编译资源文件;历史编译资源文件与编译资源文件的编译格式相同。

具体地,编译资源文件是指将资源文件进行编译后得到的新的进制文件;例如服务器将新的xml资源文件编译成二进制文件,能够加快运行时的解析速度。在服务器得到相应编译格式的新文件之后,将新的编译资源文件覆盖旧的编译资源文件,以完成对编译资源文件的更新。

进一步地,服务器在对更新后的目标资源文件进行编译,得到编译资源文件后,可以将得到的编译资源文件与更新后的目标编译文件进行打包,得到可以运行的软件包,例如sdk(softwaredevelopmentkit,软件开发工具包)文件。

本公开实施例提供的技术方案,根据运行时的特点对资源文件进行重新编译得到能够提高运行时解析速度的新编译资源文件,并替换覆盖旧的编译资源文件,保证程序的高效正常运行。

图6是根据一示例性实施例示出的另一种编译文件的更新方法的流程图,如图6所示,该编译文件的更新方法用于如图1所示的服务器中,包括以下步骤:

步骤s610,获取编译文件集合中的编译文件的第一文件标识和第二文件标识;从编译文件集合中,筛选出第一文件标识与第一预设标识集合中的各个第一预设标识不匹配,且第二文件标识与第二预设标识集合中的各个第二预设标识不匹配的编译文件,作为目标编译文件。

步骤s620,根据预设配置文件中的第二配置信息,提取出待替换类型与目标类型之间的类型替换关系;获取类型替换关系中的待替换类型;从目标编译文件中包含的类型中,筛选出与待替换类型匹配的类型,作为目标编译文件中的待替换类型。

步骤s630,根据类型替换关系,确定与目标编译文件中的待替换类型对应的目标类型;将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件。

步骤s640,根据预设配置文件中的第三配置信息,从与目标编译文件关联的资源文件中确定出目标资源文件;第三配置信息中包括待替换资源类型与目标资源类型之间的资源类型替换关系,目标资源文件为包含有至少一个待替换资源类型的资源文件;根据资源类型替换关系,将目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

步骤s650,对得到更新后的目标资源文件进行编译,得到编译资源文件;将与目标资源文件对应的历史编译资源文件,替换为编译资源文件;历史编译资源文件与编译资源文件的编译格式相同。

本公开实施例提供的技术方案,可以达到以下技术效果:(1)不用人工逐个进行修改,提高了对编译文件以及资源文件进行编译更新时的效率;(2)通过配置文件预先设置需要更新的待替换类型以及待替换资源类型,能够实现自动查找提高搜索效率,并且不会遗漏,提高了编译更新的全面性;配置文件可以随时修改,具备应用的灵活性;(3)在替换完成后进行编译能够提高运行时解析的速度。

图7是根据一示例性实施例示出的一种将编译文件的更新方法进行应用的流程图,如图7所示,该方法用于如图1所示的服务器中;其中,字节码文件相当于编译文件,文件名相当于第一文件标识,文件所属包名名相当于第二文件标识,“class_black_list”相当于第一预设标识,记为文件名黑名单;“package_black_list”相当于第二预设标识,记为所属包名黑名单;type列表相当于待替换类型与目标类型之间的类型替换关系;具体包括以下步骤:

(1)服务器遍历所有字节码文件,识别字节码文件的文件名和所属包名;(2)确定字节码文件的文件名是否在文件名黑名单中,若否则继续判断所属包名是否在所属包名黑名单中;(3)若文件名和所属包名都不在黑名单中,则确定为需要进行替换的字节码文件,并根据type列表中记载的规则进行类型的替换;若文件名或所属包名与相应黑名单产生了匹配,则确定该字节码文件不在需要替换的范围内。

上述实施例通过设置黑名单信息实现了字节码文件的筛选,通过type列表实现了对待替换类型的识别与替换,无需人工逐个修改,提高了编译文件的更新效率,进而提高了开发效率;同时避免了人工在逐个处理时出现失误,而造成其他不可预知的问题,导致开发进度被拖延。

图8是根据一示例性实施例示出的一种将资源编译文件更新的方法的流程图,如图8所示,该方法用于如图1所示的服务器中;其中,需要类型重定位的文件相当于包含有至少一个待替换资源类型的资源文件,资源文件中的类型相当于目标资源文件中的待替换资源类型,编译成二进制的资源文件相当于编译资源文件,旧的二进制资源文件相当于历史编译资源文件。具体包括以下步骤:

(1)服务器对所有资源文件进行遍历;(2)找到包含有资源类型替换关系中待替换资源编译的资源文件,作为需要类型重定位的文件;(3)根据资源类型替换关系中的待替换资源类型,对应替换待替换资源编译,完成修改资源文件中的类型的步骤;(4)将修改完后的资源文件以二进制进行重新编译;(5)将编译后得到的二进制资源文件覆盖旧的二进制资源文件。

上述实施例通过遍历资源文件确定出需要进行资源编译替换操作的资源文件,并进行替换以及编译操作,并将编译后的文件相应覆盖历史文件,得到了可以直接被应用的编译资源文件,简化了开发的流程,提高了开发的流程效率。

应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

图9是根据一示例性实施例示出的一种编译文件的更新装置框图。参照图9,该装置包括文件确定单元902,类型确定单元904和类型更新单元906。

文件确定单元902,被配置为执行根据预设配置文件中的第一配置信息,从编译文件集合中确定出目标编译文件;第一配置信息中包括预设文件标识集合,预设文件标识集合包括至少一个预设文件标识,目标编译文件为文件标识与预设文件标识集合中包括的各个预设文件标识均不匹配的编译文件;

类型确定单元904,被配置为执行根据预设配置文件中的第二配置信息,识别出目标编译文件中的待替换类型;第二配置信息中包括待替换类型与目标类型之间的类型替换关系;

类型更新单元906,被配置为执行根据类型替换关系,将目标编译文件中的待替换类型更新为对应的目标类型,得到更新后的目标编译文件。

在一示例性实施例中,预设文件标识集合中包括第一预设标识集合和第二预设标识集合;

文件确定单元902,还被配置为执行获取编译文件集合中的编译文件的第一文件标识和第二文件标识;从编译文件集合中,筛选出第一文件标识与第一预设标识集合中的各个第一预设标识不匹配,且第二文件标识与第二预设标识集合中的各个第二预设标识不匹配的编译文件,作为目标编译文件。

在一示例性实施例中,类型确定单元904,还被配置为执行获取类型替换关系中的待替换类型;从目标编译文件中包含的类型中,筛选出与待替换类型匹配的类型,作为目标编译文件中的待替换类型。

在一示例性实施例中,预设配置文件中还包括第三配置信息;

装置还包括资源文件更新单元,被配置为执行根据预设配置文件中的第三配置信息,从与目标编译文件关联的资源文件中确定出目标资源文件;第三配置信息中包括待替换资源类型与目标资源类型之间的资源类型替换关系,目标资源文件为包含有至少一个待替换资源类型的资源文件;根据资源类型替换关系,将目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

在一示例性实施例中,资源文件更新单元,还被配置为执行识别出资源类型替换关系中的待替换资源类型;从目标资源文件中包含的资源类型中,筛选出与待替换资源类型匹配的资源类型,作为目标资源文件中的待替换资源类型;将目标资源文件中的待替换资源类型更新为对应的目标资源类型,得到更新后的目标资源文件。

在一示例性实施例中,装置还包括编译资源文件更新单元,被配置为执行对更新后的目标资源文件进行编译,得到编译资源文件;将与目标资源文件对应的历史编译资源文件,更新为编译资源文件;历史编译资源文件与编译资源文件的编译格式相同。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图10是根据一示例性实施例示出的一种用于执行编译文件的更新方法的设备1000的框图。例如,设备1000可以为一服务器。参照图10,设备1000包括处理组件1020,其进一步包括一个或多个处理器,以及由存储器1022所代表的存储器资源,用于存储可由处理组件1020的执行的指令,例如应用程序。存储器1022中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1020被配置为执行指令,以执行上述编译文件的更新方法。

设备1000还可以包括一个电源组件1024被配置为执行设备1000的电源管理,一个有线或无线网络接口1026被配置为将设备1000连接到网络,和一个输入输出(i/o)接口1028。设备1000可以操作基于存储在存储器1022的操作系统,例如window88erver,maco8x,unix,linux,freeb8d或类似。

在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器1022,上述指令可由设备1000的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从该计算机可读存储介质读取并执行该计算机程序,使得设备执行本公开的任一项实施例中的编译文件的更新方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1