CN105404521B - 一种增量升级方法及相关装置 - Google Patents
一种增量升级方法及相关装置 Download PDFInfo
- Publication number
- CN105404521B CN105404521B CN201410238919.4A CN201410238919A CN105404521B CN 105404521 B CN105404521 B CN 105404521B CN 201410238919 A CN201410238919 A CN 201410238919A CN 105404521 B CN105404521 B CN 105404521B
- Authority
- CN
- China
- Prior art keywords
- subfile
- compressed file
- file
- edition
- compressed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 98
- 230000006837 decompression Effects 0.000 claims abstract description 120
- 230000006835 compression Effects 0.000 claims description 133
- 238000007906 compression Methods 0.000 claims description 133
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000001143 conditioned effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010021703 Indifference Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 241000894007 species Species 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种增量升级方法及相关装置,服务器在生成增量文件时,首先将旧版压缩文件和新版压缩文件中的子文件分类,然后对不同类型的子文件执行不同的差异比较步骤,得到对应类型的差异数据:对于满足预设解压条件的子文件采用解压比较法执行差异比较,可以减小差异数据的大小,对于不满足预设解压条件的子文件采用直接比较法执行差异比较,可以提高差异比较的效率;进而客户端从服务器获取差异数据,并根据差异数据的类型,执行对差异数据和旧版压缩文件的合并操作,得到新版压缩文件,也可以提高合并操作的效率。相对于传统的增量升级方法,本申请可以达到兼顾增量文件大小和升级效率两个方面的目的。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种增量升级方法及相关装置。
背景技术
版本升级是指对操作系统或软件旧版本的漏洞进行完善,或者对软件添加新的应用功能的更新,使软件更加完善好用。增量升级为一种常用的版本升级方法,其基本原理为:服务器比较旧版本文件和新版本文件,生成用于记录所述旧版本文件和新版本文件之间的差异信息的增量文件;客户端下载所述增量文件,并将所述增量文件与自身的旧版本文件进行合并,得到对应的新版本文件,安装后该新版本文件后即完成版本升级。相对于通过下载整个新版本文件来执行升级的方式,上述增量升级方法消耗的数据流量更少、占用的时间更短、升级效率更高,因而得到广泛应用。
通常的,各个版本文件均为包含多个子文件的压缩文件;有鉴于此,传统的增量升级过程中主要通过直接比较法或解压比较法得到增量文件。
所述直接比较法即将旧版本文件和新版本文件分别作为一个整体文件直接进行比较;该方法比较效率较高,但得到的增量文件会很大,甚至接近新版本文件的大小,不利于客户端下载该增量文件。例如,相对于旧版本文件,新版本文件中相对应的每个子文件都未修改,只是更改了子文件的压缩顺序,但从整体文件的角度来看,两个文件仍然是完全不同的,故采用直接比较法得到的增量文件会很大。
所述解压比较法具体为:将旧版本文件和新版本文件中的子文件分别解压,对解压后得到的旧版本文件和新版本文件中相对应(如文件名相同)的子文件进行比较,得到增量文件。相对于直接比较法,解压比较法虽然可以解决子文件顺序改变导致的整体文件差异较大的问题,有效减小增量文件的大小,但是执行过程中一般需要执行几千次的解压缩、再压缩操作,导致升级效率较低。
发明内容
本申请实施例中提供了一种增量升级方法及相关装置,以解决常用增量升级方法无法兼顾增量文件大小和升级效率的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
本申请第一方面,提供一种增量升级方法,包括:
服务器对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的第三类子文件;
服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
客户端获取所述第一类子文件、所述第一差异数据以及所述第二差异数据;
客户端将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
结合第一方面,在本申请第一方面第一种可能的实现方式中,所述预设解压条件包括:文件压缩前的大小大于预设字节值,且压缩率小于预设比值;其中,所述压缩率为文件压缩后的大小与压缩前的大小之比。
结合第一方面,或者第一方面第一种可能的实现方式,在本申请第一方面第二种可能的实现方式中,客户端将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件,包括:客户端读取并存储所述第一差异数据中的文件数据头;读取旧版压缩文件中与第一差异数据对应的第二类子文件;对读取到的第二类子文件进行解压;将解压后的第二类子文件与所述第一差异数据合并,得到第一合并子文件;对所述文件数据头和第一合并子文件进行压缩,得到所述第一压缩子文件。
结合第一方面,或者第一方面第一种可能的实现方式,在本申请第一方面第三种可能的实现方式中,上述增量升级方法还包括:服务器接收客户端发送的文件升级请求;当接收到所述文件升级请求时,服务器执行所述对新版压缩文件和旧版压缩文件的分类处理。
本申请第二方面,提供一种增量升级方法,包括:
服务器对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的第三类子文件;
服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
服务器将所述第一类子文件、所述第一差异数据以及所述第二差异数据发送给客户端,以供所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
结合第二方面,在本申请第二方面第一种可能的实现方式中,上述增量升级方法还包括:服务器接收客户端发送的文件升级请求;当接收到所述文件升级请求时,服务器执行所述对新版压缩文件和旧版压缩文件的分类处理。
本申请第三方面,提供一种增量升级方法,包括:
客户端从服务器获取第一类子文件、第一差异数据以及第二差异数据;其中,所述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;所述第一差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;所述第二差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的子文件不解压直接进行差异比较得到的数据;
所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
结合第三方面,在本申请第三方面第一种可能的实现方式中,所述将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件,包括:客户端读取并存储所述第一差异数据中的文件数据头;读取旧版压缩文件中与第一差异数据对应的第二类子文件;对读取到的第二类子文件进行解压;将解压后的第二类子文件与所述第一差异数据合并,得到第一合并子文件;对所述文件数据头和第一合并子文件进行压缩,得到所述第一压缩子文件。
本申请第四方面,提供一种服务器,包括:
分类单元,用于对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的第三类子文件;
比较单元,用于对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
发送单元,用于将所述第一类子文件、所述第一差异数据以及所述第二差异数据发送给客户端,以供所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
本申请第五方面,提供一种客户端,包括:
获取单元,用于从服务器获取第一类子文件、第一差异数据以及第二差异数据;其中,所述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;所述第一差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;所述第二差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件不解压直接进行差异比较得到的数据;
合并单元,用于按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
由以上技术方案可见,本申请实施例中,服务器在生成增量文件时,首先将旧版压缩文件和新版压缩文件中的子文件分类,然后对不同类型的子文件执行不同的差异比较步骤,得到对应类型的差异数据:对于满足预设解压条件的子文件采用解压比较法执行差异比较,可以减小差异数据的大小,对于不满足预设解压条件的子文件采用直接比较法执行差异比较,可以提高差异比较的效率;进而客户端从服务器获取差异数据,并根据差异数据的类型,执行对差异数据和旧版压缩文件的合并操作,得到新版压缩文件,也可以提高合并操作的效率。因此,相对于传统单一的基于直接比较法或基于解压比较法实现的增量升级,本申请可以达到兼顾增量文件大小和升级效率两个方面的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种增量升级方法的流程示意图;
图2为本申请实施例提供的增量升级方法中生成增量文件的一种流程示意图;
图3为本申请实施例提供的增量升级方法中生成增量文件的另一种流程示意图;
图4为本申请实施例中旧版压缩文件和新版压缩文件的存储结构示意图;
图5为本申请实施例中第一缓存区和第二缓存区的存储结构示意图;
图6为本申请实施例提供的增量升级方法中客户端执行合并操作的流程示意图;
图7为本申请实施例提供的另一种增量升级方法的流程示意图;
图8为本申请实施例提供的又一种增量升级方法的流程示意图;
图9为本申请实施例提供的实现增量升级的服务器和客户端的关系示意图;
图10为本申请实施例提供的一种服务器的结构框图;
图11为本申请实施例提供的一种客户端的结构框图;
图12为本申请实施例提供的另一种服务器的结构框图;
图13为本申请实施例提供的另一种客户端的结构框图。
具体实施方式
本申请实施例提供一种增量升级方法及相关装置,以解决常用增量升级方法无法兼顾增量文件大小和升级效率的问题。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1为本申请实施例提供的一种增量升级方法的流程图。
参见图1,本实施例提供的增量升级方法包括以下步骤:
S11、服务器获取第一压缩文件和对应的第二压缩文件。
可选的,本申请实施例可以根据文件名称和/或版本标识符确定相对应的两个压缩文件,进而根据两个压缩文件的版本号确定哪个压缩文件是旧版压缩文件,哪个压缩文件是新版压缩文件。
例如,服务器中有名称均为uc_browser.apk的两个压缩文件,则这两个压缩文件为相对应的两个压缩文件;进一步的,这两个压缩文件中,一个压缩文件的版本号为9.6.0,另一个压缩文件的版本号为9.6.1,则可以确定后者的版本号更高,为新版本文件,故可以确定:版本号为9.6.0的压缩文件为旧版压缩文件,版本号为9.6.1的压缩文件为新版压缩文件。
S12、服务器对新版压缩文件和旧版压缩文件进行分类处理,得到第一类子文件、第二类子文件和第三类子文件中的至少一种。
本实施例中,第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;第二类子文件为新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件;第三类子文件为新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件。
本申请实施例的压缩文件(包括旧版压缩文件和新版压缩文件),是指由多个压缩子文件按一定顺序存储,得到的一个文件;更具体的,压缩文件格式可以为zip格式,对应的常见文件包括apk格式的文件、大部分游戏资源文件、以及一些大型应用的数据文件。以新版压缩文件为例,可以根据功能等因素将新版本文件中数据分组,将每组中的数据和/或子文件分别压缩,得到多个压缩子文件,将这些压缩子文件按照预定的顺序排列,即得到新版本文件的压缩文件。
以新版子文件表示新版压缩文件中的子文件,旧版子文件表示旧版压缩文件中的子文件。例如,对于某一新版子文件,如果不存在与其对应的旧版子文件,则该新版子文件即为第一类子文件。
再如,对于另一新版子文件,如果存在与其对应的旧版子文件,且该另一新版子文件和对应的旧版子文件都满足预设解压条件,则该另一新版子文件即为新版压缩文件中的第二类子文件,该对应的旧版子文件即为旧版压缩文件中的第二类子文件。
又如,对于又一新版子文件,如果存在与其对应的旧版子文件,且该又一新版子文件和对应的旧版子文件不都满足上述预设解压条件(即:或者该又一新版子文件不满足预设解压条件,或者对应的旧版子文件不满足预设解压条件,或者该又一新版子文件和对应的旧版子文件都不满足预设解压条件),则该又一新版子文件即为新版压缩文件中的第三类子文件,该对应的旧版子文件即为旧版压缩文件中的第三类子文件。
需要说明的是,分类处理完成后,如果只得到第一类子文件,说明新版子文件全部为新增文件,而不是在旧版子文件的基础上修改得到的。如果分类处理完成后,只得到第二类子文件或只得到第三类子文件,说明新版子文件都是在对应的旧版子文件的基础上修改得到的。
本实施例所述的新版子文件与旧版子文件对应,是指该新版子文件和旧版子文件实现的功能相同(或相似)。实际应用中,相对应的子文件的文件名是相同的,因此,可以通过在旧版压缩文件中查找文件名与新版子文件的文件名相同的子文件,查找到的子文件即为与新版子文件对应的旧版子文件。
常用的增量升级方式中,对压缩文件中所有的数据或子文件采用同一种差异比较方式,以得到相应的增量文件。然而,申请人研究发现,不同的子文件对应的最优差异比较方式可能不同。
例如,有些文件压缩前后的大小差异很小甚至无差异,相应的,采用解压比较法和直接比较法得到的两种差异数据的大小也差异不大;然而由于解压比较法需要多次执行解压缩操作,故执行效率相对于直接比较法较低;因此,对于此类文件,优选的差异比较方式为直接比较法。
又如,对于压缩前后大小差异较大的文件,虽然采用解压比较法需要牺牲一定的执行效率,但由于解压后得到的数据颗粒度更小,可以识别旧版子文件和新版子文件中内容相同但顺序关系不同的数据,避免因数据排列顺序的改变导致文件整体差异较大的问题,故得到的差异数据的大小远小于采用直接比较法得到的差异数据的大小;因此,对于此类文件,优选的差异比较方式为解压比较法。
有鉴于此,本申请实施例根据预设解压条件区分上述两类文件,以便于对每类文件采用最优的差异比较方式。
S13、服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据。
上述第一类子文件、第一差异数据和第二差异数据的集合,即为记录旧版压缩文件和新版压缩文件之间的差异信息的增量文件;每个第一类子文件、每个第一差异数据以及每个第二差异数据分别为一个增量子文件。
本申请实施例中,由于旧版压缩文件中不存在第一类子文件,即:相对于旧版压缩文件,新版压缩文件中的第一类子文件为新增文件;因此,对于第一类子文件,不需要执行差异比较操作,直接将该第一类子文件作为增量文件的一个子文件即可。
本申请实施例中,对于满足预设解压条件的第二类子文件,采用先解压后比较的差异比较方式,可以减小相应的增量子文件的大小,进而减小增量文件的大小;对于不满足预设解压条件的第三类子文件,采用直接比较方式,可以缩短差异比较所用的时间,提高增量文件的生成效率,进而提高增量升级效率。
本申请实施例中,对不同类型的新版子文件和旧版子文件执行不同的差异比较操作,可以达到兼顾增量子文件大小和差异比较效率的目的。
可选的,还可以将上述第一类子文件、第一差异数据和第二差异数据压缩为一个文件,得到压缩文件形式的增量文件,以便于完整准确的发送/下载该增量文件。
S14、客户端从服务器获取增量文件,该增量文件包括上述第一类子文件、第一差异数据以及第二差异数据中的至少一种。
S15、客户端根据获取到的增量文件中的数据类型,对获取到的增量文件和自身存储的旧版压缩文件执行合并操作,得到新版压缩文件。
本申请实施例中,客户端按照以下方式执行合并操作,得到新版压缩文件:旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
可选的,客户端可以设置新版压缩文件存储区,并按照以下方式执行合并操作:将上述第一类子文件直接存入该新版压缩文件存储区;将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,然后将合并后的数据进行压缩,得到第一压缩子文件,并将该第一压缩子文件存入新版压缩文件存储区;将旧版压缩文件的第三类子文件与上述第二差异数据合并,将合并后的数据进行压缩,得到第二压缩子文件,并将该第二压缩子文件存入新版压缩文件存储区。合并操作执行完后,新版压缩文件存储区中存储的文件集合即为新版压缩文件。
由上述技术方案可知,本申请实施例提供的增量升级方法,服务器在生成增量文件时,首先将旧版压缩文件和新版压缩文件中的子文件分类,然后对不同类型的子文件执行不同的差异比较步骤,得到对应的差异数据:将新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件作为新增数据,对不满足预设解压条件的第三类子文件采用比较效率更高的直接比较法得到对应的第二差异数据,对满足预设解压条件的第二类子文件采用可以使差异数据较小的解压比较法得到对应的第一差异数据;进而客户端从服务器获取上述第一类子文件、第一差异数据以及第二差异数据,并将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对上述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对上述第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。因此,本申请实施例根据压缩文件中子文件的类型选择对应的差异比较方式及合并操作方式,对于整个增量升级过程而言,可以达到兼顾增量文件大小和升级效率两个方面的目的。
可选的,本申请实施例中,预设解压条件可以为:文件压缩前的大小大于预设字节值且压缩率小于预设比值,但不限于此。
其中,预设字节可以设置为100KB,但不限于此;压缩率为文件压缩后的大小与压缩前的大小之比,可以设置为70%,但不限于此。
在本申请一个可行的实施例中,服务器在执行步骤S11至S13,得到旧版压缩文件和新版压缩文件之间的增量文件后,可以向与其关联的客户端发送升级提示信息,客户端接收到该升级提示信息后,下载相应的增量文件,实现对自身存储的旧版压缩文件的增量升级。
上述升级提示信息包括该增量文件对应的新版压缩文件的版本信息;版本信息至少包括文件名、版本号等。可选的,客户端可以无条件下载接收到的每条升级提示信息对应的增量文件;也可以根据接收到的升级提示信息中版本信息及自身存储或安装的文件的版本信息判断是否对本地文件升级,如果需要升级,则下载该升级提示信息对应的增量文件,如果不需要升级或者不存在对应的旧版本文件,则不下载该升级提示信息对应的增量文件。
例如,客户端接收到的升级提示信息中携带的版本信息如下:文件名为uc_browser.apk、版本号为9.6.1;如果客户端自身存储或安装的文件中不存在名称为uc_browser.apk的文件,或者,存在名称为uc_browser.apk、版本号为9.6.1的文件,说明客户端不需要下载该升级提示信息对应的增量文件;如果客户端自身存储或安装的文件中存在名称为uc_browser.apk、版本号为9.6.0的文件,即版本号低于该升级提示信息对应的新版压缩文件的版本号,说明有必要对客户端中的uc_browser.apk文件进行升级,此时,客户端下载该升级提示信息对应的增量文件。
在本申请另一个可行的实施例中,客户端可以主动向服务器发送文件升级请求,服务器接收到上述文件升级请求后,向客户端发送相应的增量文件,以供客户端对自身存储的旧版压缩文件进行增量升级。
上述文件升级请求包括客户端中存储或安装的文件的版本信息。服务器接收到来自客户端的文件升级请求后,查找是否存在对应的增量文件,如果存在,则将该增量文件发送至该客户端。可选的,如果服务器中不存在与文件升级请求对应的增量文件,服务器可以向客户端返回相应的提示信息,如“无新版本”、“当前版本已为最新版本”等。
例如,服务器接收到的文件升级请求中携带的版本信息如下:文件名为uc_browser.apk、版本号为9.6.0;如果服务器查找到自身存储有满足如下升级条件的增量文件:该增量文件对应的旧版压缩文件和新版压缩文件的文件名均为uc_browser.apk,且旧版压缩文件的版本号为9.6.0、新版压缩文件的版本号高于9.6.0(如9.6.1或9.6.2等),则服务器将该增量文件发送至客户端。如果服务器存储的增量文件均不满足上述升级条件(即增量文件对应的旧版压缩文件/新版压缩文件的文件名不为uc_browser.apk,或者,对应的旧版压缩文件的版本号不为9.6.0,或者,对应的新版压缩文件的版本号均不高于9.6.0),说明不存在更高版本的uc_browser.apk文件;此时,服务器可以向客户端返回相应的提示信息。
在本申请一个可行的实施例中,可以在完成对新版压缩文件中所有新版子文件的分类后,即确定每个新版子文件的类型后,再根据分类结果生成相应的差异数据。
在本申请另一可行的实施例中,还可以在确定一个新版子文件的类型后,立即执行相应的操作以生成该新版子文件对应的差异数据;图2和图3分别为一种实施例流程图,应用于服务器,以实现旧版压缩文件和新版压缩文件之间的差异比较,得到相应的增量文件(即上述步骤S12至S13)。
参考图2,在本申请一个可行的实施例中,服务器根据获取到的旧版压缩文件和新版压缩文件生成相应的增量文件的步骤如下:
S201、判断新版压缩文件中的新版子文件是否已全部被读取,如果是,则结束本流程,否则执行步骤S202;
S202、读取下一个新版子文件;
S203、判断旧版压缩文件中是否存在与读取到的新版子文件对应的旧版子文件,如果存在,则执行步骤S205,否则执行步骤S204;
S204、将新版子文件存储于用于存储增量文件的第一存储区,并返回步骤S201;
当旧版压缩文件中不存在与读取到的新版子文件对应的旧版子文件时,可以判定该新版子文件为第一类子文件;即相对于旧版压缩文件,该新版子文件为新增文件,可以将其作为一个增量子文件直接写入增量文件。
S205、判断旧版子文件和新版子文件是否都满足预设解压条件,如果二者都满足预设解压条件,则执行步骤S206,否则执行步骤S207;
S206、将旧版子文件和新版子文件分别解压,比较解压后的旧版子文件和新版子文件,并将比较得到的第一差异数据存储于上述第一存储区,并返回步骤S201;
上述第一差异数据可以作为增量文件的一个子文件。当上述旧版子文件和新版子文件都满足预设解压条件时,该旧版子文件和新版子文件即为第二类子文件,采用解压比较法实现二者之间的差异比较,可以保证得到的增量子文件比采用直接比较法得到的增量子文件小,进而可以使得整个增量文件较小。
实际应用中,可以在判定新版子文件为第二类子文件时,先将新版子文件的数据头写入第一存储区,在经过解压、比较步骤得到第一差异数据后,再将该第一差异数据写入第一存储区,且上述第一差异数据和数据头在第一存储区的存储地址连续。
S207、直接比较旧版子文件和新版子文件,并将比较得到的第二差异数据存储于第一存储区,并返回步骤S201。
上述第二差异数据可以作为增量文件的一个子文件。当旧版子文件不满足预设解压条件,或者,新版子文件不满足预设解压条件,或者旧版子文件和新版子文件都不满足预设解压条件时,该旧版子文件和新版子文件即为第三类子文件,采用上述两种方法(解压比较法和直接比较法)实现旧版子文件和新版子文件之间的差异比较,所得到的增量子文件的大小接近或相同,因此,本申请实施例采用直接比较法实现第三类子文件之间的差异比较,可以减少差异比较所消耗的时间,提高差异比较效率,进而提高整个增量升级流程的效率。
在任意一次循环过程中,如果步骤S201的判断结果为否,即新版压缩文件中的新版子文件被全部读取,说明旧版压缩文件和新版压缩文件之间的差异比较已执行完毕,第一存储区中存储的所有数据的集合,即为用于记录旧版压缩文件和新版压缩文件之间的差异信息的增量文件。
在本申请另一个可行的实施例中,对于第三类子文件,还可以通过如下方法得到第二差异数据:
判断是否满足如下预设条件:连续存储的多个新版子文件均为第三类子文件,且与连续存储的多个新版子文件一一对应的旧版子文件在旧版压缩文件中的存储位置也连续;如果满足预设条件,则将上述连续存储的多个新版子文件构成的整体文件,和上述连续存储的多个旧版子文件构成的另一整体文件进行差异比较。
具体的,参见图3,该实施例中服务器根据获取到的旧版压缩文件和新版压缩文件生成相应的增量文件的步骤如下:
图3中步骤S201’至SS206’与图2中步骤S201至S206一一对应相同(即S201’与S201相同、S202’与S202相同,依此类推),此处不再赘述。
与图2所示流程不同的是,当在步骤S205’中判定结果为否,即旧版子文件和新版子文件不都满足预设解压条件时,执行如下步骤:
S207’、将旧版子文件存入第一缓存区,同时将新版子文件存入第二缓存区;
图4为本实施例中旧版压缩文件和新版压缩文件的存储结构示意图,图5为本实施例中第一缓存区和第二缓存区的存储结构示意图。参见图4,假设新版压缩文件中存储地址为B01的新版子文件file_21,与旧版压缩文件中存储地址为A01的旧版子文件file_11相对应,且file_21和file_11都不满足预设解压条件,则将file_11存入第一缓存区中地址为C01的区域,将file_21存入第二缓存区中地址为D01的区域,如图5所示。
S208’、判断是否同时存在下一个旧版子文件和下一个新版子文件,如果同时存在下一个旧版子文件和下一个新版子文件,则执行步骤S209’,否则执行步骤S212’;
下一个旧版子文件是指旧版压缩文件中满足如下条件的旧版子文件:存储地址与最后存入第一缓存区的旧版子文件在旧版压缩文件中的存储地址连续;下一个新版子文件是指新版压缩文件中满足如下条件的新版子文件:存储地址与最后存入第二缓存区的新版子文件在新版压缩文件中的存储地址连续。
如果不存在与地址A01连续的地址,或与地址A01连续的地址A02中没有数据,则判定不存在存储地址与file_11连续的下一个旧版子文件,如果地址A02中存在旧版子文件file_12,如图5所示,则可以判定存在存储地址与file_11连续的下一个旧版子文件file_12。相应的,图4中,新版子文件file_22的存储地址B02与file_21的存储地址连续,即下一个新版子文件为file_22。因此,对于图4所示情况,可以继续执行步骤S209’。
S209’、判断下一个新版子文件和下一个旧版子文件是否相对应,如果对应,则执行步骤S210’,否则执行步骤S212’;
S210’、判断下一个新版子文件和下一个旧版子文件是否都满足预设解压条件,如果都满足,则执行步骤S212’,否则执行步骤S211’;
如果下一个新版子文件和下一个旧版子文件都满足预设解压条件,则二者均为第二类子文件,反之,则二者均为第三类子文件。
S211’、将下一个旧版子文件存入第一缓存区,同时将下一个新版子文件存入第二缓存区,并返回步骤S208’;
S212’、将第一缓存区中的旧版子文件作为一个整体文件,第二缓存区中的新版子文件作为另一个整体文件,直接比较两个整体文件,将得到的第二差异数据存入第一存储区,并返回步骤S201’。
上述第二差异数据同样作为增量文件的一个子文件存入第一存储区;差异比较完成后,第一存储区中存储的所有增量子文件的集合,就是用于记录旧版压缩文件和新版压缩文件之间的差异信息的增量文件。
仍以图4为例,在步骤S209’中判断file_12和file_22是否相对应;在file_12和file_22相对应的情况下,执行步骤S210’,判断file_12和file_22是否都满足预设解压条件;如果file_12和file_22都满足预设解压条件,则说明file_22也为第三类子文件,因此,执行步骤S211’将file_12存入第一缓存区中地址为C03的区域、file_22存入第二缓存区地址为D03的区域,如图5所示。其中,file_11和file_12在第一缓存区中的存储地址也连续,file_21和file_22在第一缓存区中的存储地址也连续。相反的,如果步骤S208’判定不存在下一个新版子文件和/或下一个旧版子文件,或步骤S209’判定下一个新版子文件和下一个旧版子文件不对应,或者步骤S210’判定下一个新版子文件和下一个旧版子文件均满足预设解压条件时,说明不存在满足如下条件的下一个新版子文件:下一个新版子文件为第三类子文件,且下一个新版子文件对应的旧版子文件与待处理新版子文件对应的旧版子文件,在旧版压缩文件中的存储地址连续;此时,执行步骤S212’,将第一缓存区中的所有旧版子文件作为一个整体文件,将第二缓存区中的所有新版子文件作为一个整体文件,通过直接比较法对上述两个整体文件执行一次差异比较,就可以得到多个新版子文件与对应的旧版子文件之间的差异信息。
例如,对于图4所示情况:连续存储的两个新版子文件file_21和file_22均为第三类子文件,且与file_21对应的旧版子文件file_11和与file_22对应旧版子文件file_12在旧版压缩文件中的存储地址也连续,满足上述预设条件,根据图3所示实施例,将file_11和file_12作为一个整体文件file_1,将file_21和file_22作为一个整体文件file_2,通过直接比较法对file_1和file_2执行一次差异比较,即可得到与file_21和file_22对应的增量子文件;而根据图2所示的实施例,需要执行两次差异比较(file_11和file_21比较一次,file_12和file_22比较一次)。
可见,通过循环执行步骤S208’至S211’,可以识别出满足如下预设条件的子文件:连续存储的多个新版子文件均为第三类子文件,且旧版压缩文件中存在与连续存储的多个新版子文件一一对应的旧版子文件,且该多个旧版子文件在旧版压缩文件中的存储位置也连续;进而将连续存储的多个新版子文件作为一个整体文件,将对应的多个旧版子文件作为另一个整体文件,通过直接比较法对上述两个整体文件执行一次差异比较,就可以得到连续存储的多个第三类子文件对应的第二差异数据。因此,图3所示实施例可以减少差异比较的执行次数,从而进一步减少生成增量文件所需的时间,提高升级效率。
上述实施例中,服务器在执行差异比较并生成增量文件的阶段,通过对旧版压缩文件和新版压缩文件中的子文件进行分类处理,对不同类型的子文件采用不同的差异比较方法得到对应的差异数据,实现兼顾增量文件大小和升级效率的目的。
在本申请一个可行的实施例中,如图6所示,客户端根据增量文件中的数据类型执行合并操作的流程如下:
S301、读取下一个增量子文件;
上述增量子文件即增量文件的子文件,包括上述第一类子文件、第一差异数据以及第二差异数据中的至少一种。
S302、判断是否读取到增量子文件,如果是,则执行步骤S303,否则结束本流程;
S303、判断读取到的增量子文件的类型,根据判断结果选择执行步骤S304、S305或者S310;
S304、若该增量子文件为第一类子文件,则将第一类子文件存储于第二存储区,并返回步骤S301;
其中,上述第二存储区为客户端中用于存储新版压缩文件的存储区。
S305、若该增量子文件为第一差异数据,则读取上述第一差异数据中的文件数据头,并将该文件数据头存入第二存储区;
S306、读取旧版压缩文件中与第一差异数据对应的第二类子文件;
S307、对读取到的第二类子文件执行解压操作;
S308、将解压后的第二类子文件与第一差异数据合并,得到第一合并子文件;
S309、对上述文件数据头和第一合并子文件进行压缩,得到第一压缩子文件,并将该第一压缩子文件存入第二存储区,并返回步骤S301;
S310、若该增量子文件为第二差异数据,则读取旧版压缩文件中与第二差异数据对应的第三类子文件;
S311、对读取到的第三类子文件与第二类差异数据执行合并操作,得到第二合并子文件;
S312、对上述第二合并子文件进行压缩,得到第二压缩子文件,并将该第二压缩子文件存入第二存储区,并返回步骤S301。
上述流程结束后,即合并操作完成后,客户端的第二存储区中存储的文件集合即为本次增量升级的目标文件,也即与客户端存储的旧版压缩文件对应的新版压缩文件。
由以上技术方案可知,本申请实施例不仅在增量文件生成阶段,通过服务器对旧版压缩文件和新版压缩文件中的子文件分类,进而对不同类型的子文件采用不同的差异比较方法得到对应的差异数据,实现兼顾增量文件大小和升级效率的目的;而且,在客户端对增量文件和旧版压缩文件执行合并操作时,也根据增量文件的子文件的类型采用不同的合并方法,可以进一步提高增量升级效率。
以应用于Android系统中的一种浏览器uc_browser由9.6.0版本升级到9.6.1版本为例,若基于传统的直接比较法,将两个版本的apk格式的压缩文件分别作为一个整体进行比较,则得到的增量文件大小为9410KB;若基于传统的解压比较法,将两个版本的apk格式的压缩文件全部解压后再比较,则得到的增量文件大小为937KB,且整个增量文件生成过程中,需要执行6000多次解压操作(每个版本的压缩文件包括3000多个子文件)和3000多次压缩操作(对得到的每个增量子文件执行一次单独压缩操作),同时,在客户端执行增量文件和9.6.0版本的压缩文件的合并操作过程中,也需要执行6000多次解压操作(对3000多个增量子文件和9.6.0版本的压缩文件中3000多个子文件各执行一次)和3000多次压缩操作(对合并得到的每个子文件执行一次单独压缩操作)。
若采用本申请实施例的增量升级方法,经过分类,9.6.1版本的压缩文件中有8个子文件为第二类子文件,需要解压后再比较,故只需执行16次解压操作(两个版本的压缩文件各8次)和1次压缩操作(将所有增量子文件压缩为一个增量文件),且增量文件大小为881KB;相应的,在客户端执行合并操作过程中,只需执行9次解压操作(对增量文件执行1次解压,对9.6.0版本的压缩文件执行8次解压)和8次压缩操作(对8个通过先解压再合并的方式得到的子文件各执行一次)。
通过以上实例对比可知,相对于传统基于直接比较法实现增量升级的方法,本申请实施例可以减小增量文件的大小;相对于传统基于解压比较法实现增量升级的方法,本申请实施例可以降低操作复杂度,提高升级效率。
参照图7,本申请实施例提供了另一种增量升级方法,包括如下步骤:
S41、服务器获取旧版压缩文件和对应的新版压缩文件;
可选的,本申请实施例可以根据文件名称和/或版本标识符确定相对应的两个压缩文件,进而根据两个压缩文件的版本号确定哪个压缩文件是旧版压缩文件,哪个压缩文件是新版压缩文件。
S42、服务器对新版压缩文件和旧版压缩文件进行分类处理,得到第一类子文件、第二类子文件和第三类子文件中的至少一种。
本实施例中,上述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;上述第二类子文件为新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件;上述第三类子文件为新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件。
S43、服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据。
本申请实施例中,由于旧版压缩文件中不存在第一类子文件,即:相对于旧版压缩文件,新版压缩文件中的第一类子文件为新增文件;因此,对于第一类子文件,不需要执行差异比较操作,直接将该第一类子文件作为增量文件的一个子文件即可。
上述第一类子文件、第一差异数据和第二差异数据的集合,即为记录旧版压缩文件和新版压缩文件之间的差异信息的增量文件。
S44、服务器将上述第一类子文件、第一差异数据以及第二差异数据发送给客户端,以供客户端对自身存储的旧版压缩文件进行增量升级。
本申请实施例中,客户端接收到上述第一类子文件、第一差异数据以及第二差异数据,就可以按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
可选的,本申请实施例中,预设解压条件可以为:文件压缩前的大小大于预设字节值且压缩率小于预设比值,但不限于此。压缩率为文件压缩后的大小与压缩前的大小之比。
在本申请一个可行的实施例中,服务器在执行完步骤S41至S43,得到旧版压缩文件和新版压缩文件之间的增量文件(包括第一类子文件、第一差异数据和第二差异数据)后,可以向与其关联的客户端发送升级提示信息,客户端接收到该升级提示信息后,下载相应的增量文件,实现对自身存储的旧版压缩文件的增量升级。
在本申请另一个可行的实施例中,服务器在接收到客户端发送的文件升级请求后,向客户端发送相应的增量文件,以供客户端对自身存储的旧版压缩文件进行增量升级。
由上述技术方案可知,本申请实施例提供的增量升级方法,服务器在执行差异比较并生成增量文件的阶段,通过对旧版压缩文件和新版压缩文件中的子文件进行分类处理,对不同类型的子文件采用不同的差异比较方法得到对应类型的差异数据,进而得到具有多种类型的子文件的增量文件,实现兼顾增量文件大小和升级效率的目的。另外,服务器将得到的增量文件发送至客户端,使得客户端可以根据增量文件的子文件的类型采用不同的合并方法,可以进一步提高增量升级效率。
如图8所示,本申请实施例还提供了一种增量升级方法,包括如下步骤:
S51、客户端从服务器获取增量文件,该增量文件包括第一类子文件、第一差异数据以及第二差异数据中的至少一种。
其中,第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;第一差异数据为服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;第二差异数据为服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足上述预设解压条件的子文件不解压直接进行差异比较得到的数据。
S52、客户端根据获取到的增量文件中的数据类型,对获取到的增量文件和自身存储的旧版压缩文件执行合并操作,得到新版压缩文件。
本申请实施例中,客户端按照以下方式执行合并操作,得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
可选的,本申请实施例中,预设解压条件可以为:文件压缩前的大小大于预设字节值且压缩率小于预设比值,但不限于此。压缩率为文件压缩后的大小与压缩前的大小之比。
可选的,上述增量升级方法中,将旧版压缩文件的第二类子文件解压缩后,与第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件,包括以下步骤:
客户端读取并存储上述第一差异数据中的文件数据头;
读取旧版压缩文件中与第一差异数据对应的第二类子文件;
对读取到的第二类子文件进行解压;
将解压后的第二类子文件与上述第一差异数据合并,得到第一合并子文件;
对上述文件数据头和第一合并子文件进行压缩,得到第一压缩子文件。
与本申请上述方法实施例相对应,本申请实施例还分别提供了一种服务器500和客户端600。如图9所示,服务器500用于生成新版压缩文件相对于旧版压缩文件的增量文件,客户端600获取该增量文件,执行对本地的旧版压缩文件的增量升级。其中,客户端600获取该增量文件,可以为客户端600通过向服务器500发送文件升级请求,以使服务器500反馈相应的增量文件;也可以为服务器500在生成增量文件后,主动向客户端600发送升级提示信息,以提醒客户端600下载该增量文件,实现对本地文件的升级。
如图10所示,本申请一个可行的实施例提供的服务器500,主要,包括:分类单元510、比较单元520和发送单元530。
其中,分类单元510,用于对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的第三类子文件。
生成单元520,用于对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据。
可选的,预设解压条件可以为:文件压缩前的大小大于预设字节值且压缩率小于预设比值,但不限于此。压缩率为文件压缩后的大小与压缩前的大小之比。
发送单元530,用于将上述第一类子文件、第一差异数据以及第二差异数据发送给客户端,以供客户端对自身存储的旧版压缩文件进行增量升级。
本申请实施例中,客户端接收到第一类子文件、第一差异数据以及第二差异数据后,按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
由上述技术方案可知,本申请实施例提供的服务器,在执行差异比较并生成增量文件的阶段,通过对旧版压缩文件和新版压缩文件中的子文件进行分类处理,对不同类型的子文件采用不同的差异比较方法得到对应类型的差异数据,进而得到具有多种类型的子文件的增量文件,实现兼顾增量文件大小和升级效率的目的。另外,服务器将得到的增量文件发送至客户端,使得客户端可以根据增量文件的子文件的类型采用不同的合并方法,可以进一步提高增量升级效率。
如图11所示,本申请一个可行实施例客户端600包括:获取单元610和合并单元620。
获取单元610,用于客户端从服务器获取增量文件,该增量文件包括第一类子文件、第一差异数据以及第二差异数据中的至少一种。
其中,第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;第一差异数据为服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;第二差异数据为服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足上述预设解压条件的子文件不解压直接进行差异比较得到的数据。
合并单元620,用于根据获取到的增量文件中的数据类型,对获取到的增量文件和自身存储的旧版压缩文件执行合并操作,得到新版压缩文件。
本申请实施例中,合并单元620按照以下方式执行合并操作,得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
可选的,本申请实施例中,预设解压条件可以为:文件压缩前的大小大于预设字节值且压缩率小于预设比值,但不限于此。压缩率为文件压缩后的大小与压缩前的大小之比。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。此外,根据本申请的方法还可以被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请的方法中限定的上述功能。
另外,本申请实施例还提供了一种具有处理器可执行的程序代码的计算机可读介质,程序代码使处理器执行下述步骤:
获取旧版压缩文件和对应的新版压缩文件;
对新版压缩文件和旧版压缩文件进行分类处理,得到第一类子文件、第二类子文件和第三类子文件中的至少一种;其中,上述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;上述第二类子文件为新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件;上述第三类子文件为新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件;
对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
将上述第一类子文件、第一差异数据以及第二差异数据发送给客户端,以供客户端对自身存储的旧版压缩文件进行增量升级。
可选的,预设解压条件包括:文件压缩前的大小大于预设字节值,且压缩率小于预设比值;压缩率为文件压缩后的大小与压缩前的大小之比。
上述计算机可读介质可以应用于服务器。如图12所示,本申请一个可行实施例提供的服务器500,包括处理器501和上述计算机可读介质502,当服务器500中存在某一旧版压缩文件(如游戏的资源文件、程序的安装文件等)的新版压缩文件时,处理器501可以执行计算机可读介质502中的程序代码,实现新版压缩文件和旧版压缩文件之间的差异比较,得到对应的增量文件,相对于传统的基于直接比较法和解压比较法实现差异比较的设备,既可以保证得到的增量文件较小,又可以保证差异对比的效率较高。
另外,本申请实施例还提供了一种具有处理器可执行的程序代码的计算机可读介质,程序代码使处理器执行下述步骤:
从服务器获取增量文件,该增量文件包括第一类子文件、第一差异数据以及第二差异数据中的至少一种;其中,上述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;上述第一差异数据为服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;上述第二差异数据为服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足上述预设解压条件的子文件不解压直接进行差异比较得到的数据;
根据获取到的增量文件中的数据类型,对获取到的增量文件和自身存储的旧版压缩文件执行合并操作,得到新版压缩文件;其中,按照以下方式执行合并操作,得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
可选的,预设解压条件包括:文件压缩前的大小大于预设字节值,且压缩率小于预设比值;压缩率为文件压缩后的大小与压缩前的大小之比。
可选的,上述将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件,包括:客户端读取并存储所述第一差异数据中的文件数据头;读取旧版压缩文件中与第一差异数据对应的第二类子文件;对读取到的第二类子文件进行解压;将解压后的第二类子文件与上述第一差异数据合并,得到第一合并子文件;对上述文件数据头和第一合并子文件进行压缩,得到第一压缩子文件。
上述计算机可读介质可以应用于客户端。如图13所示,本申请一可行实施例提供的客户端600,包括处理器601和上述计算机可读介质602,处理器601执行计算机可读介质602中的程序代码,执行对客户端600中的旧版压缩文件和对应的增量文件的合并操作,得到相应的新版压缩文件,实现对旧版压缩文件的增量升级。
此外,应该明白的是,本文的计算机可读介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种增量升级方法,其特征在于,包括:
服务器对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的第三类子文件;
服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
客户端获取所述第一类子文件、所述第一差异数据以及所述第二差异数据;
客户端将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
2.根据权利要求1所述的增量升级方法,其特征在于,所述预设解压条件包括:文件压缩前的大小大于预设字节值,且压缩率小于预设比值;其中,所述压缩率为文件压缩后的大小与压缩前的大小之比。
3.根据权利要求1或2所述的增量升级方法,其特征在于,客户端将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件,包括:
客户端读取并存储所述第一差异数据中的文件数据头;
读取旧版压缩文件中与第一差异数据对应的第二类子文件;
对读取到的第二类子文件进行解压;
将解压后的第二类子文件与所述第一差异数据合并,得到第一合并子文件;
对所述文件数据头和第一合并子文件进行压缩,得到所述第一压缩子文件。
4.根据权利要求1或2所述的增量升级方法,其特征在于,还包括:
服务器接收客户端发送的文件升级请求;
当接收到所述文件升级请求时,服务器执行所述对新版压缩文件和旧版压缩文件的分类处理。
5.一种增量升级方法,其特征在于,包括:
服务器对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的第三类子文件;
服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
服务器将所述第一类子文件、所述第一差异数据以及所述第二差异数据发送给客户端,以供所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
6.根据权利要求5所述的增量升级方法,其特征在于,还包括
服务器接收客户端发送的文件升级请求;
当接收到所述文件升级请求时,服务器执行所述对新版压缩文件和旧版压缩文件的分类处理。
7.一种增量升级方法,其特征在于,包括:
客户端从服务器获取第一类子文件、第一差异数据以及第二差异数据;其中,所述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;所述第一差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;所述第二差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的子文件不解压直接进行差异比较得到的数据;
所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件;其中,所述第二类子文件为新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件,所述第三类子文件为新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的子文件。
8.根据权利要求7所述的增量升级方法,其特征在于,所述将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件,包括:
客户端读取并存储所述第一差异数据中的文件数据头;
读取旧版压缩文件中与第一差异数据对应的第二类子文件;
对读取到的第二类子文件进行解压;
将解压后的第二类子文件与所述第一差异数据合并,得到第一合并子文件;
对所述文件数据头和第一合并子文件进行压缩,得到所述第一压缩子文件。
9.一种服务器,其特征在于,包括:
分类单元,用于对新版压缩文件和旧版压缩文件进行分类处理,得到以下至少一种子文件:新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件;新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的第二类子文件;新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的第三类子文件;
比较单元,用于对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据;
发送单元,用于将所述第一类子文件、所述第一差异数据以及所述第二差异数据发送给客户端,以供所述客户端按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件。
10.一种客户端,其特征在于,包括:
获取单元,用于从服务器获取第一类子文件、第一差异数据以及第二差异数据;其中,所述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;所述第一差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件进行解压并进行差异比较得到的数据;所述第二差异数据为所述服务器将新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件不解压直接进行差异比较得到的数据;
合并单元,用于按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与所述第一差异数据合并,得到第一合并子文件,对所述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与所述第二差异数据合并,得到第二合并子文件,对所述第二合并子文件进行压缩,得到第二压缩子文件;合并所述第一压缩子文件、所述第二压缩子文件以及所述第一类子文件,得到新版压缩文件;其中,所述第二类子文件为新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件,所述第三类子文件为新版压缩文件和旧版压缩文件中都存在的且不都满足所述预设解压条件的子文件。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410238919.4A CN105404521B (zh) | 2014-05-30 | 2014-05-30 | 一种增量升级方法及相关装置 |
PCT/CN2014/086816 WO2015180304A1 (zh) | 2014-05-30 | 2014-09-18 | 增量升级方法及装置 |
US15/315,272 US10048959B2 (en) | 2014-05-30 | 2014-09-18 | Method and apparatus for incremental upgrade |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410238919.4A CN105404521B (zh) | 2014-05-30 | 2014-05-30 | 一种增量升级方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105404521A CN105404521A (zh) | 2016-03-16 |
CN105404521B true CN105404521B (zh) | 2017-05-31 |
Family
ID=54697990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410238919.4A Active CN105404521B (zh) | 2014-05-30 | 2014-05-30 | 一种增量升级方法及相关装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10048959B2 (zh) |
CN (1) | CN105404521B (zh) |
WO (1) | WO2015180304A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844479A (zh) * | 2016-12-23 | 2017-06-13 | 光锐恒宇(北京)科技有限公司 | 文件的压缩、解压方法及装置 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404521B (zh) | 2014-05-30 | 2017-05-31 | 广州市动景计算机科技有限公司 | 一种增量升级方法及相关装置 |
CN105930197A (zh) * | 2016-06-28 | 2016-09-07 | 乐视控股(北京)有限公司 | 一种软件升级的方法及电子设备 |
CN106354525B (zh) * | 2016-08-11 | 2019-10-01 | 深圳市宜搜科技发展有限公司 | 应用软件安装包差分存储方法及系统 |
CN106708581A (zh) * | 2016-12-27 | 2017-05-24 | 北京奇虎科技有限公司 | 应用的更新包生成方法、装置和应用的更新方法、装置 |
CN106685718A (zh) * | 2016-12-30 | 2017-05-17 | 杭州迪普科技股份有限公司 | 配置切换方法及装置 |
CN108279941B (zh) | 2016-12-31 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 一种应用程序的压缩方法和装置 |
CN106648712A (zh) * | 2017-02-27 | 2017-05-10 | 百度在线网络技术(北京)有限公司 | 增量更新包的生成方法、装置和服务器 |
JP7169340B2 (ja) * | 2017-07-25 | 2022-11-10 | オーロラ ラブズ リミテッド | 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出 |
CN107391145A (zh) * | 2017-07-27 | 2017-11-24 | 中兴通讯股份有限公司 | 升级包制作方法及装置、升级文件的方法及装置 |
CN109542493A (zh) * | 2017-09-22 | 2019-03-29 | 华为技术有限公司 | 一种镜像升级方法及设备 |
CN107704311A (zh) * | 2017-09-27 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种虚拟机内存迁移方法及其装置 |
US10241903B1 (en) * | 2017-11-15 | 2019-03-26 | Accenture Global Solutions Limited | Parallel testing and reporting system |
CN110389773A (zh) * | 2018-04-23 | 2019-10-29 | 比亚迪股份有限公司 | 软件发布及部署方法、装置及系统 |
WO2020014926A1 (zh) * | 2018-07-19 | 2020-01-23 | 华为技术有限公司 | 一种补丁包生成方法及设备 |
KR102626253B1 (ko) * | 2018-11-23 | 2024-01-17 | 현대자동차주식회사 | Ota를 이용한 차량용 소프트웨어 업데이트 방법 및 장치 |
CN111258620B (zh) * | 2018-11-30 | 2022-02-22 | 中兴通讯股份有限公司 | 差分升级包的生成方法、装置和设备 |
CN111324660B (zh) * | 2018-12-13 | 2024-05-24 | 杭州海康威视系统技术有限公司 | 数据同步方法、装置、电子设备及机器可读存储介质 |
CN109558156B (zh) * | 2019-01-15 | 2021-07-27 | 重庆德科电子仪表有限公司 | 一种汽车仪表升级优化方法 |
EP3884375B1 (en) * | 2019-09-03 | 2023-11-01 | Google LLC | Accelerating application and sub-package installations |
CN218839317U (zh) * | 2019-10-23 | 2023-04-11 | 索尼公司 | 移动装置 |
CN111142903B (zh) * | 2019-12-23 | 2023-09-22 | 杭州安恒信息技术股份有限公司 | 一种基于文件对比的配置文件交互式更新方法及装置 |
CN114424162A (zh) * | 2019-12-27 | 2022-04-29 | 深圳市欢太科技有限公司 | 文件处理方法、文件处理装置、移动终端及服务器 |
CN113326059B (zh) * | 2020-02-28 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 一种资源更新方法、装置及存储介质 |
US11599551B2 (en) | 2020-03-30 | 2023-03-07 | Oracle International Corporation | Deserialization of stream objects using multiple deserialization algorithms |
US11477258B2 (en) * | 2020-03-30 | 2022-10-18 | Oracle International Corporation | Serialization of objects using multiple serialization algorithms |
CN111984597B (zh) * | 2020-08-19 | 2023-12-08 | 安徽鸿程光电有限公司 | 文件存储方法、装置、设备和介质 |
CN112818656B (zh) * | 2021-01-26 | 2023-10-27 | 北京百度网讯科技有限公司 | 数据差异对比方法、装置、设备、介质和计算机程序产品 |
US11256480B1 (en) | 2021-02-09 | 2022-02-22 | Oracle International Corporation | Deserialization of stream objects using constant-foldable method handles |
US11288045B1 (en) | 2021-02-09 | 2022-03-29 | Oracle International Corporation | Object creation from structured data using indirect constructor invocation |
CN113377711B (zh) * | 2021-06-29 | 2024-04-30 | 云洗电子商务有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
US20230185859A1 (en) * | 2021-12-13 | 2023-06-15 | Toshiba Tec Kabushiki Kaisha | Document management device, document management method, and non-transitory recording medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523268A (zh) * | 2011-12-08 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种客户端升级方法和系统 |
CN103051723A (zh) * | 2012-12-27 | 2013-04-17 | 广州市动景计算机科技有限公司 | 一种增量升级方法及服务器、终端 |
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN103714105A (zh) * | 2012-09-14 | 2014-04-09 | 哈曼贝克自动系统股份有限公司 | 更新导航装置的数据库的方法和装置 |
CN103713928A (zh) * | 2013-12-31 | 2014-04-09 | 优视科技有限公司 | 增量文件生成方法、应用程序安装文件更新方法及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7898442B1 (en) * | 1997-05-30 | 2011-03-01 | International Business Machines Corporation | On-line data compression analysis and regulation |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
US7143115B2 (en) * | 2003-04-15 | 2006-11-28 | Pocket Soft, Inc. | Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files |
TWI255420B (en) * | 2004-12-22 | 2006-05-21 | Mitac Technology Corp | Software package system |
CN101326492B (zh) * | 2005-10-06 | 2013-07-17 | 雷德本德有限公司 | 用于更新包括压缩版本的内容的方法和系统 |
KR101426710B1 (ko) * | 2006-07-14 | 2014-09-23 | 삼성전자주식회사 | 휴대단말기의 버전정보 갱신 장치 및 방법 |
US8756195B2 (en) * | 2009-08-27 | 2014-06-17 | The Boeing Company | Universal delta set management |
US8639671B2 (en) * | 2010-06-29 | 2014-01-28 | Teradata Us, Inc. | Database compression |
US8326811B2 (en) * | 2010-10-26 | 2012-12-04 | Hitachi, Ltd. | File management method and computer system |
US20120131566A1 (en) * | 2010-11-23 | 2012-05-24 | Microsoft Corporation | Efficient virtual application update |
US9075693B2 (en) * | 2012-06-27 | 2015-07-07 | Google Inc. | Methods for updating applications |
US9170804B2 (en) * | 2012-07-05 | 2015-10-27 | Nokia Technologies Oy | Method and apparatus for modifying compressed files |
EP2778905A1 (en) * | 2013-03-15 | 2014-09-17 | Dialog Semiconductor B.V. | Integrated circuit with a patching function |
CN103336703B (zh) * | 2013-07-08 | 2018-09-18 | 惠州Tcl移动通信有限公司 | 生成升级包的方法、服务器、软件升级方法、移动终端 |
CN105404521B (zh) | 2014-05-30 | 2017-05-31 | 广州市动景计算机科技有限公司 | 一种增量升级方法及相关装置 |
-
2014
- 2014-05-30 CN CN201410238919.4A patent/CN105404521B/zh active Active
- 2014-09-18 US US15/315,272 patent/US10048959B2/en active Active
- 2014-09-18 WO PCT/CN2014/086816 patent/WO2015180304A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523268A (zh) * | 2011-12-08 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种客户端升级方法和系统 |
CN103714105A (zh) * | 2012-09-14 | 2014-04-09 | 哈曼贝克自动系统股份有限公司 | 更新导航装置的数据库的方法和装置 |
CN103051723A (zh) * | 2012-12-27 | 2013-04-17 | 广州市动景计算机科技有限公司 | 一种增量升级方法及服务器、终端 |
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN103713928A (zh) * | 2013-12-31 | 2014-04-09 | 优视科技有限公司 | 增量文件生成方法、应用程序安装文件更新方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844479A (zh) * | 2016-12-23 | 2017-06-13 | 光锐恒宇(北京)科技有限公司 | 文件的压缩、解压方法及装置 |
CN106844479B (zh) * | 2016-12-23 | 2020-07-07 | 光锐恒宇(北京)科技有限公司 | 文件的压缩、解压方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170249140A1 (en) | 2017-08-31 |
CN105404521A (zh) | 2016-03-16 |
WO2015180304A1 (zh) | 2015-12-03 |
US10048959B2 (en) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105404521B (zh) | 一种增量升级方法及相关装置 | |
US11003625B2 (en) | Method and apparatus for operating on file | |
CN104461504B (zh) | 一种终端应用程序的管理方法 | |
CN111124464B (zh) | 一种用于嵌入式系统的差分升级的方法、系统及计算机可读存储介质 | |
CN104391725A (zh) | 页面展示方法和页面展示装置 | |
CN104391862A (zh) | 一种缓存数据更新方法及装置 | |
CN105393228B (zh) | 读写闪存中数据的方法、装置及用户设备 | |
JP2002529849A (ja) | データ処理リソースを供給された内蔵システムにおいて実行可能な中間オブジェクトコードプログラムのためのデータ圧縮方法、および、この方法に対応しかつマルチアプリケーションを備えた内蔵システム | |
CN104461505B (zh) | 一种终端 | |
CN106874348A (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN110888843A (zh) | 一种跨主机的稀疏文件拷贝方法、装置、设备及存储介质 | |
CN104376122A (zh) | 浏览器客户端获得静态文件的方法及服务器 | |
CN105138604A (zh) | 一种终端数据处理方法和装置 | |
CN108200127A (zh) | 数据发送方法、装置、服务器、终端及存储介质 | |
CN109710287A (zh) | 一种热更新方法、装置及计算机存储介质 | |
CN106934066B (zh) | 一种元数据处理方法、装置和存储设备 | |
US9996296B2 (en) | Electronic control unit and method for rewriting data | |
CN110321321B (zh) | 网络块设备快照读写方法、装置、设备及存储介质 | |
US20080281852A1 (en) | Method, apparatus and computer program product for providing an adaptive framework for a metadata-context switch | |
CN111414339A (zh) | 一种文件的处理方法、系统、装置、设备及介质 | |
CN106649556A (zh) | 基于分布式文件系统的多层重复数据删除方法及装置 | |
CN114070844B (zh) | 一种文件下载方法、装置、计算设备及存储介质 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
CN108897702A (zh) | 一种验证内存可用性的方法和系统 | |
CN109189345B (zh) | 一种在线数据整理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200612 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio 16 floor tower square Patentee before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd. |