一种文件更新方法、装置及相关设备的制作方法

文档序号:6485554阅读:115来源:国知局
一种文件更新方法、装置及相关设备的制作方法
【专利摘要】本发明公开了一种文件更新方法、装置及相关设备,在接收客户端发送的包含待更新文件的当前版本标识和目标版本标识的更新请求后,确定从待更新文件的当前版本更新到目标版本时所需的增量更新包,向客户端发送确定出的增量更新包。由于在客户端需要更新文件时将增量更新包发送到客户端,相对于现有技术中将完整的目标版本全部发送到客户端,客户端不需要下载完整的文件,从而大幅减少了网络流量的消耗,减少了下载时长,此外,客户端在使用增量更新包对待更新文件进行更新时,只是对当前版本中与目标版本的不同进行更新,不用卸载当前版本再进行目标版本的安装,也大幅减少了文件更新的时间。
【专利说明】一种文件更新方法、装置及相关设备
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种文件更新方法、装置及相关设备。
【背景技术】
[0002]在移动互联网的时代,随着移动终端的广泛应用,市面上涌现了大量基于移动终端的应用程序。随着这些应用程序的涌现,随之带来对于应用程序的更新需求,例如:应用软件、主题包文件以及系统插件更新。以系统为安卓系统(Android)的智能移动终端为例,其应用程序的文件是APK (Android Package, Android安装包)型文件,其文件的更新流程如图1所示,包括以下几个步骤:
[0003]S101、当安装有客户端软件的移动终端用户想要更新某个待更新文件时,客户端会读取待更新文件的当前版本号;
[0004]S102、客户端向网络侧的服务器发送待更新文件的当前版本号;
[0005]S103、服务器在接收到客户端发送的当前版本号后,会根据该当前版本号,检测待更新文件是否存在可用的新版本,即目标版本;
[0006]S104、服务器在判断存在目标版本时,会向客户端返回携带目标版本号的更新信息;
[0007]S105、客户端显示更新信息,终端会确认待更新文件的更新;
[0008]S106、客户端向服务器发送更新请求,该更新请求中携带目标版本号;
[0009]S107、服务器在接收到更新请求后,根据目标版本号,获取目标版本;
[0010]S108、服务器将目标版本通过无线网络发送给客户端;
[0011]S109、客户端在接收到目标版本后,会卸载本地存储的该待更新文件的当前版本,并安装目标版本,完成待更新文件的更新。
[0012]从上述现有的移动终端的文件更新流程中可以看出,在需要对文件进行更新时,客户端需要下载完整的目标版本,这就需要消耗较多的网络流量,会占用较多的带宽,同时较长时间下载目标版本也不利于用户体验。因此,在面对大量的文件更新需求时,急需一种新的文件更新机制来解决上述的问题。

【发明内容】

[0013]本发明实施例提供了一种文件更新方法、装置及相关设备,用以减少移动终端在文件进行更新时所占用的网络流量以及下载时长。
[0014]本发明实施例提供的一种文件更新方法,包括:
[0015]接收客户端发送的更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识;
[0016]根据所述当前版本标识和目标版本标识,确定从所述待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0017]向所述客户端发送确定出的所述增量更新包,用以所述客户端应用所述增量更新包将所述待更新文件的当前版本更新到目标版本。
[0018]本发明实施例提供的一种文件更新方法,应用于移动终端,包括:
[0019]向服务器发送更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识;
[0020]接收所述服务器根据所述更新请求返回的从所述待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0021]应用所述增量更新包将所述待更新文件的当前版本更新到所述目标版本。
[0022]本发明实施例提供的一种文件更新装置,包括:
[0023]接收单元,用于接收客户端发送的更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识;
[0024]确定单元,用于根据所述当前版本标识和目标版本标识,确定从所述待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0025]发送单元,用于向所述客户端发送确定出的所述增量更新包,用以所述客户端应用所述增量更新包将所述待更新文件的当前版本更新到目标版本。
[0026]本发明实施例提供的一种服务器,包括本发明实施例提供的上述文件更新装置。
[0027]本发明实施例提供的一种文件更新装置,应用于移动终端,包括:
[0028]发送单元,用于向服务器发送更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识;
[0029]接收单元,用于接收所述服务器根据所述更新请求返回的从所述待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0030]更新单元,用于应用所述增量更新包将所述待更新文件的当前版本更新到所述目标版本。
[0031]本发明实施例提供的一种客户端,包括本发明实施例提供的上述应用于移动终端的文件更新装置。
[0032]本发明实施例的有益效果包括:
[0033]本发明实施例提供的一种文件更新方法、装置及相关设备,在接收客户端发送的包含待更新文件的当前版本标识和目标版本标识的更新请求后,确定从待更新文件的当前版本更新到目标版本时所需的增量更新包,向客户端发送确定出的增量更新包。由于在客户端需要更新文件时将增量更新包发送到客户端,相对于现有技术中将完整的目标版本全部发送到客户端,客户端不需要下载完整的文件,从而大幅减少了网络流量的消耗,减少了下载时长,此外,客户端在使用增量更新包对待更新文件进行更新时,只是对当前版本中与目标版本的不同进行更新,不用卸载当前版本再进行目标版本的安装,也大幅减少了文件更新的时间。
【专利附图】

【附图说明】
[0034]图1为现有技术中安卓系统的文件在进行更新时的信令交互图;
[0035]图2为本发明实施例提供的针对网络侧的文件更新方法的流程图;
[0036]图3为本发明实施例提供的确定增量更新包的流程图;
[0037]图4为本发明实施例提供的针对终端侧的文件更新方法的流程图;[0038]图5为本发明实施例提供的实施例的信令交互图;
[0039]图6为本发明实施例提供的文件更新装置的结构示意图之一;
[0040]图7为本发明实施例提供的文件更新装置的结构示意图之二。
【具体实施方式】
[0041]下面结合附图,对本发明实施例提供的文件更新方法、装置及相关设备的【具体实施方式】进行详细地说明。
[0042]针对网络侧,本发明实施例提供的一种文件更新方法,如图2所示,具体包括以下步骤:
[0043]S201、接收客户端发送的更新请求,该更新请求包含待更新文件的当前版本标识和目标版本标识;
[0044]在具体实施时,当前版本标识和目标版本标识可以分别为当前版本号和目标版本号,也可以是其他标识,在此不做限定。
[0045]S202、根据当前版本标识和目标版本标识,确定从待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0046]S203、向客户端发送确定出的增量更新包,用以客户端应用增量更新包将待更新文件的当前版本更新到目标版本。
[0047]由于在网络侧接收到客户端发送的需要更新文件的更新请求时,将增量更新包代替现有技术中将完整的目标版本全部发送给客户端,发送的增量更新包的数据量远远小于完整的目标版本的数据量,例如:当前版本为新浪微博的2.7版本,目标版本为2.9版本,
2.9版本的软件大小为5M,而增量更新包的大小为2.5M,能够节省流量2.5M ;又如:当前版本为UC浏览器的8.2版本,目标版本为8.3版本,8.3版本的大小为5.6M,而增量更新包的大小为2.2M,能够节省流量3.4M,可以看出使用增量更新包能够大幅减少网络流量的消耗,同时减少了下载时长。
[0048]具体地,上述步骤S202根据当前版本标识和目标版本标识,确定从待更新文件的当前版本更新到目标版本时所需的增量更新包,如图3所示,具体可以包括以下步骤:
[0049]S301、根据当前版本标识和目标版本标识,确定是否存在预先生成的使当前版本更新到目标版本的补丁文件;若存在,执行步骤S302 ;若不存在,执行步骤S303 ;
[0050]S302、将预先生成的使当前版本更新到目标版本的补丁文件确定为增量更新包;
[0051]S303、将从当前版本更新到目标版本所需的多个中间版本的补丁文件组合确定为增量更新包。
[0052]在具体实施时,有可能客户端存储的当前版本过旧,而网络侧一般只存储相对于目标版本临近几个版本的补丁文件。例如:当前版本为版本1.0,目标版本为版本5.0,网络侧可能只预先生成了从版本4.0更新到版本5.0和版本3.0更新到版本5.0的补丁文件,以及版本1.0更新到中间版本即版本3.0的补丁文件,而没有直接从版本1.0更新到版本
5.0的补丁文件。这样,就将版本1.0更新到版本3.0的补丁文件和从版本3.0更新到版本5.0的补丁文件的补丁文件组合确定为增量更新包。客户端在接收到该增量更新包后,可以将版本1.0先更新到版本3.0,然后再更新到版本5.0,以完成文件更新。
[0053]由于现有的计算机文件都是以二进制的0,I字串形成存储在磁盘或内存中,即不管文件的格式和类型,最终文件都是以二进制的方式存储,因此,在网络侧生成补丁文件的过程也是基于二进制文件比较生成补丁文件。
[0054]具体地,在网络侧生成补丁文件的过程可以使用安卓系统的开源工具imgdiff完成,以生成从当前版本更新到目标版本的补丁文件为例,具体说明如何在网络侧生成补丁文件,具体流程如下:
[0055]分别将当前版本和目标版本读取到缓存中。具体地,可以先解析为安卓系统的APK文件的当前版本和目标版本的文件结构,然后分别以二进制形式将多个目标版本的文件和当前版本的文件读取到缓存中。
[0056]比较目标版本和当前版本,将得到的目标版本相对于当前版本的差异数据,以及差异数据在当前版本中的位置信息写入补丁文件中。具体地,可以逐位比较每个目标版本的文件和当前版本的文件,得到该目标版本的文件相对于当前版本的文件改变的内容(包括删除、新增和修改的内容),以及改变的内容在当前版本的文件中的位置信息,将位置信息和改变的内容一一对应后以二进制的形式写入补丁文件,直至所有的目标版本文件和当前版本文件都完成比较为止。
[0057]具体地,在执行上述步骤S20f S203之前,在网络侧还可以执行以下操作:
[0058]接收客户端发送的待更新文件的当前版本标识;
[0059]确定接收到的当前版本标识与本地保存的目标版本标识是否相同,在确定不同时,向客户端返回携带目标版本标识的更新信息,这样客户端可以根据该更新信息选择是否更新相应的待更新文件。
[0060]相应地,本发明实施例也提供了一种文件更新方法,应用于移动终端,如图4所示,具体包括以下几个步骤:
[0061]S401、向服务器发送更新请求,该更新请求包含待更新文件的当前版本标识和目标版本标识;
[0062]S402、接收服务器根据更新请求返回的从待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0063]S403、应用增量更新包将待更新文件的当前版本更新到目标版本。
[0064]其中,上述步骤S403中应用增量更新包将待更新文件的当前版本更新到目标版本,在具体实施时,可以是使用安卓系统的升级工具applypatch完成,具体过程如下:
[0065]将增量更新包读取到缓存中,该增量更新包为包含目标版本相对于当前版本的差异数据,以及差异数据在当前版本中的位置信息的补丁文件。具体地,可以有多个补丁文件,每个补丁文件中的差异数据包含目标版本的各文件中相对于当前版本的各文件新增、删除和修改的内容。
[0066]根据位置信息和差异数据,将待更新文件的当前版本更新到目标版本。具体地,可以根据每个补丁文件中目标版本的各文件中相对于当前版本的各文件中删除的内容及其在当前版本的文件中所在的位置,删除该部分内容,根据每个补丁文件中目标版本的各文件中相对于当前版本的各文件中增加和修改的内容及其在当前版本的文件中所在的位置,增加和修改该部分内容,直至处理完所有的补丁文件为止。
[0067]由于客户端在使用增量更新包对待更新文件进行更新时,只是对当前版本中与目标版本的不同进行更新,相对于现有技术中卸载当前版本再进行目标版本的安装,大幅减少了文件更新的时间,提高了用户体验。
[0068]本发明是实施例提供的上述文件更新方法,可以广泛应用于各种移动终端的应用超市内部的软件更新、主体软件的主体包更新、音乐文件更新以及备份信息更新等诸多方面。
[0069]下面以一个具体地实施例举例说明本发明实施例提供的上述文件更新方法,如图5所示,包括以下步骤:
[0070]S501、当安装有客户端软件的移动终端用户想要更新某个待更新文件时,客户端会读取待更新文件的当前版本号;
[0071]S502、客户端向网络侧的服务器发送待更新文件的当前版本号;
[0072]S503、服务器在接收到客户端发送的当前版本号后,会根据该当前版本号,检测待更新文件是否存在可用的新版本,即目标版本;
[0073]S504、服务器在判断存在目标版本时,会向客户端返回携带目标版本号的更新信息;
[0074]S505、客户端显示更新信息,终端会确认待更新文件的更新;
[0075]S506、客户端向服务器发送更新请求,该更新请求中携带目标版本号和当前版本号;
[0076]S507、服务器在接收到更新请求后,根据目标版本号和当前版本号确定增量更新包;
[0077]S508、服务器将确定的增量更新包通过无线网络发送给客户端;
[0078]S509、客户端在接收到增量更新包后,会应用增量更新包中的补丁文件更新当前版本,完成待更新文件的更新。
[0079]基于同一发明构思,本发明实施例还提供了一种文件更新装置及相关设备,由于该装置及相关设备解决问题的原理与前述一种文件更新方法相似,因此该装置和相关设备的实施可以参见方法的实施,重复之处不再赘述。
[0080]针对网络侧,本发明实施例提供的一种文件更新装置,如图6所示,包括:
[0081]接收单元601,用于接收客户端发送的更新请求,该更新请求包含待更新文件的当前版本标识和目标版本标识;
[0082]确定单元602,用于根据当前版本标识和目标版本标识,确定从待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0083]发送单元603,用于向客户端发送确定出的增量更新包,用以客户端应用增量更新包将待更新文件的当前版本更新到目标版本。
[0084]较佳地,上述确定单元602,具体用于根据当前版本标识和目标版本标识,确定是否存在预先生成的使当前版本更新到目标版本的补丁文件;若存在,将其确定为增量更新包;若不存在,将从当前版本更新到目标版本所需的多个中间版本的补丁文件组合确定为
增量更新包。
[0085]较佳地,上述针对网络侧的装置,如图6所示,还包括:生成补丁文件单元604,用于分别将当前版本和目标版本读取到缓存中;比较目标版本和当前版本,将得到的目标版本相对于当前版的差异数据,以及差异数据在当前版本中的位置信息写入补丁文件中。
[0086]较佳地,上述接收单元601,还用于接收客户端发送的待更新文件的当前版本标识;
[0087]发送单元603,还用于在确定接收到的当前版本标识与本地保存的目标版本标识不同时,向客户端返回携带目标版本标识的更新信息。
[0088]本发明实施例还提供了 一种服务器,包括上述针对网络侧的文件更新装置。
[0089]本发明实施例提供的一种文件更新装置,应用于移动终端,如图7所示,包括:
[0090]发送单元701,用于向服务器发送更新请求,该更新请求包含待更新文件的当前版本标识和目标版本标识;
[0091]接收单元702,用于接收服务器根据更新请求返回的从待更新文件的当前版本更新到目标版本时所需的增量更新包;
[0092]更新单元703,用于应用增量更新包将待更新文件的当前版本更新到目标版本。
[0093]较佳地,上述更新单元703,具体用于将增量更新包读取到缓存中,该增量更新包为包含目标版本相对于当前版本的差异数据,以及差异数据在当前版本中的位置信息的补丁文件;根据位置信息和差异数据,将待更新文件的当前版本更新到目标版本。
[0094]较佳地,上述发送单元701,还用于读取待更新文件的当前版本标识,并将其发送到服务器;
[0095]接收单元702,还用于接收服务器在确定当前版本标识与目标版本标识不同时返回的更新信息,更新信息包含目标版本标识。
[0096]本发明实施例还提供了 一种客户端,包括上述应用于移动终端的文件更新装置。
[0097]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-R0M,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0098]本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0099]本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0100]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0101]本发明实施例提供的一种文件更新方法、装置及相关设备,在接收客户端发送的包含待更新文件的当前版本标识和目标版本标识的更新请求后,确定从待更新文件的当前版本更新到目标版本时所需的增量更新包,向客户端发送确定出的增量更新包。由于在客户端需要更新文件时将增量更新包发送到客户端,相对于现有技术中将完整的目标版本全部发送到客户端,客户端不需要下载完整的文件,从而大幅减少了网络流量的消耗,减少了下载时长,此外,客户端在使用增量更新包对待更新文件进行更新时,只是对当前版本中与目标版本的不同进行更新,不用卸载当前版本再进行目标版本的安装,也大幅减少了文件更新的时间。
[0102]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种文件更新方法,其特征在于,包括: 接收客户端发送的更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识; 根据所述当前版本标识和目标版本标识,确定从所述待更新文件的当前版本更新到目标版本时所需的增量更新包; 向所述客户端发送确定出的所述增量更新包,用以所述客户端应用所述增量更新包将所述待更新文件的当前版本更新到目标版本。
2.如权利要求1所述的方法,其特征在于,根据所述当前版本标识和目标版本标识,确定从所述待更新文件的当前版本更新到目标版本时所需的增量更新包,具体包括: 根据所述当前版本标识和目标版本标识,确定是否存在预先生成的使所述当前版本更新到所述目标版本的补丁文件; 若存在,将其确定为所述增量更新包; 若不存在,将从所述当前版本更新到目标版本所需的多个中间版本的补丁文件组合确定为所述增量更新包。
3.如权利要求2所述的方法,其特征在于,所述使所述当前版本更新到所述目标版本的补丁文件具体通过如下方式生成: 分别将所述当前版本和目标版本读取到缓存中; 比较所述目标版本和所述当 前版本,将得到的所述目标版本相对于所述当前版本的差异数据,以及所述差异数据在所述当前版本中的位置信息写入所述补丁文件中。
4.如权利要求1-3任一项所述的方法,其特征在于,在接收客户端发送的更新请求之前,还包括: 接收所述客户端发送的所述待更新文件的当前版本标识; 在确定接收到的所述当前版本标识与本地保存的目标版本标识不同时,向所述客户端返回携带所述目标版本标识的更新信息。
5.一种文件更新方法,应用于移动终端,其特征在于,包括: 向服务器发送更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识; 接收所述服务器根据所述更新请求返回的从所述待更新文件的当前版本更新到目标版本时所需的增量更新包; 应用所述增量更新包将所述待更新文件的当前版本更新到所述目标版本。
6.如权利要求5所述的方法,其特征在于,应用所述增量更新包将所述待更新文件的当前版本更新到目标版本,具体包括: 将所述增量更新包读取到缓存中,所述增量更新包为包含所述目标版本相对于所述当前版本的差异数据,以及所述差异数据在所述当前版本中的位置信息的补丁文件; 根据所述位置信息和所述差异数据,将所述待更新文件的当前版本更新到所述目标版本。
7.如权利要求5或6所述的方法,其特征在于,在向服务器发送更新请求之前,还包括: 读取待更新文件的当前版本标识,并将其发送到所述服务器;接收所述服务器在确定所述当前版本标识与目标版本标识不同时返回的更新信息,所述更新信息包含所述目标版本标识。
8.一种文件更新装置,其特征在于,包括: 接收单元,用于接收客户端发送的更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识; 确定单元,用于根据所述当前版本标识和目标版本标识,确定从所述待更新文件的当前版本更新到目标版本时所需的增量更新包; 发送单元,用于向所述客户端发送确定出的所述增量更新包,用以所述客户端应用所述增量更新包将所述待更新文件的当前版本更新到目标版本。
9.如权利要求8所述的装置,其特征在于,所述确定单元,具体用于根据所述当前版本标识和目标版本标识,确定是否存在预先生成的使所述当前版本更新到所述目标版本的补丁文件;若存在,将其确定为所述增量更新包;若不存在,将从所述当前版本更新到目标版本所需的多个中间版本的补丁文件组合确定为所述增量更新包。
10.如权利要求9所述的装置,其特征在于,还包括:生成补丁文件单元,用于分别将所述当前版本和目标版本读取到缓存中;比较所述目标版本和所述当前版本,将得到的所述目标版本相对于所述当前版的差异数据,以及所述差异数据在所述当前版本中的位置信息写入所述补丁文件中。
11.如权利要求8-10任一项所述的装置,其特征在于,所述接收单元,还用于接收所述客户端发送的所述待更新文件的当前版`本标识; 所述发送单元,还用于在确定接收到的所述当前版本标识与本地保存的目标版本标识不同时,向所述客户端返回携带所述目标版本标识的更新信息。
12.一种服务器,其特征在于,包括如权利要求8-11任一项所述的文件更新装置。
13.一种文件更新装置,应用于移动终端,其特征在于,包括: 发送单元,用于向服务器发送更新请求,所述更新请求包含待更新文件的当前版本标识和目标版本标识; 接收单元,用于接收所述服务器根据所述更新请求返回的从所述待更新文件的当前版本更新到目标版本时所需的增量更新包; 更新单元,用于应用所述增量更新包将所述待更新文件的当前版本更新到所述目标版本。
14.如权利要求13所述的装置,其特征在于,所述更新单元,具体用于将所述增量更新包读取到缓存中,所述增量更新包为包含所述目标版本相对于所述当前版本的差异数据,以及所述差异数据在所述当前版本中的位置信息的补丁文件;根据所述位置信息和所述差异数据,将所述待更新文件的当前版本更新到所述目标版本。
15.如权利要求13或14所述的装置,其特征在于,所述发送单元,还用于读取待更新文件的当前版本标识,并将其发送到所述服务器; 所述接收单元,还用于接收所述服务器在确定所述当前版本标识与目标版本标识不同时返回的更新信息,所述更新信息包含所述目标版本标识。
16.一种客户端,应用于移动终端,其特征在于,包括如权利要求13-15任一项所述的文件更新装置。
【文档编号】G06F9/445GK103428188SQ201210167127
【公开日】2013年12月4日 申请日期:2012年5月25日 优先权日:2012年5月25日
【发明者】孙鹏, 王巍, 万钰臻 申请人:北京小米科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1