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

文档序号:9646454阅读:来源:国知局
术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0034]图1为本申请实施例提供的一种增量升级方法的流程示意图;
[0035]图2为本申请实施例提供的增量升级方法中生成增量文件的一种流程示意图;
[0036]图3为本申请实施例提供的增量升级方法中生成增量文件的另一种流程示意图;
[0037]图4为本申请实施例中旧版压缩文件和新版压缩文件的存储结构示意图;
[0038]图5为本申请实施例中第一缓存区和第二缓存区的存储结构示意图;
[0039]图6为本申请实施例提供的增量升级方法中客户端执行合并操作的流程示意图;
[0040]图7为本申请实施例提供的另一种增量升级方法的流程示意图;
[0041]图8为本申请实施例提供的又一种增量升级方法的流程示意图;
[0042]图9为本申请实施例提供的实现增量升级的服务器和客户端的关系示意图;
[0043]图10为本申请实施例提供的一种服务器的结构框图;
[0044]图11为本申请实施例提供的一种客户端的结构框图;
[0045]图12为本申请实施例提供的另一种服务器的结构框图;
[0046]图13为本申请实施例提供的另一种客户端的结构框图。
【具体实施方式】
[0047]本申请实施例提供一种增量升级方法及相关装置,以解决常用增量升级方法无法兼顾增量文件大小和升级效率的问题。
[0048]为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0049]图1为本申请实施例提供的一种增量升级方法的流程图。
[0050]参见图1,本实施例提供的增量升级方法包括以下步骤:
[0051]S11、服务器获取第一压缩文件和对应的第二压缩文件。
[0052]可选的,本申请实施例可以根据文件名称和/或版本标识符确定相对应的两个压缩文件,进而根据两个压缩文件的版本号确定哪个压缩文件是旧版压缩文件,哪个压缩文件是新版压缩文件。
[0053]例如,服务器中有名称均为uc_browser.apk的两个压缩文件,则这两个压缩文件为相对应的两个压缩文件;进一步的,这两个压缩文件中,一个压缩文件的版本号为
9.6.0,另一个压缩文件的版本号为9.6.1,则可以确定后者的版本号更高,为新版本文件,故可以确定:版本号为9.6.0的压缩文件为旧版压缩文件,版本号为9.6.1的压缩文件为新版压缩文件。
[0054]S12、服务器对新版压缩文件和旧版压缩文件进行分类处理,得到第一类子文件、第二类子文件和第三类子文件中的至少一种。
[0055]本实施例中,第一类子文件为在新版压缩文件中存在而在旧版压缩文件中不存在的子文件;第二类子文件为新版压缩文件和旧版压缩文件中都存在的且都满足预设解压条件的子文件;第三类子文件为新版压缩文件和旧版压缩文件中都存在的且不都满足预设解压条件的子文件。
[0056]本申请实施例的压缩文件(包括旧版压缩文件和新版压缩文件),是指由多个压缩子文件按一定顺序存储,得到的一个文件;更具体的,压缩文件格式可以为zip格式,对应的常见文件包括apk格式的文件、大部分游戏资源文件、以及一些大型应用的数据文件。以新版压缩文件为例,可以根据功能等因素将新版本文件中数据分组,将每组中的数据和/或子文件分别压缩,得到多个压缩子文件,将这些压缩子文件按照预定的顺序排列,即得到新版本文件的压缩文件。
[0057]以新版子文件表示新版压缩文件中的子文件,旧版子文件表示旧版压缩文件中的子文件。例如,对于某一新版子文件,如果不存在与其对应的旧版子文件,则该新版子文件即为第一类子文件。
[0058]再如,对于另一新版子文件,如果存在与其对应的旧版子文件,且该另一新版子文件和对应的旧版子文件都满足预设解压条件,则该另一新版子文件即为新版压缩文件中的第二类子文件,该对应的旧版子文件即为旧版压缩文件中的第二类子文件。
[0059]又如,对于又一新版子文件,如果存在与其对应的旧版子文件,且该又一新版子文件和对应的旧版子文件不都满足上述预设解压条件(即:或者该又一新版子文件不满足预设解压条件,或者对应的旧版子文件不满足预设解压条件,或者该又一新版子文件和对应的旧版子文件都不满足预设解压条件),则该又一新版子文件即为新版压缩文件中的第三类子文件,该对应的旧版子文件即为旧版压缩文件中的第三类子文件。
[0060]需要说明的是,分类处理完成后,如果只得到第一类子文件,说明新版子文件全部为新增文件,而不是在旧版子文件的基础上修改得到的。如果分类处理完成后,只得到第二类子文件或只得到第三类子文件,说明新版子文件都是在对应的旧版子文件的基础上修改得到的。
[0061]本实施例所述的新版子文件与旧版子文件对应,是指该新版子文件和旧版子文件实现的功能相同(或相似)。实际应用中,相对应的子文件的文件名是相同的,因此,可以通过在旧版压缩文件中查找文件名与新版子文件的文件名相同的子文件,查找到的子文件即为与新版子文件对应的旧版子文件。
[0062]常用的增量升级方式中,对压缩文件中所有的数据或子文件采用同一种差异比较方式,以得到相应的增量文件。然而,申请人研究发现,不同的子文件对应的最优差异比较方式可能不同。
[0063]例如,有些文件压缩前后的大小差异很小甚至无差异,相应的,采用解压比较法和直接比较法得到的两种差异数据的大小也差异不大;然而由于解压比较法需要多次执行解压缩操作,故执行效率相对于直接比较法较低;因此,对于此类文件,优选的差异比较方式为直接比较法。
[0064]又如,对于压缩前后大小差异较大的文件,虽然采用解压比较法需要牺牲一定的执行效率,但由于解压后得到的数据颗粒度更小,可以识别旧版子文件和新版子文件中内容相同但顺序关系不同的数据,避免因数据排列顺序的改变导致文件整体差异较大的问题,故得到的差异数据的大小远小于采用直接比较法得到的差异数据的大小;因此,对于此类文件,优选的差异比较方式为解压比较法。
[0065]有鉴于此,本申请实施例根据预设解压条件区分上述两类文件,以便于对每类文件采用最优的差异比较方式。
[0066]S13、服务器对新版压缩文件以及旧版压缩文件中的第二类子文件解压并进行差异比较,得到第一差异数据;对新版压缩文件以及旧版压缩文件中的第三类子文件不解压直接进行差异比较,得到第二差异数据。
[0067]上述第一类子文件、第一差异数据和第二差异数据的集合,即为记录旧版压缩文件和新版压缩文件之间的差异信息的增量文件;每个第一类子文件、每个第一差异数据以及每个第二差异数据分别为一个增量子文件。
[0068]本申请实施例中,由于旧版压缩文件中不存在第一类子文件,即:相对于旧版压缩文件,新版压缩文件中的第一类子文件为新增文件;因此,对于第一类子文件,不需要执行差异比较操作,直接将该第一类子文件作为增量文件的一个子文件即可。
[0069]本申请实施例中,对于满足预设解压条件的第二类子文件,采用先解压后比较的差异比较方式,可以减小相应的增量子文件的大小,进而减小增量文件的大小;对于不满足预设解压条件的第三类子文件,采用直接比较方式,可以缩短差异比较所用的时间,提高增量文件的生成效率,进而提高增量升级效率。
[0070]本申请实施例中,对不同类型的新版子文件和旧版子文件执行不同的差异比较操作,可以达到兼顾增量子文件大小和差异比较效率的目的。
[0071]可选的,还可以将上述第一类子文件、第一差异数据和第二差异数据压缩为一个文件,得到压缩文件形式的增量文件,以便于完整准确的发送/下载该增量文件。
[0072]S14、客户端从服务器获取增量文件,该增量文件包括上述第一类子文件、第一差异数据以及第二差异数据中的至少一种。
[0073]S15、客户端根据获取到的增量文件中的数据类型,对获取到的增量文件和自身存储的旧版压缩文件执行合并操作,得到新版压缩文件。
[0074]本申请实施例中,客户端按照以下方式执行合并操作,得到新版压缩文件:旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对该第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对该第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。
[0075]可选的,客户端可以设置新版压缩文件存储区,并按照以下方式执行合并操作:将上述第一类子文件直接存入该新版压缩文件存储区;将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,然后将合并后的数据进行压缩,得到第一压缩子文件,并将该第一压缩子文件存入新版压缩文件存储区;将旧版压缩文件的第三类子文件与上述第二差异数据合并,将合并后的数据进行压缩,得到第二压缩子文件,并将该第二压缩子文件存入新版压缩文件存储区。合并操作执行完后,新版压缩文件存储区中存储的文件集合即为新版压缩文件。
[0076]由上述技术方案可知,本申请实施例提供的增量升级方法,服务器在生成增量文件时,首先将旧版压缩文件和新版压缩文件中的子文件分类,然后对不同类型的子文件执行不同的差异比较步骤,得到对应的差异数据:将新版压缩文件中存在而在旧版压缩文件中不存在的第一类子文件作为新增数据,对不满足预设解压条件的第三类子文件采用比较效率更高的直接比较法得到对应的第二差异数据,对满足预设解压条件的第二类子文件采用可以使差异数据较小的解压比较法得到对应的第一差异数据;进而客户端从服务器获取上述第一类子文件、第一差异数据以及第二差异数据,并将旧版压缩文件的第二类子文件解压缩后,与上述第一差异数据合并,得到第一合并子文件,对上述第一合并子文件进行压缩,得到第一压缩子文件;将旧版压缩文件的第三类子文件与上述第二差异数据合并,得到第二合并子文件,对上述第二合并子文件进行压缩,得到第二压缩子文件;合并上述第一压缩子文件、第二压缩子文件以及第一类子文件,得到新版压缩文件。因此,本申请实施例根据压缩文件中子文件的类型选择对应的差异比较方式及合并操作方式,对于整个增量升级过程而言,可以达到兼顾增量文件
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1