增量更新包的生成方法、装置和服务器与流程

文档序号:11154460阅读:547来源:国知局
增量更新包的生成方法、装置和服务器与制造工艺

本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及增量更新包的生成方法、装置和服务器。



背景技术:

在客户端进行应用更新时,为了节省客户端为下载新版本安装包所需的下载时间及流量,目前大都采用增量更新方式从服务器下载增量更新包。服务器通过二进制差异算法对新版本安装包与历史版本安装包做差量计算,生成增量更新包。然后,服务器在接收到客户端发来的更新请求时,将与客户端发来的当前版本号和目标版本号对应的增量更新包的下载地址发送给客户端,从而客户端可以下载增量更新包,并与当前安装包进行合并,生成新版本安装包,从而最终完成从当前版本号到目标版本号的升级。

然而,目前的增量更新方法中,服务器在生成增量更新包的过程中,不管新版本安装包中所包括的文件是文本文件还是二进制文件均按照统一的方式生成增量更新包,从而所生成的增量更新包较大,继而导致客户端下载增量更新包的时间较长和所需流量较大。



技术实现要素:

本申请的目的在于提出一种改进的增量更新包的生成方法、装置和服务器,来解决以上背景技术部分提到的技术问题。

第一方面,本申请实施例提供了一种增量更新包的生成方法,该方法包括:获取目标应用的新版本安装包和历史版本安装包;对于上述新版本安装包中的每个新版本安装文件,根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件;压缩所生成的各个差异文件,将压缩所得到的文件包作为上述目标应用的增量更新包。

在一些实施例中,上述文件类型为文本文件或者二进制文件;以及上述根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件,包括:确定该新版本安装文件的文件类型;响应于确定该新版本安装文件的文件类型为二进制文件,复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件,还包括:响应于确定该新版本安装文件的文件类型为文本文件,确定上述历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件;响应于确定上述历史版本安装包中不存在与该新版本安装文件的文件名相同的历史版本安装文件,则复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件,还包括:响应于确定上述历史版本安装包中存在与该新版本安装文件的文件名相同的历史版本安装文件,生成该新版本安装文件与上述历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件;判断所生成的差异文件的文件大小是否大于预设文件大小阈值;响应于所生成的差异文件的文件大小大于上述预设文件大小阈值,则复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件,还包括:响应于所生成的差异文件的文件大小不大于预设文件大小阈值,则将所生成的差异文件确定为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述方法还包括:接收客户端发来的更新请求,上述更新请求包括上述目标应用的当前版本号和目标版本号;根据上述当前版本号和上述目标版本号,确定上述目标应用的与上述当前版本号和上述目标版本号对应的增量更新包的下载地址;将上述增量更新包的下载地址发送给上述客户端,以使上述客户端根据上述增量更新包的下载地址下载上述目标应用的与上述当前版本号和上述目标版本号对应的增量更新包并进行增量更新操作。

在一些实施例中,上述方法还包括:接收客户端发来的回滚降级请求,上述回滚降级请求包括上述目标应用的回滚降级版本号,其中,上述回滚降级版本号低于上述客户端中安装的目标应用的当前版本号;获取上述目标应用的与上述回滚降级版本号对应的全量安装包的下载地址;将上述全量安装包的下载地址发送到上述客户端,以使上述客户端根据上述全量安装包的下载地址下载上述全量安装包并进行回滚降级操作。

第二方面,本申请实施例提供了一种增量更新包的生成装置,该装置包括:第一获取单元,配置用于获取目标应用的新版本安装包和历史版本安装包;生成单元,配置用于对于上述新版本安装包中的每个新版本安装文件,根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件;压缩单元,配置用于压缩所生成的各个差异文件,将压缩所得到的文件包作为上述目标应用的增量更新包。

在一些实施例中,上述文件类型为文本文件或者二进制文件;以及上述生成单元包括:第一确定模块,配置用于确定该新版本安装文件的文件类型;第一复制模块,配置用于响应于确定该新版本安装文件的文件类型为二进制文件,复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述生成单元还包括:第二确定模块,配置用于响应于确定该新版本安装文件的文件类型为文本文件,确定上述历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件;第二复制模块,配置用于响应于确定上述历史版本安装包中不存在与该新版本安装文件的文件名相同的历史版本安装文件,则复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述生成单元还包括:生成模块,配置用于响应于确定上述历史版本安装包中存在与该新版本安装文件的文件名相同的历史版本安装文件,生成该新版本安装文件与上述历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件;判断模块,配置用于判断所生成的差异文件的文件大小是否大于预设文件大小阈值;第三复制模块,配置用于响应于所生成的差异文件的文件大小大于上述预设文件大小阈值,则复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述生成单元还包括:第三确定模块,配置用于响应于所生成的差异文件的文件大小不大于预设文件大小阈值,则将所生成的差异文件确定为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。

在一些实施例中,上述装置还包括:更新请求接收单元,配置用于接收客户端发来的更新请求,上述更新请求包括上述目标应用的当前版本号和目标版本号;确定单元,配置用于根据上述当前版本号和上述目标版本号,确定上述目标应用的与上述当前版本号和上述目标版本号对应的增量更新包的下载地址;第一发送单元,配置用于将上述增量更新包的下载地址发送给上述客户端,以使上述客户端根据上述增量更新包的下载地址下载上述目标应用的与上述当前版本号和上述目标版本号对应的增量更新包并进行增量更新操作。

在一些实施例中,上述装置还包括:回滚降级请求接收单元,配置用于接收客户端发来的回滚降级请求,上述回滚降级请求包括上述目标应用的回滚降级版本号,其中,上述回滚降级版本号低于上述客户端中安装的目标应用的当前版本号;第二获取单元,配置用于获取上述目标应用的与上述回滚降级版本号对应的全量安装包的下载地址;第二发送单元,配置用于将上述全量安装包的下载地址发送到上述客户端,以使上述客户端根据上述全量安装包的下载地址下载上述全量安装包并进行回滚降级操作。

第三方面,本申请实施例提供了一种服务器,该服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。

本申请提供的增量更新包的生成方法和装置,通过获取目标应用的新版本安装包和历史版本安装包,然后对于上述新版本安装包中的每个新版本安装文件,根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件,最后压缩所生成的各个差异文件,将压缩所得到的文件包作为上述目标应用的增量更新包,从而在生成新版本安装文件与历史版本安装包中历史版本安装文件的差异文件的过程中,根据新版本安装文件的文件类型的不同采取不同的方法,减少了增量更新包的文件大小,继而减少了客户端下载增量更新包所需的时间和流量。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2a是根据本申请的增量更新包的生成方法的一个实施例的流程图;

图2b是图2a所示的流程图中步骤202的一种实现方式的流程图;

图2c是图2a所示的流程图中步骤202的另一种实现方式的流程图;

图3是根据本申请的增量更新包的生成方法的一个应用场景的示意图;

图4是根据本申请的增量更新包的生成方法的又一个实施例的流程图;

图5是根据本申请的增量更新包的生成装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的增量更新包的生成方法或增量更新包的生成装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。此外,终端设备101、102、103上还可以安装有用于管理(例如下载、更新、回滚降级、卸载等)上述终端设备所安装的各个应用的管理类应用。

终端设备101、102、103可以是支持应用下载、更新、回滚降级、卸载的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是为终端设备101、102、103上所安装的管理类应用提供支持的服务器。服务器105可以对接收到的更新请求等数据进行分析等处理,并将处理结果(例如增量更新包的下载地址)反馈给终端设备101、102、103。

需要说明的是,本申请实施例所提供的增量更新包的生成方法一般由服务器105执行,相应地,增量更新包的生成装置一般设置于服务器105中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

继续参考图2a,其示出了根据本申请的增量更新包的生成方法的一个实施例的流程200。该增量更新包的生成方法,包括以下步骤:

步骤201,获取目标应用的新版本安装包和历史版本安装包。

在本实施例中,增量更新包的生成方法运行于其上的电子设备(例如图1所示的服务器)可以获取目标应用的新版本安装包和历史版本安装包。其中,新版本安装包可以是对目标应用在历史版本安装包中的已有功能进行改善、增加新功能或者删除已有功能后所生成的。

实践中,目标应用的新版本安装包可以是对目标应用的各个新版本安装文件进行压缩后所得到的压缩包。目标应用的各个新版本安装文件可以包括可执行程序文件、脚本文件、配置文件以及图片文件、音频文件、视频文件等。同样,目标应用的历史版本安装包也可以是对目标应用的各个历史版本安装文件进行压缩后所得到的压缩包。目标应用的各个历史版本安装文件也可以包括可执行程序文件、脚本文件、配置文件以及图片文件、音频文件、视频文件等。另外,目标应用的新版本安装包和历史版本安装包可以有相应的版本号,版本号可以用于指示目标应用的新版本安装包或历史版本安装包的版本。

需要说明的是,上述电子设备可以通过有线或无线的方式从与其通信连接的其他电子设备获取目标应用的新版本安装包和历史版本安装包;还可以从本地获取本地存储的目标应用的新版本安装包和历史版本安装包。其中,本地存储的目标应用的新版本安装包和历史版本安装包可以是电子设备预先生成的,也可以是第三方服务器预先生成并发送给上述电子设备中的。本实施例对目标应用的新版本安装包和历史版本安装包的具体存储位置不进行限定。

步骤202,对于新版本安装包中的每个新版本安装文件,根据该新版本安装文件的文件类型生成该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实施例中,基于步骤201中得到的新版本安装包和历史版本安装包,上述电子设备(例如图1所示的服务器)可以首先获取新版本安装包中的每个新版本安装文件,然后,根据该新版本安装文件的文件类型生成该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

实践中,上述电子设备可以通过对目标应用的新版本安装包进行解压缩,从而得到新版本安装包中的各个新版本安装文件。同理,上述电子设备也可以通过对目标应用的历史版本安装包进行解压缩,从而得到目标应用的历史版本安装包中的各个历史版本安装文件。

需要说明的是,上述对压缩包进行解压缩的方法是目前广泛研究和应用的公知技术,在此不再赘述。

在本实施例的一些可选的实现方式中,上述文件类型可以为文本文件或者二进制文件。其中,文本文件是指专门用于存储文本字符的数据的文件,除文本文件之外的文件为二进制文件,例如,图片文件、音频文件、视频文件、可执行文件等等。

在本实施例的一些可选的实现方式中,如图2b所示,步骤202可以包括如下子步骤:

子步骤2021b,确定历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件,如果存在,转到子步骤2022b,如果不存在,转到子步骤2022b’。

子步骤2022b’,复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实现方式中,上述电子设备可以在子步骤2021b中确定历史版本安装包中不存在与该新版本安装文件的文件名相同的历史版本安装文件的情况下,表明该新版本安装文件相对历史版本安装包为增加的文件,因此,上述电子设备可以直接复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

子步骤2022b,确定该新版本安装文件的文件类型,如果该新版本安装文件的文件类型为二进制文件,转到子步骤2023b’,如果该新版本安装文件的文件类型为文本文件,转到子步骤2023b。

在本实现方式中,上述电子设备可以在子步骤2021b中确定历史版本安装包中存在与该新版本安装文件的文件名相同的历史版本安装文件的情况下,表明该新版本安装文件相对历史版本安装包为修改后的文件,因此,上述电子设备可以为该新版本安装文件生成与历史版本安装包中同名文件的差异文件。由于文件类型不同,相应的生成差异文件的算法也不相同。由于文本文件中存储的是字符数据,相应的文本文件差异算法一般都是基于字符比对。而二进制文件中存储的是二进制数据,相应的二进制差异算法不能是字符比对,而应是二进制比对。因此,在生成差异文件之前,上述电子设备可以先确定该新版本安装文件的文件类型。如果确定该新版本安装文件的文件类型为二进制文件,转到子步骤2023b’,如果该新版本安装文件的文件类型为文本文件,转到子步骤2023b。

子步骤2023b’,采用二进制差异算法生成该新版本安装文件与历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件,并将所生成的差异文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

作为示例,可以采用各种现有的二进制差异算法比较工具(例如,Beyond Compare,一套由Scooter Software推出的软件,主要用途是对比两个文件夹或者文件),对该新版本安装文件和历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件做差量计算,生成差异文件。

子步骤2023b,采用文本差异算法生成该新版本安装文件与历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件,并将所生成的差异文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

作为示例,可以采用各种现有的文本差异算法比较工具(例如,谷歌公司提供的开源工具google-diff-match-patch),对该新版本安装文件和历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件做差量计算,生成差异文件。

可选地,文本差异算法比较工具一般通过对文本类型的历史版本安装文件A和新版本安装文件B的文件内容进行字符比对,获取从历史版本安装文件A的文件内容更新为新版本安装文件B的文件内容所需新增、删除或变更的字符。其中,字符比对可以是将两个文本文件中的相同位置的字符逐个进行比对,以确定两个文本文件中相同位置的字符是否发生变更。作为示例,新版本安装文件B的文件内容包括字符串“天气真不错啊,想出去走走”,历史版本安装文件A的文件内容包括字符串“天气不行啊,能出去走走吗”,通过将两个字符串中的字符逐个进行比对,可知由字符串“天气不行啊,能出去走走吗”更新为字符串“天气真不错啊,想出去走走”需要新增字符“真”,需要进行的操作包括:删除字符“吗”、将字符“行”替换成“错”以及将字符“能”替换成“想”,因此,历史版本安装文件A和新版本安装文件B的差异文件的文件内容可以包括如下信息:

1、删除字符“吗”;

2、将字符“行”替换成“错”

3、将字符“能”替换成“想”。

在本实施例的一些可选的实现方式中,如图2c所示,步骤202还可以包括如下子步骤:

子步骤2021c,确定该新版本安装文件的文件类型,如果该新版本安装文件的文件类型为二进制文件,转到子步骤2022c’,如果该新版本安装文件的文件类型为文本文件,转到子步骤2022c。

经过对现有的文件差异比较算法的对比分析后发现,现有的差异算法在生成两个二进制文件之间的差异文件时,往往生成的差异文件的文件大小与原始的二进制文件的大小没有太大差别,因此,不适合为两个二进制文件生成差异文件,反而,生成差异文件的过程造成了增量更新包的生成速度较慢,以及造成客户端在下载了增量更新包后,需要付出根据历史版本安装文件和差异文件合成新版本安装文件的时间。而现有的差异算法在生成两个文本文件之间的差异文件时,往往生成的差异文件大小与原始的文本文件的大小差别较大,适合为两个文本文件生成差异文件。因此,在本实现方式中,可以在确定该新版本安装文件的文件类型为二进制文件时,转到子步骤2022c’,在确定该新版本安装文件的文件类型为文本文件,转到子步骤2022c。

子步骤2022c’,复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实现方式中,上述电子设备可以在子步骤2021c中确定该新版本安装文件的文件类型为二进制文件的情况下,由于,二进制文件不适合生成差异文件,从而,可以直接复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实现方式中,上述电子设备也可以在子步骤2022c中确定历史版本安装包中不存在与该新版本安装文件的文件名相同的历史版本安装文件的情况下,表明该新版本安装文件相对历史版本安装包为增加的文件,因此,可以直接复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

子步骤2022c,确定历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件,如果存在,转到子步骤2023c,如果不存在,转到子步骤2022c’。

在本实现方式中,上述电子设备可以在子步骤2021c中确定该新版本安装文件的文件类型为文本文件的情况下,确定历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件,如果存在,转到子步骤2023c,如果不存在,转到子步骤2022c’。

子步骤2023c,生成该新版本安装文件与历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件,并将所生成的差异文件,作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实现方式中,上述电子设备可以在子步骤2022c中确定历史版本安装包中存在与该新版本安装文件的文件名相同的历史版本安装文件的情况下,表明该新版本安装文件相对历史版本安装包为修改后的文件,因此,可以生成该新版本安装文件与历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件,并将所生成的差异文件,作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。实践中,可以采用各种现有的文本差异算法比较工具(例如,google-diff-match-patch),对该新版本安装文件和历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件做差量计算,生成差异文件。

步骤203,压缩所生成的各个差异文件,将压缩所得到的文件包作为目标应用的增量更新包。

在本实施例中,增量更新包的生成方法运行于其上的电子设备可以对步骤202中所生成的各个差异文件进行压缩,并压缩所得到的文件包作为目标应用的增量更新包。

需要说明的是,上述压缩文件并得到文件包的方法是目前广泛研究和应用的公知技术,在此不再赘述。

在本实施例的一些可选的实现方式中,上述电子设备也可以在步骤203后执行以下步骤(图2a中未示出):

步骤204,接收客户端发来的更新请求。

在本实现方式中,上述电子设备可以在生成目标应用的增量更新包后,接收客户端发来的更新请求,其中,更新请求包括目标应用的当前版本号和目标版本号。即,客户端希望将其上安装的目标应用从当前版本号升级到目标版本号,上述目标版本号高于上述当前版本号。

步骤205,根据当前版本号和目标版本号,确定目标应用的与当前版本号和目标版本号对应的增量更新包的下载地址。

在本实现方式中,上述电子设备可以预先针对目标应用的两个版本号的安装包,将其中较高版本号对应的更新包作为新版本更新包,将较低版本号对应的更新包作为历史版本更新包,然后采用步骤201至步骤203中所描述的方法,生成目标应用的从较低版本号对应的历史版本安装包升级到较高版本号对应的新版本安装包的增量更新包。

这样,当上述电子设备接收到客户端发来的更新请求后,就可以以更新请求中的当前版本号作为较低版本号,以更新请求中的目标版本号作为较高版本号,然后获取预先针对目标应用从上述较低版本号增量更新到较高版本号所生成的增量更新包的下载地址。

步骤206,将增量更新包的下载地址发送给客户端

在本实现方式中,上述电子设备可以将步骤205中确定的增量更新包的下载地址发送给客户端,以使客户端根据增量更新包的下载地址下载目标应用的与当前版本号和目标版本号对应的增量更新包并进行增量更新操作。

在本实施例的一些可选的实现方式中,上述电子设备还可以在步骤203后执行以下步骤(图2a中未示出):

步骤204’,接收客户端发来的回滚降级请求。

在本实现方式中,上述电子设备可以接收客户端发来的回滚降级请求。其中,回滚降级请求包括目标应用的回滚降级版本号,这里回滚降级请求中的回滚降级版本号是目标应用的版本号且该版本号低于客户端中安装的目标应用的当前版本号。

步骤205’,获取目标应用的与回滚降级版本号对应的全量安装包的下载地址。

在本实现方式中,由于客户端发送了回滚降级请求,表明客户端希望将其上安装的目标应用回滚到比当前版本号还低的版本,而通常客户端上只保留有当前版本号的全量安装包,并且也不会存在比当前版本号还低的版本的增量更新包,因此,客户端也不能实现从比回滚降级版本号还低的版本号增量更新到回滚降级版本号,只能进行全量更新。故而,上述电子设备需要获取目标应用的与回滚降级版本号对应的全量安装包的下载地址。

步骤206’,将全量安装包的下载地址发送到客户端,以使客户端根据全量安装包的下载地址下载全量安装包并进行回滚降级操作。

在本实现方式中,上述电子设备可以将步骤205’中获取的全量安装包的下载地址发送到客户端,以使客户端根据全量安装包的下载地址下载全量安装包并进行回滚降级操作,从而客户端可以实现将目标应用回滚到回滚降级版本号。

继续参见图3,图3是根据本实施例的增量更新包的生成方法的应用场景的一个示意图。

在图3的应用场景中,如图3中图标301所示,电子设备首先获取目标应用的新版本安装包和历史版本安装包。

然后,如图3中图标302所示,上述电子设备获取新版本安装包中的四个新版本安装文件:两个二进制文件“1.png”、“2.png”和两个文本文件“1.jsp”、“2.jsp”,并如图3中图标303所示,获取历史版本安装包中的两个历史版本安装文件二进制文件“1.png”和文本文件“1.jsp”。

而后,对于新版本安装包相对于历史版本安装包新增的两个文件“2.png”和“2.jsp”直接复制该两个文件并将复制到的两个文件作为“2.png”和“2.jsp”与历史版本安装包中历史版本安装文件的差异文件,如图3中图标304所示。

接着,对新版本安装包中和历史版本安装包中同名的二进制文件“1.png”采用二进制差异算法生成两个同名二进制文件“1.png”之间的差异文件,如图3中图标305所示。对新版本安装包中和历史版本安装包中同名的两个文本文件“1.jsp”采用文本差异算法生成两个同名文本文件“1.jsp”之间的差异文件,如图3中图标306所示。

最后,将对四个差异文件:复制后的“2.png”和“2.jsp”、两个同名二进制文件“1.png”之间的差异文件以及两个同名文本文件“1.jsp”之间的差异文件,进行压缩后得到的压缩包作为目标应用的与新版本安装包和历史版本安装包对应的增量更新包,如图3中图标307所示。

本申请的上述实施例提供的方法通过获取目标应用的新版本安装包和历史版本安装包,然后对于上述新版本安装包中的每个新版本安装文件,根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件,最后压缩所生成的各个差异文件,将压缩所得到的文件包作为上述目标应用的增量更新包。在生成目标应用的新版本安装包和历史版本安装包之间的增量更新包的过程中,根据新版本安装包中各个新版本安装文件的文件类型的不同采取不同的差异文件生成方法,减少了增量更新包的文件大小,继而减少了客户端下载增量更新包所需的时间和流量。

进一步参考图4,其示出了增量更新包的生成方法的又一个实施例的流程400。该增量更新包的生成方法的流程400,包括以下步骤:

步骤401,获取目标应用的新版本安装包和历史版本安装包。

在本实施例中,步骤401的具体处理与图2a所示的实施例中步骤201的具体处理基本相同,在此不再赘述。

步骤402,对于新版本安装包中的每个新版本安装文件,确定该新版本安装文件的文件类型,如果该新版本安装文件的文件类型为二进制文件,转到步骤403’,如果该新版本安装文件的文件类型为文本文件,转到步骤403。

经过对现有的文件差异比较算法的对比分析后发现,现有的差异算法在生成两个二进制文件之间的差异文件时,往往生成的差异文件的文件大小与原始的二进制文件的大小没有太大差别,因此,不适合为两个二进制文件生成差异文件,反而,生成差异文件的过程造成了增量更新包的生成速度较慢,以及造成客户端在下载了增量更新包后,需要付出根据历史版本安装文件和差异文件合成新版本安装文件的时间。而现有的差异算法在生成两个文本文件之间的差异文件时,往往生成的差异文件大小与原始的文本文件的大小差别较大,适合为两个文本文件生成差异文件。

因此,在本实施例中,增量更新包的生成方法运行于其上的电子设备(例如图1所示的服务器)可以对于新版本安装包中的每个新版本安装文件,确定该新版本安装文件的文件类型,上述文件类型可以为文本文件或者二进制文件。其中,文本文件是指专门用于存储文本字符的数据的文件,除文本文件之外的文件为二进制文件,例如,图片文件、音频文件、视频文件、可执行程序文件等等。如果该新版本安装文件的文件类型为二进制文件,转到步骤403’,如果该新版本安装文件的文件类型为文本文件,转到步骤403。

步骤403’,复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实施例中,上述电子设备可以在步骤402中确定该新版本安装文件的文件类型为二进制文件的情况下,由于不适合为两个二进制文件生成差异文件,因此,上述电子设备可以直接复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实施例中,上述电子设备也可以在步骤403中确定历史版本安装包中不存在与该新版本安装文件的文件名相同的历史版本安装文件的情况下,表明该新版本安装文件相对历史版本安装包为增加的文件,因此,可以直接复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实施例中,上述电子设备还可以在步骤405中判断所生成的差异文件的文件大小大于预设文件大小阈值的情况下,表明该新版本安装文件与历史版本安装包中的同名文件的差异文件的较大,不适合将该差异文件添加到增量更新包中,因此,也可以直接复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

步骤403,确定历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件,如果存在,转到步骤404,如果不存在,转到步骤403’。

在本实现方式中,上述电子设备可以在步骤402中确定该新版本安装文件的文件类型为文本文件的情况下,确定历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件,如果存在,转到步骤404,如果不存在,转到步骤403’。

步骤404,生成该新版本安装文件与历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件,并将所生成的差异文件,作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实现方式中,上述电子设备可以在步骤403中确定历史版本安装包中存在与该新版本安装文件的文件名相同的历史版本安装文件的情况下,表明该新版本安装文件相对历史版本安装包为修改后的文件,因此,可以生成该新版本安装文件与历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件,并将所生成的差异文件,作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。实践中,可以采用各种现有的文本差异算法比较工具(例如,google-diff-match-patch),对该新版本安装文件和历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件做差量计算,生成差异文件。

步骤405,判断所生成的差异文件的文件大小是否大于预设文件大小阈值,如果大于,转到步骤403’,如果不大于,转到步骤406。

在本实施例中,上述电子设备可以在步骤404中生成该新版本安装文件的文件名相同的历史版本安装文件的差异文件之后,判断所生成的差异文件的文件大小是否大于预设文件大小阈值。

如果将所生成的差异文件作为该新版本安装文件与历史版本安装中历史版本安装文件的差异文件并添加到增量更新包中,则客户端在增量更新的过程中,需要为所生成的差异文件付出以下流量和时间:网络传输所生成的差异文件所需的时间和流量、复制所生成的差异文件的所需的时间、将客户端中安装的目标应用的与该新版本安装文件的文件名相同的历史版本安装文件差量更新到该新版本安装文件所需的时间。而如果复制该新版本安装文件作为该新版本安装文件与历史版本安装中历史版本安装文件的差异文件并添加到增量更新包中,则客户端在增量更新的过程中,仅需要为该新版本安装文件付出以下流量和时间:网络传输该新版本安装文件所需的时间和流量、复制该新版本安装文件的所需的时间,而不需要付出将客户端中安装的目标应用的与该新版本安装文件的文件名相同的历史版本安装文件差量更新到该新版本安装文件所需的时间。因此,为了减少将客户端增量更新的流量和时间,需要设置预设文件大小阈值,如果所生成的差异文件的文件大小大于预设文件大小阈值时,表明差异文件本身较大,为了节省客户端进行增量更新的时间和流量,可以对该新版本安装文件进行全量更新,因此,可以转到步骤403’。如果所生成的差异文件的文件大小不大于预设文件大小阈值,表明差异文件较小,为了节省客户端进行增量更新的时间和流量,可以对该新版本安装文件进行增量更新,因此,可以转到步骤406。

作为示例,假设新版本安装文件F1的文件大小为1MB(Mega Byte,兆字节,),新版本安装文件F1与历史版本安装文件F1的差异文件F1’的文件大小为900KB(Kilo Byte,千字节)。

如果采用全量更新,需要将新版本安装文件F1(文件大小1MB)传输到客户端,所需传输时间为5秒,复制该新版本安装文件F1需要的时间为0.5秒,那么客户端需要总共付出的时间为5.5秒。

如果采用差量更新,需要将差异文件F1’(文件大小900KB)传输到客户端,所需传输时间为4.5秒,复制差异文件F1’需要的时间为0.5秒,将客户端的历史版本安装文件F1根据差异文件F1’差量更新到新版本安装文件F1所需时间为1秒,那么客户端需要总共付出的时间为6秒。

虽然,差异文件F1’的文件大小小于新版本安装文件F1的文件大小,但是从客户端需要付出的总时间来看,全量更新所需的时间更短。因此,需要预先设置文件大小阈值,并根据差异文件的大小是否大于该预设文件大小阈值来确定是否将所生成的差异文件作为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

实践中,可以预先根据网络带宽状况和现有终端设备的复制速度进行统计分析后设置文件大小阈值。

步骤406,将所生成的差异文件确定为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

在本实施例中,上述电子设备可以在步骤405中判断所生成的差异文件的文件大小不大于预设文件大小阈值的情况下,表明所生成的差异文件较小,适合做增量更新,因此可以将所生成的差异文件确定为该新版本安装文件与历史版本安装包中历史版本安装文件的差异文件。

步骤407,压缩所生成的各个差异文件,将压缩所得到的文件包作为目标应用的增量更新包。

在本实施例中,增量更新包的生成方法运行于其上的电子设备可以对所生成的各个差异文件进行压缩,并压缩所得到的文件包作为目标应用的增量更新包。

从图4中可以看出,与图2a对应的实施例相比,本实施例中的增量更新包的生成方法的流程400多出了对所生成的差异文件的文件大小进行判断的步骤。由此,本实施例描述的方案可以在新版本安装文件为文本文件且该新版本安装文件与历史版本安装中同名历史版本安装文件的差异文件的文件大小不大于预设文件大小阈值的情况下做增量更新,反之,做全量更新,从而更大程度上减少了客户端进行增量更新所需的时间。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种增量更新包的生成装置的一个实施例,该装置实施例与图2a所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的增量更新包的生成装置500包括:第一获取单元501、生成单元502和压缩单元503。其中,第一获取单元501,配置用于获取目标应用的新版本安装包和历史版本安装包;生成单元502,配置用于对于上述新版本安装包中的每个新版本安装文件,根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件;而压缩单元503,配置用于压缩所生成的各个差异文件,将压缩所得到的文件包作为上述目标应用的增量更新包。

在本实施例中,增量更新包的生成装置500的第一获取单元501、生成单元502和压缩单元503的具体处理及其所带来的技术效果可分别参考图2a对应实施例中步骤201、步骤202和步骤203的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述文件类型可以为文本文件或者二进制文件;以及上述生成单元502可以包括:第一确定模块5021,配置用于确定该新版本安装文件的文件类型;第一复制模块5022,配置用于响应于确定该新版本安装文件的文件类型为二进制文件,复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。第一确定模块5021和第一复制模块5022的具体处理及其所带来的技术效果可分别参考图4对应实施例中步骤402和步骤403’的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述生成单元502还可以包括:第二确定模块5023,配置用于响应于确定该新版本安装文件的文件类型为文本文件,确定上述历史版本安装包中是否存在与该新版本安装文件的文件名相同的历史版本安装文件;第二复制模块5024,配置用于响应于确定上述历史版本安装包中不存在与该新版本安装文件的文件名相同的历史版本安装文件,则复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。第二确定模块5023和第二复制模块5024的具体处理及其所带来的技术效果可分别参考图4对应实施例中步骤403、步骤403’的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述生成单元502还可以包括:生成模块5025,配置用于响应于确定上述历史版本安装包中存在与该新版本安装文件的文件名相同的历史版本安装文件,生成该新版本安装文件与上述历史版本安装包中与该新版本安装文件的文件名相同的历史版本安装文件的差异文件;判断模块5026,配置用于判断所生成的差异文件的文件大小是否大于预设文件大小阈值;第三复制模块5027,配置用于响应于所生成的差异文件的文件大小大于上述预设文件大小阈值,则复制该新版本安装文件,并将复制得到的新版本安装文件作为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。生成模块5025、判断模块5026和第三复制模块5027的具体处理及其所带来的技术效果可分别参考图4对应实施例中步骤404、步骤405和步骤403’的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述生成单元502还可以包括:第三确定模块5028,配置用于响应于所生成的差异文件的文件大小不大于预设文件大小阈值,则将所生成的差异文件确定为该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件。第三确定模块5028的具体处理及其所带来的技术效果可参考图4对应实施例中步骤406的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述增量更新包的生成装置500还可以包括:更新请求接收单元504,配置用于接收客户端发来的更新请求,上述更新请求包括上述目标应用的当前版本号和目标版本号;确定单元505,配置用于根据上述当前版本号和上述目标版本号,确定上述目标应用的与上述当前版本号和上述目标版本号对应的增量更新包的下载地址;第一发送单元506,配置用于将上述增量更新包的下载地址发送给上述客户端,以使上述客户端根据上述增量更新包的下载地址下载上述目标应用的与上述当前版本号和上述目标版本号对应的增量更新包并进行增量更新操作。更新请求接收单元504、确定单元505和第一发送单元506的具体处理及其所带来的技术效果可分别参考图2a对应实施例中步骤204、步骤205和步骤206的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述增量更新包的生成装置500还可以包括:回滚降级请求接收单元507,配置用于接收客户端发来的回滚降级请求,上述回滚降级请求包括上述目标应用的回滚降级版本号,其中,上述回滚降级版本号低于上述客户端中安装的目标应用的当前版本号;第二获取单元508,配置用于获取上述目标应用的与上述回滚降级版本号对应的全量安装包的下载地址;第二发送单元509,配置用于将上述全量安装包的下载地址发送到上述客户端,以使上述客户端根据上述全量安装包的下载地址下载上述全量安装包并进行回滚降级操作。回滚降级请求接收单元507、第二获取单元508和第二发送单元509的具体处理及其所带来的技术效果可分别参考图2a对应实施例中步骤204’、步骤205’和步骤206’的相关说明,在此不再赘述。

下面参考图6,其示出了适于用来实现本申请实施例的服务器的计算机系统600的结构示意图。图6示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(CPU,Central Processing Unit)601,其可以根据存储在只读存储器(ROM,Read Only Memory)602中的程序或者从存储部分606加载到随机访问存储器(RAM,Random Access Memory)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O,Input/Output)接口605也连接至总线604。

以下部件连接至I/O接口605:包括硬盘等的存储部分606;以及包括诸如LAN(局域网,Local Area Network)卡、调制解调器等的网络接口卡的通信部分607。通信部分607经由诸如因特网的网络执行通信处理。驱动器608也根据需要连接至I/O接口605。可拆卸介质609,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器608上,以便于从其上读出的计算机程序根据需要被安装入存储部分606。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分607从网络上被下载和安装,和/或从可拆卸介质609被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一获取单元、生成单元和压缩单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,压缩单元还可以被描述为“压缩差异文件的单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:获取目标应用的新版本安装包和历史版本安装包;对于上述新版本安装包中的每个新版本安装文件,根据该新版本安装文件的文件类型生成该新版本安装文件与上述历史版本安装包中历史版本安装文件的差异文件;压缩所生成的各个差异文件,将压缩所得到的文件包作为上述目标应用的增量更新包。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1