CN102831001A - 软件升级包的制作方法及装置、程序的升级方法及设备 - Google Patents

软件升级包的制作方法及装置、程序的升级方法及设备 Download PDF

Info

Publication number
CN102831001A
CN102831001A CN2012103346163A CN201210334616A CN102831001A CN 102831001 A CN102831001 A CN 102831001A CN 2012103346163 A CN2012103346163 A CN 2012103346163A CN 201210334616 A CN201210334616 A CN 201210334616A CN 102831001 A CN102831001 A CN 102831001A
Authority
CN
China
Prior art keywords
old program
content
decompress files
upgrade package
software upgrade
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012103346163A
Other languages
English (en)
Other versions
CN102831001B (zh
Inventor
党志立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Beny Wave Science and Technology Co Ltd
Original Assignee
Beijing Beny Wave Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Beny Wave Science and Technology Co Ltd filed Critical Beijing Beny Wave Science and Technology Co Ltd
Priority to CN201210334616.3A priority Critical patent/CN102831001B/zh
Publication of CN102831001A publication Critical patent/CN102831001A/zh
Application granted granted Critical
Publication of CN102831001B publication Critical patent/CN102831001B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种软件升级包的制作方法及装置、程序的升级方法及设备,其中,软件升级包的制作方法包括:获得旧程序的全部解压缩文件和新程序的全部解压缩文件;根据所述旧程序的全部解压缩文件以及所述新程序的全部解压缩文件,获得将所述旧程序升级为所述新程序的软件升级包。根据新、旧程序的全部解压缩文件之间的相同和不同进行软件升级包的制作,极大减少了软件升级包的大小,节约了在线获取软件升级包消耗的网络流量和费用,减少了服务提供方的下载压力。

Description

软件升级包的制作方法及装置、程序的升级方法及设备
技术领域
本发明涉及通信技术领域,尤其涉及一种软件升级包的制作方法及装置、程序的升级方法及设备。
背景技术
由于软件设计的复杂性,软件设计人员在设计软件时,常常不可避免地在软件中遗留一些比较危险的程序设计错误,如果在软件测试中无法发现,就会将存在错误的软件投入到市场中,给软件的用户带来不可预知的后果。软件升级是解决软件设计错误、提供更多服务的首选技术。为了更加方便软件用户进行软件升级,很多软件提供商会提供在线的软件升级服务,即软件的用户从网络上下载升级后的软件,并将下载的升级后的软件进行安装。
由于升级后的软件主要用于解决软件设计错误、提高更多服务,因此,相比较于升级之前的软件而言,很多内容是彼此重复的。然而作为一个完整的升级后的软件,又必须包含这一部分重复的内容,使得用户从网络下载升级后的软件需要耗费更多的时间和流量费用,给用户带来不必要的损失。
发明内容
本发明提供一种软件升级包的制作方法及装置、程序的升级方法及设备,用以解决现有技术中升级后的软件与升级前的软件存在内容上的重复,从而给用户带来的不必要的损失。
本发明提供的软件升级包的制作方法,包括:
获得旧程序的全部解压缩文件和新程序的全部解压缩文件;
根据所述旧程序的全部解压缩文件以及所述新程序的全部解压缩文件,获得将所述旧程序升级为所述新程序的软件升级包。
本发明提供的软件程序的升级方法,包括:
根据获得的软件升级包及旧程序的全部解压缩文件计算新打包文件,所述获得的软件升级包为利用所述软件升级包的制作方法制作生产的软件升级包;
对所述新打包文件进行解包,将解包后的新打包文件压缩得到新程序。
本发明提供的软件升级包的制作装置,包括:
解压模块,用于获得旧程序的全部解压缩文件和新程序的全部解压缩文件;
获得模块,用于根据所述旧程序的全部解压缩文件以及所述新程序的全部解压缩文件,获得将所述旧程序升级为所述新程序的软件升级包。
本发明提供的用户设备,包括:软件升级装置;
所述软件升级装置用于:根据获得的软件升级包及旧程序的全部解压缩文件计算新打包文件,所述获得的软件升级包为利用所述软件升级包的制作方法制作生产的软件升级包;对所述新打包文件进行解包,将解包后的新打包文件压缩得到新程序。
本发明提供的软件升级包的制作方法及装置、程序的升级方法及设备,根据新、旧程序的全部解压缩文件之间的相同和不同进行软件升级包的制作,极大减少了软件升级包的大小,节约了在线获取软件升级包消耗的网络流量和费用,减少了服务提供方的下载压力。使用上述软件升级包进行软件程序的升级,同样可以节约网络流量和费用,减少服务提供方的下载压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的软件升级包的制作方法流程图;
图2为本发明实施例中提供的软件升级包的结构示意图;
图3为本发明实施例提供的一种实现步骤102的方法流程图;
图4为本发明实施例提供的又一种实现步骤102的方法流程图;
图5为本发明实施例提供的再一种实现步骤102的方法流程图;
图6为本发明实施例提供的又一种软件升级包的制作方法流程图;
图7为本发明实施例提供的打包文件的结构示意图;
图8为本发明实施例提供的软件程序的升级方法流程图;
图9为本发明实施例提供的一种软件升级包的制作装置的结构示意图;
图10为本发明实施例提供的用户设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的软件升级包的制作方法流程图,如图1所示,该方法可以包括:
步骤101、软件升级包的制作装置获得旧程序的全部解压缩文件和新程序的全部解压缩文件。
其中,软件升级包的制作装置既可以是软件服务提供商的服务器,也可以是任意一台能够根据指令实现程序执行的计算机、用户设备等等,此处不做限定。
具体的,该步骤101可以包括两方面的内容,其一是:将旧程序解压缩,得到旧程序的压缩文件;将旧程序的压缩文件解压缩,得到旧程序的全部解压缩文件。其二是:将新程序解压缩,得到新程序的压缩文件;将新程序的压缩文件解压缩,得到新程序的全部解压缩文件。
步骤102、根据旧程序的全部解压缩文件以及新程序的全部解压缩文件,获得将旧程序升级为新程序的软件升级包。
本发明实施例提供的软件升级包的方法,通过对新、旧程序的全部文件进行解压缩,利用两者解压缩后文件进行匹配,找到两者之间的差异和相同,从而计算得到软件升级包,得到的软件升级包相比较与新程序,体积很小,极大地节省了网络占用和用户成本。
具体的,图2为上述方法实施例中提到的软件升级包的结构示意图,如图2所示,该软件升级包可以包括:控制区、相同区和差异区。其中,控制区中存储差分动作。根据控制区中的动作,对相同区和差异区进行数据提取。控制区中的动作可以采用三元组表示,包括相同区存取长度、差异区存取长度和其它信息。结合图2所示的软件升级包的结构示意图,图3为本发明实施例提供的一种实现步骤102的方法流程图,如图3所示,该步骤102具体可以包括:
步骤1021、将旧程序的全部解压缩文件以及旧程序的全部解压缩文件之间进行最长公共前缀匹配,得到匹配结果,匹配结果包括至少一个匹配内容和至少一个不匹配内容。
步骤1023、将每个匹配内容及其对应的长度进行数据压缩,压缩后的匹配内容作为软件升级包中相同区的内容;将每个不匹配内容及其对应的长度进行数据压缩,压缩后的不匹配内容作为软件升级包中差异区的内容;对于相同区的内容的差分动作和差异区的内容的差分动作,均记录在软件升级包中的控制区。
进一步的,为了降低软件差分包的体积,如图4所示的本发明实施例提供的又一种实现步骤102的方法流程图,在步骤1023之前,还可以包括:
步骤1022、对于每个匹配内容执行如下动作:将旧程序的全部解压缩文件中相应于匹配内容的部分,与新程序的全部解压缩文件中相应于匹配内容的部分按字节相减,得到新的字符串。
相应的,步骤1023中的“将每个匹配内容及其对应的长度进行数据压缩”可以更新为:将每个新的字符串及其对应的长度进行数据压缩。
进一步的,为了提高数据匹配的效率,如图5所示的本发明实施例提供的再一种实现步骤102的方法流程图,如图5所示,在步骤1021之前,还可以包括:
步骤1020、将旧程序的全部解压缩文件按字节索引。
例如,可以使用pat-array和后缀数组对旧程序的全部解压缩文件进行索引,本发明实施例以采用后缀数组进行索引的方式进行说明,步骤1020包括:
a、扫描旧程序的全部解压缩文件,计算字节频次,得到每个字节在文件中的出现次数。
b、计算累积字节频次,以便于为每个字节的所有出现计算间隔位置。
其中,累积字节频次可以理解为从第一个字节到最后一个字节,频次顺序相加。
c、构造一个与旧程序相同大小的位置数组,数组中的元素存储旧程序的每个字节的位置。
d、根据累积字节频次,扫描旧程序的全部压缩文件,把每个字节的所有出现位置写入位置数组中的邻接出现位置。
e、利用快速排序算法,对每个字节的所有出现开始的字符串进行排序,从而得到旧程序每个字节的位置索引,即得到了排序后的位置数组。
上述算法的伪代码如下:
Figure BDA00002123081500051
相应的,步骤1021可以包括:将按字节索引后的旧程序的全部解压缩文件,以及旧程序的全部解压缩文件之间进行最长公共前缀匹配,得到匹配结果,匹配结果包括至少一个匹配内容和至少一个不匹配内容。具体的:
a、利用折半查找算法查找公共前缀的长度。
例如,对新程序的全部解压缩文件中的当前字节t,通过排序后的位置数组可以找到t在旧程序的全部解压缩文件中的所有出现位置。通过匹配t所在字符串和旧程序的全部解压缩文件中的字符串,可以找到最长公共前缀。
b、利用找到的长度,比较升级后与旧程序的全部解压缩文件中完全匹配的字节数。
c、如果完全匹配的字节数大于一定阈值,则判断该片段内哪些是匹配的内容,哪些是不匹配的内容,存储匹配和不匹配的内容。
这里需要说明的是,程序之间的差异与一般字符串之间的差异并不一样,程序之间的差异除了指令差异以外,还包括内存单元的不同。不同版本的程序,前面部分对应单元之间的内存位置差异会导致后面其它单元的内存位置出现变化。升级后与待升级的程序中的内存单元位置差异很大,而指令变化很小,因此在程序字符串匹配过程中必须采用容忍失配的情况出现。在本发明实施例中,只要匹配的字符数高于一定阈值既可认为二者是同一段程序。如果匹配的字符数低于阈值,则认为这两段代码不是同一段代码。
其中,完全匹配的部分比较少,主要是程序指令。不匹配的部分中绝大部分是内存位置。这些不同的内存位置往往差异相同或相近。
为了进一步简化新、旧程序之间软件升级包的获得过程,图6为本发明实施例提供的又一种软件升级包的制作方法流程图,如图6所示,该方法步骤101之后,还可以包括:将旧程序的全部解压缩文件按照预设结构制作成一个打包文件;以及,将新程序的全部解压缩文件按照预设结构制作成一个打包文件。其中,全部解压缩文件中包括文件和目录,预设结构包括:用于控制文件或目录层次的字段、用于区分文件和目录的字段、用于记录文件名或目录名的字段、用于记录文件名或目录名长度的字段、用于记录文件长度的字段以及用于记录文件长度对应的字符串的字段。本发明实施例提供的打包文件的结构示意图可以如图7所示。其中的层次(level)用来控制文件或目录的层次;标签(tag)用来区分文件和目录,例如tag为0时指目录,tag为1时为文件。名称(name)表示文件或者目录的名称,名称长度(name_len)用来表示name的字节长度。数据(data)表示与数据长度(data_len)对应的字节串,data_len表示当tag为文件时,指文件的长度。文件打包的伪代码可以如下所示:
Figure BDA00002123081500061
Figure BDA00002123081500071
相应的,步骤102可以为:根据旧程序的打包文件和新程序的打包文件获得将旧程序升级为新程序的软件升级包。
图8为本发明实施例提供的软件程序的升级方法流程图,如图8所示,该方法包括:
步骤801、根据获得的软件升级包及旧程序的全部解压缩文件计算新打包文件,该获得的软件升级包为利用上述软件程序的制作方法制作生成的升级包。
具体的,软件升级包的结构决定了生成新打包文件的方法。当采用上述结构的软件升级包时,新打包文件的生成算法可以如下所示:
Figure BDA00002123081500072
首先从控制区提取长度信息。根据长度信息从相同区和差异区中提取对应长度的字节串。由于这些字节串经过了压缩,因此必须首先解压缩然后提取对应长度的字节串。通过控制区中的相同区存取长度,从旧程序中提取相关数据;通过差异区存取长度从差异区中提取差异数据信息;通过其它信息控制文件指针的位置,最终生成新打包文件。
步骤802、对新打包文件进行解包,将解包后的新打包文件压缩得到新程序。
具体的,对新打包文件进行解包:
A、读取level,判断当前所在目录层次。
B、读取tag,判断后面的部分是文件还是目录。
C、读取name_len,读取name。
D、如果tag=0,然后进入目录name,并且level+1。重新执行A。
E、如果tag=1,读取data_len,读取data。重新执行A。
由于新打包文件内的文件类型多样,因此必须根据文件的原有类型压缩,例如png压缩算法、jpg压缩算法;然后对所有文件再次压缩得到新程序。
本发明实施例提供的软件升级包的制作方法,根据新、旧程序的全部解压缩文件之间的相同和不同进行软件升级包的制作,极大减少了软件升级包的大小,节约了在线获取软件升级包消耗的网络流量和费用,减少了服务提供方的下载压力。
图9为本发明实施例提供的一种软件升级包的制作装置的结构示意图,该制作装置为执行上述制作方法的特定执行主体,因此,具体执行步骤可以参见上述方法实施例中的描述,此处不做赘述。如图9所示,该装置包括:解压模块901和获得模块902。其中,解压模块901用于获得旧程序的全部解压缩文件和新程序的全部解压缩文件,获得模块902用于根据旧程序的全部解压缩文件以及新程序的全部解压缩文件,获得将旧程序升级为新程序的软件升级包。
一种实施方式下,解压模块901可以包括:旧程序解压单元和新程序解压单元。其中,旧程序解压单元,用于将旧程序解压缩,得到旧程序的压缩文件;将旧程序的压缩文件解压缩,得到旧程序的全部解压缩文件;新程序解压单元,用于将新程序解压缩,得到新程序的压缩文件;新程序的压缩文件解压缩,得到新程序的全部解压缩文件。
一种实施方式下,软件升级包包括控制区、相同区和差异区,则获得模块902可以包括:匹配单元和构造单元。其中,匹配单元,用于将旧程序的全部解压缩文件以及旧程序的全部解压缩文件之间进行最长公共前缀匹配,得到匹配结果,匹配结果包括至少一个匹配内容和至少一个不匹配内容;构造单元,用于将每个匹配内容及其对应的长度进行数据压缩,压缩后的匹配内容作为软件升级包中相同区的内容;将每个不匹配内容及其对应的长度进行数据压缩,压缩后的不匹配内容作为软件升级包中差异区的内容;对于相同区的内容的差分动作和差异区的内容的差分动作,均记录在软件升级包中的控制区。
在上述实施方式的基础上,获得模块902还可以包括:压缩单元,用于对于每个匹配单元匹配的内容执行如下动作:将旧程序的全部解压缩文件中相应于匹配内容的部分,与新程序的全部解压缩文件中相应于匹配内容的部分按字节相减,得到新的字符串。
相应的,构造单元用于:将每个新的字符串及其对应的长度进行数据压缩;压缩后的内容作为软件升级包中相同区的内容;将每个不匹配内容及其对应的长度进行数据压缩,压缩后的不匹配内容作为软件升级包中差异区的内容;对于相同区的内容的差分动作和差异区的内容的差分动作,均记录在软件升级包中的控制区。
在上述实施方式的基础上,获得模块902还可以包括:索引单元,用于将旧程序的全部解压缩文件按字节索引;相应的,匹配单元用于:将按字节索引后的旧程序的全部解压缩文件,以及旧程序的全部解压缩文件之间进行最长公共前缀匹配。
一种实施方式的基础上,解压模块901还可以包括:打包单元,用于将旧程序的全部解压缩文件按照预设结构制作成一个打包文件;以及,将新程序的全部解压缩文件按照预设结构制作成一个打包文件;其中,全部解压缩文件中包括文件和目录,预设结构包括:用于控制文件或目录层次的字段、用于区分文件和目录的字段、用于记录文件名或目录名的字段、用于记录文件名或目录名长度的字段、用于记录文件长度的字段以及用于记录文件长度对应的字符串的字段;相应的,解压模块用于根据旧程序的打包文件和新程序的打包文件获得将旧程序升级为新程序的软件升级包。
本发明实施例提供的软件升级包的制作装置,根据新、旧程序的全部解压缩文件之间的相同和不同进行软件升级包的制作,极大减少了软件升级包的大小,节约了在线获取软件升级包消耗的网络流量和费用,减少了服务提供方的下载压力。
图10为本发明实施例提供的用户设备的结构示意图,该用户设备包括软件升级装置1001,该软件升级装置1001为上述软件程序的升级方法的特定执行主体,故升级方法如上所述,此处不做赘述。如图10所示,该软件升级装置1001用于:根据获得的软件升级包及旧程序的全部解压缩文件计算新打包文件,获得的软件升级包为利用软件升级包的制作方法制作生产的软件升级包;对新打包文件进行解包,将解包后的新打包文件压缩得到新程序。
需要说明的是,该用户设备可以为手机、掌上电脑等常用终端。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (15)

1.一种软件升级包的制作方法,其特征在于,包括:
获得旧程序的全部解压缩文件和新程序的全部解压缩文件;
根据所述旧程序的全部解压缩文件以及所述新程序的全部解压缩文件,获得将所述旧程序升级为所述新程序的软件升级包。
2.根据权利要求1所述的方法,其特征在于,所述获得旧程序的全部解压缩文件,包括:
将旧程序解压缩,得到所述旧程序的压缩文件;
将所述旧程序的压缩文件解压缩,得到旧程序的全部解压缩文件。
3.根据权利要求1所述的方法,其特征在于,所述获得新程序的全部解压缩文件,包括:
将新程序解压缩,得到所述新程序的压缩文件;
将所述新程序的压缩文件解压缩,得到新程序的全部解压缩文件。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述软件升级包包括控制区、相同区和差异区,则所述根据所述旧程序的全部解压缩文件以及所述新程序的全部解压缩文件,获得将所述旧程序升级为所述新程序的软件升级包,包括:
将旧程序的全部解压缩文件以及所述旧程序的全部解压缩文件之间进行最长公共前缀匹配,得到匹配结果,所述匹配结果包括至少一个匹配内容和至少一个不匹配内容;
将每个匹配内容及其对应的长度进行数据压缩,压缩后的匹配内容作为所述软件升级包中相同区的内容;将每个不匹配内容及其对应的长度进行数据压缩,压缩后的不匹配内容作为软件升级包中差异区的内容;对于所述相同区的内容的差分动作和所述差异区的内容的差分动作,均记录在所述软件升级包中的控制区。
5.根据权利要求4所述的方法,其特征在于,所述将每个匹配内容及其对应的长度进行数据压缩之前,所述方法还包括:对于每个匹配内容执行如下动作:
将旧程序的全部解压缩文件中相应于所述匹配内容的部分,与新程序的全部解压缩文件中相应于所述匹配内容的部分按字节相减,得到新的字符串;
相应的,所述将每个匹配内容及其对应的长度进行数据压缩,包括:
将每个新的字符串及其对应的长度进行数据压缩。
6.根据权利要求4所述的方法,其特征在于,所述将旧程序的全部解压缩文件以及所述旧程序的全部解压缩文件之间进行最长公共前缀匹配之前,所述方法还包括:
将所述旧程序的全部解压缩文件按字节索引;
相应的,所述将旧程序的全部解压缩文件以及所述旧程序的全部解压缩文件之间进行最长公共前缀匹配,包括:
将按字节索引后的所述旧程序的全部解压缩文件,以及所述旧程序的全部解压缩文件之间进行最长公共前缀匹配。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述获得旧程序的全部解压缩文件和新程序的全部解压缩文件之后,所述方法还包括:
将所述旧程序的全部解压缩文件按照预设结构制作成一个打包文件;以及,将所述新程序的全部解压缩文件按照预设结构制作成一个打包文件;
其中,全部解压缩文件中包括文件和目录,所述预设结构包括:用于控制文件或目录层次的字段、用于区分文件和目录的字段、用于记录文件名或目录名的字段、用于记录文件名或目录名长度的字段、用于记录文件长度的字段以及用于记录所述文件长度对应的字符串的字段;
相应的,所述根据所述旧程序的全部解压缩文件以及所述新程序的全部解压缩文件,获得将所述旧程序升级为所述新程序的软件升级包,包括:
根据所述旧程序的打包文件和所述新程序的打包文件获得将所述旧程序升级为所述新程序的软件升级包。
8.一种软件程序的升级方法,其特征在于,包括:
根据获得的软件升级包及旧程序的全部解压缩文件计算新打包文件,所述获得的软件升级包为利用所述权利要求1至7中任一项所述的软件升级包的制作方法制作生成的软件升级包;
对所述新打包文件进行解包,将解包后的新打包文件压缩得到新程序。
9.一种软件升级包的制作装置,其特征在于,包括:
解压模块,用于获得旧程序的全部解压缩文件和新程序的全部解压缩文件;
获得模块,用于根据所述旧程序的全部解压缩文件以及所述新程序的全部解压缩文件,获得将所述旧程序升级为所述新程序的软件升级包。
10.根据权利要求9所述的装置,其特征在于,所述解压模块包括:
旧程序解压单元,用于将旧程序解压缩,得到所述旧程序的压缩文件;将所述旧程序的压缩文件解压缩,得到旧程序的全部解压缩文件;
新程序解压单元,用于将新程序解压缩,得到所述新程序的压缩文件;将所述新程序的压缩文件解压缩,得到新程序的全部解压缩文件。
11.根据权利要求9或10中任一项所述的装置,其特征在于,所述软件升级包包括控制区、相同区和差异区,所述获得模块包括:
匹配单元,用于将旧程序的全部解压缩文件以及所述旧程序的全部解压缩文件之间进行最长公共前缀匹配,得到匹配结果,所述匹配结果包括至少一个匹配内容和至少一个不匹配内容;
构造单元,用于将每个匹配内容及其对应的长度进行数据压缩,压缩后的匹配内容作为所述软件升级包中相同区的内容;将每个不匹配内容及其对应的长度进行数据压缩,压缩后的不匹配内容作为软件升级包中差异区的内容;对于所述相同区的内容的差分动作和所述差异区的内容的差分动作,均记录在所述软件升级包中的控制区。
12.根据权利要求11所述的装置,其特征在于,所述获得模块还包括:
压缩单元,用于对于每个匹配单元匹配的内容执行如下动作:
将旧程序的全部解压缩文件中相应于所述匹配内容的部分,与新程序的全部解压缩文件中相应于所述匹配内容的部分按字节相减,得到新的字符串;
相应的,所述构造单元用于:将每个新的字符串及其对应的长度进行数据压缩;压缩后的内容作为所述软件升级包中相同区的内容;将每个不匹配内容及其对应的长度进行数据压缩,压缩后的不匹配内容作为软件升级包中差异区的内容;对于所述相同区的内容的差分动作和所述差异区的内容的差分动作,均记录在所述软件升级包中的控制区。
13.根据权利要求11所述的装置,其特征在于,所述获得模块还包括:
索引单元,用于将所述旧程序的全部解压缩文件按字节索引;
相应的,所述匹配单元用于:将按字节索引后的所述旧程序的全部解压缩文件,以及所述旧程序的全部解压缩文件之间进行最长公共前缀匹配。
14.根据权利要求9或10中任一项所述的装置,其特征在于,所述解压模块还包括:打包单元,用于将所述旧程序的全部解压缩文件按照预设结构制作成一个打包文件;以及,将所述新程序的全部解压缩文件按照预设结构制作成一个打包文件;其中,全部解压缩文件中包括文件和目录,所述预设结构包括:用于控制文件或目录层次的字段、用于区分文件和目录的字段、用于记录文件名或目录名的字段、用于记录文件名或目录名长度的字段、用于记录文件长度的字段以及用于记录所述文件长度对应的字符串的字段;相应的,所述解压模块用于根据所述旧程序的打包文件和所述新程序的打包文件获得将所述旧程序升级为所述新程序的软件升级包。
15.一种用户设备,其特征在于,包括:软件升级装置;
所述软件升级装置用于:根据获得的软件升级包及旧程序的全部解压缩文件计算新打包文件,所述获得的软件升级包为利用所述软件升级包的制作方法制作生产的软件升级包;对所述新打包文件进行解包,将解包后的新打包文件压缩得到新程序。
CN201210334616.3A 2012-09-11 2012-09-11 软件升级包的制作方法及装置、程序的升级方法及设备 Expired - Fee Related CN102831001B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210334616.3A CN102831001B (zh) 2012-09-11 2012-09-11 软件升级包的制作方法及装置、程序的升级方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210334616.3A CN102831001B (zh) 2012-09-11 2012-09-11 软件升级包的制作方法及装置、程序的升级方法及设备

Publications (2)

Publication Number Publication Date
CN102831001A true CN102831001A (zh) 2012-12-19
CN102831001B CN102831001B (zh) 2015-09-16

Family

ID=47334150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210334616.3A Expired - Fee Related CN102831001B (zh) 2012-09-11 2012-09-11 软件升级包的制作方法及装置、程序的升级方法及设备

Country Status (1)

Country Link
CN (1) CN102831001B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014180425A1 (zh) * 2013-12-16 2014-11-13 中兴通讯股份有限公司 文件系统升级包制作方法、升级方法及装置、终端
CN104252364A (zh) * 2013-06-25 2014-12-31 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
CN105094924A (zh) * 2015-08-21 2015-11-25 华为技术有限公司 镜像文件的导入方法及装置
CN105468396A (zh) * 2014-09-11 2016-04-06 深圳Tcl数字技术有限公司 差分包生成方法、升级方法、生成装置及Linux终端
CN105867934A (zh) * 2016-04-13 2016-08-17 厦门雅迅网络股份有限公司 一种基于二分法和md5校验的文件远程升级方法
CN106406872A (zh) * 2016-09-06 2017-02-15 广东欧珀移动通信有限公司 一种基于特定文件的差分升级包的制作方法及装置
CN106843855A (zh) * 2016-12-29 2017-06-13 北京市天元网络技术股份有限公司 一种汇总文件的打包方法及装置
CN107239309A (zh) * 2017-06-06 2017-10-10 网易(杭州)网络有限公司 补丁生成方法及装置、更新方法、电子设备、存储介质
CN107368290A (zh) * 2016-05-12 2017-11-21 阿里巴巴集团控股有限公司 确定增量数据方法及装置、更新数据包方法、装置及系统
CN110244973A (zh) * 2018-03-09 2019-09-17 高德信息技术有限公司 数据更新包的生成方法、装置及数据更新方法、装置
CN111506593A (zh) * 2020-04-24 2020-08-07 东莞市精驰软件有限公司 软件系统数据升级方法、装置、设备及存储介质
WO2020211712A1 (zh) * 2019-04-17 2020-10-22 华为技术有限公司 补丁方法、相关装置及系统
CN112416386A (zh) * 2020-10-26 2021-02-26 北京一亩田新农网络科技有限公司 软件升级的方法、装置、系统以及介质
CN114924761A (zh) * 2022-04-20 2022-08-19 苏州吾爱易达物联网有限公司 一种物联网设备升级方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101334736A (zh) * 2007-06-28 2008-12-31 索尼爱立信移动通信日本株式会社 软件更新方法和便携式终端设备
CN101420431A (zh) * 2008-11-28 2009-04-29 中兴通讯股份有限公司 Fota服务器、终端及其软件版本的处理方法和系统
CN101739278A (zh) * 2009-12-17 2010-06-16 中国电力科学研究院 一种企业级应用软件升级方法及系统
JP2010287055A (ja) * 2009-06-11 2010-12-24 Ricoh Co Ltd 情報処理装置、データ変換方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101334736A (zh) * 2007-06-28 2008-12-31 索尼爱立信移动通信日本株式会社 软件更新方法和便携式终端设备
CN101420431A (zh) * 2008-11-28 2009-04-29 中兴通讯股份有限公司 Fota服务器、终端及其软件版本的处理方法和系统
JP2010287055A (ja) * 2009-06-11 2010-12-24 Ricoh Co Ltd 情報処理装置、データ変換方法及びプログラム
CN101739278A (zh) * 2009-12-17 2010-06-16 中国电力科学研究院 一种企业级应用软件升级方法及系统

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252364A (zh) * 2013-06-25 2014-12-31 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
CN104252364B (zh) * 2013-06-25 2017-09-12 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
WO2014180425A1 (zh) * 2013-12-16 2014-11-13 中兴通讯股份有限公司 文件系统升级包制作方法、升级方法及装置、终端
US10204108B2 (en) 2013-12-16 2019-02-12 Xi'an Zhongxing New Software Co., Ltd. Method and apparatus for manufacturing file system update package, method and apparatus for updating file system update package, and terminal
CN105468396A (zh) * 2014-09-11 2016-04-06 深圳Tcl数字技术有限公司 差分包生成方法、升级方法、生成装置及Linux终端
CN105094924B (zh) * 2015-08-21 2018-06-26 华为技术有限公司 镜像文件的导入方法及装置
CN105094924A (zh) * 2015-08-21 2015-11-25 华为技术有限公司 镜像文件的导入方法及装置
WO2017032170A1 (zh) * 2015-08-21 2017-03-02 华为技术有限公司 镜像文件的导入方法及装置
CN105867934A (zh) * 2016-04-13 2016-08-17 厦门雅迅网络股份有限公司 一种基于二分法和md5校验的文件远程升级方法
CN105867934B (zh) * 2016-04-13 2021-01-22 厦门雅迅网络股份有限公司 一种基于二分法和md5校验的文件远程升级方法
CN107368290A (zh) * 2016-05-12 2017-11-21 阿里巴巴集团控股有限公司 确定增量数据方法及装置、更新数据包方法、装置及系统
CN106406872A (zh) * 2016-09-06 2017-02-15 广东欧珀移动通信有限公司 一种基于特定文件的差分升级包的制作方法及装置
CN106843855B (zh) * 2016-12-29 2020-07-07 北京市天元网络技术股份有限公司 一种汇总文件的打包方法及装置
CN106843855A (zh) * 2016-12-29 2017-06-13 北京市天元网络技术股份有限公司 一种汇总文件的打包方法及装置
CN107239309A (zh) * 2017-06-06 2017-10-10 网易(杭州)网络有限公司 补丁生成方法及装置、更新方法、电子设备、存储介质
CN107239309B (zh) * 2017-06-06 2021-03-02 网易(杭州)网络有限公司 补丁生成方法及装置、更新方法、电子设备、存储介质
CN110244973A (zh) * 2018-03-09 2019-09-17 高德信息技术有限公司 数据更新包的生成方法、装置及数据更新方法、装置
CN110244973B (zh) * 2018-03-09 2022-09-16 阿里巴巴(中国)有限公司 数据更新包的生成方法、装置及数据更新方法、装置
WO2020211712A1 (zh) * 2019-04-17 2020-10-22 华为技术有限公司 补丁方法、相关装置及系统
US11797288B2 (en) 2019-04-17 2023-10-24 Huawei Technologies Co., Ltd. Patching method, related apparatus, and system
CN111506593A (zh) * 2020-04-24 2020-08-07 东莞市精驰软件有限公司 软件系统数据升级方法、装置、设备及存储介质
CN112416386A (zh) * 2020-10-26 2021-02-26 北京一亩田新农网络科技有限公司 软件升级的方法、装置、系统以及介质
CN114924761A (zh) * 2022-04-20 2022-08-19 苏州吾爱易达物联网有限公司 一种物联网设备升级方法和系统

Also Published As

Publication number Publication date
CN102831001B (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
CN102831001A (zh) 软件升级包的制作方法及装置、程序的升级方法及设备
CN112765271B (zh) 区块链交易索引的存储方法、装置、计算机设备及介质
US20200364429A1 (en) Two-dimensional code generation and identification
US9378126B2 (en) Decompression apparatus and decompression method
CN101859425A (zh) 一种提供应用列表的方法及装置
CN101286744B (zh) 自动生成压缩码表的方法和装置
US9244679B1 (en) Systems and methods for automatically identifying changes in deliverable files
CN110781155B (zh) 基于ipfs的数据存储读取方法、系统、设备和介质
CN108334609B (zh) Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质
CN102682017B (zh) 一种信息检索方法和系统
CN111095421B (zh) 基因文件的上下文感知增量算法
CN109561117A (zh) 数据采集方法及装置
CN101116074B (zh) 电子设备的通用解析器
CN112988770B (zh) 序列号更新的方法、装置、电子设备和存储介质
CN102737205A (zh) 保护包括可编辑元数据的文件
CN104881454A (zh) 参数的更新方法及系统
CN104978325B (zh) 一种网页处理方法、装置及用户终端
CN101727505B (zh) 一种高效的数据处理方法及装置
CN102624545A (zh) 网管系统的数据备份方法、装置和恢复方法、装置
CN110119386A (zh) 数据处理方法、数据处理装置、介质和计算设备
CN103970844A (zh) 大数据的写入方法和装置、读取方法和装置及处理系统
CN104090924B (zh) 一种隐私数据的清理方法和装置
CN103049445A (zh) 一种查询图片信息的方法、系统和图片状态服务器
CN103246750A (zh) 通过二维码进行搜索的方法及搜索引擎服务器
CN111078652A (zh) 物流箱码的归档压缩方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150916

Termination date: 20210911

CF01 Termination of patent right due to non-payment of annual fee