CN114564227A - 应用程序更新方法、装置、电子设备和存储介质 - Google Patents
应用程序更新方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114564227A CN114564227A CN202210211546.6A CN202210211546A CN114564227A CN 114564227 A CN114564227 A CN 114564227A CN 202210211546 A CN202210211546 A CN 202210211546A CN 114564227 A CN114564227 A CN 114564227A
- Authority
- CN
- China
- Prior art keywords
- file
- version
- application program
- patch
- identifier
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种应用程序更新方法、装置、电子设备和存储介质,所述方法包括:将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;获取所述应用程序的历史版本标识对应的版本差异文件;将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个版本标识对应的文件下载长度并保存为补丁列表文件;增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。本发明实施例提高了应用程序的更新效率。
Description
技术领域
本发明实施例涉及互联网技术领域,特别是涉及一种应用程序更新方法、一种应用程序更新装置、电子设备和存储介质。
背景技术
随着互联网的快速发展,应用程序的更新越来越频繁。以游戏程序为例,随着游戏程序的玩法越来越丰富,游戏画质越来越高,3D(三维)立体效果越来越真实,同时,由于计算机、游戏主机、手机等终端设备的性能越来越高,游戏玩家对游戏程序的游戏画质、可玩性、体验性、安全性等要求越来越苛刻,因此,经常需要在游戏运营期间线上发布补丁文件来修改游戏程序,以满足修补游戏程序中的BUG(故障)、增加游戏玩法、修补安全漏洞等需要。
然而,虽然市场上已经应用程序更新方案,但是通常是发布应用程序对应的所有更新版本的补丁文件,因此终端设备在更新应用程序时,都需要下载较大的补丁文件,使得应用程序的更新效率较低。
发明内容
本发明实施例是提供一种应用程序更新方法,以解决现有技术中应用程序的更新效率较低的问题。
相应的,本发明实施例还提供了一种应用程序更新装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种应用程序更新方法,应用于服务器,所述方法包括:
将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;
获取所述应用程序的历史版本标识对应的版本差异文件;
将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;
将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
可选地,所述将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件,包括:
获取应用程序的最新版本标识对应的资源文件的第一消息摘要标识,以及所述应用程序的前一版本标识对应的资源文件的第二消息摘要标识;
将与所述第二消息摘要标识不相同的所述第一消息摘要标识对应的资源文件,制作为所述最新版本标识对应的版本差异文件。
可选地,在所述获取所述应用程序的历史版本标识对应的版本差异文件之后,还包括:
删除所述历史版本标识对应的版本差异文件中,与所述最新版本标识对应的版本差异文件中相同的资源文件。
可选地,所述增量补丁文件为一个。
本发明实施例还公开了一种应用程序更新方法,应用于终端设备,所述方法包括:
获取应用程序的当前版本标识;
获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度;
从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度;
按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件;
根据所述目标增量补丁文件更新所述应用程序。
可选地,所述获取所述应用程序的补丁列表文件,包括:
向服务器发送请求所述应用程序的补丁列表文件的网络请求;
接收所述服务器根据所述网络请求发送的所述补丁列表文件。
可选地,所述按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件,包括:
向服务器发送请求所述应用程序的增量补丁文件的网络请求;所述网络请求中包括所述目标文件下载长度;所述服务器用于从所述增量补丁文件中提取为所述目标文件下载长度的目标增量补丁文件;
接收所述服务器发送的所述目标增量补丁文件。
可选地,所述增量补丁文件为一个;所述应用程序的当前版本标识越高,所述目标增量补丁文件越小。
本发明实施例还公开了一种应用程序更新装置,应用于服务器,所述装置包括:
版本差异文件生成模块,用于将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;
版本差异文件获取模块,用于获取所述应用程序的历史版本标识对应的版本差异文件;
版本差异文件合并模块,用于将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;
补丁列表文件生成模块,用于将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
本发明实施例还公开了一种应用程序更新装置,应用于终端设备,所述装置包括:
版本标识获取模块,用于获取应用程序的当前版本标识;
补丁列表文件获取模块,用于获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度;
文件下载长度确定模块,用于从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度;
增量补丁文件下载模块,用于按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件;
应用程序更新模块,用于根据所述目标增量补丁文件更新所述应用程序。
本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的应用程序更新方法的步骤。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的应用程序更新方法的步骤。
本发明实施例还公开了一种计算机程序产品,该程序产品被存储在存储介质中,该计算机程序产品被至少一个处理器执行以实现如本发明实施例所述的方法。
本发明实施例包括以下优点:
在本发明实施例中,根据应用程序的最新版本标识对应的资源文件以及应用程序的前一版本标识对应的资源文件,生成最新版本标识对应的版本差异文件,将最新版本标识对应的版本差异文件与历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件,此外,还将增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个版本标识对应的文件下载长度并保存为补丁列表文件,随后,终端设备可以使用增量补丁文件和补丁列表文件进行应用程序的更新。本发明实施例的终端设备在更新应用程序,只需要基于最新版本标识从补丁列表文件确定的目标文件下载长度,从增量补丁文件中下载对应的目标增量补丁文件即可,无需下载整个增量补丁文件,避免下载了不必要的增量补丁文件,提高了应用程序的更新效率。
附图说明
图1是一种AssetBundle散文件更新方案的处理逻辑的示意图;
图2是一种增量资源包的打包过程示意图;
图3是一种增量资源包更新方案的处理逻辑的示意图;
图4是一种跳跃式增量更新方案的处理逻辑的示意图;
图5是本发明的一种应用程序更新方法实施例的步骤流程图;
图6是本发明的一种增量补丁文件的打包示意图;
图7是本发明的一种记录了前一版本标识的所有资源文件的MD5的字典A的示意图;
图8是本发明的一种记录了每个版本标识的版本差异文件的资源文件的MD5的字典B的示意图;
图9是本发明的一种制作最新版本标识的增量补丁文件Diff8的变化过程示意图;
图10是本发明的另一种应用程序更新方法实施例的步骤流程图;
图11是本发明的一种应用程序交互更新的示意图;
图12是本发明的一种应用程序的增量补丁文件的示意图;
图13是本发明的一种应用程序更新装置实施例的结构框图;
图14是本发明的另一种应用程序更新装置实施例的结构框图;
图15是本发明实施例中提供的一种电子设备的框图;
图16是本发明实施例中提供的一种计算机可读介质的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
以游戏程序(客户端)为例,在相关技术方案中,Unity游戏引擎通用的游戏程序的游戏补丁发布、更新方案包括:
1、AssetBundle散文件更新方案:
参照图1,AssetBundle散文件更新方案的处理逻辑为:
客户端逻辑:(1)在Resconfig配置文件中,本地记录游戏程序的资源列表和资源版本号;(2)资源文件下载后直接使用。
服务器逻辑:(1)保存一份最新资源文件;(2)最新资源列表;3)最新patch补丁版本号;
具体地,游戏程序的游戏补丁更新逻辑:(1)客户端启动请求patch方案详情;2)从服务器最新资源列表中获取最新资源版本号;(3)对比本地客户端的资源版本号和服务器的资源版本号;(4)得出需要更新的资源列表;(5)逐个发起http请求获取最新资源文件;(6)逐个下载最新资源文件到本地客户端。
2、增量资源包更新方案:
参照图2,当资源文件(版本5)更新,需要打包增量资源包的时候,每个旧的资源版本(版本1、版本2、版本3、版本4)都会与最新资源做差异(diff)对比,生成一个对应的增量资源包(patch包1-5、patch包2-5、patch包3-5、patch包4-5)。
参照图3,基于增量资源包更新过程如下:
(1)客户端发送本地资源版本号至服务器,请求Patchlist文件。(2)服务器接收到客户端的请求后,与最新资源版本号做对比,得出差异版本,返回对应patch包地址。(3)客户端根据返回的patch地址,向服务器发起patch包的下载请求。(4)服务器验证通过后,允许客户端下载对应的patch包。
3、跳跃式增量更新方案
参照图4,如果是正常逐级更新,Ver1更新到Ver2需要下载增量包patch1_2,Ver2更新到Ver3需要下载增量包patch2_3,Ver3更新到Ver4需要下载增量包patch3_4,Ver4更新到Ver5需要下载增量包patch4_5,可见,旧版本客户端需要逐个下载版本之间的增量包,效率会非常低,并且,也可能版本间会产生大量冗余。
目前,有一种较好的方式是在中间版本设置标志位,合并部分增量包或者剔除部分冗余增量包,得到每个版本对应的增量包patch,例如patch1_5、patch2_4、patch2_5、patch1_5,实现跳跃式更新。
然而,上述方案均存在一定缺陷,具体如下:
1、AssetBundle散文件更新方案:
(1)AssetBundle散文件更新方案的优点是维护极其方便,只需要在服务器上保存一份最新的资源文件,但是缺点也非常明显,每下载一个资源文件都需要发起一个http请求,下载速度慢,玩家等待时间非常久,非常容易造成玩家流失,大量的资源文件的分别读取,也会导致设备IO(输入/输出(Input/Output))耗时较久。(2)散文件更新方案,还需要在线对比资源文件的差异,筛选需要出需要更新的列表,这也会产生大量的等待时间
2、增量资源包更新方案:
(1)这种方式全程只有2次http网络请求,大幅减少了请求次数多带来的耗时。(2)每次都需要打所有版本的patch包,版本号越多,打包的patch包越多,打包和上传耗时多。(3)其次,开发难度高,维护成本大,patch文件较大,长期积累后,本地客户端会有冗余残留。
3、跳跃式增量更新方案
(1)标志位维护麻烦,Patchlist文件需要详细记录合并的版本信息或者冗余版本信息,当版本越来越多后,Patchlist文件会比较大,Patchlist文件越大,更新处理就会复杂。(2)不管如何跳跃,服务器都需要保存多个版本的增量包,让不同版本更新到最新版本。例如,Ver1和Ver2跳跃性更新到Ver5,服务器最少也要保存2个增量补丁包。(3)打包逻辑复杂,当冗余资源文件越多,跳跃更新越多,需要处理的问题就越多。
针对上述现有技术方案的缺陷,本发明实施例为了解决增量补丁文件下载过程中等待时间太久,导致玩家体验差的问题,提供一种Unity游戏引擎发布游戏程序增量补丁的方式,可以减少下载增量补丁文件时的等待时间,也适用于其他游戏引擎。
参照图5,示出了本发明的一种应用程序更新方法实施例的步骤流程图,应用于服务器,本发明实施例具体可以包括如下步骤:
步骤501、将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件。
其中,应用程序可以是游戏应用程序、生活服务类应用程序等等;版本标识是用于标记应用程序的更新顺序的标识,可以是编号或者名称等等。例如,版本标识可以为版本1、版本2、ver1、ver2……。
在具体实现中,在应用程序进行修正或功能更新后,会将应用程序的版本标识从前一版本标识更新为最新版本标识。例如,假设应用程度的当前版本标识为ver1,在应用程序进行修正或功能更新后,则该应用程序可以从当前版本标识ver1更新为最新版本标识ver2。
在本发明实施例,在应用程序更新后,比对当前版本标识的每个资源文件与前一版本标识的每个资源文件相比是否有变化,然后将当前版本标识与前一版本标识的不同的资源文件。示例性地,当前版本标识有但是前一版本标识没有的资源文件,例如当前版本标识有资源文件X,但是前一版本标识没有的资源文件X,或者,当前版本标识和前一版本标识都有的资源文件Y,但是当前版本标识的资源文件Y发生了变化,例如内容发生了变化,则将与前一版本标识的资源文件不同的当前版本标识的资源文件,制作为当前版本标识对应的版本差异文件。作为一种可选示例,可以按照Unity3D标准制作出版本差异文件。
步骤502、获取所述应用程序的历史版本标识对应的版本差异文件。
步骤503、将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件。
在本发明实施例中,获取应用程序的历史版本标识对应的版本差异文件,然后,将最新版本标识对应的版本差异文件与历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件。
参照图6,假设应用程序的最新版本标识ver9,则在制作完成ver9对应的版本差异文件Diff_ver8后,可以获取应用程序的历史版本标识ver8,ver7,ver6,ver5,ver4,ver3,ver2分别对应的版本差异文件Diff_ver7,Diff_ver6,Diff_ver5,Diff_ver4,Diff_ver3,Diff_ver2,Diff_ver1,然后,可以按照版本标识的顺序,最新版本标识的放前面,旧版本标识的放后面,即按照版本标识倒序合并各个版本标识对应的版本差异文件,制作出需要发布应用程序的的增量补丁文件,需要说明的是,增量补丁文件只需要制作一个,当然,最终也只需要发布这一个增量补丁文件,因此可以降低服务器的存储压力。
步骤505、将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
在本发明实施例中,在得到应用程序最新版本标识的增量补丁文件后,可以进一步基于增量补丁文件生成补丁列表文件(Patchlist文件),并存放在服务器中,用于在终端设备需要对应用程序进行更新时,可以基于补丁列表文件,来确定需要从增量补丁文件中提取的目标增量补丁文件,需要注意的是,终端设备并不需要完整下载一个增量补丁文件,最大限度减轻了服务器数据传输的压力。
具体地,获取增量补丁文件中每一个版本标识对应的版本差异文件对应的字节长度,作为每一个版本标识的所需要的文件下载长度,记录在Patchlist文件中的rangeEnd字段。
作为一个具体示例,Patchlist文件可以为:
{“ver_new”:9,“scrip_ver_new”:9,“flagVersions”:[],“rangeVersion”:[
{“ver”:8,“scrip_ver”:8,rangeEnd:1667499},
{“ver”:7,“scrip_ver”:8,rangeEnd:1767441}
{“ver”:6,“scrip_ver”:8,rangeEnd:1867488}
{“ver”:5,“scrip_ver”:8,rangeEnd:1967497}
{“ver”:6,“scrip_ver”:8,rangeEnd:2667446}
{“ver”:3,“scrip_ver”:8,rangeEnd:3067449}
{“ver”:2,“scrip_ver”:8,rangeEnd:127490500}
{“ver”:1,“scrip_ver”:8,rangeEnd:127490524}]}
在终端设备需要更新应用程序时,可以获取应用程序的当前版本标识ver N,所需下载的文件长度为Patchlist文件中应ver=N的rangeEnd,例如,应用程序的当前版本标识是7,则从Patchlist文件中取ver=7的rangeEnd,即“1667499”,然后就可以从增量补丁文件中,下载文件长度为“1667499”字节的增量补丁文件,用于对应用程序进行更新。
在上述应用程序的更新方法中,根据应用程序的最新版本标识对应的资源文件以及应用程序的前一版本标识对应的资源文件,生成最新版本标识对应的版本差异文件,将最新版本标识对应的版本差异文件与历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件,此外,还将增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个版本标识对应的文件下载长度并保存为补丁列表文件,随后,终端设备可以使用增量补丁文件和补丁列表文件进行应用程序的更新。本发明实施例的终端设备在更新应用程序,只需要基于最新版本标识从补丁列表文件确定的目标文件下载长度,从增量补丁文件中下载对应的目标增量补丁文件即可,无需下载整个增量补丁文件,避免下载了不必要的增量补丁文件,提高了应用程序的更新效率。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在一示例性实施例中,所述步骤501、将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件,可以包括如下步骤:
获取应用程序的最新版本标识对应的资源文件的第一消息摘要标识,以及所述应用程序的前一版本标识对应的资源文件的第二消息摘要标识;
将与所述第二消息摘要标识不相同的所述第一消息摘要标识对应的资源文件,制作为所述最新版本标识对应的版本差异文件。
其中,消息摘要标识是指基于MD5(Message-Digest Algorithm5,消息-摘要算法第五版)算法计算出来的值,基于消息摘要标识可以确定一个资源文件是否发生了变化。当然,除了MD5算法之外,其他能够用于确定资源文件是否发生变化的加密算法,例如DES加密算法、AES加密算法、RSA加密算法等等均可,本发明实施例对此无需加以限制。
具体地,如果应用程序的最新版本标识对应的资源文件的第一消息摘要标识,与应用程序的前一版本标识对应的资源文件的第二消息摘要标识,如果第一消息摘要标识与第二消息摘要标识不相等,则可以确定为最新版本标识对应的资源文件相比对前一版本标识的资源文件发生了变化,则可以利用最新版本标识与前一版本标识不同的资源文件,制作最新版本标识对应的版本差异文件。
作为一个可选示例,在字典A记录前一版本标识中每个资源文件的MD5,在应用程序的资源文件更新后,将制作最新版本标识的增量补丁文件时,遍历最新版本标识的每个资源文件的新MD5,并对比字典A中前一个版本标识的旧MD5,找出有变化的资源文件,其中,有变化的资源文件记录在字典B中,然后可以基于记录在字典B中的资源文件,生成该最新版本标识的版本差异文件。
在一示例性实施例中,在所述步骤502、获取所述应用程序的历史版本标识对应的版本差异文件之后,所述方法还可以包括如下步骤:
删除所述历史版本标识对应的版本差异文件中,与所述最新版本标识对应的版本差异文件中相同的资源文件。
在本发明实施例中,每次制作增量补丁文件,都会重新打包所有版本标识的版本差异文件,并删除旧的版本差异文件中最新的版本差异文件里包含的资源文件。即当客户端版本超过2个时,制作增量补丁文件时,会排查最新的变化资源文件是否在字典B中,若字典B中存在该资源文件的名称,则会删除对应旧版本差异文件中的该资源文件,并制作出新的增量补丁文件。
在本发明实施例中,假设应用程序的最新版本标识对应的资源文件A、E、H发生变化,则需要重新制作增量补丁文件,其中,图7为记录了前一版本标识的所有资源文件的MD5的字典A,图8为记录了每个版本标识的版本差异文件的资源文件的MD5的字典B,具体执行逻辑如下:
(1)扫描最新版本标识的最新资源文件的MD5对比字典A中前一版本标识的资源文件MD5,发现资源A、E、H资源文件的MD5发生变化。
(2)在字典B中扫描是否有A、E、H资源文件,发现在Diff1中有A资源,Diff2中有E资源。
(3)参照图9,重新打包所有Diff包(版本差异文件),将Diff1中的A资源文件删除,将Diff2中的E资源文件删除,最新Diff8中包含A、E、H资源文件。如此,增量补丁文件的大小可控,不会一直增大,终端设备也不会产生冗余,减少不必要的资源文件下载。
当制作完成客户端每一个版本标识所需的Diff包之后,按照版本标识倒序拼接合成一个增量补丁文件,如此,可以使得即使众多的用户的终端设备上有各种不同版本标识的客户端,也可以基于版本标识从增量补丁文件中提取对应的Diff包进行更新,并且,越接近最新版客户端,所需要下载的增量补丁文件的越少,这是因为只需要下载最前面差异的部分即可完成应用程序的更新。
示例性地,参照图6,当前客户端最新版本标识为Ver9,最旧版本标识为Ver1,获取到客户端每一个版本标识对应的Diff包为Diff_Ver1、Diff_Ver2、Diff_Ver3、Diff_Ver4、Diff_Ver5、Diff_Ver6、Diff_Ver7、Diff_Ver8,然后,按照版本标识倒序拼接合成一个增量补丁文件,最后打包可以得到增量补丁文件Patch1_9为:
Diff_Ver8-Diff_Ver7-Diff_Ver6-Diff_Ver5-Diff_Ver4-Diff_Ver3-Diff-Ver2-Diff-Ver1。
具体地,在得到增量补丁Patch1_9,客户端可以更新到最新版本9,例如,对于Ver=8的客户端,只需要下载Patch1_9中的Diff_Ver8,就可以更新到最新9版本。Ver=7的客户端,只需要下载Patch1_9中的Diff_Ver8和Diff_Ver7,就可以升到最新9版本。
参照图10,示出了本发明的另一种应用程序更新方法实施例的步骤流程图,应用于终端设备,本发明实施例具体可以包括如下步骤:
步骤1001、获取应用程序的当前版本标识。
步骤1002、获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度。
步骤1003、从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度。
在本发明实施例中,在应用程序更新时,可以获取到应用程序的当前版本标识,例如版本号为7,然后获取应用程序的补丁列表文件,以根据补丁列表文件确定当前版本对应的目标文件下载长度。
在一示例性实施例中,所述步骤1002、获取所述应用程序的补丁列表文件,可以包括如下步骤:
向服务器发送请求所述应用程序的补丁列表文件的网络请求;
接收所述服务器根据所述网络请求发送的所述补丁列表文件。
具体地,补丁列表文件保存在服务器中,应用程序更新时可以向服务器发送应用程序的补丁列表文件的网络请求,以从服务器中获取应用程序对应的补丁列表文件,进而可以根据补丁列表文件确定当前版本对应的目标文件下载长度。
步骤1004、按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件。
步骤1005、根据所述目标增量补丁文件更新所述应用程序。
在本发明实施例中,在获取确定应用程序的目标文件下载长度后,就可以从增量补丁文件中下载到目标增量补丁文件,以根据目标增量补丁文件更新所述应用程序。
在一示例性实施例中,所述步骤1004、按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件,可以包括如下步骤:
向服务器发送请求所述应用程序的增量补丁文件的网络请求;所述网络请求中包括所述目标文件下载长度;所述服务器用于从所述增量补丁文件中提取为所述目标文件下载长度的目标增量补丁文件;
接收所述服务器发送的所述目标增量补丁文件。
此增量补丁文件存放了不同版本客户端所需要差异文件,并且倒序排列,越新的版本需要下载的差异文件放在前面。因此,在本发明实施例中,向服务器发送请求应用程序的增量补丁文件的网络请求,其中,该网络请求中包括了应用程序当前版本标识对应的目标文件下载长度,因此,服务器在接收到该网络请求后,可以根据目标文件下载长度,从增量补丁文件中提取目标增量补丁文件。
需要说明的是,因为制作增量补丁文件的时候,已经把无效冗余的差异文件移除,所以服务器上保存唯一的增量补丁文件是不存在冗余文件的,全都是最新有效的。因为不同版本客户端所需的差异文件是从高到低倒序排列在此增量补丁文件中,所以可以利用http下载文件时的指定长度的目标增量文件,对此增量补丁文件进行不同长度的下载,做到服务器只存放一个游戏的增量补丁文件,但不同版本的游戏程序进行更新。
在上述应用程序更新方法中,在需要对应用程序进行更新时,获取应用程序的当前版本标识,获取所述应用程序的补丁列表文件,从补丁列表文件中获取当前版本标识的目标文件下载长度,以按照目标文件下载长度从增量补丁文件中下载到目标增量补丁文件,最后可以根据目标增量补丁文件更新应用程序。由于本发明实施例在服务器只存放了一个游戏的增量补丁文件,并不是在服务器存放多个不同版本的增量补丁文件,因此无需下载整个增量补丁文件,避免了下载不必要的目标增量补丁文件,提高了应用程序的更新效率。
参照图11,在终端设备侧,更新具体逻辑如下:
1.获取客户端本地版本号N,所需下载的文件长度为Patchlist文件里面对应ver=N的rangeEnd,例如本地版本号是7,就是取ver=7的rangeEnd。
2.客户端发起http请求下载指定长度的目标增量补丁文件。
3.客户端解压下载的目标增量补丁文件,完成应用程序的更新。
参照图12,在服务器中保存了当前最新版本为Ver10的应用程序的增量补丁文件Patch1_9,在Patch1_9中包含了Diff_Ver 8(Ver8与Ver9之间的版本差异文件),Diff_Ver7(Ver7与Ver8之间的版本差异文件),Diff_Ver 6(Ver6与Ver7之间的版本差异文件),Diff_Ver 5(Ver5与Ver6之间的版本差异文件),Diff_Ver 4(Ver4与Ver5之间的版本差异文件),Diff_Ver 3(Ver3与Ver4之间的版本差异文件),Diff_Ver 2(Ver2与Ver3之间的版本差异文件),Diff_Ver 1(Ver1与Ver2之间的版本差异文件)。
对于各个版本的客户端,只需要分别按照其版本标识,从增量补丁文件Patch1_9获取都对应的目标增量补丁文件即可。例如,假设从Ver8更新到Ver9,所需的目标增量文件为Diff_Ver 8;假设从Ver7更新到Ver9,所需的目标增量文件为Diff_Ver 8、Diff_Ver 7;假设从Ver6更新到Ver9,所需的目标增量文件为Diff_Ver 8、Diff_Ver 7、Diff_Ver 6;假设从Ver5更新到Ver9,所需的目标增量文件为Diff_Ver 8、Diff_Ver 7、Diff_Ver 6、Diff_Ver 5;假设从Ver4更新到Ver9,所需的目标增量文件为Diff_Ver 8、Diff_Ver 7、Diff_Ver6、Diff_Ver 5、Diff_Ver 4;假设从Ver3更新到Ver9,所需的目标增量文件为Diff_Ver 8、Diff_Ver 7、Diff_Ver 6、Diff_Ver 5、Diff_Ver 4、Diff_Ver3;假设从Ver2更新到Ver9,所需的目标增量文件为Diff_Ver 8、Diff_Ver 7、Diff_Ver 6、Diff_Ver 5、Diff_Ver 4、Diff_Ver 3、Diff_Ver 2;假设从Ver1更新到Ver9,所需的目标增量文件为Diff_Ver 8、Diff_Ver 7、Diff_Ver 6、Diff_Ver5、Diff_Ver 4、Diff_Ver 3、Diff_Ver 2、Diff_Ver 1。可见,随着应用程序的当前版本标识越高,目标增量补丁文件越小。
为了使本领域技术人员更好地理解本发明实施例,以下采用一个具体实现进行说明。
本发明实施例的核心内容主要分为三大部分。第一部分是制作每个版本的差异资源集时的差异处理;第二部分是将每一个版本的差异资源集合并成最终增量补丁文件,服务器仅存放此唯一增量补丁文件;第三部分是游戏客户端按不同文件长度下载增量补丁文件,做到服务器只有一个增量补丁文件,当可以使不同版本更新到最新版本的逻辑。
1)制作版本更新版本差异包
(1)字典A记录上一个客户端版本中每个资源的MD5。
(2)有资源文件更新后,制作新的增量补丁文件时,遍历当前每个资源的MD5并对比字典A中上一个版本的旧MD5,找出有变化的资源文件。有变化的资源文件记录在字典B,按照Unity3D标准制作出版本差异包。
(3)本发明实施例每次制作增量补丁文件,都会重新所有客户端版本的版本差异文件,并剔除旧版本的版本差异文件中最新的版本差异文件中包含的资源文件。即当客户端版本超过2个时,制作版本差异文件时在步骤(2)的基础上,会排查最新的变化资源文件是否在字典B中,若字典B中存在该资源名称,则会删除对应旧版本的版本差异文件中的该资源文件,并制作出新的版本差异文件。
2)打包最终唯一的增量补丁文件
按照版本顺序,版本最新的版本差异文件放前面,倒序合并各版本差异集,制作增量补丁文件,最终只需要发布这一个增量补丁文件。
3)客户端根据不同文件长度下载逻辑
(1)服务器存放一份Patchlist文件,记录每一个客户端版本的所需要的文件下载长度,记录在rangeEnd字段。
(2)获取客户端本地版本号N,所需下载的文件下载长度为Patchlist里面对应ver=N的rangeEnd,例如本地版本号是7,就是取ver=7的rangeEnd。
(3)客户端发起http请求下载服务器上唯一的增量补丁文件的指定文件下载长度的内容,作为目标增量补丁文件,以进行客户端更新。
应用本发明实施例,至少具有如下优点:
(1)提高下载速度
本发明实施例会合并成客户端的唯一增量补丁文件,并按不同版本的新旧程度,从增量补丁文件中下载不同文件下载长度的内容作为目标增量补丁文件,其中,本发明实施例只需要对服务器进行两次http请求,就可以完成下载,具体地,一次是发送http请求从服务器请求Patchlist文件,用于确定需要从增量补丁文件中下载的文件下载长度,一次是根据Patchlist文件里面的rangeEnd字段发送包含文件下载长度的http请求,用于从增量补丁文件进行下载该文件下载长度的内容。
现今的网络环境已经进入5G时代,理论下载速度可以达到20Gbps,但是旧有的补丁发布方案,下载速度往往低于1MB/S,速度非常慢,最大的原因更新时需要多次发送http请求,时间都耗在与服务器建立连接中。本发明实施例则是解决了上述问题,http请求只需要发送两次,可以充分释放带宽,享受5G时代带来的极速下载速度。经实验室测试,其他条件相同情况下,本发明实施例的下载速度是散文件补丁方案的6倍以上。可以理解,增量补丁文件的下载速度提高,带来最直接的影响就是减少在应用程序更新时的下载等待时间,可以大幅度减少用户因为应用程序更新等待而流失的情况。
(2)减少差异校验时间
在增量补丁文件发布前的制作过程,已经计算好每一个版本的版本差异文件,并且按倒序拼接成一个增量补丁文件,在终端设备的应用程序更新的时候,只需要按照约定的文件下载长度,从增量补丁文件中下载对应的文件后解压就可以进行应用程序更新,不需要再次对比客户端和服务端的文件差异,进一步减少了等待时间。
(3)增量补丁文件总大小可控,客户端更新增量补丁文件后本地不会产生资源冗余
每一次制作应用程序的增量补丁文件时,都会重写打包所有版本的版本差异文件,当发现最新版本差异文件里修改的资源文件同时存在于旧版本差异文件的时候,会把旧的版本差异文件的同名的资源文件删掉。如此,可以避免客户端更新的时候下载到无用的资源文件,避免冗余产生,同时增量补丁文件的大小可以控制,不会一直无限增大,服务器上存放的增量补丁文件,永远少于最新应用程序的整包的大小。
(4)服务器只存放唯一的一个增量补丁文件,最大限度减轻了服务器的存储和上传压力
由于服务器只需要存放一个增量补丁文件,且因为此增量补丁文件的大小可控的,所以最大限度减轻了服务器的存储压力,以及上传增量补丁文件时的耗时,维护简单。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图13,示出了本发明的一种应用程序更新装置实施例的结构框图,应用于服务器,本发明实施例具体可以包括如下模块:
版本差异文件生成模块1301,用于将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;
版本差异文件获取模块1302,用于获取所述应用程序的历史版本标识对应的版本差异文件;
版本差异文件合并模块1303,用于将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;
补丁列表文件生成模块1304,用于将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
在一示例性实施例中,所述版本差异文件生成模块1301,用于获取应用程序的最新版本标识对应的资源文件的第一消息摘要标识,以及所述应用程序的前一版本标识对应的资源文件的第二消息摘要标识;将与所述第二消息摘要标识不相同的所述第一消息摘要标识对应的资源文件,制作为所述最新版本标识对应的版本差异文件。
在一示例性实施例中,所述装置还包括:资源文件删除模块,用于删除所述历史版本标识对应的版本差异文件中,与所述最新版本标识对应的版本差异文件中相同的资源文件。
参照图14,示出了本发明的一种应用程序更新装置实施例的结构框图,应用于终端设备,本发明实施例具体可以包括如下模块:
版本标识获取模块1401,用于获取应用程序的当前版本标识;
补丁列表文件获取模块1402,用于获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度;
文件下载长度确定模块1403,用于从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度;
增量补丁文件下载模块1404,用于按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件;
应用程序更新模块1405,用于根据所述目标增量补丁文件更新所述应用程序。
在一示例性实施例中,所述补丁列表文件获取模块1402,用于向服务器发送请求所述应用程序的补丁列表文件的网络请求;接收所述服务器根据所述网络请求发送的所述补丁列表文件。
在一示例性实施例中,所述增量补丁文件下载模块1404,用于向服务器发送请求所述应用程序的增量补丁文件的网络请求;所述网络请求中包括所述目标文件下载长度;所述服务器用于从所述增量补丁文件中提取为所述目标文件下载长度的目标增量补丁文件;接收所述服务器发送的所述目标增量补丁文件。
在一示例性实施例中,所述应用程序的当前版本标识越高,所述目标增量补丁文件越小。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另外,本发明实施例还提供一种电子设备,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信;
存储器1503,用于存放计算机程序;处理器1501,用于执行存储器1503上所存放的程序时,实现以下步骤:
将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;
获取所述应用程序的历史版本标识对应的版本差异文件;
将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;
将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
可选地,所述将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件,包括:
获取应用程序的最新版本标识对应的资源文件的第一消息摘要标识,以及所述应用程序的前一版本标识对应的资源文件的第二消息摘要标识;
将与所述第二消息摘要标识不相同的所述第一消息摘要标识对应的资源文件,制作为所述最新版本标识对应的版本差异文件。
可选地,在所述获取所述应用程序的历史版本标识对应的版本差异文件之后,还包括:
删除所述历史版本标识对应的版本差异文件中,与所述最新版本标识对应的版本差异文件中相同的资源文件。
可选地,所述增量补丁文件为一个。
所述计算机程序被所述处理器执行时还实现如下步骤:
获取应用程序的当前版本标识;
获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度;
从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度;
按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件;
根据所述目标增量补丁文件更新所述应用程序。
可选地,所述获取所述应用程序的补丁列表文件,包括:
向服务器发送请求所述应用程序的补丁列表文件的网络请求;
接收所述服务器根据所述网络请求发送的所述补丁列表文件。
可选地,所述按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件,包括:
向服务器发送请求所述应用程序的增量补丁文件的网络请求;所述网络请求中包括所述目标文件下载长度;所述服务器用于从所述增量补丁文件中提取为所述目标文件下载长度的目标增量补丁文件;
接收所述服务器发送的所述目标增量补丁文件。
可选地,所述增量补丁文件为一个;所述应用程序的当前版本标识越高,所述目标增量补丁文件越小。
终端设备在更新应用程序,只需要基于最新版本标识从补丁列表文件确定的目标文件下载长度,从增量补丁文件中下载对应的目标增量补丁文件即可,无需下载整个增量补丁文件,避免下载了不必要的增量补丁文件,提高了应用程序的更新效率。
由于在服务器只存放了一个游戏的增量补丁文件,并不是在服务器存放多个不同版本的增量补丁文件,因此无需下载整个增量补丁文件,避免了下载不必要的目标增量补丁文件,提高了应用程序的更新效率。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现以下步骤:
将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;
获取所述应用程序的历史版本标识对应的版本差异文件;
将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;
将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
可选地,所述将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件,包括:
获取应用程序的最新版本标识对应的资源文件的第一消息摘要标识,以及所述应用程序的前一版本标识对应的资源文件的第二消息摘要标识;
将与所述第二消息摘要标识不相同的所述第一消息摘要标识对应的资源文件,制作为所述最新版本标识对应的版本差异文件。
可选地,在所述获取所述应用程序的历史版本标识对应的版本差异文件之后,还包括:
删除所述历史版本标识对应的版本差异文件中,与所述最新版本标识对应的版本差异文件中相同的资源文件。
可选地,所述增量补丁文件为一个。
所述计算机程序被所述处理器执行时还实现如下步骤:
获取应用程序的当前版本标识;
获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度;
从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度;
按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件;
根据所述目标增量补丁文件更新所述应用程序。
可选地,所述获取所述应用程序的补丁列表文件,包括:
向服务器发送请求所述应用程序的补丁列表文件的网络请求;
接收所述服务器根据所述网络请求发送的所述补丁列表文件。
可选地,所述按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件,包括:
向服务器发送请求所述应用程序的增量补丁文件的网络请求;所述网络请求中包括所述目标文件下载长度;所述服务器用于从所述增量补丁文件中提取为所述目标文件下载长度的目标增量补丁文件;
接收所述服务器发送的所述目标增量补丁文件。
可选地,所述增量补丁文件为一个;所述应用程序的当前版本标识越高,所述目标增量补丁文件越小。
终端设备在更新应用程序,只需要基于最新版本标识从补丁列表文件确定的目标文件下载长度,从增量补丁文件中下载对应的目标增量补丁文件即可,无需下载整个增量补丁文件,避免下载了不必要的增量补丁文件,提高了应用程序的更新效率。
由于在服务器只存放了一个游戏的增量补丁文件,并不是在服务器存放多个不同版本的增量补丁文件,因此无需下载整个增量补丁文件,避免了下载不必要的目标增量补丁文件,提高了应用程序的更新效率。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如图16所示,在本发明提供的又一实施例中,还提供了一种计算机可读存储介质1601,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中所述的应用程序更新方法。
在本发明提供的又一实施例中,还提供了一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种应用程序更新方法、一种应用程序更新装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种应用程序更新方法,其特征在于,应用于服务器,所述方法包括:
将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;
获取所述应用程序的历史版本标识对应的版本差异文件;
将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;
将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件,包括:
获取应用程序的最新版本标识对应的资源文件的第一消息摘要标识,以及所述应用程序的前一版本标识对应的资源文件的第二消息摘要标识;
将与所述第二消息摘要标识不相同的所述第一消息摘要标识对应的资源文件,制作为所述最新版本标识对应的版本差异文件。
3.根据权利要求1或2所述的方法,其特征在于,在所述获取所述应用程序的历史版本标识对应的版本差异文件之后,还包括:
删除所述历史版本标识对应的版本差异文件中,与所述最新版本标识对应的版本差异文件中相同的资源文件。
4.根据权利要求1所述的方法,其特征在于,所述增量补丁文件为一个。
5.一种应用程序更新方法,其特征在于,应用于终端设备,所述方法包括:
获取应用程序的当前版本标识;
获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度;
从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度;
按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件;
根据所述目标增量补丁文件更新所述应用程序。
6.根据权利要求5所述的方法,其特征在于,所述获取所述应用程序的补丁列表文件,包括:
向服务器发送请求所述应用程序的补丁列表文件的网络请求;
接收所述服务器根据所述网络请求发送的所述补丁列表文件。
7.根据权利要求5所述的方法,其特征在于,所述按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件,包括:
向服务器发送请求所述应用程序的增量补丁文件的网络请求;所述网络请求中包括所述目标文件下载长度;所述服务器用于从所述增量补丁文件中提取为所述目标文件下载长度的目标增量补丁文件;
接收所述服务器发送的所述目标增量补丁文件。
8.根据权利要求5所述的方法,其特征在于,所述增量补丁文件为一个;所述应用程序的当前版本标识越高,所述目标增量补丁文件越小。
9.一种应用程序更新装置,其特征在于,应用于服务器,所述装置包括:
版本差异文件生成模块,用于将应用程序的最新版本标识对应的资源文件与所述应用程序的前一版本标识对应的资源文件不同的资源文件,作为所述最新版本标识对应的版本差异文件;
版本差异文件获取模块,用于获取所述应用程序的历史版本标识对应的版本差异文件;
版本差异文件合并模块,用于将所述最新版本标识对应的版本差异文件与所述历史版本标识对应的版本差异文件,按照版本标识的高低顺序合并为增量补丁文件;
补丁列表文件生成模块,用于将所述增量补丁文件中各个版本标识对应的版本差异文件的字节长度,作为各个所述版本标识对应的文件下载长度并保存为补丁列表文件;其中,所述增量补丁文件和所述补丁列表文件用于更新终端设备的所述应用程序。
10.一种应用程序更新装置,其特征在于,应用于终端设备,所述装置包括:
版本标识获取模块,用于获取应用程序的当前版本标识;
补丁列表文件获取模块,用于获取所述应用程序的补丁列表文件;所述补丁列表文件中包括所述应用程序的各个版本标识对应的文件下载长度,所述文件下载长度用于表征需要下载的增量补丁文件的字节长度;
文件下载长度确定模块,用于从所述补丁列表文件中获取所述当前版本标识的目标文件下载长度;
增量补丁文件下载模块,用于按照所述目标文件下载长度从所述增量补丁文件中下载到目标增量补丁文件;
应用程序更新模块,用于根据所述目标增量补丁文件更新所述应用程序。
11.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的应用程序更新方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的应用程序更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210211546.6A CN114564227A (zh) | 2022-03-04 | 2022-03-04 | 应用程序更新方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210211546.6A CN114564227A (zh) | 2022-03-04 | 2022-03-04 | 应用程序更新方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564227A true CN114564227A (zh) | 2022-05-31 |
Family
ID=81718296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210211546.6A Pending CN114564227A (zh) | 2022-03-04 | 2022-03-04 | 应用程序更新方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564227A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900478A (zh) * | 2022-06-08 | 2022-08-12 | 珠海金山数字网络科技有限公司 | 资源处理系统及方法 |
CN117055937A (zh) * | 2023-07-18 | 2023-11-14 | 深圳先锋居善科技有限公司 | 一种应用程序的更新方法、装置、电子设备及存储介质 |
-
2022
- 2022-03-04 CN CN202210211546.6A patent/CN114564227A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900478A (zh) * | 2022-06-08 | 2022-08-12 | 珠海金山数字网络科技有限公司 | 资源处理系统及方法 |
CN114900478B (zh) * | 2022-06-08 | 2024-03-26 | 珠海金山数字网络科技有限公司 | 资源处理系统及方法 |
CN117055937A (zh) * | 2023-07-18 | 2023-11-14 | 深圳先锋居善科技有限公司 | 一种应用程序的更新方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108037946B (zh) | 一种应用程序热更新的方法、系统及服务器 | |
CN105511889B (zh) | 一种通用的游戏版本增量更新系统和方法 | |
JP7297769B2 (ja) | プリキャシュのためのクライアント・マシン間でのシェーダの配布 | |
CN114564227A (zh) | 应用程序更新方法、装置、电子设备和存储介质 | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN110442377B (zh) | 补丁包生成方法、应用更新方法、装置和电子设备 | |
CN109471843B (zh) | 一种元数据缓存方法、系统及相关装置 | |
CN103188097A (zh) | 一种实现补丁管理的方法、装置及系统 | |
CN112286939A (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN112451972A (zh) | 基于游戏引擎的资源压缩包构建方法、装置、系统及介质 | |
CN112748877A (zh) | 一种文件的整合上传方法及装置、文件的下载方法及装置 | |
CN110058952B (zh) | 一种嵌入式设备文件的校验方法及系统 | |
CN110807000B (zh) | 一种文件修复方法、装置、电子设备和存储介质 | |
CN111294613A (zh) | 一种视频处理方法、客户端、服务器 | |
CN111210826A (zh) | 语音信息处理方法、装置、存储介质和智能终端 | |
CN111586170B (zh) | 资源下载方法、装置、设备及计算机可读存储介质 | |
CN109889608B (zh) | 一种动态资源加载方法、装置、电子设备及存储介质 | |
US11327741B2 (en) | Information processing apparatus | |
CN111314403B (zh) | 资源一致性的校验方法和装置 | |
CN105812894A (zh) | 一种基于智能终端的视频文件处理方法和装置 | |
CN110430279B (zh) | 文件下载控制方法及装置 | |
CN114968963A (zh) | 文件覆盖写方法、装置和电子设备 | |
CN107643959A (zh) | 镜像文件处理方法和装置 | |
CN113194330A (zh) | 一种碎片化多云视频资源管理方法及系统 | |
CN114356245B (zh) | 一种海量文件快速比对更新的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |