CN104252364B - 增量更新的方法、设备及系统 - Google Patents
增量更新的方法、设备及系统 Download PDFInfo
- Publication number
- CN104252364B CN104252364B CN201310256697.4A CN201310256697A CN104252364B CN 104252364 B CN104252364 B CN 104252364B CN 201310256697 A CN201310256697 A CN 201310256697A CN 104252364 B CN104252364 B CN 104252364B
- Authority
- CN
- China
- Prior art keywords
- file
- redaction
- information
- old version
- folder
- 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 91
- 238000009434 installation Methods 0.000 claims abstract description 153
- 238000006243 chemical reaction Methods 0.000 claims description 62
- 238000012795 verification Methods 0.000 claims description 52
- 238000000605 extraction Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 4
- 230000010365 information processing Effects 0.000 abstract description 2
- 238000003860 storage Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 13
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 230000006854 communication Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 229910002056 binary alloy Inorganic materials 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000009527 percussion Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种增量更新的方法、设备及系统,属于信息处理技术领域。方法包括:将新版本安装包进行解包后的每个新版本解包文件的头文件信息进行格式转换并打包成一个新版本档案文件包,并获取至少一个历史版本档案文件包;根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件并发布。本发明仅通过转变新版本安装包中文件的头文件格式得到新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
Description
技术领域
本发明涉及信息处理技术领域,特别涉及一种增量更新的方法、设备及系统。
背景技术
在客户端进行软件更新时,需要通过互联网从服务器端下载该软件的新版本安装包,同时,客户端需要为新版本安装包的下载付出相应的下载时间及流量。然而新版本安装包中的文件和客户端已安装的版本的安装包中的文件有较大部分是没有变化的,因此客户端付出的下载时间和流量中较大部分是为这些相同的文件付出的。而增量更新方式仅需要从服务器端下载与客户端已安装的版本不同的差异文件,减少了客户端下载付出的时间和流量,因此,增量更新方法成为重要的更新方法。
目前,增量更新的方法为:
服务器端将新版本安装包进行压缩,将压缩后的新版本安装包分别与各个压缩后的历史版本安装包生成新版本与该历史版本对应的差异文件。压缩后的新版本安装包与压缩后的任一历史版本安装包生成差异文件的过程为:压缩后的新版本安装包与该压缩后的历史版本安装包通过二进制差异算法比较工具做差量计算生成差异文件。其中,差量计算用于找出压缩后的新版本安装包中与该压缩后的历史版本安装包不同各个文件,将各个不同的文件打包生成一个差异文件,且该差异文件的文件格式为qbd格式。例如,压缩后的新版本安装包为V2.1安装包,压缩后的历史版本安装包为V2.0安装包、V1.0安装包,将V2.1安装包与V2.0安装包通过二进制差异算法比较工具做差量计算生成差异文件V2.1_V2.0.qbd,将V2.1安装包与V1.0安装包通过二进制差异算法比较工具做差量计算生成差异文件V2.1_V1.0.qbd。
客户端根据当前已安装的版本从服务器端的各个差异文件中查找已安装版本对应的差异文件,并下载查找到的差异文件,将下载的差异文件与当前已安装的版本的安装包进行合并,生成新版本安装包。例如,客户端当前已安装的版本为V2.0,客户端从服务器端的差异文件中查找V2.1_V2.0.qbd,并下载V2.1_V2.0.qbd,将下载的V2.1_V2.0.qbd与当前已安装的V2.0的安装包进行合并,生成V2.1安装包。
在实现本发明的过程中,发明人发现上述增量更新的方法至少存在以下缺点:
由于在生成差异文件前会将新版本的安装包进行压缩,但是压缩算法会破坏新版本安装包中的数据结构,使得使用压缩后的新版本安装包与任一压缩后的历史版本安装包生成的差异文件中除了包含数据本身差异的内容之外,还要包含结构差异的内容,进而增加了差异文件的大小,增大了客户端下载该差异文件所付出的时间和流量。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种增量更新的方法、设备及系统。所述技术方案如下:
第一方面,提供了一种增量更新的方法,所述方法包括:
将新版本安装包进行解包,得到新版本解包文件夹,所述新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,所述新版本签名子文件夹下包括至少一个新版本解包文件;
获取所述新版本解包文件夹下的每个新版本解包文件的头文件信息,并将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
将所述新版本转换文件夹打包成一个新版本档案文件包,并获取至少一个历史版本档案文件包;
根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布所述至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成所述新版本安装包,完成增量更新。
第二方面,提供了一种增量更新的服务器,所述服务器包括:
解包模块,用于将新版本安装包进行解包,得到新版本解包文件夹,所述新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,所述新版本签名子文件夹下包括至少一个新版本解包文件;
第一获取模块,用于获取所述新版本解包文件夹下的每个新版本解包文件的头文件信息;
转换模块,用于将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
打包模块,用于将所述转换模块得到的所述新版本转换文件夹打包成一个新版本档案文件包;
第二获取模块,用于获取至少一个历史版本档案文件包;
生成模块,用于根据所述打包模块得到的所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布模块,用于发布所述生成模块得到的所述至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成所述新版本安装包,完成增量更新。
第三方面,提供了一种增量更新的方法,所述方法包括:
获取历史版本安装包,并从服务器发布的差异文件中下载与所述历史版本安装包相对应的差异文件;
将所述历史版本安装包进行解包,得到历史版本解包文件夹,所述历史版本解包文件夹下包括至少一个历史版本解包文件和历史版本签名子文件夹,所述历史版本签名子文件夹下包括至少一个历史版本解包文件;
获取所述历史版本解包文件夹下的每个历史版本解包文件的头文件信息,并将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹;
将所述历史版本转换文件夹打包成一个历史版本档案文件包,并根据所述历史版本档案文件包与所述差异文件获取新版本档案文件包;
将所述新版本档案文件包进行解包,得到新版本转换文件夹;
获取所述新版本转换文件夹中的文件的头文件信息,并将所述新版本转换文件夹中的每个文件的头文件信息进行格式转换,得到多个新版本解包文件;
根据所述多个新版本解包文件获取新版本安装包,完成增量更新。
第四方面,提供了一种增量更新的客户端,所述客户端包括:
第一获取模块,用于获取历史版本安装包;
下载模块,用于从服务器发布的差异文件中下载与所述第一获取模块获取到的所述历史版本安装包相对应的差异文件;
第一解包模块,用于将所述第一获取模块获取到的所述历史版本安装包进行解包,得到历史版本解包文件夹,所述历史版本解包文件夹下包括至少一个历史版本解包文件和历史版本签名子文件夹,所述历史版本签名子文件夹下包括至少一个历史版本解包文件;
第二获取模块,用于获取所述历史版本解包文件夹下的每个历史版本解包文件的头文件信息;
第一转换模块,用于将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹;
打包模块,用于将所述第一转换模块得到的所述历史版本转换文件夹打包成一个历史版本档案文件包;
第三获取模块,用于根据所述历史版本档案文件包与所述差异文件获取新版本档案文件包;
第二解包模块,用于将所述新版本档案文件包进行解包,得到新版本转换文件夹;
第四获取模块,用于获取所述第二解包模块得到的所述新版本转换文件夹中的文件的头文件信息;
第二转换模块,用于将所述新版本转换文件夹中的每个文件的头文件信息进行格式转换,得到多个新版本解包文件;
第五获取模块,用于根据所述多个新版本解包文件获取新版本安装包,完成增量更新。
第五方面,提供了一种增量更新的系统,所述系统包括:服务器及客户端;
其中,所述服务器如上述服务器,所述客户端如上述客户端。
本发明实施例提供的技术方案带来的有益效果是:
通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例一提供的一种增量更新的方法流程图;
图2是本发明实施例一提供的另一种增量更新的方法流程图;
图3是本发明实施例二提供的一种增量更新的方法流程图;
图4是本发明实施例三提供的一种增量更新的服务器结构示意图;
图5是本发明实施例三提供的一种转换模块结构示意图;
图6是本发明实施例三提供的另一种增量更新的服务器结构示意图;
图7是本发明实施例四提供的一种增量更新的客户端结构示意图;
图8是本发明实施例四提供的一种第一转换模块结构示意图;
图9是本发明实施例四提供的另一种增量更新的客户端结构示意图;
图10是本发明实施例四提供的一种第二转换模块结构示意图;
图11是本发明实施例五提供的一种增量更新的系统结构示意图;
图12是本发明实施例六提供的一种终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本实施例提供了一种增量更新的方法,参见图1,本实施例提供的方法流程具体如下:
101:将新版本安装包进行解包,得到新版本解包文件夹,新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,新版本签名子文件夹下包括至少一个新版本解包文件;
102:获取新版本解包文件夹下的每个新版本解包文件的头文件信息,并将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
103:将新版本转换文件夹打包成一个新版本档案文件包,并获取至少一个历史版本档案文件包;
104:根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
105:发布至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成新版本安装包,完成增量更新。
本实施例还提供了另一种增量更新的方法,参见图2,本实施例提供的方法流程具体如下:
201:获取历史版本安装包,并从服务器发布的差异文件中下载与历史版本安装包相对应的差异文件;
202:将历史版本安装包进行解包,得到历史版本解包文件夹,历史版本解包文件夹下包括至少一个历史版本解包文件和历史版本签名子文件夹,历史版本签名子文件夹下包括至少一个历史版本解包文件;
203:获取历史版本解包文件夹下的每个历史版本解包文件的头文件信息,并将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹;
204:将历史版本转换文件夹打包成一个历史版本档案文件包,并根据历史版本档案文件包与差异文件获取新版本档案文件包;
205:将新版本档案文件包进行解包,得到新版本转换文件夹;
206:获取新版本转换文件夹中的文件的头文件信息,并将新版本转换文件夹中的每个文件的头文件信息进行格式转换,得到多个新版本解包文件;
207:根据多个新版本解包文件获取新版本安装包,完成增量更新。
本实施例提供的方法,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
为了更加清楚地阐述上述实施例提供的一种增量更新的方法,结合上述实施例的内容,以如下实施例二为例,对一种增量更新的方法进行详细说明,详见如下实施例二:
实施例二
本实施例提供了一种增量更新的方法,为了便于说明,本实施例以新版本安装包为V2.1安装包,历史版本安装包为V2.0安装包、V1.0安装包为例,对本实施例提供的方法进行详细地举例说明。参见图3,本实施例提供的方法流程具体如下:
301:服务器将新版本安装包进行解包,得到新版本解包文件夹,新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,新版本签名子文件夹下包括至少一个新版本解包文件;
针对该步骤,包括但不限于通过解包算法将新版本安装包进行解包,本实施例不对服务器将新版本安装包进行解包的具体解包算法进行限定。
另外,由于安装包中包括软件安装的所有文件,因此,将新版本安装包进行解包之后会得到新版本解包文件夹,该新版本解包文件夹下包括至少一个新版本解包文件、新版本签名子文件夹,且新版本解包文件夹中包括的所有文件即为该软件安装的所有文件。除此之外,新版本解包文件夹下还可以包括其它内容,本实施例不对新版本解包文件夹下包括的具体内容进行限定。
需要说明的是,随着个性化服务的发展,为了满足不同用户对同一版本的软件的不同更新需求,针对同一版本安装包会根据用户的不同需求而进行针对性修改,形成同一版本安装包的变异安装包,称为渠道包。同时为了区分安装包与渠道包,以及渠道包针对的用户,会在渠道包中固定位置添加标识文件,并在签名子文件夹中添加相应的标识参数。其中,标识文件用于描述该渠道包的信息,例如该渠道包针对的用户,或者其它内容,本实施例不对标识文件具体描述的信息进行限定;标识参数代表该安装包中包含标识文件,本实施例不对标识参数的具体值进行限定。
例如,对于V2.1安装包,针对用户A的需求,产生V2.1渠道包A,在V2.1渠道包A中的文件夹assert下有标识文件channel.ini,在签名子文件夹manifest.mf中增加表示V2.1渠道包A中包含channel.ini的参数SHA1,且SHA1=1。当然,标识文件所在的位置还可以为文件夹a,或者其它位置,本实施例不对标识文件所在的具体位置进行限定;标识文件的文件名称及文件格式还可以为文件a.b,或者其它文件名称及文件格式,本实施例不对标识文件的具体文件名称及具体文件格式进行限定;签名子文件夹的名称还可以为其它名称,本实施例不对签名子文件夹的具体名称进行限定;标识参数的名称还可以为a,或者其它名称,本实施例不对标识参数的具体名称进行限定;标识参数的具体值还可以为b,或者其它值,本实施例不对标识参数的具体值进行限定;标识参数值可以根据渠道包与该渠道包针对的用户的对应关系产生,还可以通过其它方式产生,本实施例不对标识参数数值的具体产生方式进行限定。
为了使本实施例后续步骤305中生成的差异文件既适用于渠道包也适用于安装包,可选地,服务器将新版本安装包进行解包,得到新版本解包文件夹之后,会确定新版本解包文件夹下的新版本解包文件中是否有作为标识文件的新版本解包文件,有作为标识文件的新版本解包文件,则将作为标识文件的新版本解包文件从新版本解包文件夹中进行删除。
具体的,以上述V2.1渠道包A为例,则对V2.1渠道包A进行解压后得到V2.1解包文件夹,在V2.1解包文件夹中assert子文件夹下有标识文件channel.ini,删除channel.ini文件。
302:服务器获取新版本解包文件夹下的每个新版本解包文件的头文件信息,并将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
针对该步骤,每个新版本解包文件至少包括头文件,而头文件的头文件信息中至少包括该新版本解包文件的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息均为第二预设格式。本实施例不对每个新版本解包文件包括的具体内容进行限定,本实施例也不对头文件信息中包括的具体内容进行限定,本实施例同样不对第二预设格式的具体格式内容进行限定。
另外,本实施例不对将每个新版本解包文件的头文件信息进行格式转换的具体转换方法进行限定。包括但不限于通过如下两个步骤实现将每个新版本解包文件的头文件信息进行格式转换:
第一步:分别从每个新版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
第二步:将提取出的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
对于第二步,本实施例不对第一预设格式的具体形式进行限定,例如表1所示的第一预设格式。
表1
Offset | 字节数(单位:字节) | 说明 |
0 | 4 | 文件长度信息 |
4 | 4 | 文件名长度信息 |
8 | 4 | 校验值信息 |
12 | m | 文件名信息 |
12+m | n | 数据内容信息 |
需要说明的是,为了缩短步骤302的执行时间,可以通过数据流的形式完成步骤302。具体的,可以按照如下流程实现:
1、从新版本解包文件1的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
2、在存储设备中存储提取到的新版本解包文件1的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
3、将存储的新版本解包文件1的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式;与此同时,继续从新版本解包文件2的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
4、在存储设备中存储提取到的新版本解包文件2的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
5、将存储的新版本解包文件2的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式;与此同时,继续从新版本解包文件3的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,如此循环,直至所有新版本解包文件的头文件信息均进行格式转换。
当然,新版本解包文件的文件名还可以为其它名称,本实施例不对新版本解包文件的具体文件名称进行限定。
另外,本实施例的步骤302仅是对新版本解包文件夹下的每个新版本解包文件的头文件信息的格式进行了转换,因此,经过步骤302之后得到的新版本转换文件夹整体目录结构与新版本解包文件夹整体目录结构相同,新版本转换文件夹下文件的文件内容与新版本解包文件夹下文件的文件内容相同。
例如,新版本解包文件夹下有新版本解包文件1、新版本签名子文件夹和子文件夹1,新版本签名子文件夹中包含新版本解包文件2,子文件夹1中包含子文件夹2,子文件夹2中包含新版本解包文件3。步骤302仅是分别对新版本解包文件1的头文件信息的格式、新版本解包文件2的头文件信息的格式和新版本解包文件3的头文件信息的格式进行转换,对于新版本解包文件夹的目录结构以及新版本解包文件1的文件内容、新版本解包文件2的文件内容和新版本解包文件3的文件内容均未作任何改变。因此,经过步骤302之后得到新版本转换文件夹的目录结构为:新版本转换文件夹下有头文件信息格式转换后的新版本解包文件1、新版本签名子文件夹和子文件夹1,新版本签名子文件夹中包含头文件信息格式转换后的新版本解包文件2,子文件夹1中包含子文件夹2,子文件夹2中包含头文件信息格式转换后的新版本解包文件3,且头文件信息格式转换后的新版本解包文件1、头文件信息格式转换后的新版本解包文件2和头文件信息格式转换后的新版本解包文件3的文件内容分别与新版本解包文件1、新版本解包文件2和新版本解包文件3的文件内容相同。
当然,新版本解包文件夹的目录结构还可以为其它结构,本实施例不对新版本解包文件夹的具体目录结构进行限定。新版本解包文件夹下包含的文件或者子文件夹的名称还可以为其它名称,本实施例不对新版本解包文件夹下包含的文件或者子文件夹的具体名称进行限定。
303:服务器将新版本转换文件夹打包成一个新版本档案文件包;
针对该步骤,本实施例不对服务器将新版本转换文件夹打包成一个新版本档案文件包的具体打包方法进行限定。本实施例也不对新版本档案文件包的具体格式进行限定,例如,新版本档案文件包的具体格式为qar(QArchive,档案)格式。
304:服务器获取至少一个历史版本档案文件包;
针对该步骤,如果出现更新版本安装包时,如V3.0安装包,会再次执行本实施例提供的方法进行增量更新。此时,V3.0安装包即新版本安装包,而V2.1安装包则为历史版本安装包,V2.1安装包通过步骤301至步骤303之后得到的V2.1档案文件包即为历史版本档案文件包。因此,历史版本档案文件包的获取过程与新版本档案文件包的获取过程相同,且历史版本档案文件包中包括历史版本签名子文件夹。同时,为了在进行新版本增量更新时不再重复进行通过历史版本文件包得到历史本档案文件包的过程,在得到新版本档案文件包后会将新版本档案文件包进行存储,以便再次通过本实施例进行增量更新时,现在的新版本档案文件包可以直接作为历史版本档案文件包直接使用。本实施例不对存储新版本档案文件包的具体方式进行限定,例如,将新版本档案文件包存储到档案文件包数据库中。
另外,历史版本档案文件包为新版本档案文件包之前存在的所有版本的档案文件包。本实施例也不对获取至少一个历史版本档案文件包的具体获取方式进行限定,包括但不限于,从档案文件包数据库中获取至少一个历史版本档案文件包。
例如,服务器从档案文件包数据库中获取V2.0档案文件包和V1.0档案文件包。
305:服务器根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
针对该步骤,本实施例不对服务器根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件的具体生成方法进行限定。例如,将新版本档案文件包和任一个历史版本档案文件包通过Bsdiff(binary diff,二进制差异)算法,生成差异文件。
具体的,V2.1档案文件包与V2.0档案文件包生成差异文件V2.1_V2.0.qbd、V2.1档案文件包与V1.0档案文件包生成差异文件V2.1_V1.0.qbd。当然差异文件具体名称还可以为其它名称,本实施例不对差异文件的具体名称进行限定。
可选地,服务器还可以先分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,再根据新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件。
需要说明的是,服务器根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件的过程是将新版本档案文件包中存在的,但是又与历史版本档案文件包中的内容不同的内容生成一个对应的差异文件。也就是说,差异文件中的内容是新版本档案文件包中存在但历史版本档案文件包中不存在的内容。
例如,新版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件4;而某一历史版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2,子文件夹1中包含子文件夹2,子文件夹2中包含文件5。因此,新版本档案文件包与该历史版本档案文件包生成对应的差异文件中至少包含新版本签名子文件夹中的文件3、子文件夹1中子文件夹2中的文件4。当然,差异文件中还会包含其它内容,本实施例不对差异文件中包含的具体内容进行限定。
又例如,新版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件4;而某一历史版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件5。因此,新版本档案文件包与该历史版本档案文件包生成对应的差异文件中至少包含子文件夹1中子文件夹2中的文件4。
再例如,新版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件4;而某一历史版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2,子文件夹1中包含子文件夹2,子文件夹2中包含文件5。因此,先删除该历史版本档案文件包中包括的签名子文件夹,再根据新版本档案文件包与删除签名子文件夹的历史版本档案文件包生成的对应的差异文件中包含新版本签名子文件夹中的文件2和文件3、子文件夹1中子文件夹2中的文件4。
由此上述例子可知,对于新版本签名子文件夹:
1、如果服务器直接根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,则差异文件中可以包含签名子文件夹也可以不包含签名子文件夹。
2、如果服务器先分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,再根据新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件,则差异文件中包含签名子文件夹,且该签名子文件夹为新版本签名子文件夹。
306:服务器发布至少一个差异文件;
针对该步骤,本实施例不对服务器发布至少一个差异文件的具体发布方法进行限定,包括但不限于通过现有发布工具发布至少一个差异文件。
例如,服务器通过上述步骤得到差异文件V2.1_V2.0.qbd和V2.1_V1.0.qbd之后,发布V2.1_V2.0.qbd和V2.1_V1.0.qbd。
307:客户端获取历史版本安装包,并从服务器发布的差异文件中下载与历史版本安装包相对应的差异文件;
针对该步骤,本实施例不对客户端获取历史版本安装包的具体获取方法进行限定。包括但不限于,从已存储的安装包中获取历史版本安装包。
另外,如果历史版本安装包的数量为至少两个,则获取各个历史版本安装包的版本号,并选择最大版本号对应的历史版本安装包作为获取到的历史版本安装包。
例如,已存储的历史版本安装包为V2.0安装包,则获取V2.0安装包为历史版本安装包。
又例如,已存储的历史版本安装包有两个,分别为V2.0安装包、V1.0安装包。由于V2.0安装包的版本号为V2.0,V1.0安装包的版本号为V1.0,最大版本号为V2.0,则选取V2.0安装包作为获取到的历史版本安装包。
此外,本实施例不对客户端从服务器发布的差异文件中下载与历史版本安装包相对应的差异文件的具体方法进行限定。包括但不限于:由于服务器会发布至少一个差异文件,因此,客户端先通过网络从服务器发布的差异文件中选择与历史版本安装包相对应的差异文件,再下载选择的差异文件。
例如,以服务器发布的差异文件为V2.1_V2.0.qbd和V2.1_V1.0.qbd,客户端历史版本安装包为V2.0安装包为例,客户端从V2.1_V2.0.qbd和V2.1_V1.0.qbd中选择与V2.0安装包相对应的V2.1_V2.0.qbd并下载。
需要说明的是,客户端从服务器发布的差异文件中下载与历史版本安装包相对应的差异文件的步骤的具体执行时间仅以客户端确定历史安装包之后执行为例。在具体实施时,客户端从服务器发布的差异文件中下载与历史版本安装包相对应的差异文件的步骤的具体执行时间可以在客户端确定历史安装包之后至步骤312之前的任何时间,本实施例不对客户端从服务器发布的差异文件中下载与历史版本安装包相对应的差异文件的步骤的具体执行时间进行限定。
308:客户端将历史版本安装包进行解包,得到历史版本解包文件夹,历史版本解包文件夹下包括至少一个历史版本解包文件和历史版本签名子文件夹,历史版本签名子文件夹下包括至少一个历史版本解包文件;
针对该步骤,本实施例不对服务器将历史版本安装包进行解包的具体方法进行限定,包括但不限于通过解包算法将历史版本安装包进行解包。具体解包过程可参见上述步骤301中服务器解包新版本安装包的过程,此处不再赘述。
309:客户端确定历史版本解包文件夹下的历史版本解包文件中是否有作为标识文件的历史版本解包文件,如果有作为标识文件的历史版本解包文件,则执行步骤310,如果没有作为标识文件的历史版本解包文件,则执行步骤311;
具体的,确定历史版本解包文件夹下assert子文件夹下是否有channel.ini。
310:客户端存储作为标识文件的历史版本解包文件,并将作为标识文件的历史版本解包文件从历史版本解包文件夹中进行删除;
针对该步骤,本实施例不对客户端存储作为标识文件的历史版本解包文件的具体存储方法进行限定。例如,将作为标识文件的历史版本解包文件存储在数据库中。
311:客户端获取历史版本解包文件夹下的每个历史版本解包文件的头文件信息,并将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹;
针对该步骤,历史版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式,本实施例不对历史版本解包文件的头文件信息包括的具体内容进行限定。
另外,本实施例不对将每个历史版本解包文件的头文件信息进行格式转换的具体转换方法进行限定。包括但不限于通过如下两个步骤实现将每个历史版本解包文件的头文件信息进行格式转换:
第一步:分别从每个历史版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
第二步:将提取出的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
需要说明的是,为了缩短步骤311的执行时间,可以通过数据流的形式完成步骤311。具体的,可以按照如下流程实现:
1、从历史版本解包文件1的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
2、在存储设备中存储提取到的历史版本解包文件1的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
3、将存储的历史版本解包文件1的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式;与此同时,继续从历史版本解包文件2的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
4、在存储设备中存储提取到的历史版本解包文件2的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
5、将存储的历史版本解包文件2的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式;与此同时,继续从历史版本解包文件3的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,如此循环,直至所有历史版本解包文件的头文件信息均进行格式转换。
当然,历史版本解包文件的文件名还可以为其它名称,本实施例不对历史版本解包文件的具体文件名称进行限定。
另外,本实施例的步骤311仅是对历史版本解包文件夹下的每个历史版本解包文件的头文件信息的格式进行了转换,因此,经过步骤311之后得到的历史版本转换文件夹整体目录结构与历史版本解包文件夹整体目录结构相同,历史版本转换文件夹下文件的文件内容与历史版本解包文件夹下文件的文件内容相同。
例如,历史版本解包文件夹下有历史版本解包文件1、历史版本签名子文件夹和子文件夹1,历史版本签名子文件夹中包含历史版本解包文件2,子文件夹1中包含子文件夹2,子文件夹2中包含历史版本解包文件3。步骤302仅是分别对历史版本解包文件1的头文件信息的格式、历史版本解包文件2的头文件信息的格式和历史版本解包文件3的头文件信息的格式进行转换,对于历史版本解包文件夹的目录结构以及历史版本解包文件1的文件内容、历史版本解包文件2的文件内容和历史版本解包文件3的文件内容均未作任何改变。因此,经过步骤311之后得到历史版本转换文件夹的目录结构为:历史版本转换文件夹下有头文件信息格式转换后的历史版本解包文件1、历史版本签名子文件夹和子文件夹1,历史版本签名子文件夹中包含头文件信息格式转换后的历史版本解包文件2,子文件夹1中包含子文件夹2,子文件夹2中包含头文件信息格式转换后的历史版本解包文件3,且头文件信息格式转换后的历史版本解包文件1、头文件信息格式转换后的历史版本解包文件2和头文件信息格式转换后的历史版本解包文件3的文件内容分别与历史版本解包文件1、历史版本解包文件2和历史版本解包文件3的文件内容相同。
当然,历史版本解包文件夹的目录结构还可以为其它结构,本实施例不对历史版本解包文件夹的具体目录结构进行限定。历史版本解包文件夹下包含的文件或者子文件夹的名称还可以为其它名称,本实施例不对历史版本解包文件夹下包含的文件或者子文件夹的具体名称进行限定。
312:客户端将历史版本转换文件夹打包成一个历史版本档案文件包;
针对该步骤,本实施例不对服务器将历史版本转换文件夹打包成一个历史版本档案文件包的具体打包方法进行限定。本实施例也不对历史版本档案文件包的具体格式进行限定,例如,历史版本档案文件包的具体格式为qar格式。
313:客户端根据历史版本档案文件包与差异文件获取新版本档案文件包;
针对该步骤,本实施例不对服务器根据历史版本档案文件包与差异文件获取新版本档案文件包的具体获取方法进行限定。例如,将历史版本档案文件包和差异文件通过Bspatch(补丁合并工具)得到新版本档案文件包。
具体的,V2.0档案文件包与V2.1_V2.0.qbd通过Bspatch得到V2.1档案文件包。
另外,由于步骤305中差异文件的得到方法有两种,因此如果步骤305中生成差异文件的方法为服务器先分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,再根据新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件,此步骤中客户端也可以先删除历史版本档案文件包中包括的历史版本签名子文件夹,再将删除历史版本签名子文件夹后的历史版本档案文件包与差异文件合并,得到新版本档案文件包。
需要说明的是,客户端根据历史版本档案文件包与差异文件获取新版本档案文件包的过程是将历史版本档案文件包与差异文件合并的过程。
以步骤305中生成差异文件的方法为服务器直接根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件为例。如果历史版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2,子文件夹1中包含子文件夹2,子文件夹2中包含文件5;而差异文件中至少包含历史版本签名子文件夹中的文件3、子文件夹1中子文件夹2中的文件4。则该历史版本档案文件包与差异文件获取新版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件4。
又以步骤305中生成差异文件的方法为服务器直接根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件为例。如果历史版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件5;而差异文件中至少包含子文件夹1中子文件夹2中的文件4。则该历史版本档案文件包与差异文件获取新版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件4。
再以步骤305中生成差异文件的方法为服务器先分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,再根据新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件为例,如果历史版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2,子文件夹1中包含子文件夹2,子文件夹2中包含文件5,而差异文件中至少包含历史版本签名子文件夹中的文件2和文件3、子文件夹1中子文件夹2中的文件4。则先删除历史版本档案文件包中包括的历史版本签名子文件夹,再将删除历史版本签名子文件夹后的历史版本档案文件包与差异文件合并,得到的新版本档案文件包下有文件1、签名子文件夹和子文件夹1,签名子文件夹中包含文件2和文件3,子文件夹1中包含子文件夹2,子文件夹2中包含文件4。
由此上述例子可知,对于历史版本签名子文件夹:
1、如果步骤305中生成差异文件的方法为服务器直接根据新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件,则差异文件中可能包含签名子文件夹,也可能不包含签名子文件夹。
1)如果差异文件中不包括签名子文件夹,则客户端根据历史版本档案文件包与差异文件获取新版本档案文件包,此时新版本档案文件包下的新版本签名子文件夹中的文件为历史版本档案文件包下的历史版本签名子文件夹中的文件。
2)如果差异文件中包括签名子文件夹,则客户端根据历史版本档案文件包与差异文件获取新版本档案文件包,此时新版本档案文件包下的新版本签名子文件夹中的文件为历史版本档案文件包下的历史版本签名子文件夹中的文件和差异文件中包括的签名子文件夹中的文件的合并。
2、如果步骤305中生成差异文件的方法为服务器先分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,再根据新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件,则差异文件中包含签名子文件夹,且包含的签名子文件夹为新版本签名子文件夹。
1)如果客户端根据历史版本档案文件包与差异文件获取新版本档案文件包,此时新版本档案文件包下的新版本签名子文件夹中的文件为历史版本档案文件包下的历史版本签名子文件夹中的文件和差异文件中包括的新版本签名子文件夹中的文件的合并,如果历史版本档案文件包下的历史版本签名子文件夹中的文件和差异文件中包括的新版本签名子文件夹中的文件相同,则保留任一版本签名子文件夹中的文件。
2)如果先删除历史版本档案文件包中包括的历史版本签名子文件夹,再将删除历史版本签名子文件夹后的历史版本档案文件包与差异文件合并,得到新版本档案文件包,此时新版本档案文件包下的新版本签名子文件夹中的文件为差异文件中包括的新版本签名子文件夹中的文件。
314:客户端将新版本档案文件包进行解包,得到新版本转换文件夹;
针对该步骤,本实施例不对客户端将新版本档案文件包进行解包,得到新版本转换文件夹的具体解包方法进行限定。
315:客户端获取新版本转换文件夹中的文件的头文件信息,并将新版本转换文件夹中的每个文件的头文件信息进行格式转换,得到多个新版本解包文件;
针对该步骤,新版本转换文件夹中的文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第一预设格式。
另外,本实施例不对将新版本转换文件夹中的每个文件的头文件信息进行格式转换的具体方法进行限定,包括但不限于通过如下两个步骤实现将新版本转换文件夹中的每个文件的头文件信息进行格式转换:
第一步:分别从每个新版本转换文件夹中的文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
第二步:将提取出的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第二预设格式。
需要说明的是,为了缩短步骤315的执行时间,可以通过数据流的形式完成步骤315。具体的,可以按照如下流程实现:
1、从文件1的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
2、在存储设备中存储提取到的文件1的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
3、将存储的文件1的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第二预设格式;与此同时,继续从文件2的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
4、在存储设备中存储提取到的文件2的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
5、将存储的文件2的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第二预设格式;与此同时,继续从文件3的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,如此循环,直至所有文件的头文件信息均进行格式转换。
当然,新版本转换文件夹中的文件名称还可以为其它名称,本实施例不对新版本转换文件夹中的文件的具体文件名称进行限定。
另外,本实施例的步骤315仅是对新版本转换文件夹下的每个文件的头文件信息的格式进行了转换,因此,经过步骤315之后得到的新版本解包文件的文件内容与新版本转换文件夹下文件的文件内容相同。同时,将新版本转换文件夹下的每个文件的头文件信息的格式转换成第二预设格式,因此经过步骤315之后得到的新版本解包文件的头文件信息的格式与服务器新版本解包文件的头文件信息的格式相同。
316:客户端根据多个新版本解包文件获取新版本安装包,完成增量更新。
针对该步骤,本实施例不对客户端根据多个新版本解包文件获取新版本安装包的具体获取方法进行限定。例如,将多个新版本解包文件进行打包生成新版本安装包。
需要说明的是,由于本实施例步骤301至315均是对文件的头文件格式进行转换,对于文件内容以及文件结构均未改变,而在步骤315之后新版本解包文件的头文件格式与步骤301中解包的新版本安装包中新版本解包文件的头文件格式相同。因此,步骤316中得到的新版本安装包与步骤301中解包的新版本安装包不论从数据内容还是从数据格式上均相同。同时,也由于本实施例提供的方法对文件的头文件格式进行转换,对于文件内容以及文件结构均未改变,使得步骤305中生成的差异文件中包含数据本身差异的内容,不包含数据结构差异的内容。
本实施例提供的方法,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
实施例三
本实施例提供了一种服务器,该服务器用于执行上述实施例一或施例二所提供的增量更新的方法中服务器所执行的内容,参见图4,该服务器包括:
解包模块401,用于将新版本安装包进行解包,得到新版本解包文件夹,新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,新版本签名子文件夹下包括至少一个新版本解包文件;
第一获取模块402,用于获取新版本解包文件夹下的每个新版本解包文件的头文件信息;
转换模块403,用于将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
打包模块404,用于将转换模块403得到的新版本转换文件夹打包成一个新版本档案文件包;
第二获取模块405,用于获取至少一个历史版本档案文件包;
生成模块406,用于根据打包模块404得到的新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布模块407,用于发布生成模块406得到的至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成新版本安装包,完成增量更新。
进一步地,新版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式,参加图5,转换模块403,包括:
提取单元4031,用于分别从每个新版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
转换单元4032,用于将提取单元4031提取出的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
进一步地,历史版本档案文件包中包括历史版本签名子文件夹,历史版本档案文件包的获取过程与新版本档案文件包的获取过程相同;
生成模块406,用于分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,根据新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件。
参加图6,该服务器,还包括:
确定模块408,用于确定新版本解包文件夹下的新版本解包文件中是否有作为标识文件的新版本解包文件;
删除模块409,用于当确定模块408确定有作为标识文件的新版本解包文件时,将作为标识文件的新版本解包文件从新版本解包文件夹中进行删除。
本实施例提供的服务器,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
实施例四
本实施例提供了一种客户端,该服务器用于执行上述实施例一或施例二所提供的增了更新的方法中客户端所执行的内容,参见图7,该客户端包括:
第一获取模块701,用于获取历史版本安装包;
下载模块702,用于从服务器发布的差异文件中下载与第一获取模块获取到的历史版本安装包相对应的差异文件;
第一解包模块703,用于将第一获取模块701获取到的历史版本安装包进行解包,得到历史版本解包文件夹,历史版本解包文件夹下包括至少一个历史版本解包文件和历史版本签名子文件夹,历史版本签名子文件夹下包括至少一个历史版本解包文件;
第二获取模块704,用于获取历史版本解包文件夹下的每个历史版本解包文件的头文件信息;
第一转换模块705,用于将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹;
打包模块706,用于将第一转换模块705得到的历史版本转换文件夹打包成一个历史版本档案文件包;
第三获取模块707,用于根据历史版本档案文件包与差异文件获取新版本档案文件包;
第二解包模块708,用于将新版本档案文件包进行解包,得到新版本转换文件夹;
第四获取模块709,用于获取第二解包模块708得到的新版本转换文件夹中的文件的头文件信息;
第二转换模块710,用于将新版本转换文件夹中的每个文件的头文件信息进行格式转换,得到多个新版本解包文件;
第五获取模块711,用于根据多个新版本解包文件获取新版本安装包,完成增量更新。
进一步地,历史版本安装包的数量为至少两个;
第一获取模块701,用于获取各个历史版本安装包的版本号,并选择最大版本号对应的历史版本安装包作为获取到的历史版本安装包。
进一步地,历史版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式,参见图8,第一转换模块705,包括:
提取单元7051,用于分别从每个历史版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
转换单元7052,用于将提取单元7051提取出的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
进一步地,第三获取模块707,用于删除历史版本档案文件包中包括的历史版本签名子文件夹,并将删除历史版本签名子文件夹后的历史版本档案文件包与差异文件合并,得到新版本档案文件包。
参见图9,客户端,还包括:
确定模块712,用于确定历史版本解包文件夹下的历史版本解包文件中是否有作为标识文件的历史版本解包文件;
存储模块713,用于当确定模块712确定有作为标识文件的历史版本解包文件时,存储作为标识文件的历史版本解包文件;
删除模块714,用于将作为标识文件的历史版本解包文件从历史版本解包文件夹中进行删除。
进一步地,新版本转换文件夹中的文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第一预设格式,参见图10,第二转换模块710,包括:
提取单元7101,用于分别从每个新版本转换文件夹中的文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
转换单元7102,用于将提取单元提取出的文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第二预设格式。
本实施例提供的客户端,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
实施例五
本实施例提供了一种增量更新的系统,该系统用于执行上述实施例一或实施例二所提供的增量更新的方法。参见图11,该系统包括:
服务器1101及客户端1102;
其中,服务器1101如上述实施例三提供的服务器,详见上述实施例三;
客户端1102如上述实施例四提供的客户端,详见上述实施例四。
本实施例提供的系统,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
实施例六
参见图12,本实施例提供了一种终端,图12展示出了本发明实施例所涉及的具有触敏表面的终端结构示意图,该终端可以用于实施上述实施例中提供的处理对象的方法。具体来讲:
终端1200可以包括RF(RadI/O Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、传输模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图12中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communicatI/On,全球移动通讯系统)、GPRS(General Packet RadI/O Service,通用分组无线服务)、CDMA(Code DivisI/On Multiple Access,码分多址)、WCDMA(Wideband Code DivisI/OnMultiple Access,宽带码分多址)、LTE(Long Term EvolutI/On,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,如实施例二中增量更新的服务器及客户端所对应的软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理,如实现增量更新等。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1200的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端1200的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting DI/Ode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图12中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端1200还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端1200移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1200还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端1200之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端1200的通信。
终端1200通过传输模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线或有线的宽带互联网访问。虽然图12示出了传输模块170,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端1200的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端1200的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端1200还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端1200还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
将新版本安装包进行解包,得到新版本解包文件夹,所述新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,所述新版本签名子文件夹下包括至少一个新版本解包文件;
获取所述新版本解包文件夹下的每个新版本解包文件的头文件信息,并将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
将所述新版本转换文件夹打包成一个新版本档案文件包,并获取至少一个历史版本档案文件包;
根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布所述至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成所述新版本安装包,完成增量更新。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述终端的存储器中,还包含用于执行以下操作的指令:
所述新版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式;
所述将每个新版本解包文件的头文件信息进行格式转换,包括:
分别从每个新版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
将提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述终端的存储器中,还包含用于执行以下操作的指令:
所述历史版本档案文件包中包括历史版本签名子文件夹,所述历史版本档案文件包的获取过程与所述新版本档案文件包的获取过程相同;
所述根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,包括:
分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,根据所述新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件。
在第一种至第三种任一种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述终端的存储器中,还包含用于执行以下操作的指令:
确定所述新版本解包文件夹下的新版本解包文件中是否有作为标识文件的新版本解包文件;
如果有作为标识文件的新版本解包文件,则将作为标识文件的新版本解包文件从所述新版本解包文件夹中进行删除。
综上所述,本实施例提供的终端,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
实施例七
本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序被一个或者一个以上的处理器用来执行处理对象的方法,所述方法包括:
将新版本安装包进行解包,得到新版本解包文件夹,所述新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,所述新版本签名子文件夹下包括至少一个新版本解包文件;
获取所述新版本解包文件夹下的每个新版本解包文件的头文件信息,并将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
将所述新版本转换文件夹打包成一个新版本档案文件包,并获取至少一个历史版本档案文件包;
根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布所述至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成所述新版本安装包,完成增量更新。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述新版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式,所述将每个新版本解包文件的头文件信息进行格式转换的内容,包括:
分别从每个新版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
将提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述历史版本档案文件包中包括历史版本签名子文件夹,所述历史版本档案文件包的获取过程与所述新版本档案文件包的获取过程相同,所述根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件的步骤,包括:
分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,根据所述新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件。
在第一种至第三种任一种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述得到新版本解包文件夹的步骤之后,还包括:
确定所述新版本解包文件夹下的新版本解包文件中是否有作为标识文件的新版本解包文件;
如果有作为标识文件的新版本解包文件,则将作为标识文件的新版本解包文件从所述新版本解包文件夹中进行删除。
本发明实施例提供的计算机可读存储介质,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
实施例八
本发明实施例中提供了一种图形用户接口,所述图形用户接口用在终端上,所述终端包括触摸屏显示器、存储器和用于执行一个或者一个以上的程序的一个或者一个以上的处理器;所述图形用户接口包括:
将新版本安装包进行解包,得到新版本解包文件夹,所述新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,所述新版本签名子文件夹下包括至少一个新版本解包文件;
获取所述新版本解包文件夹下的每个新版本解包文件的头文件信息,并将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
将所述新版本转换文件夹打包成一个新版本档案文件包,并获取至少一个历史版本档案文件包;
根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布所述至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成所述新版本安装包,完成增量更新。
本发明实施例提供的图形用户接口,通过新版本安装包得到新版本解包文件夹,并将新版本解包文件夹中新版本解包文件的头文件的格式进行格式转换,得到新版本转换文件夹,将新版本转换文件夹打包成新版本档案文件包,再根据新版本档案文件包与历史本档案文件包生成差异文件,从而在不破坏数据结构的情况下生成差异文件,省略了差异文件中数据结构差异的内容,减小了差异文件的大小,进而减少了客户端下载该差异文件所付出的时间和流量。
需要说明的是:上述实施例提供的服务器、客户端在增量更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器、客户端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务器、客户端、系统与增量更新的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种增量更新的方法,其特征在于,所述方法包括:
将新版本安装包进行解包,得到新版本解包文件夹,所述新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,所述新版本签名子文件夹下包括至少一个新版本解包文件;
确定所述新版本解包文件夹下的新版本解包文件中是否有作为标识文件的新版本解包文件,所述标识文件是用于描述渠道包的信息;
如果有作为标识文件的新版本解包文件,则将作为标识文件的新版本解包文件从所述新版本解包文件夹中进行删除;
获取所述新版本解包文件夹下的每个新版本解包文件的头文件信息,并将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
将所述新版本转换文件夹打包成一个新版本档案文件包,并获取至少一个历史版本档案文件包;
根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布所述至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成所述新版本安装包,完成增量更新。
2.根据权利要求1所述的方法,其特征在于,所述新版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式;
所述将每个新版本解包文件的头文件信息进行格式转换,包括:
分别从每个新版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
将提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
3.根据权利要求1所述的方法,其特征在于,所述历史版本档案文件包中包括历史版本签名子文件夹,所述历史版本档案文件包的获取过程与所述新版本档案文件包的获取过程相同;
所述根据所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,包括:
分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,根据所述新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件。
4.一种增量更新的服务器,其特征在于,所述服务器包括:
解包模块,用于将新版本安装包进行解包,得到新版本解包文件夹,所述新版本解包文件夹下包括至少一个新版本解包文件和新版本签名子文件夹,所述新版本签名子文件夹下包括至少一个新版本解包文件;
确定模块,用于确定所述新版本解包文件夹下的新版本解包文件中是否有作为标识文件的新版本解包文件,所述标识文件是用于描述渠道包的信息;
删除模块,用于当所述确定模块确定有作为标识文件的新版本解包文件时,将作为标识文件的新版本解包文件从所述新版本解包文件夹中进行删除;
第一获取模块,用于获取所述新版本解包文件夹下的每个新版本解包文件的头文件信息;
转换模块,用于将每个新版本解包文件的头文件信息进行格式转换,得到新版本转换文件夹;
打包模块,用于将所述转换模块得到的所述新版本转换文件夹打包成一个新版本档案文件包;
第二获取模块,用于获取至少一个历史版本档案文件包;
生成模块,用于根据所述打包模块得到的所述新版本档案文件包与每个历史版本档案文件包生成一个对应的差异文件,得到至少一个差异文件;
发布模块,用于发布所述生成模块得到的所述至少一个差异文件,使客户端在发布的至少一个差异文件中选择一个差异文件下载,并根据下载的差异文件形成所述新版本安装包,完成增量更新。
5.根据权利要求4所述的服务器,其特征在于,所述新版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式;
所述转换模块,包括:
提取单元,用于分别从每个新版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
转换单元,用于将所述提取单元提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
6.根据权利要求4所述的服务器,其特征在于,所述历史版本档案文件包中包括历史版本签名子文件夹,所述历史版本档案文件包的获取过程与所述新版本档案文件包的获取过程相同;
所述生成模块,用于分别删除每个历史版本档案文件包中包括的历史版本签名子文件夹,根据所述新版本档案文件包与删除历史版本签名子文件夹的历史版本档案文件包生成一个对应的差异文件。
7.一种增量更新的方法,其特征在于,所述方法包括:
获取历史版本安装包,并从服务器发布的差异文件中下载与所述历史版本安装包相对应的差异文件;
将所述历史版本安装包进行解包,得到历史版本解包文件夹,所述历史版本解包文件夹下包括至少一个历史版本解包文件和历史版本签名子文件夹,所述历史版本签名子文件夹下包括至少一个历史版本解包文件;
确定所述历史版本解包文件夹下的历史版本解包文件中是否有作为标识文件的历史版本解包文件,所述标识文件是用于描述渠道包的信息;
如果有作为标识文件的历史版本解包文件,则存储所述作为标识文件的历史版本解包文件,并将所述作为标识文件的历史版本解包文件从所述历史版本解包文件夹中进行删除;
获取所述历史版本解包文件夹下的每个历史版本解包文件的头文件信息,并将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹;
将所述历史版本转换文件夹打包成一个历史版本档案文件包,并根据所述历史版本档案文件包与所述差异文件获取新版本档案文件包;
将所述新版本档案文件包进行解包,得到新版本转换文件夹;
获取所述新版本转换文件夹中的文件的头文件信息,并将所述新版本转换文件夹中的每个文件的头文件信息进行格式转换,得到多个新版本解包文件;
根据所述多个新版本解包文件获取新版本安装包,完成增量更新。
8.根据权利要求7所述的方法,其特征在于,所述历史版本安装包的数量为至少两个;
所述获取历史版本安装包,包括:
获取各个历史版本安装包的版本号,并选择最大版本号对应的历史版本安装包作为获取到的历史版本安装包。
9.根据权利要求7所述的方法,其特征在于,所述历史版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式;
所述将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹,包括:
分别从每个历史版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
将提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
10.根据权利要求7所述的方法,其特征在于,所述根据所述历史版本档案文件包与所述差异文件获取新版本档案文件包,包括:
删除所述历史版本档案文件包中包括的历史版本签名子文件夹,并将删除历史版本签名子文件夹后的历史版本档案文件包与所述差异文件合并,得到新版本档案文件包。
11.根据权利要求7所述的方法,其特征在于,所述新版本转换文件夹中的文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第一预设格式;
所述将所述新版本转换文件夹中的每个文件的头文件信息进行格式转换,包括:
分别从每个新版本转换文件夹中的文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
将提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第二预设格式。
12.一种增量更新的客户端,其特征在于,所述客户端包括:
第一获取模块,用于获取历史版本安装包;
下载模块,用于从服务器发布的差异文件中下载与所述第一获取模块获取到的所述历史版本安装包相对应的差异文件;
第一解包模块,用于将所述第一获取模块获取到的所述历史版本安装包进行解包,得到历史版本解包文件夹,所述历史版本解包文件夹下包括至少一个历史版本解包文件和历史版本签名子文件夹,所述历史版本签名子文件夹下包括至少一个历史版本解包文件;
确定模块,用于确定所述历史版本解包文件夹下的历史版本解包文件中是否有作为标识文件的历史版本解包文件,所述标识文件是用于描述渠道包的信息;
存储模块,用于当所述确定模块确定有作为标识文件的历史版本解包文件时,存储所述作为标识文件的历史版本解包文件;
删除模块,用于将所述作为标识文件的历史版本解包文件从所述历史版本解包文件夹中进行删除;
第二获取模块,用于获取所述历史版本解包文件夹下的每个历史版本解包文件的头文件信息;
第一转换模块,用于将每个历史版本解包文件的头文件信息进行格式转换,得到历史版本转换文件夹;
打包模块,用于将所述第一转换模块得到的所述历史版本转换文件夹打包成一个历史版本档案文件包;
第三获取模块,用于根据所述历史版本档案文件包与所述差异文件获取新版本档案文件包;
第二解包模块,用于将所述新版本档案文件包进行解包,得到新版本转换文件夹;
第四获取模块,用于获取所述第二解包模块得到的所述新版本转换文件夹中的文件的头文件信息;
第二转换模块,用于将所述新版本转换文件夹中的每个文件的头文件信息进行格式转换,得到多个新版本解包文件;
第五获取模块,用于根据所述多个新版本解包文件获取新版本安装包,完成增量更新。
13.根据权利要求12所述的客户端,其特征在于,所述历史版本安装包的数量为至少两个;
所述第一获取模块,用于获取各个历史版本安装包的版本号,并选择最大版本号对应的历史版本安装包作为获取到的历史版本安装包。
14.根据权利要求12所述的客户端,其特征在于,所述历史版本解包文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第二预设格式;
所述第一转换模块,包括:
提取单元,用于分别从每个历史版本解包文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
转换单元,用于将所述提取单元提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第一预设格式。
15.根据权利要求12所述的客户端,其特征在于,所述第三获取模块,用于删除所述历史版本档案文件包中包括的历史版本签名子文件夹,并将删除历史版本签名子文件夹后的历史版本档案文件包与所述差异文件合并,得到新版本档案文件包。
16.根据权利要求12所述的客户端,其特征在于,所述新版本转换文件夹中的文件的头文件信息至少包括文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息,且均为第一预设格式;
所述第二转换模块,包括:
提取单元,用于分别从每个新版本转换文件夹中的文件的头文件信息中提取文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息;
转换单元,用于将所述提取单元提取出的所述文件长度信息、文件名长度信息、校验值信息、文件名信息和数据内容信息的格式分别转换成第二预设格式。
17.一种增量更新的系统,其特征在于,所述系统包括:服务器及客户端;
其中,所述服务器如权利要求4至6中任一权利要求所述的服务器,所述客户端如权利要求12至16中任一权利要求所述的客户端。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256697.4A CN104252364B (zh) | 2013-06-25 | 2013-06-25 | 增量更新的方法、设备及系统 |
PCT/CN2013/090082 WO2014206046A1 (en) | 2013-06-25 | 2013-12-20 | A method, equipment and system of incremental update |
US14/316,158 US9317280B2 (en) | 2013-06-25 | 2014-06-26 | Method, equipment and system of incremental update |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256697.4A CN104252364B (zh) | 2013-06-25 | 2013-06-25 | 增量更新的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104252364A CN104252364A (zh) | 2014-12-31 |
CN104252364B true CN104252364B (zh) | 2017-09-12 |
Family
ID=52140952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310256697.4A Active CN104252364B (zh) | 2013-06-25 | 2013-06-25 | 增量更新的方法、设备及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9317280B2 (zh) |
CN (1) | CN104252364B (zh) |
WO (1) | WO2014206046A1 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811679B2 (en) * | 2014-12-30 | 2017-11-07 | Samsung Electronics Co., Ltd. | Electronic system with access management mechanism and method of operation thereof |
CN104572207B (zh) * | 2015-01-20 | 2018-05-29 | 广东欧珀移动通信有限公司 | 一种基于智能配件的app扩展使用方法及智能配件 |
CN106294461B (zh) * | 2015-06-01 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 数据导入方法和装置 |
US11715109B2 (en) * | 2015-06-11 | 2023-08-01 | Idid Tecnologia Ltda | Point of sale apparatuses, methods and systems |
US11367077B2 (en) | 2015-06-11 | 2022-06-21 | Idid Tecnologia Ltda | Antifraud resilient transaction identifier datastructure apparatuses, methods and systems |
US9898172B2 (en) * | 2015-09-25 | 2018-02-20 | Dropbox, Inc. | Content item activity feed for presenting events associated with content items |
CN105224323A (zh) * | 2015-09-29 | 2016-01-06 | 北京畅游天下网络技术有限公司 | 一种三维动画引擎的资源打包方法及装置 |
US9946533B2 (en) | 2015-09-30 | 2018-04-17 | Apple Inc. | Software updating |
CN106886433A (zh) * | 2015-12-16 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 客户端软件的更新方法和装置 |
CN106909353B (zh) * | 2015-12-22 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 应用程序的运行方法和装置 |
CN107015821B (zh) * | 2016-01-28 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 增量更新的方法和装置 |
CN107346252B (zh) | 2016-05-07 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
CN106055363B (zh) | 2016-05-31 | 2017-11-14 | 广东欧珀移动通信有限公司 | 一种识别文件的方法及移动终端 |
CN106528235A (zh) * | 2016-11-11 | 2017-03-22 | 深圳铂睿智恒科技有限公司 | 智能终端应用的升级方法及系统 |
CN106572372B (zh) * | 2016-11-14 | 2021-06-04 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒升级方法及机顶盒 |
KR102579467B1 (ko) * | 2017-01-05 | 2023-09-18 | 주식회사 쏠리드 | 분산 안테나 시스템의 데이터 관리 장치 및 데이터 관리 방법 |
CN107016053B (zh) * | 2017-03-02 | 2020-05-22 | 中国科学院信息工程研究所 | 一种并行的数据差分方法 |
CN107122433B (zh) * | 2017-04-18 | 2020-07-24 | 广州视源电子科技股份有限公司 | 一种复合文档的合并方法及实现该方法的系统 |
CN108804130B (zh) * | 2017-05-03 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 程序安装包生成方法及装置 |
US11194562B2 (en) * | 2017-05-19 | 2021-12-07 | Blackberry Limited | Method and system for hardware identification and software update control |
CN107678755B (zh) * | 2017-09-13 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 安装包打包的方法、装置、电子设备和计算机可读介质 |
CN107729045A (zh) * | 2017-09-30 | 2018-02-23 | 武汉汉思信息技术有限责任公司 | 应用程序自动化版本发布方法及系统 |
CN108062368B (zh) * | 2017-12-08 | 2021-05-07 | 北京百度网讯科技有限公司 | 全量数据翻译方法、装置、服务器及存储介质 |
CN108319460B (zh) * | 2018-01-24 | 2021-09-17 | 广东小天才科技有限公司 | 应用程序安装包的生成方法、装置、电子设备及存储介质 |
CN108449377A (zh) * | 2018-02-02 | 2018-08-24 | 珠海金山网络游戏科技有限公司 | 一种游戏版本的更新方法和资源打包发布系统及其方法 |
CN108733400A (zh) * | 2018-04-27 | 2018-11-02 | 新光互联投资管理有限公司 | 一种App增量热更新方法及服务系统 |
CN109144557A (zh) * | 2018-08-23 | 2019-01-04 | 携程旅游信息技术(上海)有限公司 | App的动态增量升级方法及系统 |
CN109471653B (zh) * | 2018-09-29 | 2022-06-17 | 阿波罗智联(北京)科技有限公司 | 应用程序的更新方法、电子设备、服务器和存储介质 |
CN110012096B (zh) * | 2019-04-03 | 2021-12-24 | 中国工商银行股份有限公司 | 移动客户端服务更新管理方法、装置及系统 |
CN112068848B (zh) * | 2019-06-10 | 2025-02-21 | 北京沃东天骏信息技术有限公司 | 一种管理软件版本的方法和装置 |
CN112306553B (zh) * | 2019-07-29 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 安装包文件中扩展信息的处理方法、装置、及电子设备 |
CN110505289B (zh) * | 2019-08-07 | 2022-04-26 | Oppo广东移动通信有限公司 | 文件下载方法及装置、计算机可读介质、无线通信设备 |
CN111506342A (zh) * | 2020-04-23 | 2020-08-07 | 北京奇艺世纪科技有限公司 | 版本差异检测方法、装置、电子设备及存储介质 |
CN111796855B (zh) * | 2020-07-22 | 2023-06-09 | 大箴(杭州)科技有限公司 | 一种增量版本更新方法、装置、存储介质及计算机设备 |
CN111782263B (zh) * | 2020-07-22 | 2024-01-23 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN111736895A (zh) * | 2020-08-10 | 2020-10-02 | 北京信安世纪科技股份有限公司 | 软件产品版本号合并及升级方法、设备及存储介质 |
CN113094347A (zh) * | 2021-05-08 | 2021-07-09 | 广州文石信息科技有限公司 | 一种数据同步方法、装置以及设备 |
CN113590165A (zh) * | 2021-09-27 | 2021-11-02 | 成都千嘉科技有限公司 | 智能远传表嵌入式软件远程升级方法 |
CN113868231B (zh) * | 2021-12-03 | 2022-03-18 | 南昌龙旗信息技术有限公司 | 数据结构的更新方法及装置 |
CN117348916B (zh) * | 2023-12-06 | 2024-03-26 | 中邮消费金融有限公司 | 脚本生成方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1385102A2 (en) * | 2002-07-23 | 2004-01-28 | Navigation Technologies Corporation | Method and system for updating geographic databases |
CN101377744A (zh) * | 2008-09-24 | 2009-03-04 | 深圳华为通信技术有限公司 | 一种终端设备软件升级恢复方法及装置 |
CN102799445A (zh) * | 2012-05-03 | 2012-11-28 | 陈昊 | 一种基于Android平台的应用升级方法及系统 |
CN102831001A (zh) * | 2012-09-11 | 2012-12-19 | 北京百纳威尔科技有限公司 | 软件升级包的制作方法及装置、程序的升级方法及设备 |
CN103051723A (zh) * | 2012-12-27 | 2013-04-17 | 广州市动景计算机科技有限公司 | 一种增量升级方法及服务器、终端 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814474B2 (en) * | 2000-11-17 | 2010-10-12 | Hewlett-Packard Development Company, L.P. | Updatable mobile handset based on Linux with compression and decompression techniques |
US7600021B2 (en) * | 2002-04-03 | 2009-10-06 | Microsoft Corporation | Delta replication of source files and packages across networked resources |
JP2007249481A (ja) * | 2006-03-15 | 2007-09-27 | Nissan Motor Co Ltd | ウェブサイトの更新検出システムおよびウェブサイトの更新検出方法 |
CN101924607B (zh) * | 2010-08-27 | 2013-01-23 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
CN102436002B (zh) * | 2011-08-22 | 2013-06-19 | 福信富通(福建)网络科技有限公司 | 实现tmc移动导航终端的增量信息更新的方法 |
AU2012307044B2 (en) * | 2011-09-07 | 2017-02-02 | Imagine Communications Corp. | System and methods for developing component-based computing applications |
CN102799679B (zh) * | 2012-07-24 | 2014-10-22 | 河海大学 | 基于Hadoop的海量空间数据索引更新系统及方法 |
US20140258968A1 (en) * | 2013-03-05 | 2014-09-11 | Research In Motion Limited | Visual Representation Of Edits For Collaborative Application Development |
US8868924B1 (en) * | 2014-03-04 | 2014-10-21 | Kaspersky Lab Zao | System and method for modifying a software distribution package |
-
2013
- 2013-06-25 CN CN201310256697.4A patent/CN104252364B/zh active Active
- 2013-12-20 WO PCT/CN2013/090082 patent/WO2014206046A1/en active Application Filing
-
2014
- 2014-06-26 US US14/316,158 patent/US9317280B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1385102A2 (en) * | 2002-07-23 | 2004-01-28 | Navigation Technologies Corporation | Method and system for updating geographic databases |
CN101377744A (zh) * | 2008-09-24 | 2009-03-04 | 深圳华为通信技术有限公司 | 一种终端设备软件升级恢复方法及装置 |
CN102799445A (zh) * | 2012-05-03 | 2012-11-28 | 陈昊 | 一种基于Android平台的应用升级方法及系统 |
CN102831001A (zh) * | 2012-09-11 | 2012-12-19 | 北京百纳威尔科技有限公司 | 软件升级包的制作方法及装置、程序的升级方法及设备 |
CN103051723A (zh) * | 2012-12-27 | 2013-04-17 | 广州市动景计算机科技有限公司 | 一种增量升级方法及服务器、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN104252364A (zh) | 2014-12-31 |
US9317280B2 (en) | 2016-04-19 |
WO2014206046A1 (en) | 2014-12-31 |
US20150220317A1 (en) | 2015-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104252364B (zh) | 增量更新的方法、设备及系统 | |
CN104615453B (zh) | 一种地图数据处理方法、装置及系统 | |
CN103616981B (zh) | 应用处理方法、装置及移动终端 | |
CN105490919B (zh) | 消息撤回方法和装置 | |
CN103702297B (zh) | 短信增强方法、装置及系统 | |
CN103390034B (zh) | 图片展示的方法、装置、终端及服务器 | |
CN109213728A (zh) | 基于增强现实的文物展示方法及系统 | |
CN104021129B (zh) | 显示组图的方法及终端 | |
CN103631580B (zh) | 一种生成主题图标的方法和装置 | |
CN104699501B (zh) | 一种运行应用程序的方法及装置 | |
CN104166646B (zh) | 一种输入统一资源定位符的方法和装置 | |
CN107590397A (zh) | 一种显示内嵌网页的方法和装置 | |
CN107402964A (zh) | 一种信息推荐方法、服务器及终端 | |
CN103631625B (zh) | 一种数据获取的方法、用户端、服务器及系统 | |
CN109213885A (zh) | 基于增强现实的汽车展示方法及系统 | |
CN105530239B (zh) | 多媒体数据获取方法及装置 | |
CN107026908A (zh) | 将第二终端的数据迁移到第一终端的方法及装置 | |
CN110378107A (zh) | 一种安装包检测的方法及相关装置 | |
CN108073495A (zh) | 应用程序崩溃原因的定位方法及装置 | |
CN106708555B (zh) | 一种加载插件的方法和装置 | |
CN104636455B (zh) | 应用程序映射信息的获取方法及装置 | |
CN106682189A (zh) | 文件名显示方法及装置 | |
CN104965825B (zh) | 一种数据处理的方法及终端 | |
CN108011687A (zh) | 数据处理方法及装置 | |
CN107465646A (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 |