应用安装包的增量更新方法、装置、终端及服务器与流程

文档序号:17317421发布日期:2019-04-05 21:20阅读:329来源:国知局
应用安装包的增量更新方法、装置、终端及服务器与流程

本发明涉及计算机领域,具体而言,涉及一种应用安装包的增量更新方法、装置、终端及服务器。



背景技术:

目前,在安卓系统上,在对一款应用(app)进行安卓安装包(apk)升级时,如果执行完整apk的更新操作,那么用户便需要下载完整的apk包,其消耗的网络流量与时间成本将大幅地增加,从而在应用版本升级时易增大用户流失率。如果将该app升级所需的完整apk包同时分发到多个商品推广解决方案(cps)渠道(即多个推广游戏的平台),那么在每次执行升级操作的过程中,需要打包多个不同的cps包(其内容与apk基本相同,区别在于:用于区分官网下发的apk包与特定cps包的字段不同)。每个cps包需要经过对官网下发的数据包进行解压、反编译、写入appchannel、重签、生成apk流程,消耗的时间成本也将会大幅增加,同时当这些cps包如果需要进行apk升级时,则会带来大量的时间成本和数据包的维护成本。

目前对于这种情况,某些应用主要对官网包和cps包进行单独的apk管理以及更新,更新方式有些直接使用的是完整包更新。例如:一个app最新发布了2.0版本,同时这个app已接入5个渠道,那么在该app生成apk时便需要生成一个官网包和5个cps包,同时每个数据包的升级也需要进行单独维护,以及在升级过程中下载的升级包也需要单独地生成与维护。这样,不但增加了管理多个cps包的成本,而且在版本更新时容易给用户带来时间上和网络流量上的损失。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明至少部分实施例提供了一种应用安装包的增量更新方法、装置、终端及服务器,以至少解决相关技术中所提供的应用安装包更新方式不但增加了管理多个cps包的成本,而且在版本更新时容易给用户带来时间上和网络流量上的损失的技术问题。

根据本发明其中一实施例,提供了一种应用安装包的增量更新方法,包括:

从服务器下载补丁数据包,其中,补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息;获取本地存储的应用安装包;采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包。

可选地,采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包包括:从本地存储的应用安装包中去除与预设空闲字段对应的部分数据,得到第三组二进制数据,其中,部分数据包括:与本地存储的应用安装包对应的第二渠道信息;将补丁数据包与第三组二进制数据进行合并,生成第四组二进制数据;将部分数据重新写入至第四组二进制数据,得到更新后的应用安装包。

可选地,在采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包之后,包括:将更新后的应用安装包存储在本地预设目录;调用本地操作系统中预设的安装方式从本地预设目录读取并安装更新后的应用安装包。

可选地,预设空闲字段为zipcomment字段,预设空闲字段的总长度为固定长度。

根据本发明其中一实施例,还提供了另一种应用安装包的增量更新方法,包括:

从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据,其中,第一版本晚于第二版本,预设空闲字段中携带的数据包括:渠道信息;对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包;响应终端发起的下载请求,将补丁数据包下发至终端,以使终端采用补丁数据包对终端本地存储的应用安装包进行增量更新。

可选地,在从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据之前,还包括:将与补丁数据包对应的渠道信息写入至预设空闲字段。

可选地,对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包包括:对第一组二进制数据与第二组二进制数据进行差分处理,得到差异数据、新增数据以及索引控制信息,其中,索引控制信息为差异数据和新增数据相对于终端本地存储的应用安装包的更新位置标记;将差异数据、新增数据以及索引控制信息压缩成补丁数据包。

根据本发明其中一实施例,提供了一种应用安装包的增量更新装置,包括:

下载模块,用于从服务器下载补丁数据包,其中,补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息;获取模块,用于获取本地存储的应用安装包;更新模块,用于采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包。

可选地,更新模块包括:处理单元,用于从本地存储的应用安装包中去除与预设空闲字段对应的部分数据,得到第三组二进制数据,其中,部分数据包括:与本地存储的应用安装包对应的第二渠道信息;合并单元,用于将补丁数据包与第三组二进制数据进行合并,生成第四组二进制数据;写入单元,用于将部分数据重新写入至第四组二进制数据,得到更新后的应用安装包。

可选地,上述装置还包括:存储模块,用于将更新后的应用安装包存储在本地预设目录;调用模块,用于调用本地操作系统中预设的安装方式从本地预设目录读取并安装更新后的应用安装包。

可选地,预设空闲字段为zipcomment字段,预设空闲字段的总长度为固定长度。

根据本发明其中一实施例,还提供了另一种应用安装包的增量更新装置,包括:

第一处理模块,用于从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据,其中,第一版本晚于第二版本,预设空闲字段中携带的数据包括:渠道信息;第二处理模块,用于对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包;下发模块,用于响应终端发起的下载请求,将补丁数据包下发至终端,以使终端采用补丁数据包对终端本地存储的应用安装包进行增量更新。

可选地,上述装置还包括:写入模块,用于将与补丁数据包对应的渠道信息写入至预设空闲字段。

可选地,第二处理模块包括:第一处理单元,用于对第一组二进制数据与第二组二进制数据进行差分处理,得到差异数据、新增数据以及索引控制信息,其中,索引控制信息为差异数据和新增数据相对于终端本地存储的应用安装包的更新位置标记;第二处理单元,用于将差异数据、新增数据以及索引控制信息压缩成补丁数据包。

根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的应用安装包的增量更新方法。

根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的应用安装包的增量更新方法。

根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的应用安装包的增量更新方法。

根据本发明其中一实施例,还提供了一种服务器,包括:一个或多个处理器,存储器以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的应用安装包的增量更新方法。

在本发明至少部分实施例中,采用从服务器下载补丁数据包,该补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,该预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息的方式,通过获取本地存储的应用安装包以及采用补丁数据包对本地存储的应用安装包进行增量更新以得到更新后的应用安装包,由此通过应用安装包(例如:apk)增量更新以减少apk更新时补丁数据包大小,同时由于apk实质上是一个zip包,其满足zip包的格式,由此可以将官网包和cps包的渠道信息写入到预设字段(例如:zipcomment字段)中,从而降低在生成cps包过程中的时间成本,另外对于不同的cps包的apk增量升级,实现了对官网包进行一次差分,其生成的差分包可以满足所有的cps包的增量更新,从而不再需要对所有的cps包单独进行差分以及维护工作,进而解决了相关技术中所提供的应用安装包更新方式不但增加了管理多个cps包的成本,而且在版本更新时容易给用户带来时间上和网络流量上的损失的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明其中一实施例的一种应用安装包的增量更新方法的流程图;

图2是根据本发明其中一实施例的另一种应用安装包的增量更新方法的流程图;

图3是根据本发明其中一可选实施例的应用安装包增量更新过程的示意图;

图4是根据本发明其中一实施例的一种应用安装包的增量更新装置的结构框图;

图5是根据本发明其中一可选实施例的一种应用安装包的增量更新装置的结构框图;

图6是根据本发明其中一实施例的另一种应用安装包的增量更新装置的结构框图;

图7是根据本发明其中一可选实施例的另一种应用安装包的增量更新装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明其中一实施例,提供了一种应用安装包的增量更新方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在由移动终端和服务器构成的应用安装包的增量更新系统中执行。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括但不限于微处理器(mcu)或可编程逻辑器件(fpga)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输装置以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。

存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的应用安装包的增量更新方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的应用安装包的增量更新方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于上述移动终端的应用安装包的增量更新方法,图1是根据本发明其中一实施例的一种应用安装包的增量更新方法的流程图,如图1所示,该方法包括如下步骤:

步骤s12,从服务器下载补丁数据包,其中,补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息;

步骤s14,获取本地存储的应用安装包;

步骤s16,采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包。

通过上述步骤,可以采用从服务器下载补丁数据包,该补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,该预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息的方式,通过获取本地存储的应用安装包以及采用补丁数据包对本地存储的应用安装包进行增量更新以得到更新后的应用安装包,由此通过应用安装包(例如:apk)增量更新以减少apk更新时补丁数据包大小,同时由于apk实质上是一个zip包,其满足zip包的格式,由此可以将官网包和cps包的渠道信息写入到预设字段(例如:zipcomment字段)中,从而降低在生成cps包过程中的时间成本,另外对于不同的cps包的apk增量升级,实现了对官网包进行一次差分,其生成的差分包可以满足所有的cps包的增量更新,从而不再需要对所有的cps包单独进行差分以及维护工作,进而解决了相关技术中所提供的应用安装包更新方式不但增加了管理多个cps包的成本,而且在版本更新时容易给用户带来时间上和网络流量上的损失的技术问题。

可选地,在步骤s16中,采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包可以包括以下执行步骤:

步骤s161,从本地存储的应用安装包中去除与预设空闲字段对应的部分数据,得到第三组二进制数据,其中,部分数据包括:与本地存储的应用安装包对应的第二渠道信息;

步骤s162,将补丁数据包与第三组二进制数据进行合并,生成第四组二进制数据;

步骤s163,将部分数据重新写入至第四组二进制数据,得到更新后的应用安装包。

在对新版本的apk整包进行合包处理的过程中,合包原理是利用data/data/app目录中的原始包和下载的patch包使用bspatch算法合成一个新的apk整包。具体地,首先分别从服务器下载补丁数据包以及读取安卓系统中data/data/app路径下的apk数据包,通过使用bspatch算法将两者进行合并以生成新版apk并将其存储至sdcard中;然后再调用安卓系统方法安装新版apk。

可选地,在步骤s16,采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包之后,可以包括以下执行步骤:

步骤s17,将更新后的应用安装包存储在本地预设目录;

步骤s18,调用本地操作系统中预设的安装方式从本地预设目录读取并安装更新后的应用安装包。

在apk安装过程中,由于用户对安卓系统data/data/app目录(即上述本地预设目录)通常只具备只读权限,因此,最终可以采用唤起android系统安装页面来安装新的apk包。

可选地,上述预设空闲字段为zipcomment字段,该预设空闲字段的总长度为固定长度。

apk包实质是一个zip包,其满足zip包的相关格式,一个完整的zip包的文件结构的末尾部分包括:commentlength和comment两个字段。在通常情况下,comment部分为空,而commentlength存储的数据为comment的字节长度,占2bytes。安卓系统验证包通常不会验证zipcomment字段,因此,在此处进行修改并不会影响apk包的正常安装。

相比于相关技术中通常将appchannel(用于区分apk属于特定渠道的标识)写入到apk内的文件中,由此易导致不同apk的二进制数据完全不同,从而无法使得一个差分包能够应用于所有的cps包和官网包。为此,在本发明的一个可选实施例中,在采用计费生成cps包的过程中,只需将app_channel写入到zipcomment字段中,且规定新的zipcomment总长度为固定为128个字节,具体格式为:

{comment总长度:2byte}{渠道长度2byte}{渠道信息nbyte}{dummystring}{dummystringlength}netease;

其中,由于将zipcomment字段的长度固定为128个字节,然后,渠道信息可能不需要这么长的字节,因此,需要写入特定占位符,dummystring表示占位符目前写入的是0,dummystringlength表示写入占位符的个数。

这样,通过将appchannel写入到zipcomment字段中,便是为了使得所有包二进制数据的差异控制在zipcomment字段中(即二进制数据末尾的128个字节),因此,所有包除去最后zipcomment字段以外的剩余二进制数据将会完全一致。

终端在对cps包和官网包进行apk升级过程中,首先需要读取本地apk的二进制数据,去除末尾的zipcomment字段(即二进制数据末尾的128个字节);然后,再使用bspatch算法与patch包进行合并,最后将本地apk的zipcomment字段写入到合并后的二进制数据末尾,由此生成一个最终的apk。该apk的二进制数据不仅升级到最新版本的二进制数据,而且还保留了cps包的appchannel信息,从而使得用户在升级apk后,该apk的渠道标记仍然保持不变,达到一次差分应用于所有cps包和官网包。例如:用户是从应用包渠道下载的apk,其渠道标记为:yingyongbao,而在用户进行apk升级之后,通过保留其appchannel信息,这样用户升级到新版本后,其渠道标记仍然为yingyongbao。

由于代码逻辑内需要获取该apk的渠道信息,而apk在android系统上安装后通常存放在data/data目录下,因此,如果希望获取渠道信息,则通过读取apk的zipcomment字段(即二进制数据末尾的128个字节),便可获取到渠道信息。故而,在业务读取渠道号时,可以读取data/app/.apk文件末尾的渠道号。

在本实施例中提供了一种运行于上述服务器的应用安装包的增量更新方法,图2是根据本发明其中一实施例的另一种应用安装包的增量更新方法的流程图,如图2所示,该方法包括如下步骤:

步骤s22,从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据,其中,第一版本晚于第二版本,预设空闲字段中携带的数据包括:渠道信息;

步骤s24,对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包;

步骤s26,响应终端发起的下载请求,将补丁数据包下发至终端,以使终端采用补丁数据包对终端本地存储的应用安装包进行增量更新。

如果后台服务器需要对官网包apk进行差分处理,则首先读取两个apk(即线上旧版apk与即将发布的新版apk)的二进制数据,并去除末尾的zipcomment字段(即二进制数据末尾的128个字节);然后,再使用bsdiff算法对两个apk的二进制数据进行差分处理,生成patch包。该patch包将可以应用于官网包和所有的cps包升级。

可选地,在步骤s22,从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据之前,还可以包括以下执行步骤:

步骤s21,将与补丁数据包对应的渠道信息写入至预设空闲字段。

服务器将appchannel写入到zipcomment字段中是为了将所有包的二进制数据的差异均控制在zipcomment字段中,这样所有包在除去最后zipcomment字段的剩余二进制数据便会保持完全一致。

可选地,在步骤s24中,对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包可以包括以下执行步骤:

步骤s241,对第一组二进制数据与第二组二进制数据进行差分处理,得到差异数据、新增数据以及索引控制信息,其中,索引控制信息为差异数据和新增数据相对于终端本地存储的应用安装包的更新位置标记;

步骤s242,将差异数据、新增数据以及索引控制信息压缩成补丁数据包。

apk差分更新的原理在于:采用bsdiff算法将旧版文件与新版文件之间的差异生成补丁(patch)文件,然后在合包处理过程中通过copy和insertion指令来生成新包,其能够保证合成的包完全一致,最后实现本地重新安装合成的新版apk。

在生成apk差分包的过程中,可以通过bsdiff算法在用于对apk进行差分的服务器分别针对不同的apk包生成差分包,其具体原理如下:

通过对新的apk二进制文件和线上运行的各版本apk二进制文件进行比较,生成差异文件和新增文件(extrafile)。然后,再将差异文件,新增文件以及必要的索引控制信息(即,用于进行最终合包时,标记升级包的数据需要添加到旧版apk的具体位置的标记)压缩为差异更新包(即patch包)。

下面将结合图3所示的示例性实施例对上述可选实施方式做进一步描述。

图3是根据本发明其中一可选实施例的应用安装包增量更新过程的示意图,如图3所示,假设当前apk版本包括:1个官网包和5个cps包,线上版本为1.0,即将发布的升级版本为2.0,那么其实际操作过程如下:

第一步、首先从官网包2.0版本(即上述第一版本)的apk中去除zipcomment字段,得到剩余的第一组二进制数据,以及从官网包1.0版本(即上述第二版本)的apk中去除zipcomment字段,得到剩余的第二组二进制数据;然后再将剩余的两组二进制数据(这部分数据对于所有的cps包而言均相同)进行bsdiff差分处理,生成差分包patch(即上述补丁数据包,其对应官网包的一次差分)。

第二步、用户在升级过程中,首先需要下载差分包patch;其次读取终端内1.0版本的apk(即上述本地存储的应用安装包,该终端内可以安装任意cps包或官网包)的数据,获取去掉zipcomment字段后的二进制数据,得到剩余的第三组二进制数据;然后再将第三组二进制数据与差分包patch进行合并,从而生成新的第四组二进制数据;然后再将去掉的zipcomment字段数据写入至新生成的第四组二进制数据末尾,最终生成新版本的apk(即上述更新后的应用安装包),由此实现一次差分应用于所有的cps包升级。

综上所述,服务器通过使用bsdiff算法对apk进行二进制差分处理,生成差分包;然后,在进行apk升级时,移动终端通过使用bspatch算法将data/data/app下面的原始包和生成的差分包进行合并来升级到最新的apk版本,从而减少升级包的大小,降低版本升级时用户流失率。同时,对大量cps包的生成采用将appchannel信息写入到apk的zipcomment字段中,从而解决生成cps包所消耗的时间,同时完成对cps包的apk差分升级,由此实现将一次官网包的差分应用于所有的cps包升级,其操作复杂度从原有的o(n)变成为o(1),进而降低由大量cps包的差分所带来的时间成本与维护成本。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种应用安装包的增量更新装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明其中一实施例的一种应用安装包的增量更新装置的结构框图,如图4所示,该装置包括:下载模块10,用于从服务器下载补丁数据包,其中,补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息;获取模块20,用于获取本地存储的应用安装包;更新模块30,用于采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包。

可选地,更新模块30包括:处理单元(图中未示出),用于从本地存储的应用安装包中去除与预设空闲字段对应的部分数据,得到第三组二进制数据,其中,部分数据包括:与本地存储的应用安装包对应的第二渠道信息;合并单元(图中未示出),用于将补丁数据包与第三组二进制数据进行合并,生成第四组二进制数据;写入单元(图中未示出),用于将部分数据重新写入至第四组二进制数据,得到更新后的应用安装包。

图5是根据本发明其中一可选实施例的一种应用安装包的增量更新装置的结构框图,如图5所示,该装置除包括图4所示的所有模块外,还包括:存储模块40,用于将更新后的应用安装包存储在本地预设目录;调用模块50,用于调用本地操作系统中预设的安装方式从本地预设目录读取并安装更新后的应用安装包。

可选地,预设空闲字段为zipcomment字段,预设空闲字段的总长度为固定长度。

图6是根据本发明其中一实施例的另一种应用安装包的增量更新装置的结构框图,如图6所示,该装置包括:第一处理模块60,用于从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据,其中,第一版本晚于第二版本,预设空闲字段中携带的数据包括:渠道信息;第二处理模块70,用于对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包;下发模块80,用于响应终端发起的下载请求,将补丁数据包下发至终端,以使终端采用补丁数据包对终端本地存储的应用安装包进行增量更新。

可选地,图7是根据本发明其中一可选实施例的另一种应用安装包的增量更新装置的结构框图,如图7所示,该装置除包括图6所示的所有模块外,还包括:上述装置还包括:写入模块90,用于将与补丁数据包对应的渠道信息写入至预设空闲字段。

可选地,第二处理模块70包括:第一处理单元(图中未示出),用于对第一组二进制数据与第二组二进制数据进行差分处理,得到差异数据、新增数据以及索引控制信息,其中,索引控制信息为差异数据和新增数据相对于终端本地存储的应用安装包的更新位置标记;第二处理单元(图中未示出),用于将差异数据、新增数据以及索引控制信息压缩成补丁数据包。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,从服务器下载补丁数据包,其中,补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息;

s2,获取本地存储的应用安装包;

s3,采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包。

可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:

s1,从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据,其中,第一版本晚于第二版本,预设空闲字段中携带的数据包括:渠道信息;

s2,对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包;

s3,响应终端发起的下载请求,将补丁数据包下发至终端,以使终端采用补丁数据包对终端本地存储的应用安装包进行增量更新。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种处理器,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,从服务器下载补丁数据包,其中,补丁数据包是由服务器通过将第一版本的应用安装包中的第一组二进制数据与第二版本的应用安装包中的第二组二进制数据进行差分处理后得到的数据包,第一版本晚于第二版本,第一组二进制数据是从第一版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,第二组二进制数据是从第二版本的应用安装包中去除预设空闲字段中携带的数据后得到的数据,预设空闲字段中携带的数据包括:与补丁数据包对应的第一渠道信息;

s2,获取本地存储的应用安装包;

s3,采用补丁数据包对本地存储的应用安装包进行增量更新,得到更新后的应用安装包。

可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:

s1,从第一版本的应用安装包中去除预设空闲字段中携带的数据,得到第一组二进制数据,以及从第二版本的应用安装包中去除预设空闲字段中携带的数据,得到第二组二进制数据,其中,第一版本晚于第二版本,预设空闲字段中携带的数据包括:渠道信息;

s2,对第一组二进制数据与第二组二进制数据进行差分处理,得到补丁数据包;

s3,响应终端发起的下载请求,将补丁数据包下发至终端,以使终端采用补丁数据包对终端本地存储的应用安装包进行增量更新。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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