本申请涉及软件,特别是涉及一种升级版本包的确定方法、装置、设备、介质及产品。
背景技术:
1、随着计算机技术的快速发展,物联网(internet of things,iot)、微控制器单元(microcontroller unit,mcu)等嵌入式设备被广泛应用于各个领域。为了修补原有设备中存在的故障或者安全漏洞,同时给设备增加一些新的功能和特性,空中下载技术(over-the-air technology,ota)的升级功能变得越来越重要。这些设备往往运行内存和存储空间都比较小,无法在设备中存放一个完整的新版本,所以一般都采用差分升级的方案。通过差分算法比对升级前的旧版本、期望升级到的目标版本的差异,生成一个差分包,上传服务器端。终端设备通过各种方式获取差分包后,和本地的版本一起通过逆差分算法还原出升级的目标版本,更新到本地存储空间去,完成版本升级。
2、现有技术是直接生成升级版本包,然而这种直接生成的方式,对于生成的升级版本包来说,即使是细微的修改,如字符串长度变化或函数大小调整,也会导致连锁反应,从而导致生成的升级版本包与旧版本包的差异较大。
技术实现思路
1、本申请提供的一种升级版本包的确定方法、装置、设备、介质及产品,能够减少升级版本包和旧版本包之间的差异。
2、第一方面,本申请实施例提供一种升级版本包的确定方法,方法包括:
3、从旧版本的第一版本包中获取第一排列信息,第一排列信息包括第一版本包中每个第一数据的第一内存大小,以及每个第一数据的第一存储位置;
4、对预获取的初始升级版本包进行编译,得到初始升级版本包中每个第二数据的第二内存大小,第一数据的数据类型与第二数据的数据类型相对应;
5、基于每个第一数据的第一内存大小与每个第二数据的第二内存大小之间的一一大小关系,以及每个第一数据的第一存储位置,确定每个第二数据在初始升级版本包中的目标存储位置;
6、将每个第二数据按照目标存储位置存储在初始升级版本包中,得到目标升级版本包。
7、第二方面,本申请提供一种升级版本包的确定装置,该装置包括:
8、获取模块,用于从旧版本的第一版本包中获取第一排列信息,第一排列信息包括第一版本包中每个第一数据的第一内存大小,以及每个第一数据的第一存储位置;
9、第一确定模块,用于对预获取的初始升级版本包进行编译,得到初始升级版本包中每个第二数据的第二内存大小,第一数据的数据类型与第二数据的数据类型相对应;
10、第二确定模块,用于基于每个第一数据的第一内存大小与每个第二数据的第二内存大小之间的一一大小关系,以及每个第一数据的第一存储位置,确定每个第二数据在初始升级版本包中的目标存储位置;
11、生成模块,用于将每个第二数据按照目标存储位置存储在初始升级版本包中,得到目标升级版本包。
12、第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;
13、处理器执行计算机程序指令时实现如第一方面中任意一个实施例中的升级版本包的确定方法。
14、第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面中任意一个实施例中的升级版本包的确定方法。
15、第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行实现如上述第一方面中任意一个实施例中的升级版本包的确定方法。
16、在本申请实施例提供的一种升级版本包的确定方法、装置、设备、介质及产品中,通过从旧版本的第一版本包中获取第一排列信息,第一排列信息包括第一版本包中每个第一数据的第一内存大小,以及每个第一数据的第一存储位置;对预获取的初始升级版本包进行编译,得到初始升级版本包中每个第二数据的第二内存大小,第一数据的数据类型与第二数据的数据类型相对应;基于每个第一数据的第一内存大小与每个第二数据的第二内存大小之间的一一大小关系,以及每个第一数据的第一存储位置,确定每个第二数据在初始升级版本包中的目标存储位置;将每个第二数据按照目标存储位置存储在初始升级版本包中,得到目标升级版本包。上述方式,通过每个第一数据的内存大小与每个第二数据的内存大小之间的大小关系以及每个第一数据的存储位置,精确确定每个第二数据在初始升级版本包中的目标存储位置,从而使得新版本包在存储上更加接近旧版本,有效减小了升级版本包与旧版本包之间的差异。
1.一种升级版本包的确定方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于每个第一数据的第一内存大小与每个第二数据的第二内存大小之间的一一大小关系,以及每个第一数据的第一存储位置,确定所述每个第二数据在所述初始升级版本包中的目标存储位置,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于每个第一数据的第一内存大小与每个第二数据的第二内存大小之间的一一大小关系,以及每个第一数据的第一存储位置,确定所述每个第二数据在所述初始升级版本包中的目标存储位置,还包括:
4.根据权利要求2所述的方法,其特征在于,所述对于所述每个第二数据中的任意一个第一子数据,在所述第一子数据的第二内存大小大于所述第一子数据对应的第二子数据的第一内存大小的情况下,基于所述每个第一数据的第一存储位置,以及所述每个第二数据的第二内存大小,确定所述第一子数据的第二存储位置,包括:
5.根据权利要求4所述的方法,其特征在于,所述在所述第一内存空间小于所述第一子数据的第二内存大小的情况下,基于所述第一子数据的影响因子,确定所述第一子数据的所述第二存储位置,包括:
6.根据权利要求5所述的方法,其特征在于,所述将所述每个第二数据按照所述目标存储位置存储在所述初始升级版本中,得到目标升级版本包,包括:
7.一种升级版本包的确定装置,其特征在于,所述装置包括:
8.一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-6任意一项所述的升级版本包的确定方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-6任意一项所述的升级版本包的确定方法。