一种增量升级方法及相关装置的制造方法

文档序号:9646454阅读:224来源:国知局
一种增量升级方法及相关装置的制造方法
【技术领域】
[0001]本申请涉及数据处理技术领域,特别是涉及一种增量升级方法及相关装置。
【背景技术】
[0002]版本升级是指对操作系统或软件旧版本的漏洞进行完善,或者对软件添加新的应用功能的更新,使软件更加完善好用。增量升级为一种常用的版本升级方法,其基本原理为:服务器比较旧版本文件和新版本文件,生成用于记录所述旧版本文件和新版本文件之间的差异信息的增量文件;客户端下载所述增量文件,并将所述增量文件与自身的旧版本文件进行合并,得到对应的新版本文件,安装后该新版本文件后即完成版本升级。相对于通过下载整个新版本文件来执行升级的方式,上述增量升级方法消耗的数据流量更少、占用的时间更短、升级效率更高,因而得到广泛应用。
[0003]通常的,各个版本文件均为包含多个子文件的压缩文件;有鉴于此,传统的增量升级过程中主要通过直接比较法或解压比较法得到增量文件。
[0004]所述直接比较法即将旧版本文件和新版本文件分别作为一个整体文件直接进行比较;该方法比较效率较高,但得到的增量文件会很大,甚至接近新版本文件的大小,不利于客户端下载该增量文件。例如,相对于旧版本文件,新版本文件中相对应的每个子文件都未修改,只是更改了子文件的压缩顺序,但从整体文件的角度来看,两个文件仍然是完全不同的,故采用直接比较法得到的增量文件会很大。
[0005]所述解压比较法具体为:将旧版本文件和新版本文件中的子文件分别解压,对解压后得到的旧版本文件和新版本文件中相对应(如文件名相同)的子文件进行比较,得到增量文件。相对于直接比较法,解压比较法虽然可以解决子文件顺序改变导致的整体文件差异较大的问题,有效减小增量文件的大小,但是执行过程中一般需要执行几千次的解压缩、再压缩操作,导致升级效率较低。

【发明内容】

[0006]本申请实施例中提供了一种增量升级方法及相关装置,以解决常用增量升级方法无法兼顾增量文件大小和升级效率的问题。
[0007]为了解决上述技术问题,本申请实施例公开了如下技术方案:
[0008]本申请第一方面,提供一种增量升级方法,包括:
[0009]服务器对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的第三类子文件;
[0010]服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
[0011]客户端获取所述第一类子文件、所述第一差异数据以及所述第二差异数据;
[0012]客户端将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
[0013]结合第一方面,在本申请第一方面第一种可能的实现方式中,所述预设解压条件包括:文件压缩前的大小大于预设字节值,且压缩率小于预设比值;其中,所述压缩率为文件压缩后的大小与压缩前的大小之比。
[0014]结合第一方面,或者第一方面第一种可能的实现方式,在本申请第一方面第二种可能的实现方式中,客户端将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件,包括:客户端读取并存储所述第一差异数据中的文件数据头;读取旧版压缩文件中与第一差异数据对应的第二类子文件;对读取到的第二类子文件进行解压;将解压后的第二类子文件与所述第一差异数据合并,得到第一合并子文件;对所述文件数据头和第一合并子文件进行压缩,得到所述第一压缩子文件。
[0015]结合第一方面,或者第一方面第一种可能的实现方式,在本申请第一方面第三种可能的实现方式中,上述增量升级方法还包括:服务器接收客户端发送的文件升级请求;当接收到所述文件升级请求时,服务器执行所述对新版压缩文件和旧版压缩文件的分类处理。
[0016]本申请第二方面,提供一种增量升级方法,包括:
[0017]服务器对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的第三类子文件;
[0018]服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
[0019]服务器将所述第一类子文件、所述第一差异数据以及所述第二差异数据发送给客户端,以供所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
[0020]结合第二方面,在本申请第二方面第一种可能的实现方式中,上述增量升级方法还包括:服务器接收客户端发送的文件升级请求;当接收到所述文件升级请求时,服务器执行所述对新版压缩文件和旧版压缩文件的分类处理。
[0021]本申请第三方面,提供一种增量升级方法,包括:
[0022]客户端从服务器获取第一类子文件、第一差异数据以及第二差异数据;其中,所述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;所述第一差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;所述第二差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的子文件不解压直接进行差异比较得到的数据;
[0023]所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
[0024]结合第三方面,在本申请第三方面第一种可能的实现方式中,所述将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件,包括:客户端读取并存储所述第一差异数据中的文件数据头;读取旧版压缩文件中与第一差异数据对应的第二类子文件;对读取到的第二类子文件进行解压;将解压后的第二类子文件与所述第一差异数据合并,得到第一合并子文件;对所述文件数据头和第一合并子文件进行压缩,得到所述第一压缩子文件。
[0025]本申请第四方面,提供一种服务器,包括:
[0026]分类单元,用于对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的第三类子文件;
[0027]比较单元,用于对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
[0028]发送单元,用于将所述第一类子文件、所述第一差异数据以及所述第二差异数据发送给客户端,以供所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
[0029]本申请第五方面,提供一种客户端,包括:
[0030]获取单元,用于从服务器获取第一类子文件、第一差异数据以及第二差异数据;其中,所述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;所述第一差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;所述第二差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件不解压直接进行差异比较得到的数据;
[0031]合并单元,用于按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
[0032]由以上技术方案可见,本申请实施例中,服务器在生成增量文件时,首先将旧版压缩文件和新版压缩文件中的子文件分类,然后对不同类型的子文件执行不同的差异比较步骤,得到对应类型的差异数据:对于满足预设解压条件的子文件采用解压比较法执行差异比较,可以减小差异数据的大小,对于不满足预设解压条件的子文件采用直接比较法执行差异比较,可以提高差异比较的效率;进而客户端从服务器获取差异数据,并根据差异数据的类型,执行对差异数据和旧版压缩文件的合并操作,得到新版压缩文件,也可以提高合并操作的效率。因此,相对于传统单一的基于直接比较法或基于解压比较法实现的增量升级,本申请可以达到兼顾增量文件大小和升级效率两个方面的目的。
【附图说明】
[0033]为了更清楚地说明本申请实施例或现有技
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1