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

文档序号:9646454阅读:来源:国知局
差异信息的增量文件。
[0116]仍以图4为例,在步骤S209,中判断file_12和file_22是否相对应;在汜6_12和file_22相对应的情况下,执行步骤S210’,判断file_12和file_22是否都满足预设解压条件;如果file_12和file_22都满足预设解压条件,则说明file_22也为第三类子文件,因此,执行步骤S211’将file_12存入第一缓存区中地址为C03的区域、file_22存入第二缓存区地址为D03的区域,如图5所示。其中,file_ll和file_12在第一缓存区中的存储地址也连续,file_21和file_22在第一缓存区中的存储地址也连续。相反的,如果步骤S208’判定不存在下一个新版子文件和/或下一个旧版子文件,或步骤S209’判定下一个新版子文件和下一个旧版子文件不对应,或者步骤S210’判定下一个新版子文件和下一个旧版子文件均满足预设解压条件时,说明不存在满足如下条件的下一个新版子文件:下一个新版子文件为第三类子文件,且下一个新版子文件对应的旧版子文件与待处理新版子文件对应的旧版子文件,在旧版压缩文件中的存储地址连续;此时,执行步骤S212’,将第一缓存区中的所有旧版子文件作为一个整体文件,将第二缓存区中的所有新版子文件作为一个整体文件,通过直接比较法对上述两个整体文件执行一次差异比较,就可以得到多个新版子文件与对应的旧版子文件之间的差异信息。
[0117]例如,对于图4所示情况:连续存储的两个新版子文件file_21和file_22均为第三类子文件,且与file_21对应的旧版子文件file_ll和与file_22对应旧版子文件file_12在旧版压缩文件中的存储地址也连续,满足上述预设条件,根据图3所示实施例,将file_l 1和file_12作为一个整体文件file_l,将file_21和file_22作为一个整体文件file_2,通过直接比较法对file_l和file_2执行一次差异比较,即可得到与file_21和file_22对应的增量子文件;而根据图2所示的实施例,需要执行两次差异比较(file_ll和file_21比较一次,file_12和file_22比较一次)。
[0118]可见,通过循环执行步骤S208’至S211’,可以识别出满足如下预设条件的子文件:连续存储的多个新版子文件均为第三类子文件,且旧版压缩文件中存在与连续存储的多个新版子文件一一对应的旧版子文件,且该多个旧版子文件在旧版压缩文件中的存储位置也连续;进而将连续存储的多个新版子文件作为一个整体文件,将对应的多个旧版子文件作为另一个整体文件,通过直接比较法对上述两个整体文件执行一次差异比较,就可以得到连续存储的多个第三类子文件对应的第二差异数据。因此,图3所示实施例可以减少差异比较的执行次数,从而进一步减少生成增量文件所需的时间,提高升级效率。
[0119]上述实施例中,服务器在执行差异比较并生成增量文件的阶段,通过对旧版压缩文件和新版压缩文件中的子文件进行分类处理,对不同类型的子文件采用不同的差异比较方法得到对应的差异数据,实现兼顾增量文件大小和升级效率的目的。
[0120]在本申请一个可行的实施例中,如图6所示,客户端根据增量文件中的数据类型执行合并操作的流程如下:
[0121]S301、读取下一个增量子文件;
[0122]上述增量子文件即增量文件的子文件,包括上述第一类子文件、第一差异数据以及第二差异数据中的至少一种。
[0123]S302、判断是否读取到增量子文件,如果是,则执行步骤S303,否则结束本流程;
[0124]S303、判断读取到的增量子文件的类型,根据判断结果选择执行步骤S304、S305或者S310 ;
[0125]S304、若该增量子文件为第一类子文件,则将第一类子文件存储于第二存储区,并返回步骤S301 ;
[0126]其中,上述第二存储区为客户端中用于存储新版压缩文件的存储区。
[0127]S305、若该增量子文件为第一差异数据,则读取上述第一差异数据中的文件数据头,并将该文件数据头存入第二存储区;
[0128]S306、读取旧版压缩文件中与第一差异数据对应的第二类子文件;
[0129]S307、对读取到的第二类子文件执行解压操作;
[0130]S308、将解压后的第二类子文件与第一差异数据合并,得到第一合并子文件;
[0131]S309、对上述文件数据头和第一合并子文件进行压缩,得到第一压缩子文件,并将该第一压缩子文件存入第二存储区,并返回步骤S301 ;
[0132]S310、若该增量子文件为第二差异数据,则读取旧版压缩文件中与第二差异数据对应的第三类子文件;
[0133]S311、对读取到的第三类子文件与第二类差异数据执行合并操作,得到第二合并子文件;
[0134]S312、对上述第二合并子文件进行压缩,得到第二压缩子文件,并将该第二压缩子文件存入第二存储区,并返回步骤S301。
[0135]上述流程结束后,即合并操作完成后,客户端的第二存储区中存储的文件集合即为本次增量升级的目标文件,也即与客户端存储的旧版压缩文件对应的新版压缩文件。
[0136]由以上技术方案可知,本申请实施例不仅在增量文件生成阶段,通过服务器对旧版压缩文件和新版压缩文件中的子文件分类,进而对不同类型的子文件采用不同的差异比较方法得到对应的差异数据,实现兼顾增量文件大小和升级效率的目的;而且,在客户端对增量文件和旧版压缩文件执行合并操作时,也根据增量文件的子文件的类型采用不同的合并方法,可以进一步提高增量升级效率。
[0137]以应用于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多次压缩操作(对合并得到的每个子文件执行一次单独压缩操作)。
[0138]若采用本申请实施例的增量升级方法,经过分类,9.6.1版本的压缩文件中有8个子文件为第二类子文件,需要解压后再比较,故只需执行16次解压操作(两个版本的压缩文件各8次)和1次压缩操作(将所有增量子文件压缩为一个增量文件),且增量文件大小为881KB ;相应的,在客户端执行合并操作过程中,只需执行9次解压操作(对增量文件执行1次解压,对9.6.0版本的压缩文件执行8次解压)和8次压缩操作(对8个通过先解压再合并的方式得到的子文件各执行一次)。
[0139]通过以上实例对比可知,相对于传统基于直接比较法实现增量升级的方法,本申请实施例可以减小增量文件的大小;相对于传统基于解压比较法实现增量升级的方法,本申请实施例可以降低操作复杂度,提高升级效率。
[0140]参照图7,本申请实施例提供了另一种增量升级方法,包括如下步骤:
[0141]S41、服务器获取旧版压缩文件和对应的新版压缩文件;
[0142]可选的,本申请实施例可以根据文件名称和/或版本标识符确定相对应的两个压缩文件,进而根据两个压缩文件的版本号确定哪个压缩文件是旧版压缩文件,哪个压缩文件是新版压缩文件。
[0143]S42、服务器对新版压缩文件和旧版压缩文件进行分类处理,得到第一类子文件、第二类子文件和第三类子文件中的至少一种。
[0144]本实施例中,上述第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;上述第二类子文件为新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件;上述第三类子文件为新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件。
[0145]S43、服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据。
[0146]本申请实施例中,由于旧版压缩文件中不存在第一类子文件,即:相对于旧版压缩文件,新版压缩文件中的第一类子文件为新增文件;因此,对于第一类子文件,不需要执行差异比较操作,直接将该第一类子文件作为增量文件的一个子文件即可。
[0147]上述第一类子文件、第一差异数据和第二差异数据的集合,即为记录旧版压缩文件和新版压缩文件之间的差异信息的增量文件。
[0148]S44、服务器将上述第一类子文件、第一差异数据以及第二差异数据发送给客户端,以供客户端对自身存储的旧版压缩文件进行增量升级。
[0149]本申请实施例中,客户端接收到上述第一类子文件、第一差异数据以及第二差异数据,就可以按照以下方式得到新版压缩文件:将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
[0150]可选的,本申请实施例中,预设解压条件可以为:文件压缩前的大小大于预设字节值且压缩率小于预设比值,但不限于此。压缩率为文件压缩后的大小与压缩前的大小之比。
[0151]在本申请一个可行的实施例中,服务器在执行完步骤S41至S43,得到旧版压缩文件和新版压缩文件之间的增量文件(包括第一类子文件、第一差异数据和第二差异数据)后,可以向与其关联的客户端发送升级提示信息,客户端接收到该升级提示信息后,下载相应的增量文件,实现对自身存储的旧版压缩文件的增量升级。
[0152]在本申请另一个可行的实施例中,服务器在接收到客户端发送的文件升级请求后,向客户端发送相应的增量文件,以供客户端对自身存储的旧版压缩文件进行增量升级。
[0153]由上述技术方案可知,本申请实施例提供的增量升级方法,服务器在执行差异比较并生成增量文件的阶段,通过对旧版压缩文件和新版压缩文件中的子文件进行分类处理,对不同类型的子文件采用不同的差异比较方法得到对应类型的差异数
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1