CN110442377A - 补丁包生成方法、应用更新方法、装置和电子设备 - Google Patents
补丁包生成方法、应用更新方法、装置和电子设备 Download PDFInfo
- Publication number
- CN110442377A CN110442377A CN201910746778.XA CN201910746778A CN110442377A CN 110442377 A CN110442377 A CN 110442377A CN 201910746778 A CN201910746778 A CN 201910746778A CN 110442377 A CN110442377 A CN 110442377A
- Authority
- CN
- China
- Prior art keywords
- file
- service packs
- patch
- information
- target application
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 230000004048 modification Effects 0.000 claims abstract description 57
- 238000012986 modification Methods 0.000 claims abstract description 57
- 238000009434 installation Methods 0.000 claims description 22
- 125000004122 cyclic group Chemical group 0.000 claims description 20
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 230000008901 benefit Effects 0.000 claims description 7
- 230000001737 promoting effect Effects 0.000 claims description 2
- 230000006837 decompression Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 235000011962 puddings Nutrition 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种补丁包生成方法、应用更新方法、装置和电子设备,该方法包括:将目标应用的全量补丁包中的文件按照修改时间排序;对排序后全量补丁包中的文件进行合并,得到补丁文件;为补丁文件生成列表信息文件;对补丁文件和列表信息文件进行打包,得到目标应用当前的补丁包。在本发明中,最终生成的补丁包中仅包含两个文件,加快了发布解压的速度;另外,最终生成的补丁包中的补丁文件是对全量补丁包中的文件按照修改时间进行排序后合并得到的,这样在目标应用的客户端对目标应用进行更新时,确定的待下载文件的位置区间有且仅有一个,从而在补丁文件中下载文件时,也只需一次下载,大大提高了下载速度,节省了下载时间。
Description
技术领域
本发明涉及计算机的技术领域,尤其是涉及一种补丁包生成方法、应用更新方法、装置和电子设备。
背景技术
Patch(补丁)技术是指应用程序客户端在更新应用程序内容时,不需要重新下载完整客户端,只需更新本地机器上需要更新的程序代码和程序资源的技术。Patch技术广泛的应用于当前主流应用平台的各类应用程序中(比如网络游戏),其中的应用平台包括IOS、Android等移动平台以及Windows等PC(Personal Computer,个人计算机)平台。
目前,主流的补丁包生成方法所生成的补丁包包括以下两种:
一种是周版本增量补丁包:具体是指在每个维护周内,将当前版本安装包相对于前一个版本安装包修改的文件,做成zip包,记为差异patch包。然后客户端根据自身所处的安装包版本,去下载所有比其安装包版本更高的差异patch包。这种方式的差异patch包可以整包下载,但是如果客户端长时间没有更新安装包,那么它需要下载很多个差异patch包,而且这些差异patch包里面可能存在多次版本都有修改的文件,那么这些多次版本都有修改的文件就会下载多次,浪费用户流量,也影响下载速度。
另一种是全量补丁包:具体是指把当前版本安装包相对于首个安装包修改的文件,做成一个zip包,即得到全量patch包,进而将全量patch包发布至服务器。这种方式相比周版本增量patch包方式,对于那些长时间没有更新安装包的客户端来说,可以做到文件多次版本修改时,只需要将客户端本地的文件信息与全量patch包中文件的文件信息进行差异对比,得到当前客户端需要下载的待下载文件,进而采用多线程方式在全量patch包中下载待下载文件。但是,一般情况下,待下载文件很多,对每个待下载文件进行单独下载的方式导致整个的下载过程耗时长,下载速度慢;另外,zip格式的全量patch包发布至服务器后,需要解压成多个离散文件形式,由于其中包含的文件很多,使得zip格式的全量patch包发布解压的速度很慢。
综上,现有的补丁包生成方法所生成的补丁包在发布和下载时,速度慢、耗时长。
发明内容
本发明实施例的目的在于提供一种补丁包生成方法、应用更新方法、装置和电子设备,以缓解现有的补丁包生成方法所生成的补丁包在发布和下载时,速度慢、耗时长的技术问题。
本发明实施例提供的一种补丁包生成方法,包括:
将目标应用的全量补丁包中的文件按照修改时间排序;其中,所述全量补丁包包括所述目标应用的首个安装包之后修改的文件;
对排序后所述全量补丁包中的文件进行合并,得到补丁文件;
为所述补丁文件生成列表信息文件;其中,所述列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
对所述补丁文件和所述列表信息文件进行打包,得到所述目标应用当前的补丁包,以供所述目标应用的客户端基于所述补丁包更新所述目标应用。
进一步的,将目标应用的全量补丁包中的文件按照修改时间排序包括:
获取所述全量补丁包中的文件的版本号;其中,所述文件的版本号用于表征所述文件的修改时间;
根据各个所述文件的版本号对所述全量补丁包中的文件排序。
进一步的,根据各个所述文件的版本号对所述全量补丁包中的文件排序包括:
按照各个所述文件的版本号的降序,将所述全量补丁包中的文件按照从前到后的顺序排列。
进一步的,对排序后所述全量补丁包中的文件进行合并包括:
将排序后所述全量补丁包中的文件,按照排列顺序依次写入空白补丁文件中,得到所述补丁文件。
进一步的,为所述补丁文件生成列表信息文件包括:
获取所述补丁文件中各个文件的文件标识信息和所述补丁文件中各个文件在所述补丁文件中的位置信息;其中,所述文件标识信息包括:文件的循环冗余校验码信息、文件的版本控制***的版本号信息和文件的路径信息;所述位置信息包括:起始位置信息和文件大小信息;
按照预设格式和所述补丁文件中各个文件的排列顺序,将各个所述文件的文件标识信息和各个所述文件的位置信息保存至空白列表信息文件中,得到所述列表信息文件。
进一步的,对所述补丁文件和所述列表信息文件进行打包包括:
将所述补丁文件和所述列表信息文件按照指定的压缩格式压缩,得到压缩包;
按照预设命名规则对所述压缩包命名,得到所述目标应用当前的补丁包。
进一步的,所述方法应用于所述目标应用的服务端或带有补丁包制作软件的终端,所述方法还包括:将所述目标应用当前的补丁包上传至云服务器,所述云服务器用于发布所述补丁包。
本发明实施例还提供了一种应用更新方法,应用于目标应用的客户端,包括:
获取目标应用的补丁包中的当前列表信息文件;其中,所述补丁包还包括有补丁文件,所述补丁文件中的文件为对全量补丁包中的文件依据文件的修改时间排序后合并得到的,所述当前列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
将所述客户端的本地列表信息文件与所述当前列表信息文件对比,得到差异信息;
根据所述差异信息确定待下载文件在所述补丁文件中的位置区间;
下载所述位置区间中的文件;
基于下载得到的所述文件更新所述目标应用。
本发明实施例还提供了一种补丁包生成装置,包括:
排序单元,用于将目标应用的全量补丁包中的文件按照修改时间排序;其中,所述全量补丁包包括所述目标应用的首个安装包之后修改的文件;
合并单元,用于对排序后所述全量补丁包中的文件进行合并,得到补丁文件;
列表信息文件生成单元,用于为所述补丁文件生成列表信息文件;其中,所述列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
打包单元,用于对所述补丁文件和所述列表信息文件进行打包,得到所述目标应用当前的补丁包,以供所述目标应用的客户端基于所述补丁包更新所述目标应用。
进一步地,所述排序单元还用于:
获取所述全量补丁包中的文件的版本号;其中,所述文件的版本号用于表征所述文件的修改时间;
根据各个所述文件的版本号对所述全量补丁包中的文件排序。
进一步地,所述排序单元还用于:
按照各个所述文件的版本号的降序,将所述全量补丁包中的文件按照从前到后的顺序排列。
进一步地,所述合并单元还用于:
将排序后所述全量补丁包中的文件,按照排列顺序依次写入空白补丁文件中,得到所述补丁文件。
进一步地,所述列表信息文件生成单元还用于:
获取所述补丁文件中各个文件的文件标识信息和所述补丁文件中各个文件在所述补丁文件中的位置信息;其中,所述文件标识信息包括:文件的循环冗余校验码信息、文件的版本控制***的版本号信息和文件的路径信息;所述位置信息包括:起始位置信息和文件大小信息;
按照预设格式和所述补丁文件中各个文件的排列顺序,将各个所述文件的文件标识信息和各个所述文件的位置信息保存至空白列表信息文件中,得到所述列表信息文件。
进一步地,所述打包单元还用于:
将所述补丁文件和所述列表信息文件按照指定的压缩格式压缩,得到压缩包;
按照预设命名规则对所述压缩包命名,得到所述目标应用当前的补丁包。
进一步地,所述装置应用于所述目标应用的服务端,所述装置还包括:
第一上传单元,用于将所述目标应用当前的补丁包上传至云服务器,所述云服务器用于发布所述补丁包。
进一步地,所述装置应用于带有补丁包制作软件的项目终端,所述装置还包括:
第二上传单元,用于将所述目标应用当前的补丁包上传至服务端,所述服务端用于发布所述补丁包。
本发明实施例还提供了一种应用更新装置,应用于目标应用的客户端,包括:
获取单元,用于获取目标应用的补丁包中的当前列表信息文件;其中,所述补丁包还包括有补丁文件,所述补丁文件中的文件为对全量补丁包中的文件依据文件的修改时间排序后合并得到的,所述当前列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
对比单元,用于将所述客户端的本地列表信息文件与所述当前列表信息文件对比,得到差异信息;
确定单元,用于根据所述差异信息确定待下载文件在所述补丁文件中的位置区间;
下载单元,用于下载所述位置区间中的文件;
更新单元,用于基于下载得到的所述文件更新所述目标应用。
本发明实施例还提供了一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述内容中所述的补丁包生成方法的步骤,或者,所述处理器执行所述机器可执行指令以实现上述内容中所述的应用更新方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述内容中所述的补丁包生成方法的步骤,或者,所述机器可执行指令促使所述处理器实现上述内容中所述的应用更新方法的步骤。
在本发明实施例提供的上述补丁包生成方法、应用更新方法、装置和电子设备中,通过将目标应用的全量补丁包中的文件按照修改时间排序和合并,使得补丁文件中同一修改时段的文件在同一个位置区间。同时,通过为补丁文件生成列表信息文件,以及将补丁文件和列表信息文件打包为目标应用的补丁包,能够使目标应用的客户端基于该补丁包更新目标应用。通过这种方式,使得补丁包中仅包含两个文件,其中一个为补丁文件,另一个为列表信息文件,当发布补丁包时,只需对其中的两个文件进行解压,加快了发布解压的速度;另外,由于上述补丁包中的补丁文件是对全量补丁包中的文件按照修改时间进行排序后合并得到的,目标应用的客户端可以根据列表信息文件快速确定出需要下载哪个位置区间中的文件,通常目标应用的客户端只需一次下载即可得到其需要的文件,完成目标应用的更新,大大提高了下载速度,节省了下载时间,缓解了现有的补丁包生成方法所生成的补丁包在发布和下载时,速度慢、耗时长的技术问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的补丁包制作的应用场景的示意图;
图2为本发明实施例提供的一种补丁包生成方法的流程图;
图3为本发明实施例提供的文件排序的方法流程图;
图4为本发明实施例提供的排序合并文件的过程示意图;
图5为本发明实施例提供的为补丁文件生成列表信息文件的方法流程图;
图6为本发明实施例提供的一种应用更新方法的流程图;
图7为本发明实施例提供的一种补丁包生成装置的示意图;
图8为本发明实施例提供的一种应用更新装置的示意图;
图9为本发明实施例提供的一种电子设备的示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应用平台上往往装载有大量的应用程序,这些应用程序的客户端常常通过下载对应应用程序补丁包中文件的方式对其应用程序进行更新,其中供客户端下载文件的补丁包可以事先在补丁包制作的服务端上制作完成。
参见图1所示的补丁包制作的应用场景的示意图,其中示意出了目标应用的服务端(当然,还可以为带有补丁包制作软件的终端,为了简化应用场景,本实施例以目标应用的服务端为例进行说明),该目标应用的服务端用于目标应用所对应的补丁包的制作,另外还示意出了与该目标应用的服务端通信连接的云服务器和与云服务器通信连接的目标应用的客户端。
目标应用的服务端在完成上述补丁包的制作后,将制作得到的补丁包发布至云服务器,以供目标应用的客户端从云服务器中下载上述补丁包中的文件进行目标应用的更新。
考虑到现有技术制作得到的补丁包在发布和下载时,存在速度慢、耗时长的问题,本发明实施例对补丁包的制作过程进行了改进,使得最终得到的补丁包在发布和下载时,速度都有提升,下面对本发明实施例的补丁包生成方法的过程进行详细介绍。
图2是根据本发明实施例的一种补丁包生成方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,将目标应用的全量补丁包中的文件按照修改时间排序。
其中,全量补丁包包括目标应用的首个安装包之后修改的文件。
在本发明实施例中,目标应用可以为终端设备上的任一应用程序,例如:网络游戏中的A游戏的应用程序,本发明实施例对上述目标应用不进行具体限制。
上述全量补丁包中包含大量文件,这些文件为对目标应用的首个安装包进行修改之后得到的文件。
步骤S204,对排序后全量补丁包中的文件进行合并,得到补丁文件。
上述合并后得到的补丁文件中的文件是基于修改时间连续排列的,例如:全量补丁包中的文件按照修改时间排序后,文件顺序为A、B、C,然后再对排序后的文件进行合并,得到一个补丁文件,其中包含的内容是连续的A文件内容,B文件内容和C文件内容。
步骤S206,为补丁文件生成列表信息文件。
其中,该列表信息文件用于记录补丁文件中所包含文件的文件标识信息和文件在补丁文件中的位置信息;可以通过将补丁文件中所包含文件的文件标识信息和文件在补丁文件中的位置信息存储在空白列表信息文件的方式,得到上述的列表信息文件。
上述列表信息文件之所以包括文件标识信息和文件在补丁文件中的位置信息,是为了为客户端提供查找所需下载文件的依据。当客户端对目标应用更新时,客户端可以结合本地列表信息文件和上述列表信息文件来确定需要下载文件的位置区间,由于补丁文件中的文件是按照修改时间排序的连续的文件,这样确定的位置区间有且仅有一个,基于该有且仅有一个的位置区间从补丁文件中下载文件时,通常也只需一次下载,大大提高了下载速度,节省了下载时间。
步骤S208,对上述补丁文件和列表信息文件进行打包,得到目标应用当前的补丁包,以供目标应用的客户端基于补丁包更新目标应用。
之所以进行打包,是为了便于发布该补丁包,以供目标应用的客户端基于上述发布后的补丁包更新目标应用。
通过上述的描述可知,最终得到的补丁包中仅包含两个文件,其中一个为补丁文件,另一个为列表信息文件,当发布补丁包时,只需对其中的两个文件进行解压,加快了发布解压的速度。
在本发明实施例提供的上述补丁包生成方法、应用更新方法、装置和电子设备中,通过将目标应用的全量补丁包中的文件按照修改时间排序和合并,使得补丁文件中同一修改时段的文件在同一个位置区间。同时,通过为补丁文件生成列表信息文件,以及将补丁文件和列表信息文件打包为目标应用的补丁包,能够使目标应用的客户端基于该补丁包更新目标应用。通过这种方式,使得补丁包中仅包含两个文件,其中一个为补丁文件,另一个为列表信息文件,当发布补丁包时,只需对其中的两个文件进行解压,加快了发布解压的速度;另外,由于上述补丁包中的补丁文件是对全量补丁包中的文件按照修改时间进行排序后合并得到的,目标应用的客户端可以根据列表信息文件快速确定出需要下载哪个位置区间中的文件,通常目标应用的客户端只需一次下载即可得到其需要的文件,完成目标应用的更新,大大提高了下载速度,节省了下载时间,缓解了现有的补丁包生成方法所生成的补丁包在发布和下载时,速度慢、耗时长的技术问题。
考虑到文件的版本号可以反映出文件间的修改先后顺序,为了简化实现过程,本实施例以文件的版本号为依据,对文件进行排序,基于此,参考图3所示的文件排序的方法流程图,该方法给出了上述步骤S202中的将目标应用的全量补丁包中的文件按照修改时间排序的步骤的具体实现方式,该方法包括如下步骤:
步骤S301,获取全量补丁包中的文件的版本号。
其中,文件的版本号用于表征文件的修改时间。
在实现时,可以通过版本控制***(即SVN)管理所有的文件,因此可以通过版本控制***获取到全量补丁包中的文件的版本号(即为下文中的版本控制***的版本号信息)。
上述文件的版本号用于表征文件的修改时间,因为每修改一次文件,这个文件的版本号就会提升,也就是最新修改的文件的版本号是最大的。当然,也可以记录每个文件的修改时间,依据该修改时间对文件排序,本发明实施例以应用版本号的方式为例进行说明。
步骤S302,根据各个文件的版本号对全量补丁包中的文件排序。
在对文件排序时,可以按照各个文件的版本号的降序,将全量补丁包中的文件按照从前到后的顺序排列。例如:文件A的版本号为Vs-1,文件B的版本号为Vs-2,文件C的版本号为Vs-3,那么按照版本号降序对各个文件进行排列后,得到的文件顺序为:C、B、A。
上述文件的版本号通常为整数,基于文件的版本号对文件进行排序,可以大大简化排序的复杂度;另外,文件的版本号能够表征文件的修改时间,基于文件的版本号降序对文件排列后,也就表示将文件按照修改时间由后到前的顺序进行了排列,这样对文件排列是为了使后续目标应用的客户端确定出的需要下载的文件是排序后文件中的紧邻文件,进而再将排序后的文件写入空白补丁文件后,确定的需要下载的文件的位置区间才会是一个,如此才能实现一次下载。
在对全量补丁包中的文件排序后,为了使得排序后的文件连续,本实施例还对排序后全量补丁包中的文件进行合并,该合并可以包括:将排序后全量补丁包中的文件,按照排列顺序依次写入空白补丁文件中,得到补丁文件。
如果不将排序后全量补丁包中的文件进行合并,那么排序后的文件依然是离散的文件,这就导致了目标应用的客户端在确定出需要下载的文件后,仍旧需要对每个需要下载的文件进行单独下载,速度慢、耗时长;但进行上述的合并后,得到的补丁文件中各个文件之间是连续的,加之补丁文件中各个文件是按照修改时间由后到前的顺序排列的,那么目标应用的客户端确定的需要下载的文件就会是一个连续的位置区间,如此在进行文件的下载时,便能提高下载速度,节省下载时间。
另外,合并时,写入空白补丁文件是为了使得一个全量补丁包中的文件与一个补丁文件对应,便于管理和使用。
下面以应用W为例简单介绍上述排序合并文件的过程,图4中示出了排序合并文件的过程,应用W的首个安装包记为版本0,首个安装包对应的全量补丁包为空。假设应用W的版本1相对于首个安装包来说,A、B、C三个文件都有修改,那么应用W的版本1对应的全量补丁包中的文件包括A、B、C,按照修改时间对文件A、B、C排序后,文件顺序为A、B、C,进一步将A、B、C三个文件按照排列顺序依次写入一个空白补丁文件中(也就是合并的过程),得到一个大文件,命名为补丁文件1,其中包含的内容为连续的ABC三个文件的内容。例如:A文件的大小为100字节,B文件的大小为200字节,C文件的大小50字节,那么合并得到的补丁文件1的内容中,前100个字节是A文件的内容,接下来200字节是B文件的内容,接下来50字节是C文件的内容。
应用W的版本2相对于首个安装包来说,其在版本1的基础上,又新增了D、E、F文件,同时又修改了C文件,那么此时应用W版本2对应的全量补丁包中的文件包括:A、B、C、D、E、F,对该全量补丁包中文件按照修改时间排序后,文件顺序为C(其为版本2对应的C)、D、E、F、A、B,进一步将C、D、E、F、A、B六个文件按照排列顺序依次写入一个空白补丁文件中(也就是合并的过程),得到一个大文件,命名为补丁文件2,其中包含的内容为连续的CDEFAB六个文件的内容。
这样得到的补丁文件2中,当客户端需要更新上述两个版本时,只需下载连续的CDEFAB文件对应的内容即可。
当客户端只需要更新版本2时(之前已经更新过版本1),只需下载连续的CDEF文件对应的内容即可。
通过上述的描述可知,对全量补丁包中的文件按照修改时间排序后合并的过程,能够把需要下载的文件(即待下载文件)连续合并在一起,当客户端对目标应用进行更新时,只需一次下载即可,大大提高了下载速度,节省了下载时间。
目标应用的客户端在补丁文件中下载其需要下载的文件时,需要以补丁文件所对应的列表信息文件为依据,基于此,参考图5所示的为补丁文件生成列表信息文件的方法流程图,该方法给出了上述步骤S206中的为补丁文件生成列表信息文件步骤的具体实现方式,该方法包括如下步骤:
步骤S501,获取补丁文件中各个文件的文件标识信息和补丁文件中各个文件在补丁文件中的位置信息。
其中,文件标识信息包括:文件的循环冗余校验码信息、文件的版本控制***的版本号信息和文件的路径信息;位置信息包括:起始位置信息和文件大小信息。
在得到补丁文件后,获取补丁文件中各个文件的文件标识信息和补丁文件中各个文件在补丁文件中的位置信息。
实现时,文件的路径信息和文件的版本控制***的版本号信息可以从版本控制***的管理中获取得到;起始位置信息、文件大小信息和文件的循环冗余校验码信息可以从python接口处计算并获取得到。
步骤S502,按照预设格式和补丁文件中各个文件的排列顺序,将各个文件的文件标识信息和各个文件的位置信息保存至空白列表信息文件中,得到列表信息文件。
上述预设格式可以为:把文件的路径信息、起始位置信息、文件大小信息、文件的循环冗余校验码信息(即crc)、文件的版本控制***的版本号信息(即svn版本号)用“\t”分隔,不同文件之间的信息用“\n”分隔,并写入空白列表信息文件中。
例如:列表信息文件中的内容可以为:文件的路径1\t起始位置1\t文件大小1\tcrc1\tsvn版本号1\n文件的路径2\t起始位置2\t文件大小2\tcrc2\tsvn版本号2\n......
本发明实施例对上述预设格式不进行具体限制,还可以为其它预先设定的格式。例如:把文件的路径信息、起始位置信息、文件大小信息、文件的循环冗余校验码信息(即crc)、文件的版本控制***的版本号信息(即svn版本号)用空格分隔,不同文件之间的信息用回车分隔,并写入空白列表信息文件中。
在得到补丁文件和列表信息文件后,进一步,对补丁文件和列表信息文件进行打包,具体包括如下(1)和(2)的过程:
(1)将补丁文件和列表信息文件按照指定的压缩格式压缩,得到压缩包。
上述指定的压缩格式可以为zip格式(一种数据压缩和文档储存的文件格式),还可以为npk格式,npk压缩包是一个不需要解析的压缩包格式,是一个大文件,当然,本发明实施例对上述指定的压缩格式不进行具体限制。
(2)按照预设命名规则对压缩包命名,得到目标应用当前的补丁包。
在得到压缩包后,按照预设命名规则对压缩包命名,进而就能得到目标应用当前的补丁包。
其中,预设命名规则可以为如下命名规则:patch_platname_svnversion,其中,platname为win32、android、ios三种,分别表示三个不同的应用平台;svnversion表示制作补丁包时,对应的文件的版本号。
因为不同应用平台的补丁包都不同,所以对应的就会存在三个应用平台的补丁包,其对应的命名分别为:patch_win32_svnversion、patch_android_svnversion、patch_ios_svnversion,分别表示pc平台的补丁包、安卓平台的补丁包、ios平台的补丁包。
另外,一个补丁包的补丁文件中包含了大量文件,在以文件的版本号对补丁包进行命名时,以最新的版本号对其进行命名。这是因为在以最新的版本号进行命名时,其就隐含包含了这个最新的版本号之前的所有版本号。
本发明实施例的补丁包生成方法可以做到不管处于任何版本的目标应用的客户端更新其目标应用时,都可以在补丁文件中下载一次连续的文件,相比原来的离散文件单独下载的方式,极大的提高了下载速度;另外,对于长时间没有更新目标应用的客户端来说,通过本发明生成的补丁包(由于是对全量补丁包中的文件进行的后续处理所得到的补丁包)可以避免多次版本修改的文件多次重复下载的问题;此外,补丁包采用合并文件的发布方式(补丁包中只有两个文件,一个是补丁文件,另一个是列表信息文件),发布时不需要对每个离散文件进行解压操作,只需对补丁包中的两个合并后的大文件进行解压即可,极大的提高了补丁包的发布效率。
本发明实施例还提供了一种应用更新方法,该方法以应用于目标应用的客户端为例进行说明,参见图6所示的应用更新方法的流程图,该方法包括如下步骤:
步骤S602,获取目标应用的补丁包中的当前列表信息文件。
其中,补丁包还包括有补丁文件,补丁文件中的文件为对全量补丁包中的文件依据文件的修改时间排序后合并得到的,当前列表信息文件用于记录补丁文件中所包含文件的文件标识信息和文件在补丁文件中的位置信息。
在本发明实施例中,目标应用的补丁包在发布时,会生成与该发布的补丁包相对应的一个下载地址(例如:URL地址),通过该下载地址就能获取得到该补丁包中的当前列表信息文件。
另外,补丁包还包括有补丁文件,补丁文件中的文件为对全量补丁包中的文件依据文件的修改时间排序后合并得到的,即补丁文件中的文件是基于修改时间连续排列的;当前列表信息文件用于记录补丁文件中所包含文件的文件标识信息和文件在补丁文件中的位置信息,其中,文件标识信息包括:文件的循环冗余校验码信息、文件的版本控制***的版本号信息和文件的路径信息;位置信息包括:起始位置信息和文件大小信息。实现时,可以通过将补丁文件中所包含文件的文件标识信息和文件在补丁文件中的位置信息存储在空白列表信息文件中的方式得到上述的列表信息文件。
需要说明的是,这里的补丁包是按照上述内容中描述的补丁包生成方法得到的补丁包,该补丁包的生成过程具体可以参考上述内容,在此不再赘述。
步骤S604,将客户端的本地列表信息文件与当前列表信息文件对比,得到差异信息。
其中,客户端最初的本地列表信息文件是随目标应用的安装包下载得到的,之后更新目标应用时,也会随之更新本地列表信息文件。在本地列表信息文件中,包含了其对应版本的补丁包的补丁文件中的文件的文件标识信息和文件在补丁文件中的位置信息。
本实施例通过将客户端的本地列表信息文件(具体可以为本地列表信息文件中的文件的路径信息和文件的循环冗余校验码信息)与当前列表信息文件(具体可以为当前列表信息文件中的文件的路径信息和文件的循环冗余校验码信息)对比的方式,使目标应用的客户端确定其所需下载的文件。对比完成后,得到差异信息,该差异信息实质上是待下载文件(即目标应用的客户端需要下载的文件)的信息(例如:待下载文件的文件标识信息和文件在布丁文件中的位置信息)。
由于补丁包中的补丁文件是按照文件修改时间排序后合并得到的,那么在对比后,得到的差异信息所表示的待下载文件在补丁文件中都是连续排列的。
本实施例在确定差异信息时,可以采用如下方式实现:
(1)遍历本地列表信息文件,依次将本地列表信息文件中包含的文件的路径信息和文件的循环冗余校验码信息与当前列表信息文件中包含的对应的文件的路径信息和文件的循环冗余校验码信息进行对比。对比时,先进行文件的路径信息的对比,在文件的路径信息一致的情况下,再将上述一致的文件的路径信息所对应的文件的循环冗余校验码信息进行对比。
例如:如果本地列表信息文件中的某个文件的路径信息与当前列表信息文件中某个文件的路径信息一致,但上述一致的文件的路径信息所对应的两个文件的循环冗余校验码信息不同,说明上述一致的文件的路径信息所对应的文件存在修改;如果本地列表信息文件中所包含的某个文件的路径信息不在当前列表信息文件中,说明本地列表信息文件中所包含的上述文件的路径信息所对应的文件已在服务端删除。
(2)遍历当前列表信息文件中包含的信息。如果当前列表信息文件中的有些文件的路径信息不在本地列表信息文件中,说明当前列表信息文件中的有些文件的路径信息所对应的文件为新增文件。最终,将有修改的文件和新增文件所对应的信息作为差异信息。
例如:本地列表信息文件中包含的信息为:A文件的文件标识信息和A文件在补丁文件中的位置信息、B文件的文件标识信息和B文件在补丁文件中的位置信息、C文件的文件标识信息和C文件在补丁文件中的位置信息。
当前列表信息文件中包含的信息为:A文件的文件标识信息和A文件在补丁文件中的位置信息、B文件的文件标识信息和B文件在补丁文件中的位置信息、D文件的文件标识信息和D文件在补丁文件中的位置信息。
通过对比,本地列表信息文件和当前列表信息文件中都有A文件(是通过对比本地列表信息文件和当前列表信息文件中文件的路径信息后确定本地列表信息文件和当前列表信息文件中都有A文件的),进一步地,若本地列表信息文件中的A文件的循环冗余校验码与当前列表信息文件中A文件的循环冗余校验码不同,那么就将当前列表信息文件中的A文件的文件标识信息和A文件在补丁文件中的位置信息作为一种差异信息。
本地列表信息文件和当前列表信息文件中都有B文件(是通过对比本地列表信息文件和当前列表信息文件中文件的路径信息后确定本地列表信息文件和当前列表信息文件中都有B文件的),若本地列表信息文件中的B文件的循环冗余校验码与当前列表信息文件中B文件的循环冗余校验码相同,那么B文件的信息就不是差异信息。
本地列表信息文件中包含C文件的路径信息,但是当前列表信息文件中不包含C文件的路径信息,说明C文件在服务端删除了,此时,不将C文件的文件标识信息和C文件在补丁文件中的位置信息作为差异信息。即对于在服务端删除的文件,在客户端不再进行删除操作,先保留在客户端,因为对于这些之前客户端已经下载过的文件(如上文中的C文件),后续不会再引用到,不删除也没关系。
本地列表信息文件中不包含D文件的路径信息,但是当前列表信息文件中包含D文件的路径信息,说明D文件是新增文件,此时,将当前列表信息文件中的D文件的文件标识信息和D文件在补丁文件中的位置信息作为另一种差异信息。
步骤S606,根据差异信息确定待下载文件在补丁文件中的位置区间。
由于差异信息实质上是待下载文件的信息,那么就能进一步根据差异信息确定待下载文件在补丁文件中的位置区间。
实现时,将差异信息所表示的文件中,最新文件(指的是文件修改时间靠后的文件)的起始位置到最老文件(指的是文件修改时间靠前的文件)的结束位置作为待下载文件在补丁文件中的位置区间。
例如:差异信息所表示的文件为ABCD,其中的最新文件是A文件,最老的文件是D文件,那么位置区间即为A文件的起始位置(是指A文件在补丁文件中的起始位置)到D文件的结束位置(是指D文件在补丁文件中的结束位置)。
需要说明的是,由于差异信息中包含的是待下载文件的文件标识信息和待下载文件在补丁文件中的位置信息,其中,文件标识信息包括:文件的循环冗余校验码信息、文件的版本控制***的版本号信息和文件的路径信息;位置信息包括:起始位置信息和文件大小信息。
由此可知,A文件在补丁文件中的起始位置可以从差异信息中直接获得,而D文件在补丁文件中的结束位置可以通过简单的计算得到。计算过程可以为:D文件在补丁文件中的结束位置=D文件在补丁文件中的起始位置(差异信息中包含)+D文件的文件大小(差异信息中也包含)。当然,在确定D文件在补丁文件中的结束位置时,还可以通过其它方式实现。例如:可以先确定D文件的下一个文件在补丁文件中的起始位置(当前列表信息文件中包含),进而将D文件的下一个文件在补丁文件中的起始位置的前一个位置作为D文件在补丁文件中的结束位置,这里不对上述具体实现方式进行限定。
步骤S608,下载位置区间中的文件。
在得到位置区间后,利用http的部分文件下载功能在补丁文件中下载位置区间中的文件,这就相当于差异补丁包的下载过程,而且文件不会出现重复下载,能够实现最小化补丁包中文件的下载。
步骤S610,基于下载得到的文件更新目标应用。
在本发明实施例的应用更新方法中,由于上述补丁包中的补丁文件是对全量补丁包中的文件按照修改时间进行排序后合并得到的,目标应用的客户端可以根据列表信息文件快速确定出需要下载哪个位置区间中的文件,通常目标应用的客户端只需一次下载即可得到其需要的文件,进而完成目标应用的更新,大大提高了下载速度,节省了下载时间。
本发明实施例还提供了一种补丁包生成装置,该补丁包生成装置主要用于执行本发明实施例上述内容所提供的补丁包生成方法,以下对本发明实施例提供的补丁包生成装置做具体介绍。
图7是根据本发明实施例的一种补丁包生成装置的示意图,如图7所示,该补丁包生成装置主要包括排序单元10,合并单元20,列表信息文件生成单元30和打包单元40,其中:
排序单元,用于将目标应用的全量补丁包中的文件按照修改时间排序;其中,全量补丁包包括目标应用的首个安装包之后修改的文件;
合并单元,用于对排序后全量补丁包中的文件进行合并,得到补丁文件;
列表信息文件生成单元,用于为补丁文件生成列表信息文件;其中,列表信息文件用于记录补丁文件中所包含文件的文件标识信息和文件在补丁文件中的位置信息;
打包单元,用于对补丁文件和列表信息文件进行打包,得到目标应用当前的补丁包,以供目标应用的客户端基于补丁包更新目标应用。
在本发明实施例提供的上述补丁包生成装置中,通过将目标应用的全量补丁包中的文件按照修改时间排序和合并,使得补丁文件中同一修改时段的文件在同一个位置区间。同时,通过为补丁文件生成列表信息文件,以及将补丁文件和列表信息文件打包为目标应用的补丁包,能够使目标应用的客户端基于该补丁包更新目标应用。通过这种方式,使得补丁包中仅包含两个文件,其中一个为补丁文件,另一个为列表信息文件,当发布补丁包时,只需对其中的两个文件进行解压,加快了发布解压的速度;另外,由于上述补丁包中的补丁文件是对全量补丁包中的文件按照修改时间进行排序后合并得到的,目标应用的客户端可以根据列表信息文件快速确定出需要下载哪个位置区间中的文件,通常目标应用的客户端只需一次下载即可得到其需要的文件,进而完成目标应用的更新,大大提高了下载速度,节省了下载时间,缓解了现有的补丁包生成方法所生成的补丁包在发布和下载时,速度慢、耗时长的技术问题。
上述排序单元还用于:获取全量补丁包中的文件的版本号;其中,文件的版本号用于表征文件的修改时间;根据各个文件的版本号对全量补丁包中的文件排序。
上述排序单元还用于:按照各个文件的版本号的降序,将全量补丁包中的文件按照从前到后的顺序排列。
上述合并单元还用于:将排序后全量补丁包中的文件,按照排列顺序依次写入空白补丁文件中,得到补丁文件。
上述列表信息文件生成单元还用于:获取补丁文件中各个文件的文件标识信息和补丁文件中各个文件在补丁文件中的位置信息;其中,文件标识信息包括:文件的循环冗余校验码信息、文件的版本控制***的版本号信息和文件的路径信息;位置信息包括:起始位置信息和文件大小信息;按照预设格式和补丁文件中各个文件的排列顺序,将各个文件的文件标识信息和各个文件的位置信息保存至空白列表信息文件中,得到列表信息文件。
上述打包单元还用于:将补丁文件和列表信息文件按照指定的压缩格式压缩,得到压缩包;按照预设命名规则对压缩包命名,得到目标应用当前的补丁包。
上述补丁包生成装置应用于目标应用的服务端或带有补丁包制作软件的终端,该装置还包括:上传单元,用于将目标应用当前的补丁包上传至云服务器,云服务器用于发布补丁包。
本发明实施例所提供的补丁包生成装置,其实现原理及产生的技术效果和前述补丁包生成方法中的方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供了一种应用更新装置,该应用更新装置主要用于执行本发明实施例上述内容所提供的应用更新方法,以下对本发明实施例提供的应用更新装置做具体介绍。
图8是根据本发明实施例的一种应用更新装置的示意图,如图8所示,该应用更新装置主要包括获取单元60,对比单元70,确定单元80,下载单元90和更新单元100,其中:
获取单元,用于获取目标应用的补丁包中的当前列表信息文件;其中,补丁包还包括有补丁文件,补丁文件中的文件为对全量补丁包中的文件依据文件的修改时间排序后合并得到的,当前列表信息文件用于记录补丁文件中所包含文件的文件标识信息和文件在补丁文件中的位置信息;
对比单元,用于将客户端的本地列表信息文件与当前列表信息文件对比,得到差异信息;
确定单元,用于根据差异信息确定待下载文件在补丁文件中的位置区间;
下载单元,用于下载位置区间中的文件;
更新单元,用于基于下载得到的文件更新目标应用。
在本发明实施例的应用更新装置中,由于上述补丁包中的补丁文件是对全量补丁包中的文件按照修改时间进行排序后合并得到的,目标应用的客户端可以根据列表信息文件快速确定出需要下载哪个位置区间中的文件,通常目标应用的客户端只需一次下载即可得到其需要的文件,进而完成目标应用的更新,大大提高了下载速度,节省了下载时间。
本发明实施例所提供的应用更新装置,其实现原理及产生的技术效果和前述应用更新方法的方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供了一种电子设备,用于运行上述补丁包生成方法,或者,运行上述应用更新方法;参见图9所示,该电子设备包括存储器101和处理器102,其中,存储器101用于存储一条或多条计算机指令,一条或多条计算机指令被处理器102执行,以实现上述补丁包生成方法,或者,应用更新方法。
进一步地,图9所示的电子设备还包括总线103和通信接口104,处理器102、通信接口104和存储器101通过总线103连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口104(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线103可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器102可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器102读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述补丁包生成方法,或者,应用更新方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的补丁包生成方法、应用更新方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和/或电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种补丁包生成方法,其特征在于,包括:
将目标应用的全量补丁包中的文件按照修改时间排序;其中,所述全量补丁包包括所述目标应用的首个安装包之后修改的文件;
对排序后所述全量补丁包中的文件进行合并,得到补丁文件;
为所述补丁文件生成列表信息文件;其中,所述列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
对所述补丁文件和所述列表信息文件进行打包,得到所述目标应用当前的补丁包,以供所述目标应用的客户端基于所述补丁包更新所述目标应用。
2.根据权利要求1所述的补丁包生成方法,其特征在于,将目标应用的全量补丁包中的文件按照修改时间排序包括:
获取所述全量补丁包中的文件的版本号;其中,所述文件的版本号用于表征所述文件的修改时间;
根据各个所述文件的版本号对所述全量补丁包中的文件排序。
3.根据权利要求2所述的补丁包生成方法,其特征在于,根据各个所述文件的版本号对所述全量补丁包中的文件排序包括:
按照各个所述文件的版本号的降序,将所述全量补丁包中的文件按照从前到后的顺序排列。
4.根据权利要求1所述的补丁包生成方法,其特征在于,对排序后所述全量补丁包中的文件进行合并包括:
将排序后所述全量补丁包中的文件,按照排列顺序依次写入空白补丁文件中,得到所述补丁文件。
5.根据权利要求1所述的补丁包生成方法,其特征在于,为所述补丁文件生成列表信息文件包括:
获取所述补丁文件中各个文件的文件标识信息和所述补丁文件中各个文件在所述补丁文件中的位置信息;其中,所述文件标识信息包括:文件的循环冗余校验码信息、文件的版本控制***的版本号信息和文件的路径信息;所述位置信息包括:起始位置信息和文件大小信息;
按照预设格式和所述补丁文件中各个文件的排列顺序,将各个所述文件的文件标识信息和各个所述文件的位置信息保存至空白列表信息文件中,得到所述列表信息文件。
6.根据权利要求1所述的补丁包生成方法,其特征在于,对所述补丁文件和所述列表信息文件进行打包包括:
将所述补丁文件和所述列表信息文件按照指定的压缩格式压缩,得到压缩包;
按照预设命名规则对所述压缩包命名,得到所述目标应用当前的补丁包。
7.根据权利要求1所述的补丁包生成方法,其特征在于,所述方法应用于所述目标应用的服务端或带有补丁包制作软件的终端,所述方法还包括:将所述目标应用当前的补丁包上传至云服务器,所述云服务器用于发布所述补丁包。
8.一种应用更新方法,其特征在于,应用于目标应用的客户端,包括:
获取目标应用的补丁包中的当前列表信息文件;其中,所述补丁包还包括有补丁文件,所述补丁文件中的文件为对全量补丁包中的文件依据文件的修改时间排序后合并得到的,所述当前列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
将所述客户端的本地列表信息文件与所述当前列表信息文件对比,得到差异信息;
根据所述差异信息确定待下载文件在所述补丁文件中的位置区间;
下载所述位置区间中的文件;
基于下载得到的所述文件更新所述目标应用。
9.一种补丁包生成装置,其特征在于,包括:
排序单元,用于将目标应用的全量补丁包中的文件按照修改时间排序;其中,所述全量补丁包包括所述目标应用的首个安装包之后修改的文件;
合并单元,用于对排序后所述全量补丁包中的文件进行合并,得到补丁文件;
列表信息文件生成单元,用于为所述补丁文件生成列表信息文件;其中,所述列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
打包单元,用于对所述补丁文件和所述列表信息文件进行打包,得到所述目标应用当前的补丁包,以供所述目标应用的客户端基于所述补丁包更新所述目标应用。
10.一种应用更新装置,其特征在于,应用于目标应用的客户端,包括:
获取单元,用于获取目标应用的补丁包中的当前列表信息文件;其中,所述补丁包还包括有补丁文件,所述补丁文件中的文件为对全量补丁包中的文件依据文件的修改时间排序后合并得到的,所述当前列表信息文件用于记录所述补丁文件中所包含文件的文件标识信息和所述文件在所述补丁文件中的位置信息;
对比单元,用于将所述客户端的本地列表信息文件与所述当前列表信息文件对比,得到差异信息;
确定单元,用于根据所述差异信息确定待下载文件在所述补丁文件中的位置区间;
下载单元,用于下载所述位置区间中的文件;
更新单元,用于基于下载得到的所述文件更新所述目标应用。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至7任一项所述的补丁包生成方法的步骤,或者,所述处理器执行所述机器可执行指令以实现权利要求8所述的应用更新方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至7任一项所述的补丁包生成方法的步骤,或者,所述机器可执行指令促使所述处理器实现权利要求8所述的应用更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910746778.XA CN110442377B (zh) | 2019-08-13 | 2019-08-13 | 补丁包生成方法、应用更新方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910746778.XA CN110442377B (zh) | 2019-08-13 | 2019-08-13 | 补丁包生成方法、应用更新方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442377A true CN110442377A (zh) | 2019-11-12 |
CN110442377B CN110442377B (zh) | 2023-11-24 |
Family
ID=68435203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910746778.XA Active CN110442377B (zh) | 2019-08-13 | 2019-08-13 | 补丁包生成方法、应用更新方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442377B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111399896A (zh) * | 2020-03-16 | 2020-07-10 | 网易(杭州)网络有限公司 | 补丁获取方法、装置、设备及存储介质 |
CN111782263A (zh) * | 2020-07-22 | 2020-10-16 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN112256320A (zh) * | 2020-11-04 | 2021-01-22 | 广州繁星互娱信息科技有限公司 | 版本号生成方法、装置、终端及存储介质 |
CN112947337A (zh) * | 2021-02-09 | 2021-06-11 | 南京南瑞继保电气有限公司 | 组态同步方法、装置及电子设备 |
WO2021147668A1 (zh) * | 2020-01-23 | 2021-07-29 | 华为技术有限公司 | 一种软件升级方法及设备 |
CN113312066A (zh) * | 2020-02-27 | 2021-08-27 | 福建省天奕网络科技有限公司 | 动态热更新方法、存储介质 |
CN116257277A (zh) * | 2023-05-12 | 2023-06-13 | 天津卓朗昆仑云软件技术有限公司 | 镜像文件的更新方法、装置及voi*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060112297A1 (en) * | 2004-11-17 | 2006-05-25 | Raytheon Company | Fault tolerance and recovery in a high-performance computing (HPC) system |
CN107153540A (zh) * | 2017-04-19 | 2017-09-12 | 畅捷通信息技术股份有限公司 | 增量构建方法及装置 |
CN108073404A (zh) * | 2017-12-11 | 2018-05-25 | 北京奇虎科技有限公司 | 一种补丁包的加载方法、封装方法及装置 |
CN109032631A (zh) * | 2018-07-12 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 应用程序补丁包获取方法、装置、计算机设备及存储介质 |
CN109445807A (zh) * | 2017-08-28 | 2019-03-08 | 腾讯科技(深圳)有限公司 | 实现应用程序更新的方法、装置和计算机可读存储介质 |
-
2019
- 2019-08-13 CN CN201910746778.XA patent/CN110442377B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060112297A1 (en) * | 2004-11-17 | 2006-05-25 | Raytheon Company | Fault tolerance and recovery in a high-performance computing (HPC) system |
CN107153540A (zh) * | 2017-04-19 | 2017-09-12 | 畅捷通信息技术股份有限公司 | 增量构建方法及装置 |
CN109445807A (zh) * | 2017-08-28 | 2019-03-08 | 腾讯科技(深圳)有限公司 | 实现应用程序更新的方法、装置和计算机可读存储介质 |
CN108073404A (zh) * | 2017-12-11 | 2018-05-25 | 北京奇虎科技有限公司 | 一种补丁包的加载方法、封装方法及装置 |
CN109032631A (zh) * | 2018-07-12 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 应用程序补丁包获取方法、装置、计算机设备及存储介质 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021147668A1 (zh) * | 2020-01-23 | 2021-07-29 | 华为技术有限公司 | 一种软件升级方法及设备 |
EP4086757A4 (en) * | 2020-01-23 | 2023-06-21 | Huawei Technologies Co., Ltd. | SOFTWARE UPGRADE METHOD AND DEVICE |
CN113312066A (zh) * | 2020-02-27 | 2021-08-27 | 福建省天奕网络科技有限公司 | 动态热更新方法、存储介质 |
CN113312066B (zh) * | 2020-02-27 | 2022-07-26 | 福建省天奕网络科技有限公司 | 动态热更新方法、存储介质 |
CN111399896A (zh) * | 2020-03-16 | 2020-07-10 | 网易(杭州)网络有限公司 | 补丁获取方法、装置、设备及存储介质 |
CN111399896B (zh) * | 2020-03-16 | 2023-10-20 | 网易(杭州)网络有限公司 | 补丁获取方法、装置、设备及存储介质 |
CN111782263A (zh) * | 2020-07-22 | 2020-10-16 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN111782263B (zh) * | 2020-07-22 | 2024-01-23 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN112256320A (zh) * | 2020-11-04 | 2021-01-22 | 广州繁星互娱信息科技有限公司 | 版本号生成方法、装置、终端及存储介质 |
CN112256320B (zh) * | 2020-11-04 | 2024-05-14 | 广州繁星互娱信息科技有限公司 | 版本号生成方法、装置、终端及存储介质 |
CN112947337A (zh) * | 2021-02-09 | 2021-06-11 | 南京南瑞继保电气有限公司 | 组态同步方法、装置及电子设备 |
CN116257277A (zh) * | 2023-05-12 | 2023-06-13 | 天津卓朗昆仑云软件技术有限公司 | 镜像文件的更新方法、装置及voi*** |
Also Published As
Publication number | Publication date |
---|---|
CN110442377B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442377A (zh) | 补丁包生成方法、应用更新方法、装置和电子设备 | |
CN106815370B (zh) | 更新资源文件的方法、装置和*** | |
CN109522041B (zh) | 客户端资源更新方法、装置、处理器、服务器及终端 | |
CN111897846B (zh) | 缓存数据校验方法、装置、设备及存储介质 | |
CN107193593B (zh) | 一种可升级文件的升级方法、机顶盒和存储介质 | |
CN111262876B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
US20210019418A1 (en) | Technique for authentication and prerequisite checks for software updates | |
TW201729089A (zh) | 用於可信執行環境的可信應用產生及安裝方法 | |
CN111459511B (zh) | 应用程序的下载方法、装置及电子设备 | |
EP3819802A1 (en) | Data consistency checking method and data uploading/downloading apparatus | |
CN113176992B (zh) | A/b实验分流方法、装置和计算机可读存储介质 | |
US20210099432A1 (en) | Data consistency verification method, and data uploading and downloading device | |
CN113448611A (zh) | 一种应用程序快速热更新的方法及*** | |
CN110727497A (zh) | 消息显示方法及装置 | |
CN112181477A (zh) | 复杂事件处理方法、装置及终端设备 | |
CN112488270A (zh) | 一种二维码生成方法及装置 | |
CN114564227A (zh) | 应用程序更新方法、装置、电子设备和存储介质 | |
CN105740298A (zh) | 文件处理方法、装置及服务端设备 | |
US9292266B2 (en) | Preprocessor for file updating | |
CN103139298B (zh) | 一种传输网络数据的方法和装置 | |
CN112579141A (zh) | 一种嵌入式***的固件更新方法、装置、设备及存储介质 | |
CN107783778B (zh) | 一种基于特征值查表法的增量升级方法 | |
CN106775802B (zh) | 海量小文件快速更新的方法及其*** | |
CN108008984A (zh) | 一种资源文件下载更新方法及装置 | |
CN110968334A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |