System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,特别涉及一种升级包的生成方法、安装方法、设备及存储介质。
技术介绍
1、手机、平板电脑、可穿戴设备等终端设备的系统或软件可以在供应商发布新版本后进行升级。目前的升级方法中主要采用的是单包升级策略,具体为,终端设备发起一次软件版本检测,服务器向该终端设备返回一个下载路径,以便终端设备根据该下载路径获得一个升级包,进而根据该升级包进行版本升级。
2、相关技术中,为了节省服务器的存储资源和终端设备下载升级包的时间,且降低开发成本,升级包通常为相邻两个版本之间的差分文件。比如,在制作系统或软件等待升级对象的升级包时,可以先获取待升级对象的第一安装包和第二安装包,第二安装包的版本高于第一安装包的版本。然后,对第一安装包和第二安装包进行差分处理,得到差分文件,将差分文件打包到升级包中。终端设备获取到该升级包后,即可根据该升级包和存储的第一安装包进行还原处理,得到第二安装包,然后通过安装第二安装包实现版本升级。
3、但是,通过对第一安装包和第二安装包整体进行差分处理得到的升级包的数据量仍然较大,导致终端设备花费的下载时间较长,且要求终端设备的存储资源足够大,以满足升级包的下载和安装需求。
技术实现思路
1、本申请提供了一种升级包的生成方法、安装方法、设备及存储介质,可以在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,节省升级包的下载时间,以及降低对终端设备的存储资源的要求。所述技术方案如下:
2、第一方面,提供了一种升级包的生成方法
3、获取旧版本的安装包和新版本的安装包,对新旧版本的安装包分别进行切片,得到旧版本的安装包对应的第一切片序列,以及新版本的安装包对应的第二切片序列。第二切片序列中与第一切片序列中排序相同的切片组成一个切片对,第二切片序列中的多个切片与第一切片序列中的多个切片组成多个切片对。然后,根据多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据,数据处理至少包括跳过处理、异或处理或差分处理。之后,根据多个切片对中的每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包,升级包包括多个切片序号对应的升级包数据以及每个切片序号对应的数据处理类型信息。
4、其中,跳过处理是指不对对应切片对的数据进行处理,通过跳过处理得到的切片对对应的升级包数据为空。升级包中对应数据处理类型为跳过处理的升级包数据为空。异或处理是指按照切片对在不同位数的数据是否相同输出不同结果,即异或处理的处理结果用于指示切片对在不同位数的数据是否相同。比如,当切片对在某个位数的数据相同时,则异或处理结果的相应位数为第一数值,当切片对在某个位数的数据不同时,则异或处理结果在相应位数为第二数值。差分处理是指确定切片对中两个切片的数据差异,即差分处理的结果用于反映每个切片对的数据差异。
5、本申请实施例中,在制作升级包时,可以先对新旧版本的安装包进行切片,然后根据新旧版本对应的各个切片对的数据相似度,对各个切片对分别进行差分处理、异或处理或跳过处理,比如在数据相同时进行跳过处理,在数据相似度较高时进行异或处理,在数据相似度较低时进行差分处理。而不是对新旧版本对应的所有切片对均进行差分处理。通过根据切片对的数据相似度进行差异性处理,可以克服对所有切片对均进行差分处理存在的缺陷,在较大程度上减小升级包的数据量,生成数据量相对较小的升级包,进一步节省升级包的下载时间,以及降低对终端设备的存储资源的要求。
6、作为一个示例,多个切片对中包括第一切片对,第一切片对由第一切片序列中的第一切片和所述第二切片序列中的第二切片组成。根据多个切片对中的每个切片对的数据相似度对每个切片对进行数据处理,得到每个切片对对应的升级包数据的操作可以包括如下几种情况:
7、第一种情况:若第一切片与第二切片的数据相同,则对第一切片对进行跳过处理,第一切片对对应的升级包数据为空。
8、本申请实施例中,对于数据相同的切片对,可以不对这个切片对进行处理,后续可以直接利用旧版本的切片进行数据安装。
9、第二种情况:若第一切片与第二切片的数据不同且数据相似度大于或等于第一阈值,即数据高度相似,则对第一切片对进行异或处理,得到第一数据,根据第一数据确定第一切片对对应的升级包数据。
10、本申请实施例中,对于数据高度相似的切片对,可以对这个切片对进行异或处理,通过异或处理结果指示这个切片对中哪部分数据相同,哪部分数据不同。
11、作为一个示例,对第一切片对进行异或处理,得到第一数据的操作包括:对第一切片和第二切片中对应字节位置的数据进行异或处理,得到第一数据。
12、其中,若第一切片和第二切片对应字节位置的数据相同,则第一数据的对应字节位置的数据为第一数值,若第一切片和第二切片对应字节位置的数据不同,则第一数据的对应字节位置的数据为第二数值。也即是,若第一切片和第二切片在相同的某个字节位置的数据相同,则在第一数据的相同字节位置输出第一数值;若第一切片和第二切片在相同的某个字节位置的数据不同,则在第一数据的相同字节位置输出第二数值。
13、作为一个示例,若第一切片对的数据不是二进制数据,可以先将第一切片对的数据转换为二进制数据,再对转换为二进制数据的第一切片对进行异或处理。例如,对第一切片和第二切片中对应字节位置的数据进行异或处理的操作包括以下两种情况:
14、若第一切片的数据和第二切片的数据均为二进制数据,则对第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据。其中,若第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1。
15、若第一切片和第二切片中的至少一个切片的数据不是二进制数据,则将第一切片和第二切片中不是二进制数据的切片的数据转换为二进制数据,对转换为二进制数据后的第一切片和第二切片中对应字节位置的二进制数值进行异或处理,得到第一数据。其中,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值相同,则第一数据的对应字节位置的数值为0,若转换为二进制数据后的第一切片和第二切片对应字节位置的数值不同,则第一数据的对应字节位置的数值为1。
16、作为一个示例,根据第一数据确定第一切片对对应的升级包数据的操作可以包括:将第一数据确定为第一切片对对应的升级包数据。或者,对第一数据进行压缩处理,得到第三数据,将第三数据确定为第一切片对应的升级包数据。
17、第三种情况:若第一切片与第二切片的数据相似度小于第一阈值,即数据差异较大,则对第一切片对进行差分处理,得到第二数据,根据第二数据确定第一切片对对应的升级包数据。
18、其中,第二数据为差分处理结果,即第一切片对的差分文件。
19、本申请实施例中,若第一切片与本文档来自技高网...
【技术保护点】
1.一种升级包的生成方法,其特征在于,应用于第一设备,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述多个切片对中包括第一切片对,所述第一切片对由所述第一切片序列中的第一切片和所述第二切片序列中的第二切片组成;
3.如权利要求2所述的方法,其特征在于,所述对所述第一切片对进行异或处理,得到第一数据,包括:
4.如权利要求3所述的方法,其特征在于,所述对所述第一切片和所述第二切片中对应字节位置的数据进行异或处理,得到所述第一数据,包括:
5.如权利要求2-4任一所述的方法,其特征在于,所述根据所述第一数据确定所述第一切片对对应的升级包数据,包括:
6.如权利要求5所述的方法,其特征在于,所述第一数据为二进制数据,所述对所述第一数据进行压缩处理,得到第三数据,包括:
7.如权利要求2-6任一所述的方法,其特征在于,所述根据所述第二数据确定所述第一切片对对应的升级包数据,包括:
8.如权利要求1-7任一所述的方法,其特征在于,所述根据所述多个切片对中的每个切片对的切片序号、以及每个切片对对应
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
10.如权利要求9所述的方法,其特征在于,
11.如权利要求8-10任一所述的方法,其特征在于,每个切片序号指示的切片对对应的升级包数据在所述初始数据包的数据信息中的存储位置信息为每个切片序号指示的切片对对应的升级包数据在所述初始数据包的数据信息中的增量偏移。
12.一种升级包的安装方法,其特征在于,应用于第二设备,所述方法包括:
13.根据权利要求12所述的方法,其特征在于,所述多个切片序号为所述第一切片序列与第二切片序列中排序相同的切片组成的多个切片对的切片序号,所述第二切片序列是对版本高于所述第一安装包的第二安装包进行切片得到,所述多个切片序号中的每个切片序号对应的升级包数据是根据对应切片对的数据相似度对对应切片对进行数据处理得到,所述数据处理至少包括跳过处理、异或处理或差分处理,对应数据处理类型为跳过处理的升级包数据为空。
14.如权利要求12或13所述的方法,其特征在于,所述升级包的头信息包括所述多个切片序号中每个切片序号对应的数据处理类型和对应的升级包数据在所述升级包的数据信息中的存储位置信息,所述升级包的数据信息存储有所述多个切片序号中每个切片序号对应的升级包数据;
15.如权利要求14所述的方法,其特征在于,所述升级包的头信息还包括切片尺寸;
16.如权利要求12-15任一所述的方法,其特征在于,所述根据所述多个切片序号对应的安装包数据,生成所述第二安装包,包括:
17.如权利要求12-16任一所述的方法,其特征在于,所述获取升级包,包括:
18.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-11或权利要求12-17任意一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-11或权利要求12-17中任意一项所述的方法。
...【技术特征摘要】
1.一种升级包的生成方法,其特征在于,应用于第一设备,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述多个切片对中包括第一切片对,所述第一切片对由所述第一切片序列中的第一切片和所述第二切片序列中的第二切片组成;
3.如权利要求2所述的方法,其特征在于,所述对所述第一切片对进行异或处理,得到第一数据,包括:
4.如权利要求3所述的方法,其特征在于,所述对所述第一切片和所述第二切片中对应字节位置的数据进行异或处理,得到所述第一数据,包括:
5.如权利要求2-4任一所述的方法,其特征在于,所述根据所述第一数据确定所述第一切片对对应的升级包数据,包括:
6.如权利要求5所述的方法,其特征在于,所述第一数据为二进制数据,所述对所述第一数据进行压缩处理,得到第三数据,包括:
7.如权利要求2-6任一所述的方法,其特征在于,所述根据所述第二数据确定所述第一切片对对应的升级包数据,包括:
8.如权利要求1-7任一所述的方法,其特征在于,所述根据所述多个切片对中的每个切片对的切片序号、以及每个切片对对应的数据处理类型和升级包数据,生成升级包,包括:
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
10.如权利要求9所述的方法,其特征在于,
11.如权利要求8-10任一所述的方法,其特征在于,每个切片序号指示的切片对对应的升级包数据在所述初始数据包的数据信息中的存储位置信息为每个切片序号指示的切片对对应的升级包数据在所述初始数据包的数据信息中的增量偏移。
12.一种升级包的安装方法,其特征在于,应...
【专利技术属性】
技术研发人员:陈超,张赠辉,王艳召,黄九林,
申请(专利权)人:荣耀终端有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。