程序文件的更新方法、程序文件的更新装置和电子设备与流程
未命名
08-15
阅读:84
评论:0
1.本技术涉及程序刷写技术领域,具体而言,涉及一种程序文件的更新方法、程序文件的更新装置和电子设备。
背景技术:
2.当前程序文件更新的方案主要有全量更新和增量更新两种。其中,全量更新为直接将整个新版本的程序文件下载并刷写到电子控制单元的内部微控制器的flash存储器中。增量更新又叫差分升级,是基于新、旧两个版本程序文件中二进制字节码的差异,使用差分算法,在服务端(上位机)生成差分包,然后客户端(下位机)通过同样的算法,把旧版本的二进制程序文件与差分包结合生成新版本的二进制程序文件进行更新。因为差分包文件的二进制字节码包含大量的
‘0’
字符,可以被高效压缩,可以减小程序文件更新时的下载时间,提高更新效率。
3.但是现有的两种更新程序文件的方案都存在各自的缺陷,全量更新因为要下载程序文件,所以全量更新下载时间最长,且由于全量更新需要对整个旧版本的程序文件进行刷写,所以二进制字节码变化较多且刷写时间较长。增量更新因为只需要下载较小的差分包,所以下载时间相较于全量更新更短,但是不能进行文件合并,且需要额外的存储空间存储。
技术实现要素:
4.本技术的主要目的在于提供一种程序文件的更新方法、程序文件的更新装置和电子设备,以至少解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题。
5.为了实现上述目的,根据本技术的一个方面,提供了一种程序文件的更新方法,包括:获取多个第一数据校验和,各所述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,所述第一数据校验和与所述目标分区一一对应,各所述目标分区中包括至少一个所述编译程序文件,所述编译程序文件为原始程序文件经过编译后得到的编译文件,所述目标分区中编译程序文件为旧版本文件;获取多个第二数据校验和,各所述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,所述第二数据校验和与所述更新分区一一对应,各所述更新分区中包括至少一个所述更新编译程序文件,所述更新编译程序文件为更新程序文件经过编译后得到的编译文件,所述更新分区与所述目标分区一一对应,所述更新分区中更新编译程序文件为新版本文件;比对各组所述第一数据校验和与所述第二数据校验和,在所述第一数据校验和与所述第二数据校验和不同的情况下,将所述目标分区中所有的所述编译程序文件更新为与所述目标分区对应的所述更新分区中的所述更新编译程序文件,以将所述旧版本文件更新为新版本文件。
6.可选地,在获取多个第一数据校验和之前,所述方法还包括:获取各所述编译程序文件的更新时间间隔;根据各所述编译程序文件的更新时间间隔,将处于相同的更新时间
间隔范围的第一存储区域中的所述编译程序文件划分为同一个所述目标分区,得到多个所述目标分区。
7.可选地,获取各所述编译程序文件的更新时间间隔,包括:在所述编译程序文件在历史时间段内仅更新过一次的情况下,将第一时间间隔确定为所述编译程序文件的更新时间间隔,所述第一时间间隔为所述编译程序文件的第一版本的发布时间与所述编译程序文件的第二版本的初始更新时间之间的时间间隔;在所述编译程序文件在历史时间段内更新过多次的情况下,获取所述编译程序文件的多个时间间隔,并将多个所述时间间隔的平均值确定为所述编译程序文件的更新时间间隔,其中,多个所述时间间隔包括所述第一时间间隔和第二时间间隔,所述第二时间间隔为所述编译程序文件的相邻两次版本的初始更新时间的时间间隔。
8.可选地,比对各组所述第一数据校验和与所述第二数据校验和,包括:按照预设顺序依次比对各组所述第一数据校验和与所述第二数据校验和,所述预设顺序为按照所述目标分区的所述更新时间间隔范围从高到低依次比对的顺序。
9.可选地,在获取多个第一数据校验和之前,所述方法还包括:获取各所述编译程序文件的文件类型,所述编译程序文件的文件类型包括函数文件和非函数文件,所述非函数文件包括音频文件和视频文件;根据各所述编译程序文件的文件类型,将相同类型的第一存储区域中的所述编译程序文件划分为同一个所述目标分区,得到多个所述目标分区。
10.可选地,在获取多个第一数据校验和之前,所述方法还包括:获取所述目标分区在第一存储区域中的第一位置;根据所述第一位置确定所述更新分区在第二存储区域中的第二位置,其中,所述第一位置与所述第一存储区域的相对位置和所述第二位置与所述第二存储区域的相对位置相同。
11.可选地,所述方法还包括:获取所述第一数据校验和在所述目标分区中的第一目标位置;根据所述第一目标位置确定所述第二数据校验和在所述更新分区中的第二目标位置,所述第一目标位置与所述目标分区的相对位置和所述第二目标位置与所述更新分区的相对位置相同。
12.可选地,所述目标分区中任意两个所述编译程序文件不同,任意两个所述目标分区中的所述编译程序文件也不同,所述更新分区中任意两个所述更新编译程序文件不同,任意两个所述更新分区中的所述更新编译程序文件也不同。
13.根据本技术的另一方面,还提供了一种程序文件的更新装置,该装置包括:第一获取单元,用于获取多个第一数据校验和,各所述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,所述第一数据校验和与所述目标分区一一对应,各所述目标分区中包括至少一个所述编译程序文件,所述编译程序文件为原始程序文件经过编译后得到的编译文件,所述目标分区中编译程序文件为旧版本文件;第二获取单元,用于获取多个第二数据校验和,各所述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,所述第二数据校验和与所述更新分区一一对应,各所述更新分区中包括至少一个所述更新编译程序文件,所述更新编译程序文件为更新程序文件经过编译后得到的编译文件,所述更新分区与所述目标分区一一对应,所述更新分区中更新编译程序文件为新版本文件;更新单元,用于比对各组所述第一数据校验和与所述第二数据校验和,在所述第一数据校验和与所述第二数据校验和不同的情况下,将所述目标分区中所有的所述编译程序
文件更新为与所述目标分区对应的所述更新分区中的所述更新编译程序文件,以将所述旧版本文件更新为新版本文件。
14.根据本技术的另一方面,还提供了一种电子设备,所述电子设备包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的程序文件的更新方法。
15.应用本技术的技术方案,首先获取多个第一数据校验和,各第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,第一数据校验和与目标分区一一对应,各目标分区中包括至少一个编译程序文件,编译程序文件为原始程序文件经过编译后得到的编译文件,目标分区中编译程序文件为旧版本文件;然后获取多个第二数据校验和,各第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,第二数据校验和与更新分区一一对应,各更新分区中包括至少一个更新编译程序文件,更新编译程序文件为更新程序文件经过编译后得到的编译文件,更新分区与目标分区一一对应,更新分区中更新编译程序文件为新版本文件;最后比对各组第一数据校验和与第二数据校验和,在第一数据校验和与第二数据校验和不同的情况下,将目标分区中所有的编译程序文件更新为与目标分区对应的更新分区中的更新编译程序文件,以将旧版本文件更新为新版本文件。本技术通过对程序文件进行分区控制,无需增加存储空间,仅对相应分区中的程序文件进行刷写,减少程序文件固定地址区间二进制字节码的变化,以减少程序文件发生更新时的刷写时间,解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题。
附图说明
16.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
17.图1示出了根据本技术的实施例中提供的一种执行程序文件的更新方法的移动终端的硬件结构框图;
18.图2示出了根据本技术的实施例提供的一种程序文件的更新方法的流程示意图;
19.图3示出了根据本技术的实施例提供的另一种程序文件的更新方法的流程示意图;
20.图4示出了根据本技术的实施例提供的一种编译程序文件划分后的效果图;
21.图5示出了根据本技术的实施例提供的另一种程序文件的更新方法的流程示意图;
22.图6示出了根据本技术的实施例提供的一种确定目标分区和更新分区位置的效果图;
23.图7示出了根据本技术的实施例提供的一种程序文件的更新装置的结构框图。
24.其中,上述附图包括以下附图标记:
25.102、处理器;104、存储器;106、传输设备;108、输入输出设备。
具体实施方式
26.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
27.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
28.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.正如背景技术中所介绍的,现有技术中全量更新需要对整个旧版本的程序文件进行刷写导致二进制字节码变化较多且刷写时间较长,增量更新不能进行文件合并导致需要额外的存储空间存储,为解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题,本技术的实施例提供了一种程序文件的更新方法、程序文件的更新装置和电子设备。
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
31.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种程序文件的更新方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
32.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的设备信息的显示方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传
输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
33.在本实施例中提供了一种运行于移动终端、计算机终端或者类似的运算装置的程序文件的更新方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
34.图2是根据本技术实施例的程序文件的更新方法的流程图。如图2所示,该方法包括以下步骤:
35.步骤s201:获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和;
36.其中,上述第一数据校验和与上述目标分区一一对应,各上述目标分区中包括至少一个上述编译程序文件,上述编译程序文件为原始程序文件经过编译后得到的编译文件,上述目标分区中编译程序文件为旧版本文件。具体地,先获取目标分区中所有的编译程序文件的字节码,将各编译程序文件的字节码依次进行二进制反码求和得到多个计算结果,将多个计算结果求和得到第一数据校验和,其中,计算结果与编译程序文件一一对应,第一数据校验和存储在目标分区的头部存储地址内,当然,第一数据校验和也可以存储在任意预设的存储地址内。
37.步骤s202:获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和;
38.其中,上述第二数据校验和与上述更新分区一一对应,各上述更新分区中包括至少一个上述更新编译程序文件,上述更新编译程序文件为更新程序文件经过编译后得到的编译文件,上述更新分区与上述目标分区一一对应,上述更新分区中更新编译程序文件为新版本文件。具体地,先获取更新分区中所有的更新编译程序文件的字节码,将各更新编译程序文件的字节码依次进行二进制反码求和得到多个计算结果,将多个计算结果求和得到第二数据校验和,其中,计算结果与更新编译程序文件一一对应,第二数据校验和存储在更新分区的头部存储地址内,当然,第二数据校验和也可以存储在任意预设的存储地址内。
39.步骤s203:比对各组上述第一数据校验和与上述第二数据校验和,在上述第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版本文件更新为新版本文件。
40.其中,上述目标分区中任意两个上述编译程序文件不同,任意两个上述目标分区中的上述编译程序文件也不同,上述更新分区中任意两个上述更新编译程序文件不同,任意两个上述更新分区中的上述更新编译程序文件也不同。
41.具体地,分别比对目标分区与更新分区相对应的多个数据校验和,当目标分区的数据校验和与更新分区的数据校验和相同时,则当前目标分区不需要更新,继续对下一目标分区的数据校验和进行判断,直到整个存储器地址空间内的所有目标分区都遍历一遍,当目标分区的数据校验和与更新分区的数据校验和存在不同时,确定目标分区需要对编译程序文件进行更新,且只对数据校验和不同的目标分区进行刷写,相对于刷写全部程序的全量更新和不能进行文件合并的增量更新的方法,程序更新的效率更高,刷写时间更短,还
不需要额外的存储空间存储更新的程序文件,在大多数情况下,需要刷写的地址空间大小小于程序文件整体地址空间大小。
42.由此可见,本技术的实施例提供了一种程序文件的更新方法,首先获取多个第一数据校验和,各第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,第一数据校验和与目标分区一一对应,各目标分区中包括至少一个编译程序文件,编译程序文件为原始程序文件经过编译后得到的编译文件,目标分区中编译程序文件为旧版本文件;然后获取多个第二数据校验和,各第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,第二数据校验和与更新分区一一对应,各更新分区中包括至少一个更新编译程序文件,更新编译程序文件为更新程序文件经过编译后得到的编译文件,更新分区与目标分区一一对应,更新分区中更新编译程序文件为新版本文件;最后比对各组第一数据校验和与第二数据校验和,在第一数据校验和与第二数据校验和不同的情况下,将目标分区中所有的编译程序文件更新为与目标分区对应的更新分区中的更新编译程序文件,以将旧版本文件更新为新版本文件。本技术通过对程序文件进行分区控制,无需增加存储空间,仅对相应分区中的程序文件进行刷写,减少程序文件固定地址区间二进制字节码的变化,以减少程序文件发生更新时的刷写时间,解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题。
43.图3是根据本技术实施例的另一种程序文件的更新方法的流程图。如图3所示,该方法包括以下步骤:
44.步骤s301:获取各上述编译程序文件的更新时间间隔;
45.具体地,在编译程序文件在历史时间段内仅更新过一次的情况下,将第一时间间隔确定为编译程序文件的更新时间间隔,第一时间间隔为编译程序文件的第一版本的发布时间与编译程序文件的第二版本的初始更新时间之间的时间间隔;在编译程序文件在历史时间段内更新过多次的情况下,获取编译程序文件的多个时间间隔,并将多个时间间隔的平均值确定为编译程序文件的更新时间间隔,其中,多个时间间隔包括第一时间间隔和第二时间间隔,第二时间间隔为编译程序文件的相邻两次版本的初始更新时间的时间间隔。
46.步骤s302:根据各上述编译程序文件的更新时间间隔,将处于相同的更新时间间隔范围的第一存储区域中的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区;
47.具体地,通过编译程序文件的更新时间间隔可以确定出编译程序文件的更新频率,将更新时间间隔相对较短的编译程序文件划分至高频更新区,将更新时间间隔相对适中的编译程序文件划分至中频更新区,将更新时间间隔相对较长的编译程序文件划分至低频更新区,具体可以根据每个编译程序文件的更新时间间隔的比例进行编译程序文件的划分,也可以设定更新时间间隔的阈值进行编译程序文件的划分,编译程序文件划分后的效果如图4所示,lib1.c文件的更新时间间隔相对较长,更新的频率相对较低,划分至低频更新区,basic.c文件的更新时间间隔相对适中,更新的频率相对适中,划分至中频更新区,adv.c文件的更新时间间隔相对较短,更新的频率相对较高,划分至高频更新区。
48.为方便理解,对根据各编译程序文件的更新时间间隔对编译程序文件进行划分过程进行举例说明。
49.例如,存在编译程序文件a、b、c、d、e、f、g、h,各编译程序文件均进行过两次以上的
版本更新,更新时间间隔范围设置为0~10天、11~20天、21~40,将更新时间间隔在0~10天内的编译程序文件划分为高频更新区,将更新时间间隔在11~20天内的编译程序文件划分为中频更新区,将更新时间间隔在21~40天内的编译程序文件划分为低频更新区,先获取各编译程序文件的多个历史版本初始更新时间,并计算出多个相邻两次版本的初始更新时间的时间间隔的平均值,得到编译程序文件a、b、c、d、e、f、g、h的更新时间间隔分别为7天、4天、14天、20天、30天、2天、3天、10天,根据上述设置的更新时间间隔范围对编译程序文件a、b、c、d、e、f、g、h进行目标分区的划分,得到的结果为:编译程序文件a、b、f、g、h划分为高频更新区,编译程序文件c、d划分为中频更新区,编译程序文件e划分为低频更新区。
50.步骤s303:获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和;
51.其中,上述第一数据校验和与上述目标分区一一对应,各上述目标分区中包括至少一个上述编译程序文件,上述编译程序文件为原始程序文件经过编译后得到的编译文件,上述目标分区中编译程序文件为旧版本文件。
52.步骤s304:获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和;
53.其中,上述第二数据校验和与上述更新分区一一对应,各上述更新分区中包括至少一个上述更新编译程序文件,上述更新编译程序文件为更新程序文件经过编译后得到的编译文件,上述更新分区与上述目标分区一一对应,上述更新分区中更新编译程序文件为新版本文件。
54.步骤s305:比对各组上述第一数据校验和与上述第二数据校验和,在上述第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版本文件更新为新版本文件。
55.其中,上述目标分区中任意两个上述编译程序文件不同,任意两个上述目标分区中的上述编译程序文件也不同,上述更新分区中任意两个上述更新编译程序文件不同,任意两个上述更新分区中的上述更新编译程序文件也不同。
56.由此可见,根据编译程序文件的更新时间间隔,可以获得编译程序文件的更新频率,将处于相同的更新时间间隔范围的编译程序文件划分为同一个目标分区,即根据更新频率将编译程序文件划分到不同的更新区,再根据目标分区和更新分区的数据校验和是否一致,在数据校验和一致的情况下,将数据校验和对应的目标分区进行程序文件的刷写,可以更加准确地判断编译程序文件是否需要更新,避免了不必要的文件刷写,减少了编译程序文件的刷写量,提高了程序更新的效率和准确性。
57.图5是根据本技术实施例的另一种程序文件的更新方法的流程图。可以根据文件类型进行编译程序文件的划分,得到多个目标分区,如图5所示,该方法包括以下步骤:
58.步骤s501:获取各上述编译程序文件的文件类型,上述编译程序文件的文件类型包括函数文件和非函数文件,上述非函数文件包括音频文件和视频文件;
59.具体地,函数文件还可以进一步分类得到内置函数、库函数、自定义函数等文件类型。
60.步骤s502:根据各上述编译程序文件的文件类型,将相同类型的第一存储区域中
的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区。
61.步骤s503:获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和;
62.其中,上述第一数据校验和与上述目标分区一一对应,各上述目标分区中包括至少一个上述编译程序文件,上述编译程序文件为原始程序文件经过编译后得到的编译文件,上述目标分区中编译程序文件为旧版本文件。
63.步骤s504:获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和;
64.其中,上述第二数据校验和与上述更新分区一一对应,各上述更新分区中包括至少一个上述更新编译程序文件,上述更新编译程序文件为更新程序文件经过编译后得到的编译文件,上述更新分区与上述目标分区一一对应,上述更新分区中更新编译程序文件为新版本文件。
65.步骤s505:比对各组上述第一数据校验和与上述第二数据校验和,在上述第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版本文件更新为新版本文件。
66.由此可见,根据不同的文件类型对编译程序文件进行分类,可以更加精细地区分不同类型的文件,并根据其特点进行不同的处理,而且,可以根据实际需求不断进行优化和改进。例如,可以根据文件类型的不同引入不同的更新策略,或者根据用户的反馈进行调整和改进,以满足不同用户的需求。例如,音频文件和视频文件可以不进行数据校验和比对,将不同文件类型的编译程序文件划分到不同的目标区域,再根据目标分区和更新分区的数据校验和是否一致,在数据校验和一致的情况下,将数据校验和对应的目标分区进行程序文件的刷写,可以更加准确地判断编译程序文件是否需要更新,避免了不必要的文件刷写,减少了编译程序文件的刷写量,提高了程序更新的效率和准确性。
67.进一步地,在获取多个第一数据校验和之前,需要确定目标分区和更新分区的位置,上述方法还包括:
68.步骤s601:获取上述目标分区在第一存储区域中的第一位置;
69.具体地,获取目标分区在第一存储区域中的第一位置,可以精确定位目标分区的位置,避免了对整个存储区域进行扫描的时间和资源浪费。
70.步骤s602:根据上述第一位置确定上述更新分区在第二存储区域中的第二位置,其中,上述第一位置与上述第一存储区域的相对位置和上述第二位置与上述第二存储区域的相对位置相同。
71.具体地,根据目标分区的位置确定更新分区的位置,可以精准确定更新分区的位置,确定目标分区和更新分区位置的效果图如图6所示,第一存储区域在下位机的电子控制单元内部微控制器的flash存储器中,第二存储区域在上位机的存储器中,目标分区在下位机中存储的位置和更新分区在上位机中存储的位置是一一对应的,先获取目标分区在第一存储区域的位置,从而可以根据目标分区的位置得到更新分区在上位机中的存储位置。
72.由此可见,通过精准定位目标分区和更新分区的位置,可以减少对存储区域的访问,从而减少了程序更新的时间和流量,降低了系统的负担,避免了不必要的数据读取和写
入,提高了程序更新的效率和准确性。
73.进一步地,上述方法还包括:
74.步骤s701:获取上述第一数据校验和在上述目标分区中的第一目标位置;
75.具体地,获取第一数据校验和在目标分区中的位置,可以精准定位数据校验和位置,避免了对整个目标分区进行扫描的时间和资源浪费。
76.步骤s702:根据上述第一目标位置确定上述第二数据校验和在上述更新分区中的第二目标位置,上述第一目标位置与上述目标分区的相对位置和上述第二目标位置与上述更新分区的相对位置相同。
77.具体地,根据目标分区中数据校验和的位置确定更新分区中数据校验和的位置,可以精准确定更新分区中数据校验和的位置,通过精准定位目标分区和更新分区的数据校验和位置,可以减少对存储区域的访问,从而减少了程序更新的时间和流量,降低了系统的负担,避免了不必要的数据读取和写入,提高了程序更新的效率和准确性。
78.本技术实施例还提供了一种程序文件的更新装置,需要说明的是,本技术实施例的程序文件的更新装置可以用于执行本技术实施例所提供的用于程序文件的更新方法。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
79.以下对本技术实施例提供的程序文件的更新装置进行介绍。
80.图7是根据本技术实施例的程序文件的更新装置的示意图。如图7所示,该装置包括:第一获取单元71、第二获取单元72和更新单元73。
81.第一获取单元71,用于获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和;
82.其中,上述第一数据校验和与上述目标分区一一对应,各上述目标分区中包括至少一个上述编译程序文件,上述编译程序文件为原始程序文件经过编译后得到的编译文件,上述目标分区中编译程序文件为旧版本文件。具体地,先获取目标分区中所有的编译程序文件的字节码,将各编译程序文件的字节码依次进行二进制反码求和得到多个计算结果,将多个计算结果求和得到第一数据校验和,其中,计算结果与编译程序文件一一对应,第一数据校验和存储在目标分区的第一个存储地址内,当然,第一数据校验和也可以存储在任意预设的存储地址内。
83.第二获取单元72,用于获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和;
84.其中,上述第二数据校验和与上述更新分区一一对应,各上述更新分区中包括至少一个上述更新编译程序文件,上述更新编译程序文件为更新程序文件经过编译后得到的编译文件,上述更新分区与上述目标分区一一对应,上述更新分区中更新编译程序文件为新版本文件。具体地,先获取更新分区中所有的更新编译程序文件的字节码,将各更新编译程序文件的字节码依次进行二进制反码求和得到多个计算结果,将多个计算结果求和得到第二数据校验和,其中,计算结果与更新编译程序文件一一对应,第二数据校验和存储在更新分区的第一个存储地址内,当然,第二数据校验和也可以存储在任意预设的存储地址内。
85.更新单元73,用于比对各组上述第一数据校验和与上述第二数据校验和,在上述
第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版本文件更新为新版本文件。
86.其中,上述目标分区中任意两个上述编译程序文件不同,任意两个上述目标分区中的上述编译程序文件也不同,上述更新分区中任意两个上述更新编译程序文件不同,任意两个上述更新分区中的上述更新编译程序文件也不同。
87.具体地,分别比对目标分区与更新分区相对应的多个数据校验和,当目标分区的数据校验和与更新分区的数据校验和相同时,则当前目标分区不需要更新,继续对下一目标分区的数据校验和进行判断,直到整个存储器地址空间内的所有目标分区都遍历一遍,当目标分区的数据校验和与更新分区的数据校验和存在不同时,确定目标分区需要对编译程序文件进行更新,且只对数据校验和不同的目标分区进行刷写,相对于刷写全部程序的全量更新和不能进行文件合并的增量更新的方法,程序更新的效率更高,刷写时间更短,还不需要额外的存储空间存储更新的程序文件,在大多数情况下,需要刷写的地址空间大小小于程序文件整体地址空间大小。
88.本技术的上述程序文件的更新装置,该装置包括:第一获取单元、第二获取单元和更新单元。第一获取单元用于获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,上述第一数据校验和与上述目标分区一一对应,各上述目标分区中包括至少一个上述编译程序文件,上述编译程序文件为原始程序文件经过编译后得到的编译文件,上述目标分区中编译程序文件为旧版本文件;第二获取单元用于获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,上述第二数据校验和与上述更新分区一一对应,各上述更新分区中包括至少一个上述更新编译程序文件,上述更新编译程序文件为更新程序文件经过编译后得到的编译文件,上述更新分区与上述目标分区一一对应,上述更新分区中更新编译程序文件为新版本文件;更新单元用于比对各组上述第一数据校验和与上述第二数据校验和,在上述第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版本文件更新为新版本文件。该装置通过对程序文件进行分区控制,无需增加存储空间,仅对相应分区中的程序文件进行刷写,减少程序文件固定地址区间二进制字节码的变化,以减少程序文件发生更新时的刷写时间,解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题。
89.作为一种可能的实现方式,上述装置还包括:时间间隔获取单元和第一划分单元。
90.时间间隔获取单元用于获取各上述编译程序文件的更新时间间隔;划分单元用于根据各上述编译程序文件的更新时间间隔,将处于相同的更新时间间隔范围的第一存储区域中的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区。
91.由此可见,根据编译程序文件的更新时间间隔,可以获得编译程序文件的更新频率,将处于相同的更新时间间隔范围的编译程序文件划分为同一个目标分区,即根据更新频率将编译程序文件划分到不同的更新区,再根据目标分区和更新分区的数据校验和是否一致,在数据校验和一致的情况下,将数据校验和对应的目标分区进行程序文件的刷写,可以更加准确地判断编译程序文件是否需要更新,避免了不必要的文件刷写,减少了编译程
序文件的刷写量,提高了程序更新的效率和准确性。
92.作为一种可能的实现方式,上述时间间隔获取单元包括:第一时间间隔确定单元和第二时间间隔确定单元。
93.第一时间间隔确定单元用于在上述编译程序文件在历史时间段内仅更新过一次的情况下,将第一时间间隔确定为上述编译程序文件的更新时间间隔,上述第一时间间隔为上述编译程序文件的第一版本的发布时间与上述编译程序文件的第二版本的初始更新时间之间的时间间隔;
94.第二时间间隔确定单元用于在上述编译程序文件在历史时间段内更新过多次的情况下,获取上述编译程序文件的多个时间间隔,并将多个上述时间间隔的平均值确定为上述编译程序文件的更新时间间隔,其中,多个上述时间间隔包括上述第一时间间隔和第二时间间隔,上述第二时间间隔为上述编译程序文件的相邻两次版本的初始更新时间的时间间隔。
95.具体地,通过编译程序文件的更新时间间隔可以确定出编译程序文件的更新频率,将更新时间间隔相对较短的编译程序文件划分至高频更新区,将更新时间间隔相对适中的编译程序文件划分至中频更新区,将更新时间间隔相对较长的编译程序文件划分至低频更新区,具体可以根据每个编译程序文件的更新时间间隔的比例进行编译程序文件的划分,也可以设定更新时间间隔的阈值进行编译程序文件的划分。
96.作为一种可能的实现方式,上述装置还包括:文件类型确定单元和第二划分单元。
97.文件类型确定单元用于获取各上述编译程序文件的文件类型,上述编译程序文件的文件类型包括函数文件和非函数文件,上述非函数文件包括音频文件和视频文件;
98.具体地,函数文件还可以进一步分类得到内置函数、库函数、自定义函数等文件类型。
99.第二划分单元用于根据各上述编译程序文件的文件类型,将相同类型的第一存储区域中的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区。
100.由此可见,根据不同的文件类型对编译程序文件进行分类,可以更加精细地区分不同类型的文件,并根据其特点进行不同的处理,而且,可以根据实际需求不断进行优化和改进。例如,可以根据文件类型的不同引入不同的更新策略,或者根据用户的反馈进行调整和改进,以满足不同用户的需求。例如,音频文件和视频文件可以不进行数据校验和比对,将不同文件类型的编译程序文件划分到不同的目标区域,再根据目标分区和更新分区的数据校验和是否一致,在数据校验和一致的情况下,将数据校验和对应的目标分区进行程序文件的刷写,可以更加准确地判断编译程序文件是否需要更新,避免了不必要的文件刷写,减少了编译程序文件的刷写量,提高了程序更新的效率和准确性。
101.作为一种可能的实现方式,上述装置还包括:第一位置获取单元和第二位置获取单元。
102.第一位置获取单元用于获取上述目标分区在第一存储区域中的第一位置;
103.具体地,获取目标分区在第一存储区域中的第一位置,可以精确定位目标分区的位置,避免了对整个存储区域进行扫描的时间和资源浪费。
104.第二位置获取单元用于根据上述第一位置确定上述更新分区在第二存储区域中的第二位置,其中,上述第一位置与上述第一存储区域的相对位置和上述第二位置与上述
第二存储区域的相对位置相同。
105.由此可见,根据目标分区的位置确定更新分区的位置,可以精准确定更新分区的位置,通过精准定位目标分区和更新分区的位置,可以减少对存储区域的访问,从而减少了程序更新的时间和流量,降低了系统的负担,避免了不必要的数据读取和写入,提高了程序更新的效率和准确性。
106.作为一种可能的实现方式,上述装置还包括:第一目标位置获取单元和第二目标位置获取单元。
107.第一目标位置获取单元用于获取上述第一数据校验和在上述目标分区中的第一目标位置;
108.具体地,获取第一数据校验和在目标分区中的位置,可以精准定位数据校验和位置,避免了对整个目标分区进行扫描的时间和资源浪费。
109.第二目标位置获取单元用于根据上述第一目标位置确定上述第二数据校验和在上述更新分区中的第二目标位置,上述第一目标位置与上述目标分区的相对位置和上述第二目标位置与上述更新分区的相对位置相同。
110.具体地,根据目标分区中数据校验和的位置确定更新分区中数据校验和的位置,可以精准确定更新分区中数据校验和的位置,通过精准定位目标分区和更新分区的数据校验和位置,可以减少对存储区域的访问,从而减少了程序更新的时间和流量,降低了系统的负担,避免了不必要的数据读取和写入,提高了程序更新的效率和准确性。
111.上述程序文件的更新装置包括处理器和存储器,第一获取单元、第二获取单元和更新单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
112.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题。
113.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
114.本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述程序文件的更新方法。
115.具体地,程序文件的更新方法包括:
116.步骤s201:获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和;
117.步骤s202:获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和;
118.步骤s203:比对各组上述第一数据校验和与上述第二数据校验和,在上述第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版
本文件更新为新版本文件。
119.其中,上述目标分区中任意两个上述编译程序文件不同,任意两个上述目标分区中的上述编译程序文件也不同,上述更新分区中任意两个上述更新编译程序文件不同,任意两个上述更新分区中的上述更新编译程序文件也不同。
120.可选地,在获取多个第一数据校验和之前,上述方法还包括:获取各上述编译程序文件的更新时间间隔;根据各上述编译程序文件的更新时间间隔,将处于相同的更新时间间隔范围的第一存储区域中的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区。
121.可选地,获取各上述编译程序文件的更新时间间隔,包括:在上述编译程序文件在历史时间段内仅更新过一次的情况下,将第一时间间隔确定为上述编译程序文件的更新时间间隔,上述第一时间间隔为上述编译程序文件的第一版本的发布时间与上述编译程序文件的第二版本的初始更新时间之间的时间间隔;在上述编译程序文件在历史时间段内更新过多次的情况下,获取上述编译程序文件的多个时间间隔,并将多个上述时间间隔的平均值确定为上述编译程序文件的更新时间间隔,其中,多个上述时间间隔包括上述第一时间间隔和第二时间间隔,上述第二时间间隔为上述编译程序文件的相邻两次版本的初始更新时间的时间间隔。
122.可选地,比对各组上述第一数据校验和与上述第二数据校验和,包括:按照预设顺序依次比对各组上述第一数据校验和与上述第二数据校验和,上述预设顺序为按照上述目标分区的上述更新时间间隔范围从高到低依次比对的顺序。
123.可选地,在获取多个第一数据校验和之前,上述方法还包括:获取各上述编译程序文件的文件类型,上述编译程序文件的文件类型包括函数文件和非函数文件,上述非函数文件包括音频文件和视频文件;根据各上述编译程序文件的文件类型,将相同类型的第一存储区域中的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区。
124.可选地,在获取多个第一数据校验和之前,上述方法还包括:获取上述目标分区在第一存储区域中的第一位置;根据上述第一位置确定上述更新分区在第二存储区域中的第二位置,其中,上述第一位置与上述第一存储区域的相对位置和上述第二位置与上述第二存储区域的相对位置相同。
125.可选地,上述方法还包括:获取上述第一数据校验和在上述目标分区中的第一目标位置;根据上述第一目标位置确定上述第二数据校验和在上述更新分区中的第二目标位置,上述第一目标位置与上述目标分区的相对位置和上述第二目标位置与上述更新分区的相对位置相同。
126.可选地,上述目标分区中任意两个上述编译程序文件不同,任意两个上述目标分区中的上述编译程序文件也不同,上述更新分区中任意两个上述更新编译程序文件不同,任意两个上述更新分区中的上述更新编译程序文件也不同。
127.本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述程序文件的更新方法。
128.具体地,程序文件的更新方法包括:
129.步骤s201:获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和;
130.步骤s202:获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和;
131.步骤s203:比对各组上述第一数据校验和与上述第二数据校验和,在上述第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版本文件更新为新版本文件。
132.其中,上述目标分区中任意两个上述编译程序文件不同,任意两个上述目标分区中的上述编译程序文件也不同,上述更新分区中任意两个上述更新编译程序文件不同,任意两个上述更新分区中的上述更新编译程序文件也不同。
133.可选地,在获取多个第一数据校验和之前,上述方法还包括:获取各上述编译程序文件的更新时间间隔;根据各上述编译程序文件的更新时间间隔,将处于相同的更新时间间隔范围的第一存储区域中的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区。
134.可选地,获取各上述编译程序文件的更新时间间隔,包括:在上述编译程序文件在历史时间段内仅更新过一次的情况下,将第一时间间隔确定为上述编译程序文件的更新时间间隔,上述第一时间间隔为上述编译程序文件的第一版本的发布时间与上述编译程序文件的第二版本的初始更新时间之间的时间间隔;在上述编译程序文件在历史时间段内更新过多次的情况下,获取上述编译程序文件的多个时间间隔,并将多个上述时间间隔的平均值确定为上述编译程序文件的更新时间间隔,其中,多个上述时间间隔包括上述第一时间间隔和第二时间间隔,上述第二时间间隔为上述编译程序文件的相邻两次版本的初始更新时间的时间间隔。
135.可选地,比对各组上述第一数据校验和与上述第二数据校验和,包括:按照预设顺序依次比对各组上述第一数据校验和与上述第二数据校验和,上述预设顺序为按照上述目标分区的上述更新时间间隔范围从高到低依次比对的顺序。
136.可选地,在获取多个第一数据校验和之前,上述方法还包括:获取各上述编译程序文件的文件类型,上述编译程序文件的文件类型包括函数文件和非函数文件,上述非函数文件包括音频文件和视频文件;根据各上述编译程序文件的文件类型,将相同类型的第一存储区域中的上述编译程序文件划分为同一个上述目标分区,得到多个上述目标分区。
137.可选地,在获取多个第一数据校验和之前,上述方法还包括:获取上述目标分区在第一存储区域中的第一位置;根据上述第一位置确定上述更新分区在第二存储区域中的第二位置,其中,上述第一位置与上述第一存储区域的相对位置和上述第二位置与上述第二存储区域的相对位置相同。
138.可选地,上述方法还包括:获取上述第一数据校验和在上述目标分区中的第一目标位置;根据上述第一目标位置确定上述第二数据校验和在上述更新分区中的第二目标位置,上述第一目标位置与上述目标分区的相对位置和上述第二目标位置与上述更新分区的相对位置相同。
139.可选地,上述目标分区中任意两个上述编译程序文件不同,任意两个上述目标分区中的上述编译程序文件也不同,上述更新分区中任意两个上述更新编译程序文件不同,任意两个上述更新分区中的上述更新编译程序文件也不同。
140.本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,本文中的设备可以是服务器、pc、pad、手机等。处理器执行程序时实现上述程序文件的更新方法的步骤。
141.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少程序文件的更新方法步骤的程序。
142.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
143.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
144.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
145.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
146.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
147.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
148.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
149.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除
可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
150.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
151.从以上的描述中,可以看出,本技术上述的实施例实现了如下技术效果:
152.1)、本技术的上述程序文件的更新方法,首先获取多个第一数据校验和,各第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,第一数据校验和与目标分区一一对应,各目标分区中包括至少一个编译程序文件,编译程序文件为原始程序文件经过编译后得到的编译文件,目标分区中编译程序文件为旧版本文件;然后获取多个第二数据校验和,各第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,第二数据校验和与更新分区一一对应,各更新分区中包括至少一个更新编译程序文件,更新编译程序文件为更新程序文件经过编译后得到的编译文件,更新分区与目标分区一一对应,更新分区中更新编译程序文件为新版本文件;最后比对各组第一数据校验和与第二数据校验和,在第一数据校验和与第二数据校验和不同的情况下,将目标分区中所有的编译程序文件更新为与目标分区对应的更新分区中的更新编译程序文件,以将旧版本文件更新为新版本文件。本技术通过对程序文件进行分区控制,无需增加存储空间,仅对相应分区中的程序文件进行刷写,减少程序文件固定地址区间二进制字节码的变化,以减少程序文件发生更新时的刷写时间,解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题。
153.2)、本技术的上述程序文件的更新装置,该装置包括:第一获取单元、第二获取单元和更新单元。第一获取单元用于获取多个第一数据校验和,各上述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,上述第一数据校验和与上述目标分区一一对应,各上述目标分区中包括至少一个上述编译程序文件,上述编译程序文件为原始程序文件经过编译后得到的编译文件,上述目标分区中编译程序文件为旧版本文件;第二获取单元用于获取多个第二数据校验和,各上述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,上述第二数据校验和与上述更新分区一一对应,各上述更新分区中包括至少一个上述更新编译程序文件,上述更新编译程序文件为更新程序文件经过编译后得到的编译文件,上述更新分区与上述目标分区一一对应,上述更新分区中更新编译程序文件为新版本文件;更新单元用于比对各组上述第一数据校验和与上述第二数据校验和,在上述第一数据校验和与上述第二数据校验和不同的情况下,将上述目标分区中所有的上述编译程序文件更新为与上述目标分区对应的上述更新分区中的上述更新编译程序文件,以将上述旧版本文件更新为新版本文件。该装置通过对程序文件进行分区控制,无需增加存储空间,仅对相应分区中的程序文件进行刷写,减少程序文件固定地址区间二进制字节码的变化,以减少程序文件发生更新时的刷写时间,解决现有的程序更新方法对
存储空间要求高、二进制字节码变化多且刷写时间长的问题。
154.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种程序文件的更新方法,其特征在于,包括:获取多个第一数据校验和,各所述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,所述第一数据校验和与所述目标分区一一对应,各所述目标分区中包括至少一个所述编译程序文件,所述编译程序文件为原始程序文件经过编译后得到的编译文件,所述目标分区中编译程序文件为旧版本文件;获取多个第二数据校验和,各所述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,所述第二数据校验和与所述更新分区一一对应,各所述更新分区中包括至少一个所述更新编译程序文件,所述更新编译程序文件为更新程序文件经过编译后得到的编译文件,所述更新分区与所述目标分区一一对应,所述更新分区中更新编译程序文件为新版本文件;比对各组所述第一数据校验和与所述第二数据校验和,在所述第一数据校验和与所述第二数据校验和不同的情况下,将所述目标分区中所有的所述编译程序文件更新为与所述目标分区对应的所述更新分区中的所述更新编译程序文件,以将所述旧版本文件更新为新版本文件。2.根据权利要求1所述的更新方法,其特征在于,在获取多个第一数据校验和之前,所述方法还包括:获取各所述编译程序文件的更新时间间隔;根据各所述编译程序文件的更新时间间隔,将处于相同的更新时间间隔范围的第一存储区域中的所述编译程序文件划分为同一个所述目标分区,得到多个所述目标分区。3.根据权利要求2所述的更新方法,其特征在于,获取各所述编译程序文件的更新时间间隔,包括:在所述编译程序文件在历史时间段内仅更新过一次的情况下,将第一时间间隔确定为所述编译程序文件的更新时间间隔,所述第一时间间隔为所述编译程序文件的第一版本的发布时间与所述编译程序文件的第二版本的初始更新时间之间的时间间隔;在所述编译程序文件在历史时间段内更新过多次的情况下,获取所述编译程序文件的多个时间间隔,并将多个所述时间间隔的平均值确定为所述编译程序文件的更新时间间隔,其中,多个所述时间间隔包括所述第一时间间隔和第二时间间隔,所述第二时间间隔为所述编译程序文件的相邻两次版本的初始更新时间的时间间隔。4.根据权利要求2所述的更新方法,其特征在于,比对各组所述第一数据校验和与所述第二数据校验和,包括:按照预设顺序依次比对各组所述第一数据校验和与所述第二数据校验和,所述预设顺序为按照所述目标分区的所述更新时间间隔范围从高到低依次比对的顺序。5.根据权利要求1所述的更新方法,其特征在于,在获取多个第一数据校验和之前,所述方法还包括:获取各所述编译程序文件的文件类型,所述编译程序文件的文件类型包括函数文件和非函数文件,所述非函数文件包括音频文件和视频文件;根据各所述编译程序文件的文件类型,将相同类型的第一存储区域中的所述编译程序文件划分为同一个所述目标分区,得到多个所述目标分区。6.根据权利要求1所述的更新方法,其特征在于,在获取多个第一数据校验和之前,所
述方法还包括:获取所述目标分区在第一存储区域中的第一位置;根据所述第一位置确定所述更新分区在第二存储区域中的第二位置,其中,所述第一位置与所述第一存储区域的相对位置和所述第二位置与所述第二存储区域的相对位置相同。7.根据权利要求1所述的更新方法,其特征在于,所述方法还包括:获取所述第一数据校验和在所述目标分区中的第一目标位置;根据所述第一目标位置确定所述第二数据校验和在所述更新分区中的第二目标位置,所述第一目标位置与所述目标分区的相对位置和所述第二目标位置与所述更新分区的相对位置相同。8.根据权利要求1所述的更新方法,其特征在于,所述目标分区中任意两个所述编译程序文件不同,任意两个所述目标分区中的所述编译程序文件也不同,所述更新分区中任意两个所述更新编译程序文件不同,任意两个所述更新分区中的所述更新编译程序文件也不同。9.一种程序文件的更新装置,其特征在于,包括:第一获取单元,用于获取多个第一数据校验和,各所述第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和,所述第一数据校验和与所述目标分区一一对应,各所述目标分区中包括至少一个所述编译程序文件,所述编译程序文件为原始程序文件经过编译后得到的编译文件,所述目标分区中编译程序文件为旧版本文件;第二获取单元,用于获取多个第二数据校验和,各所述第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和,所述第二数据校验和与所述更新分区一一对应,各所述更新分区中包括至少一个所述更新编译程序文件,所述更新编译程序文件为更新程序文件经过编译后得到的编译文件,所述更新分区与所述目标分区一一对应,所述更新分区中更新编译程序文件为新版本文件;更新单元,用于比对各组所述第一数据校验和与所述第二数据校验和,在所述第一数据校验和与所述第二数据校验和不同的情况下,将所述目标分区中所有的所述编译程序文件更新为与所述目标分区对应的所述更新分区中的所述更新编译程序文件,以将所述旧版本文件更新为新版本文件。10.一种电子设备,其特征在于,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至8中任意一项所述的程序文件的更新方法。
技术总结
本申请提供了一种程序文件的更新方法、程序文件的更新装置和电子设备。获取多个第一数据校验和,各第一数据校验和为目标分区中所有的编译程序文件的字节码的校验和;获取多个第二数据校验和,各第二数据校验和为更新分区中所有的更新编译程序文件的字节码的校验和;比对各组第一数据校验和与第二数据校验和,在第一数据校验和与第二数据校验和不同的情况下,将目标分区中所有的编译程序文件更新为与目标分区对应的更新分区中的更新编译程序文件,以将旧版本文件更新为新版本文件。本申请通过对程序文件进行分区控制,仅对相应分区中的程序文件进行刷写,解决现有的程序更新方法对存储空间要求高、二进制字节码变化多且刷写时间长的问题。长的问题。长的问题。
技术研发人员:孙潇 覃艳 袁训腾 王嘉坤
受保护的技术使用者:潍坊潍柴动力科技有限责任公司
技术研发日:2023.03.24
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种滚动轴承甩油的检测装置及列车的制作方法 下一篇:一种静态称重分拣设备的制作方法
