CN109766114B - 一种补丁文件的处理方法和装置 - Google Patents
一种补丁文件的处理方法和装置 Download PDFInfo
- Publication number
- CN109766114B CN109766114B CN201910037497.7A CN201910037497A CN109766114B CN 109766114 B CN109766114 B CN 109766114B CN 201910037497 A CN201910037497 A CN 201910037497A CN 109766114 B CN109766114 B CN 109766114B
- Authority
- CN
- China
- Prior art keywords
- file
- version
- patch
- program
- reference line
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种补丁文件的处理方法和装置,所述方法包括:根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件;根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件;采用所述总补丁文件生成基准线一版本补丁列表,采用所述第二补丁文件生成基准线二版本补丁列表;将所述基准线一版本补丁列表和所述基准线二版本补丁列表上传至服务器。应用本发明实施例,用户无需消耗较多的时间和流量,即可完成对于应用程序的更新。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种补丁文件的处理方法和一种补丁文件的处理装置。
背景技术
随着互联网时代的来临,诸如游戏等应用程序的功能迭代也越来越频繁,开发者们为了能定期将新增游戏内容外放,必须及时通过有效的途径更新玩家的应用程序。
然而,各大应用商店对于新版本应用程序的审核需要一定的时间,并且玩家需要消耗较多的时间和流量下载新版本的应用程序,造成了不良的用户体验。针对这个问题,开发者们需要实现一种代价更小的更新方式,让玩家在不用重新下载应用程序的前提下,体验到应用程序的更新内容。
一种更新方式是,将应用程序更新后的整体内容,包括所有的美术资源和脚本文件打包成补丁文件,将补丁文件上传至热更新服务器,再通过CDN(Content DeliveryNetwork,内容分发网络)发布到互联网的各个节点。玩家利用本地应用程序,下载到整个补丁文件,然后根据自己的应用程序版本号与补丁文件进行对比,判断哪些内容需要更新。这种方法在打包时无需对美术资源和脚本文件进行筛选,并且能够保证玩家获取到最新的游戏内容。
还有一种更新方式是,对比当前版本与上个版本的内容,将所有变更过的文件打包成补丁文件,玩家根据对比自身和服务器最新的版本号,判断需要下载哪些更新内容,然后逐一下载每个补丁文件,最终将更新内容与本地合并,得到最新的应用程序。
第一种更新方式,虽然能够生成应用程序最新内容的补丁文件,但是它包含了当前版本所有的资源和脚本文件,体积十分庞大;用户需要下载整个包体大小的内容,耗费了大量的时间和流量;除此之外,在应用程序对比筛选变更的内容,同样也需要较长时间。
第二种更新方式,虽然没有上述第一种更新方式问题,但如果某个文件在多个补丁版本中有过修改,那么玩家需要重复下载多次下载此文件,造成补丁文件大小成倍的增加,降低了玩家的用户体验。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种补丁文件的处理方法和相应的一种补丁文件的处理装置。
为了解决上述问题,本发明实施例公开了一种补丁文件的处理方法,所述补丁文件为用于更新应用程序,所述应用程序包括至少一个程序文件,所述应用程序包括当前版本、基准线一版本和基准线二版本,所述基准线二版本具有第一补丁文件,所述方法包括:
根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件;
根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件;所述基准线一版本补丁文件具有总补丁文件,所述总补丁文件包括第一补丁文件和第二补丁文件,所述补丁版本应用程序具有第二补丁文件;
采用所述总补丁文件生成基准线一版本补丁列表,采用所述第二补丁文件生成基准线二版本补丁列表;
将所述基准线一版本补丁列表和所述基准线二版本补丁列表上传至服务器。
优选地,所述根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件,包括:
计算所述当前版本应用程序中各个程序文件的第一摘要标识,计算所述基准线一版本应用程序中各个程序文件的第二摘要标识,计算所述基准线二版本应用程序中各个程序文件的第三摘要标识;
比对所述第一摘要标识和第二摘要标识确定第一变更程序文件,比对所述第一摘要标识和第三摘要标识确定第二变更程序文件。
优选地,所述程序文件包括贴图文件,所述根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件,包括:
获取所述第一变更程序文件中的第一贴图文件,获取所述第二变更程序文件中的第二贴图文件;
判断所述第一贴图文件对应的第一缓存文件是否在预置共享资源池中,判断所述第二贴图文件对应的第二缓存文件是否在预置共享资源池中;
若所述第一贴图文件对应的第一缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件;
若所述第二贴图文件对应的第二缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件。
优选地,还包括:
若所述第一贴图文件对应的第一缓存文件不在预置共享资源池中,则将所述第一贴图文件转换为第一缓存文件并保存至所述预置共享资源池中;
若所述第二贴图文件对应的第二缓存文件不在预置共享资源池中,则将所述第二贴图文件转换为第二缓存文件并保存至所述预置共享资源池中。
优选地,还包括:
计算所述第一贴图文件的第一贴图摘要标识,计算所述第二贴图文件的第二贴图摘要标识;
获取在所述预置共享资源池中第一贴图对应的第一缓存摘要标识,获取在所述预置共享资源池中第二贴图对应的第二缓存摘要标识;
比对所述第一贴图摘要标识和所述第一缓存摘要标识确定所述第一贴图文件是否发生变化,比对所述第二贴图摘要标识和所述第二缓存摘要标识确定所述第二贴图文件是否发生变化;
若所述第一贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件的步骤;若所述第二贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件的步骤;
若所述第一贴图文件发生变化,则将所述第一贴图文件转换为新第一缓存文件并保存至所述预置共享资源池中;若所述第二贴图文件发生变化,则将所述第二贴图文件转换为新第二缓存文件并保存至所述预置共享资源池中。
优选地,还包括:
在进行应用程序更新时,确定所述应用程序的版本;
当所述应用程序是基准线一版本时,从服务器获取到所述的基准线一版本对应的基准线一版本补丁列表,并采用所述基准线一版本补丁列表下载对应的补丁文件以对所述应用程序进行更新;
当所述应用程序是基准线二版本时,从服务器获取到所述基准线二版本对应的基准线二版本补丁列表,并采用所述基准线二版本补丁列表下载对应的补丁文件以对所述应用程序进行更新。
本发明实施例还公开了一种补丁文件的处理装置,所述补丁文件为用于更新应用程序,所述应用程序包括至少一个程序文件,所述应用程序包括当前版本、基准线一版本和基准线二版本,所述基准线二版本具有第一补丁文件,所述装置包括:
变更程序文件确定模块,用于根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件;
补丁文件生成模块,用于根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件;所述基准线一版本补丁文件具有总补丁文件,所述总补丁文件包括第一补丁文件和第二补丁文件,所述补丁版本应用程序具有第二补丁文件;
补丁列表生成模块,用于采用所述总补丁文件生成基准线一版本补丁列表,采用所述第二补丁文件生成基准线二版本补丁列表;
补丁列表上传模块,用于将所述基准线一版本补丁列表和所述基准线二版本补丁列表上传至服务器。
优选地,所述变更程序文件确定模块包括:
摘要标识计算子模块,用于计算所述当前版本应用程序中各个程序文件的第一摘要标识,计算所述基准线一版本应用程序中各个程序文件的第二摘要标识,计算所述基准线二版本应用程序中各个程序文件的第三摘要标识;
变更程序文件确定子模块,用于比对所述第一摘要标识和第二摘要标识确定第一变更程序文件,比对所述第一摘要标识和第三摘要标识确定第二变更程序文件。
本发明实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述的方法。
本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上述的方法。
本发明实施例包括以下优点:
在本发明实施例中,在制作应用程序的补丁文件时,首先通过当前版本应用程序中各个程序文件和基准线一版本应用程序中各个程序文件确定第一变更程序文件,以及根据当前版本应用程序中各个程序文件和基准线二版本应用程序中各个程序文件确定第二变更程序文件,然后根据第一变更程序文件生成基准线一版本补丁文件,以及根据第二变更程序文件生成基准线二版本补丁文件,并采用总补丁文件生成基准线一版本补丁列表,以及采用所述第二补丁文件生成基准线二版本补丁列表,最后将基准线一版本补丁列表和基准线二版本补丁列表上传至服务器,供玩家下载以进行应用程序的更新。在本发明实施例中,基准线一版本补丁文件具有总补丁文件,而总补丁文件包括第一补丁文件和第二补丁文件,基准线二版本补丁文件则具有第二补丁文件,即基准线二版本补丁文件只有当前版本应用程序更新后的补丁文件,故对于已经安装基准线二版本应用程序的玩家而言,只需要下载第二补丁文件,故无需消耗较多的时间和流量,即可完成对于应用程序的更新。
附图说明
图1是本发明的一种基准线版本的示意图;
图2是本发明的一种补丁文件的处理方法实施例的步骤流程图;
图3是本发明的一种多基准线程序包的示意图;
图4是本发明的一种补丁列表的示意图;
图5是本发明的一种补丁文件的处理装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例预先针对应用程序定制了一套规则,参照图1,具体如下所示:应用程序的首包发布之后,以首包为基准线一版本制作补丁1,接着发布补丁1,那么首包用户需要下载补丁1以获取最新版本的应用程序。接下来,分别以首包和补丁1为基准线二版本,制作2和2.1两个补丁。这两个补丁发布之后,首包用户会下载到完整的补丁2,而已更新至补丁1的用户则只需要下载补丁2.1。
以此类推,当应用程序的新包发布时,便将最近的一个已补丁版本设为基准线一版本,然后用该基准线一版本的内容打出新包。再打下一个补丁时,基准线一版本和基准线二版本均为新包版本,生成的补丁4和4.1内容一致,此时补丁4版本成为基准线二版本。接着以这两条基准线版本生成补丁5和5.1,新包用户会下载到完整的补丁5,而已更新至补丁4的用户则只需要下载补丁5.1。
本发明实施例基于上述预先设定的规则,提出一种基于双基准线的补丁机制,相较于传统的全量补丁生成机制,能够们仅仅针对有变更的程序文件进行操作,找出并将它们打包起来生成补丁文件,这样,能够在让玩家获取应用程序最新内容的前提下,最大程度节省玩家的更新时间和流量,提高用户体验,下面对于本发明实施例进行详细介绍。
参照图2,示出了本发明的一种补丁文件的处理方法实施例的步骤流程图,所述应用程序包括至少一个程序文件,所述应用程序包括当前版本、基准线一版本和基准线二版本,所述基准线二版本具有第一补丁文件,所述方法具体可以包括如下步骤:
步骤101,根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件。
在具体实现中,当前版本应用程序为最新版本的应用程序,基准线版本则为本发明实施例按照规则设定的应用程序。通过比对这些版本应用程序的程序文件,可以确定出现变更的变更程序文件。其中,基准线一版本和基准线二版本统称为双基准线或者双版本线。
在本发明的一种优选实施例中,所述步骤101可以包括如下子步骤:
计算所述当前版本应用程序中各个程序文件的第一摘要标识,计算所述基准线一版本应用程序中各个程序文件的第二摘要标识,计算所述基准线二版本应用程序中各个程序文件的第三摘要标识;
比对所述第一摘要标识和第二摘要标识确定第一变更程序文件,比对所述第一摘要标识和第三摘要标识确定第二变更程序文件。
具体地,遍历当前版本应用程序、基准线一版本应用程序和基准线二版本应用程序的所有程序文件,通过信息摘要算法,计算出每一个程序文件的MD5值(摘要标识),由于信息摘要算法是对文件内容进行映射,一旦文件内容有修改,其MD5值便会不一致。接着,将当前版本中每一个程序文件对应的MD5值与双基准线中上一个版本的MD5值进行比较,筛选出所有变更程序文件。
步骤102,根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件;所述基准线一版本补丁文件具有总补丁文件,所述总补丁文件包括第一补丁文件和第二补丁文件,所述补丁版本应用程序具有第二补丁文件。
在找到变更程序文件后,就可以分别基于基准线一版本和基准线二版本相应的变更程序文件,分别打包得到补丁文件。
在本发明的一种优选实施例中,所述程序文件可以包括贴图文件,所述步骤102可以包括如下子步骤:
获取所述第一变更程序文件中的第一贴图文件,获取所述第二变更程序文件中的第二贴图文件;
判断所述第一贴图文件对应的第一缓存文件是否在预置共享资源池中,判断所述第二贴图文件对应的第二缓存文件是否在预置共享资源池中;
若所述第一贴图文件对应的第一缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件;
若所述第二贴图文件对应的第二缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件。
为了适用于不同的平台及硬件配置,在补丁文件的生成过程中需要进行贴图文件转换,而这一个步骤通常是最耗时的,每一次都所有的贴图文件进行转换操作无疑大大降低了补丁生成效率。然后在每次的应用程序更新中,贴图文件的变化并不多,因此本发明实施例提出共享资源池,如果需要变更的贴图文件已经在共享资源池中,则无需再次进行转换,直接从共享资源池中获取即可,从而可以加快补丁生成速度。
参照图3,在存在多条基准线(版本线),比如内网包、MTL测试包和正式包的美术资源(贴图文件)一致,但是脚本内容不同,当不同的版本线打补丁时为了避免重复压缩贴图,可以利用共享同一份缓存文件的方式,提升补丁生成的效率。
在本发明的一种优选实施例中,所述方法还可以包括如下步骤:
若所述第一贴图文件对应的第一缓存文件不在预置共享资源池中,则将所述第一贴图文件转换为第一缓存文件并保存至所述预置共享资源池中;
若所述第二贴图文件对应的第二缓存文件不在预置共享资源池中,则将所述第二贴图文件转换为第二缓存文件并保存至所述预置共享资源池中。
当然,如果贴图文件的缓存文件不存在于共享资源池当中,则对此贴图文件进行转换,并将转换后的缓存文件备份放入共享资源池中。
在本发明的一种优选实施例中,所述方法还可以包括如下步骤:
计算所述第一贴图文件的第一贴图摘要标识,计算所述第二贴图文件的第二贴图摘要标识;
获取在所述预置共享资源池中第一贴图对应的第一缓存摘要标识,获取在所述预置共享资源池中第二贴图对应的第二缓存摘要标识;
比对所述第一贴图摘要标识和所述第一缓存摘要标识确定所述第一贴图文件是否发生变化,比对所述第二贴图摘要标识和所述第二缓存摘要标识确定所述第二贴图文件是否发生变化;
若所述第一贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件的步骤;若所述第二贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件的步骤;
若所述第一贴图文件发生变化,则将所述第一贴图文件转换为新第一缓存文件并保存至所述预置共享资源池中;若所述第二贴图文件发生变化,则将所述第二贴图文件转换为新第二缓存文件并保存至所述预置共享资源池中。
具体来说,本发明实施例可以通过对比同名的贴图文件的MD5值(贴图摘要标识,缓存摘要标识),判断贴图文件的缓存文件是否在共享资源池中以及是否发生变化,如果缓存文件已经在共享资源池中且未发生变化,那么可以复用以往打补丁时生成的缓存文件,仅对有变更的贴图文件进行压缩,加快了补丁的生成速度。
如果缓存文件不在共享资源池中或者发生变化,则可以对此贴图文件进行转换,并将转换后的缓存文件备份放入共享资源池中。
步骤103,采用所述总补丁文件生成基准线一版本补丁列表,采用所述第二补丁文件生成基准线二版本补丁列表。
本发明实施例将分别针对两个基准线版本生成相应的补丁列表,用于记录补丁文件相应的补丁信息。
需要说明的是,本发明实施例在生成补丁列表之前,可以将不希望外放给玩家的文件给过滤掉,比如应用程序在开发过程中的测试代码、用来辅助开发的工具代码以及应用程序不相关的服务端代码等。
在文件过滤期间,通过正则表达式和绝对匹配的方式,对所有的文件及文件夹进行处理,筛选出需要过滤的内容,并将它们从补丁文件当中去除。
在每一次的补丁文件生成过程中,通过遍历文件,将不外放的文件排除在外,避免补丁文件由于不相关内容的打入导致体积过大,影响用户游戏体验。
步骤104,将所述基准线一版本补丁列表和所述基准线二版本补丁列表上传至服务器。
为了让玩家能够下载到更新内容,首先要将生成的补丁文件上传至文件发布系统,然后通过CDN分发到全世界的各个网络节点,供玩家下载。在这个过程当中,分为以下几个步骤:
a)分别记录根据两条基准线生成的补丁序列号,计算其文件MD5值和大小;
b)将补丁文件上传至文件发布系统;
c)生成所有版本的补丁列表,具体格式如图4所示,其中base表示版本线,patch_num表示补丁序列号,patch_name表示补丁文件名, md5表示MD5值,size表示补丁大小。
在本发明的一种优选实施例中,所述方法还可以包括如下步骤:
在进行应用程序更新时,确定所述应用程序的版本;
当所述应用程序是基准线一版本时,从服务器获取到所述的基准线一版本对应的基准线一版本补丁列表,并采用所述基准线一版本补丁列表下载对应的补丁文件以对所述应用程序进行更新;
当所述应用程序是基准线二版本时,从服务器获取到所述基准线二版本对应的基准线二版本补丁列表,并采用所述基准线二版本补丁列表下载对应的补丁文件以对所述应用程序进行更新。
玩家在下载最新版本的应用程序时,具体过程如下所示:
1、首先读取本地的补丁信息,与服务器端的补丁列表进行对比,如果本地的补丁是最新的,则不需要下载补丁,直接进入应用程序;
2、如果本地的补丁不是最新的,则需要判断本次更新需要走哪一条基准线,若是刚下载的包体,则根据此包体基准线(基准线一版本)下载补丁文件,否则根据另一条基准线(基准线二版本)下载补丁文件;
3、根据确认好的基准线,获取补丁文件列表,开始下载补丁文件;
4、所有补丁文件下载完毕后,将补丁文件与本地应用程序进行合并,得到最新的应用程序;
5、将应用程序版本信息更到最新,下次进入应用程序则无需再次更新;
6、进入应用程序。
应用本发明实施例,可以带来至少如下的有益效果:
1、双基准线区分新老玩家的补丁文件
根据玩家已安装的应用程序不同,设立双基准线,区分新老玩家的补丁基准线。新玩家只需要下载本包体到现在最新内容文件,无需关注期间的内容变化,即使单个文件进行了多次修改,也只会下载一份,大大减少了新玩家的下载流量和时间。而老玩家也只需要根据基准线二,下载本次更新相较于上一次的内容,提高了用户体验。
2、共享资源池
对于本地所有的基准线,只维护一份贴图文件的缓存文件,所有基准线共用共享资源池中的内容。只要某一条基准线进行过打补丁操作,生成的贴图缓存能够供其他基准线使用,无需重复进行贴图文件转换。一方面缩短了生成补丁的时间,另一方面便于快速搭建新的基准线。这种方法有助于为各种需求出包体,降低了时间成本。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明的一种补丁文件的处理装置实施例的结构框图,所述补丁文件为用于更新应用程序,所述应用程序包括至少一个程序文件,所述应用程序包括当前版本、基准线一版本和基准线二版本,所述基准线二版本具有第一补丁文件,所述装置具体可以包括如下模块:
变更程序文件确定模块201,用于根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件;
补丁文件生成模块202,用于根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件;所述基准线一版本补丁文件具有总补丁文件,所述总补丁文件包括第一补丁文件和第二补丁文件,所述补丁版本应用程序具有第二补丁文件;
补丁列表生成模块203,用于采用所述总补丁文件生成基准线一版本补丁列表,采用所述第二补丁文件生成基准线二版本补丁列表;
补丁列表上传模块204,用于将所述基准线一版本补丁列表和所述基准线二版本补丁列表上传至服务器。
在本发明的一种优选实施例中,所述变更程序文件确定模块201包括:
摘要标识计算子模块,用于计算所述当前版本应用程序中各个程序文件的第一摘要标识,计算所述基准线一版本应用程序中各个程序文件的第二摘要标识,计算所述基准线二版本应用程序中各个程序文件的第三摘要标识;
变更程序文件确定子模块,用于比对所述第一摘要标识和第二摘要标识确定第一变更程序文件,比对所述第一摘要标识和第三摘要标识确定第二变更程序文件。
在本发明的一种优选实施例中,所述程序文件包括贴图文件,所述补丁文件生成模块202包括:
贴图文件获取子模块,用于获取所述第一变更程序文件中的第一贴图文件,获取所述第二变更程序文件中的第二贴图文件;
缓存文件判断子模块,用于判断所述第一贴图文件对应的第一缓存文件是否在预置共享资源池中,判断所述第二贴图文件对应的第二缓存文件是否在预置共享资源池中;
第一处理子模块,用于若所述第一贴图文件对应的第一缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件;
第二处理子模块,用于若所述第二贴图文件对应的第二缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件。
在本发明的一种优选实施例中,所述补丁文件生成模块202还包括:
第三处理子模块,用于若所述第一贴图文件对应的第一缓存文件不在预置共享资源池中,则将所述第一贴图文件转换为第一缓存文件并保存至所述预置共享资源池中;
第四处理子模块,用于若所述第二贴图文件对应的第二缓存文件不在预置共享资源池中,则将所述第二贴图文件转换为第二缓存文件并保存至所述预置共享资源池中。
在本发明的一种优选实施例中,所述补丁文件生成模块202包括:
贴图摘要标识计算子模块,用于计算所述第一贴图文件的第一贴图摘要标识,计算所述第二贴图文件的第二贴图摘要标识;
缓存摘要标识获取子模块,用于获取在所述预置共享资源池中第一贴图对应的第一缓存摘要标识,获取在所述预置共享资源池中第二贴图对应的第二缓存摘要标识;
摘要标识比对子模块,用于比对所述第一贴图摘要标识和所述第一缓存摘要标识确定所述第一贴图文件是否发生变化,比对所述第二贴图摘要标识和所述第二缓存摘要标识确定所述第二贴图文件是否发生变化;
第五处理子模块,用于若所述第一贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件的步骤;若所述第二贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件的步骤;
第六处理子模块,用于若所述第一贴图文件发生变化,则将所述第一贴图文件转换为新第一缓存文件并保存至所述预置共享资源池中;若所述第二贴图文件发生变化,则将所述第二贴图文件转换为新第二缓存文件并保存至所述预置共享资源池中。
在本发明的一种优选实施例中,所述装置还包括:
程序版本确定模块,用于在进行应用程序更新时,确定所述应用程序的版本;
第一更新模块,用于当所述应用程序是基准线一版本时,从服务器获取到所述的基准线一版本对应的基准线一版本补丁列表,并采用所述基准线一版本补丁列表下载对应的补丁文件以对所述应用程序进行更新;
第二更新模块,用于当所述应用程序是基准线二版本时,从服务器获取到所述基准线二版本对应的基准线二版本补丁列表,并采用所述基准线二版本补丁列表下载对应的补丁文件以对所述应用程序进行更新。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法。
本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种补丁文件的处理方法和一种补丁文件的处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种补丁文件的处理方法,其特征在于,所述补丁文件为用于更新应用程序,所述应用程序包括至少一个程序文件,所述应用程序包括当前版本、基准线一版本和基准线二版本,所述基准线二版本具有第一补丁文件,所述方法包括:
根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件;
根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件;所述基准线一版本补丁文件具有总补丁文件,所述总补丁文件包括第一补丁文件和第二补丁文件,补丁版本应用程序具有第二补丁文件;
采用所述总补丁文件生成基准线一版本补丁列表,采用所述第二补丁文件生成基准线二版本补丁列表;
将所述基准线一版本补丁列表和所述基准线二版本补丁列表上传至服务器;
其中,所述程序文件包括贴图文件,所述根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件,包括:
获取所述第一变更程序文件中的第一贴图文件,获取所述第二变更程序文件中的第二贴图文件;
判断所述第一贴图文件对应的第一缓存文件是否在预置共享资源池中,判断所述第二贴图文件对应的第二缓存文件是否在预置共享资源池中;
若所述第一贴图文件对应的第一缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件;
若所述第二贴图文件对应的第二缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件,包括:
计算所述当前版本应用程序中各个程序文件的第一摘要标识,计算所述基准线一版本应用程序中各个程序文件的第二摘要标识,计算所述基准线二版本应用程序中各个程序文件的第三摘要标识;
比对所述第一摘要标识和第二摘要标识确定第一变更程序文件,比对所述第一摘要标识和第三摘要标识确定第二变更程序文件。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述第一贴图文件对应的第一缓存文件不在预置共享资源池中,则将所述第一贴图文件转换为第一缓存文件并保存至所述预置共享资源池中;
若所述第二贴图文件对应的第二缓存文件不在预置共享资源池中,则将所述第二贴图文件转换为第二缓存文件并保存至所述预置共享资源池中。
4.根据权利要求1或3所述的方法,其特征在于,还包括:
计算所述第一贴图文件的第一贴图摘要标识,计算所述第二贴图文件的第二贴图摘要标识;
获取在所述预置共享资源池中第一贴图对应的第一缓存摘要标识,获取在所述预置共享资源池中第二贴图对应的第二缓存摘要标识;
比对所述第一贴图摘要标识和所述第一缓存摘要标识确定所述第一贴图文件是否发生变化,比对所述第二贴图摘要标识和所述第二缓存摘要标识确定所述第二贴图文件是否发生变化;
若所述第一贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件的步骤;若所述第二贴图文件未发生变化,则执行所述从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件的步骤;
若所述第一贴图文件发生变化,则将所述第一贴图文件转换为新第一缓存文件并保存至所述预置共享资源池中;若所述第二贴图文件发生变化,则将所述第二贴图文件转换为新第二缓存文件并保存至所述预置共享资源池中。
5.根据权利要求1所述的方法,其特征在于,还包括:
在进行应用程序更新时,确定所述应用程序的版本;
当所述应用程序是基准线一版本时,从服务器获取到所述的基准线一版本对应的基准线一版本补丁列表,并采用所述基准线一版本补丁列表下载对应的补丁文件以对所述应用程序进行更新;
当所述应用程序是基准线二版本时,从服务器获取到所述基准线二版本对应的基准线二版本补丁列表,并采用所述基准线二版本补丁列表下载对应的补丁文件以对所述应用程序进行更新。
6.一种补丁文件的处理装置,其特征在于,所述补丁文件为用于更新应用程序,所述应用程序包括至少一个程序文件,所述应用程序包括当前版本、基准线一版本和基准线二版本,所述基准线二版本具有第一补丁文件,所述装置包括:
变更程序文件确定模块,用于根据所述当前版本应用程序中各个程序文件和所述基准线一版本应用程序中各个程序文件确定第一变更程序文件,根据所述当前版本应用程序中各个程序文件和所述基准线二版本应用程序中各个程序文件确定第二变更程序文件;
补丁文件生成模块,用于根据所述第一变更程序文件生成基准线一版本补丁文件,根据所述第二变更程序文件生成基准线二版本补丁文件;所述基准线一版本补丁文件具有总补丁文件,所述总补丁文件包括第一补丁文件和第二补丁文件,补丁版本应用程序具有第二补丁文件;
补丁列表生成模块,用于采用所述总补丁文件生成基准线一版本补丁列表,采用所述第二补丁文件生成基准线二版本补丁列表;
补丁列表上传模块,用于将所述基准线一版本补丁列表和所述基准线二版本补丁列表上传至服务器;
其中,所述程序文件包括贴图文件,所述补丁文件生成模块包括:
贴图文件获取子模块,用于获取所述第一变更程序文件中的第一贴图文件,获取所述第二变更程序文件中的第二贴图文件;
缓存文件判断子模块,用于判断所述第一贴图文件对应的第一缓存文件是否在预置共享资源池中,判断所述第二贴图文件对应的第二缓存文件是否在预置共享资源池中;
第一处理子模块,用于若所述第一贴图文件对应的第一缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第一缓存文件,并采用所述第一缓存文件生成基准线一版本补丁文件;
第二处理子模块,用于若所述第二贴图文件对应的第二缓存文件在预置共享资源池中,则从所述预置共享资源池中获取所述第二缓存文件,并采用所述第二缓存文件生成基准线二版本补丁文件。
7.根据权利要求6所述的装置,其特征在于,所述变更程序文件确定模块包括:
摘要标识计算子模块,用于计算所述当前版本应用程序中各个程序文件的第一摘要标识,计算所述基准线一版本应用程序中各个程序文件的第二摘要标识,计算所述基准线二版本应用程序中各个程序文件的第三摘要标识;
变更程序文件确定子模块,用于比对所述第一摘要标识和第二摘要标识确定第一变更程序文件,比对所述第一摘要标识和第三摘要标识确定第二变更程序文件。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-5中任一项所述的一个或多个的方法。
9.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-5中任一项所述的一个或多个的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910037497.7A CN109766114B (zh) | 2019-01-15 | 2019-01-15 | 一种补丁文件的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910037497.7A CN109766114B (zh) | 2019-01-15 | 2019-01-15 | 一种补丁文件的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766114A CN109766114A (zh) | 2019-05-17 |
CN109766114B true CN109766114B (zh) | 2022-05-03 |
Family
ID=66452942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910037497.7A Active CN109766114B (zh) | 2019-01-15 | 2019-01-15 | 一种补丁文件的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766114B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112394969B (zh) * | 2019-08-14 | 2023-04-28 | 华为技术有限公司 | 一种补丁发布的方法、服务器及终端设备 |
CN111679728B (zh) * | 2019-12-31 | 2021-12-24 | 泰斗微电子科技有限公司 | 数据读取方法及装置 |
CN111314437B (zh) * | 2020-01-20 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 资源包的下载方法和装置、存储介质及电子装置 |
CN111654548B (zh) * | 2020-06-05 | 2023-04-18 | 网易(杭州)网络有限公司 | 补丁文件的下载方法、装置和系统及电子设备 |
CN114356316A (zh) * | 2020-09-30 | 2022-04-15 | 华为技术有限公司 | 一种补丁复用方法、系统及电子设备 |
CN112657196A (zh) * | 2020-12-21 | 2021-04-16 | 北京像素软件科技股份有限公司 | 资源更新方法、装置、计算机设备和可读存储介质 |
CN114265634A (zh) * | 2021-12-22 | 2022-04-01 | 中国农业银行股份有限公司 | 基于集中式版本控制系统的文件提交方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2770642A1 (en) * | 2013-02-26 | 2014-08-27 | Tata Consultancy Services Limited | Systems and methods for data archival |
CN105320554A (zh) * | 2015-12-11 | 2016-02-10 | 网易(杭州)网络有限公司 | 程序更新的方法、用于程序更新的客户端及系统 |
WO2016058350A1 (zh) * | 2014-10-17 | 2016-04-21 | 中兴通讯股份有限公司 | 一种基站软件版本管理方法和设备 |
CN107391107A (zh) * | 2017-06-12 | 2017-11-24 | 北京明朝万达科技股份有限公司 | 一种应用程序的修复方法和装置 |
CN107861736A (zh) * | 2017-11-01 | 2018-03-30 | 网易(杭州)网络有限公司 | 补丁生成和更新方法及装置、电子设备、存储介质 |
-
2019
- 2019-01-15 CN CN201910037497.7A patent/CN109766114B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2770642A1 (en) * | 2013-02-26 | 2014-08-27 | Tata Consultancy Services Limited | Systems and methods for data archival |
WO2016058350A1 (zh) * | 2014-10-17 | 2016-04-21 | 中兴通讯股份有限公司 | 一种基站软件版本管理方法和设备 |
CN105320554A (zh) * | 2015-12-11 | 2016-02-10 | 网易(杭州)网络有限公司 | 程序更新的方法、用于程序更新的客户端及系统 |
CN107391107A (zh) * | 2017-06-12 | 2017-11-24 | 北京明朝万达科技股份有限公司 | 一种应用程序的修复方法和装置 |
CN107861736A (zh) * | 2017-11-01 | 2018-03-30 | 网易(杭州)网络有限公司 | 补丁生成和更新方法及装置、电子设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
《系统自动更新升级软件SUS研究》;谭安芬等;《计算机与自动化技术》;20060721;第38-41页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109766114A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766114B (zh) | 一种补丁文件的处理方法和装置 | |
CN110058873B (zh) | 应用页面更新方法、装置、设备和存储介质 | |
CN109445827B (zh) | 一种游戏更新的方法及装置、电子设备、存储介质 | |
CN107844343B (zh) | 一种复杂服务端应用系统的升级系统及方法 | |
CN106921731B (zh) | 漏洞修复方法及装置 | |
CN106919843B (zh) | 漏洞修复系统、方法及设备 | |
CN105893008A (zh) | 一种定制多渠道安装包的方法及装置 | |
CN111367558B (zh) | 一种应用程序的数据更新方法和装置 | |
US20160124739A1 (en) | Minimizing Image Copying During Partition Updates | |
CN107783816A (zh) | 虚拟机的创建方法及装置、大数据集群创建的方法及装置 | |
CN106790247A (zh) | 一种Android系统升级的方法和装置 | |
CN106610839A (zh) | 发布升级包的方法、轻量升级方法、装置及系统 | |
CN105160253B (zh) | 修复客户端程序的方法、装置、系统及服务器 | |
CN106547572A (zh) | 一种程序文件对比方法及装置 | |
CN105867903A (zh) | 代码库拆分的方法及装置 | |
CN113190448B (zh) | 测试代码更新方法及装置、电子设备、存储介质 | |
CN106445643A (zh) | 克隆、升级虚拟机的方法及设备 | |
WO2019041891A1 (zh) | 升级包的生成方法及装置 | |
CN106682017B (zh) | 一种数据库更新方法及装置 | |
CN114564227A (zh) | 应用程序更新方法、装置、电子设备和存储介质 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
US7689972B2 (en) | System and method for producing software patches | |
CN106843935A (zh) | 一种自动更新静态文件版本号的方法及系统 | |
CN111586170B (zh) | 资源下载方法、装置、设备及计算机可读存储介质 | |
CN115495460A (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 |