一种增量升级方法及相关装置的制造方法_3

文档序号:9646454阅读:来源:国知局
大小和升级效率两个方面的目的。
[0077]可选的,本申请实施例中,预设解压条件可以为:文件压缩前的大小大于预设字节值且压缩率小于预设比值,但不限于此。
[0078]其中,预设字节可以设置为100KB,但不限于此;压缩率为文件压缩后的大小与压缩前的大小之比,可以设置为70%,但不限于此。
[0079]在本申请一个可行的实施例中,服务器在执行步骤S11至S13,得到旧版压缩文件和新版压缩文件之间的增量文件后,可以向与其关联的客户端发送升级提示信息,客户端接收到该升级提示信息后,下载相应的增量文件,实现对自身存储的旧版压缩文件的增量升级。
[0080]上述升级提示信息包括该增量文件对应的新版压缩文件的版本信息;版本信息至少包括文件名、版本号等。可选的,客户端可以无条件下载接收到的每条升级提示信息对应的增量文件;也可以根据接收到的升级提示信息中版本信息及自身存储或安装的文件的版本信息判断是否对本地文件升级,如果需要升级,则下载该升级提示信息对应的增量文件,如果不需要升级或者不存在对应的旧版本文件,则不下载该升级提示信息对应的增量文件。
[0081]例如,客户端接收到的升级提示信息中携带的版本信息如下:文件名为uc_browser, apk、版本号为9.6.1 ;如果客户端自身存储或安装的文件中不存在名称为uc_browser, apk的文件,或者,存在名称为uc_browser.apk、版本号为9.6.1的文件,说明客户端不需要下载该升级提示信息对应的增量文件;如果客户端自身存储或安装的文件中存在名称为uc_browser.apk、版本号为9.6.0的文件,即版本号低于该升级提示信息对应的新版压缩文件的版本号,说明有必要对客户端中的uc_browser.apk文件进行升级,此时,客户端下载该升级提示信息对应的增量文件。
[0082]在本申请另一个可行的实施例中,客户端可以主动向服务器发送文件升级请求,服务器接收到上述文件升级请求后,向客户端发送相应的增量文件,以供客户端对自身存储的旧版压缩文件进行增量升级。
[0083]上述文件升级请求包括客户端中存储或安装的文件的版本信息。服务器接收到来自客户端的文件升级请求后,查找是否存在对应的增量文件,如果存在,则将该增量文件发送至该客户端。可选的,如果服务器中不存在与文件升级请求对应的增量文件,服务器可以向客户端返回相应的提示信息,如“无新版本”、“当前版本已为最新版本”等。
[0084]例如,服务器接收到的文件升级请求中携带的版本信息如下:文件名为uc_browser, apk、版本号为9.6.0 ;如果服务器查找到自身存储有满足如下升级条件的增量文件:该增量文件对应的旧版压缩文件和新版压缩文件的文件名均为uc_browser.apk,且旧版压缩文件的版本号为9.6.0、新版压缩文件的版本号高于9.6.0 (如9.6.1或9.6.2等),则服务器将该增量文件发送至客户端。如果服务器存储的增量文件均不满足上述升级条件(即增量文件对应的旧版压缩文件/新版压缩文件的文件名不为UC_br0WSer.apk,或者,对应的旧版压缩文件的版本号不为9.6.0,或者,对应的新版压缩文件的版本号均不高于9.6.0),说明不存在更高版本的uc_browser.apk文件;此时,服务器可以向客户端返回相应的提示信息。
[0085]在本申请一个可行的实施例中,可以在完成对新版压缩文件中所有新版子文件的分类后,即确定每个新版子文件的类型后,再根据分类结果生成相应的差异数据。
[0086]在本申请另一可行的实施例中,还可以在确定一个新版子文件的类型后,立即执行相应的操作以生成该新版子文件对应的差异数据;图2和图3分别为一种实施例流程图,应用于服务器,以实现旧版压缩文件和新版压缩文件之间的差异比较,得到相应的增量文件(即上述步骤S12至S13)。
[0087]参考图2,在本申请一个可行的实施例中,服务器根据获取到的旧版压缩文件和新版压缩文件生成相应的增量文件的步骤如下:
[0088]S201、判断新版压缩文件中的新版子文件是否已全部被读取,如果是,则结束本流程,否则执行步骤S202;
[0089]S202、读取下一个新版子文件;
[0090]S203、判断旧版压缩文件中是否存在与读取到的新版子文件对应的旧版子文件,如果存在,则执行步骤S205,否则执行步骤S204 ;
[0091]S204、将新版子文件存储于用于存储增量文件的第一存储区,并返回步骤S201 ;
[0092]当旧版压缩文件中不存在与读取到的新版子文件对应的旧版子文件时,可以判定该新版子文件为第一类子文件;即相对于旧版压缩文件,该新版子文件为新增文件,可以将其作为一个增量子文件直接写入增量文件。
[0093]S205、判断旧版子文件和新版子文件是否都满足预设解压条件,如果二者都满足预设解压条件,则执行步骤S206,否则执行步骤S207 ;
[0094]S206、将旧版子文件和新版子文件分别解压,比较解压后的旧版子文件和新版子文件,并将比较得到的第一差异数据存储于上述第一存储区,并返回步骤S201 ;
[0095]上述第一差异数据可以作为增量文件的一个子文件。当上述旧版子文件和新版子文件都满足预设解压条件时,该旧版子文件和新版子文件即为第二类子文件,采用解压比较法实现二者之间的差异比较,可以保证得到的增量子文件比采用直接比较法得到的增量子文件小,进而可以使得整个增量文件较小。
[0096]实际应用中,可以在判定新版子文件为第二类子文件时,先将新版子文件的数据头写入第一存储区,在经过解压、比较步骤得到第一差异数据后,再将该第一差异数据写入第一存储区,且上述第一差异数据和数据头在第一存储区的存储地址连续。
[0097]S207、直接比较旧版子文件和新版子文件,并将比较得到的第二差异数据存储于第一存储区,并返回步骤S201。
[0098]上述第二差异数据可以作为增量文件的一个子文件。当旧版子文件不满足预设解压条件,或者,新版子文件不满足预设解压条件,或者旧版子文件和新版子文件都不满足预设解压条件时,该旧版子文件和新版子文件即为第三类子文件,采用上述两种方法(解压比较法和直接比较法)实现旧版子文件和新版子文件之间的差异比较,所得到的增量子文件的大小接近或相同,因此,本申请实施例采用直接比较法实现第三类子文件之间的差异比较,可以减少差异比较所消耗的时间,提高差异比较效率,进而提高整个增量升级流程的效率。
[0099]在任意一次循环过程中,如果步骤S201的判断结果为否,即新版压缩文件中的新版子文件被全部读取,说明旧版压缩文件和新版压缩文件之间的差异比较已执行完毕,第一存储区中存储的所有数据的集合,即为用于记录旧版压缩文件和新版压缩文件之间的差异信息的增量文件。
[0100]在本申请另一个可行的实施例中,对于第三类子文件,还可以通过如下方法得到第二差异数据:
[0101]判断是否满足如下预设条件:连续存储的多个新版子文件均为第三类子文件,且与连续存储的多个新版子文件一一对应的旧版子文件在旧版压缩文件中的存储位置也连续;如果满足预设条件,则将上述连续存储的多个新版子文件构成的整体文件,和上述连续存储的多个旧版子文件构成的另一整体文件进行差异比较。
[0102]具体的,参见图3,该实施例中服务器根据获取到的旧版压缩文件和新版压缩文件生成相应的增量文件的步骤如下:
[0103]图3中步骤S201’至SS206’与图2中步骤S201至S206——对应相同(即S201’与S201相同、S202’与S202相同,依此类推),此处不再赘述。
[0104]与图2所示流程不同的是,当在步骤S205’中判定结果为否,即旧版子文件和新版子文件不都满足预设解压条件时,执行如下步骤:
[0105]S207’、将旧版子文件存入第一缓存区,同时将新版子文件存入第二缓存区;
[0106]图4为本实施例中旧版压缩文件和新版压缩文件的存储结构示意图,图5为本实施例中第一缓存区和第二缓存区的存储结构示意图。参见图4,假设新版压缩文件中存储地址为B01的新版子文件file_21,与旧版压缩文件中存储地址为A01的旧版子文件file_ll相对应,且file_21和file_ll都不满足预设解压条件,则将file_ll存入第一缓存区中地址为C01的区域,将file_21存入第二缓存区中地址为D01的区域,如图5所示。
[0107]S208’、判断是否同时存在下一个旧版子文件和下一个新版子文件,如果同时存在下一个旧版子文件和下一个新版子文件,则执行步骤S209’,否则执行步骤S212’ ;
[0108]下一个旧版子文件是指旧版压缩文件中满足如下条件的旧版子文件:存储地址与最后存入第一缓存区的旧版子文件在旧版压缩文件中的存储地址连续;下一个新版子文件是指新版压缩文件中满足如下条件的新版子文件:存储地址与最后存入第二缓存区的新版子文件在新版压缩文件中的存储地址连续。
[0109]如果不存在与地址A01连续的地址,或与地址A01连续的地址A02中没有数据,则判定不存在存储地址与file_ll连续的下一个旧版子文件,如果地址A02中存在旧版子文件file_12,如图5所示,则可以判定存在存储地址与file_ll连续的下一个旧版子文件file_12。相应的,图4中,新版子文件file_22的存储地址B02与file_21的存储地址连续,即下一个新版子文件为file_22。因此,对于图4所示情况,可以继续执行步骤S209’。
[0110]S209’、判断下一个新版子文件和下一个旧版子文件是否相对应,如果对应,则执行步骤S210’,否则执行步骤S212’ ;
[0111]S210’、判断下一个新版子文件和下一个旧版子文件是否都满足预设解压条件,如果都满足,则执行步骤S212’,否则执行步骤S211’ ;
[0112]如果下一个新版子文件和下一个旧版子文件都满足预设解压条件,则二者均为第二类子文件,反之,则二者均为第三类子文件。
[0113]S211’、将下一个旧版子文件存入第一缓存区,同时将下一个新版子文件存入第二缓存区,并返回步骤S208’ ;
[0114]S212’、将第一缓存区中的旧版子文件作为一个整体文件,第二缓存区中的新版子文件作为另一个整体文件,直接比较两个整体文件,将得到的第二差异数据存入第一存储区,并返回步骤S201’。
[0115]上述第二差异数据同样作为增量文件的一个子文件存入第一存储区;差异比较完成后,第一存储区中存储的所有增量子文件的集合,就是用于记录旧版压缩文件和新版压缩文件之间的
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1