文件增量升级方法及系统的制作方法

文档序号:9453074阅读:751来源:国知局
文件增量升级方法及系统的制作方法
【技术领域】
[0001]本发明涉及移动浏览器技术领域,更为具体地,涉及一种文件增量升级方法及系统。
【背景技术】
[0002]APK (Android Package,安卓安装包)特征值可以唯一确定一个APK文件的版本以及用于增量更新时确定base文件,其中,base文件指的是原始文件。通常,APK特征值可以通过APK的版本号来获取,但在一些特殊情况下,例如在进行增量升级时,需要准确的知道APK文件的当前版本的APK特征值,此种特征值的获取则不能简单的用版本号来获取。
[0003]目前,一般采用MD5 (Message-Digest Algorithm5,信息摘要算法5)或者SHA (Secure Hash Algorithm,安全散列算法)-1等传统算法对整个APK文件的所有数据进行一次计算,用以获得该文件的APK特征值。但出于商业推广的原因,目前各个APK开发者在发布APK的过程中,都要在APK中加入一些特殊标识来区分不同的发行渠道。正是由于这种APK的这种发行特点,使得传统的获取APK文件的APK特征值的方法变得不再适用。这是由于即使是同一个base文件,但经过加入特殊标识后也会变成不同的APK文件,如果还是利用传统的获取APK特征值的方法来获取APK文件的APK特征值则会产生以下问题:
[0004]1、求取APK特征值的计算量较大,计算效率低;
[0005]2、一般一个APK文件都有上千个发行渠道,即使是同一个版本的APK文件在经过添加不同的特殊标识后,也会变成上千个不同的APK文件,那么其对应的APK特征值也会有上千个。需要说明的是,在这上千个APK文件中,其大部分内容是相同的,仅有很少的数据不一致,如果把这上千个APK文件当做不同的文件来做增量升级,其升级的后台维护工作量是巨大的。

【发明内容】

[0006]鉴于上述问题,本发明的目的是提供一种文件增量升级方法及系统,以解决传统的APK特征值的获取的计算量大所导致的增量升级后台维护工作量大的问题,在降低获取APK特征值计算量的同时,提高增量升级的效率。
[0007]根据本发明的一个方面,提供一种文件增量升级方法,包括:
[0008]读取APK文件的ZIP数据信息,ZIP数据信息为ZIP数据头或者ZIP目录表;
[0009]根据所读取的ZIP数据信息获取APK文件的APK特征值;
[0010]根据APK特征值对与APK特征值对应的APK base文件进行增量升级。
[0011 ] 其中,根据所读取的ZIP数据信息获取APK文件的APK特征值的步骤包括:根据所读取的ZIP数据信息,对APK文件进行过滤以获取过滤的APK文件;根据所述过滤的APK文件的ZIP数据信息获取所述过滤的APK文件的APK特征值。
[0012]其中,在对APK文件进行过滤获取过滤的APK文件的过程中,根据所读取的ZIP数据信息所包含的文件名对APK文件进行过滤获取过滤的APK文件。
[0013]另一方面,本发明还提供一种文件增量升级系统,包括:
[0014]信息读取单元,用于读取APK文件的ZIP数据信息,ZIP数据信息为ZIP数据头或者ZIP目录表;
[0015]特征值获取单元,用于根据信息读取单元所读取的ZIP数据信息获取APK文件的APK特征值;
[0016]增量升级单元,用于根据特征值获取单元所获取的APK特征值对与APK特征值对应的APK base文件进行增量升级。
[0017]其中,还包括过滤单元,用于根据信息读取单元所读取的ZIP数据信息,对APK文件进行过滤以获取过滤的APK文件,根据过滤的APK文件的ZIP数据信息获取过滤的APK文件的APK特征值。
[0018]利用上述根据本发明的文件增量升级方法及系统,对所读取的APK文件的ZIP数据信息(该ZIP数据信息为ZIP数据头或者ZIP目录表)进行计算获取APK文件的APK特征值,根据所获取的APK特征值对与该APK特征值对应的APK base文件进行增量升级,即通过对包含APK文件原始信息的ZIP数据头信息或者存储在ZIP最后的目录表进行计算,得到能准确表示整个文件特性的特征值,进而根据特征值对对应的base文件进行增量升级。通过本发明能够在降低获取APK特征值计算量的同时,提高增量升级的效率。
[0019]为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
【附图说明】
[0020]通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
[0021]图1为根据本发明实施例的文件增量升级方法的第一流程示意图;
[0022]图2为根据本发明实施例的文件增量升级方法的第二流程示意图;
[0023]图3为根据本发明实施例的文件增量升级系统的第一逻辑结构框图;
[0024]图4为根据本发明实施例的文件增量升级系统的第二逻辑结构框图。
[0025]在所有附图中相同的标号指示相似或相应的特征或功能。
【具体实施方式】
[0026]以下将结合附图对本发明的具体实施例进行详细描述。
[0027]针对前述传统的APK特征值的获取计算量大导致增量升级时后台维护工作量大的问题,本发明通过对所读取的APK文件的ZIP数据信息(该ZIP数据信息为ZIP数据头或者ZIP目录表)进行计算获取APK文件的APK特征值,根据所获取的APK特征值对与该APK特征值对应的APK base文件进行增量升级,通过本发明能够在降低获取APK特征值计算量的同时,提高增量升级的效率。
[0028]为了便于理解,在对本发明进行详细说明之前,先对本发明的思想进行简要描述。
[0029]本发明的最终目的是对APK文件进行增量升级,APK文件的结构是标准的ZIP压缩结构,而ZIP存储文件的特点是将文件数据压缩以后加上一个ZIP数据头,这个ZIP数据头中记录了文件的原始信息,例如:文件的创建时间、文件名、文件的原始大小、文件压缩后的大小、文件的压缩方式以及文件的CRC校验等信息。
[0030]ZIP文件是将文件逐个、顺序地存储于一个文件中,然后在ZIP文件的最后加上一个ZIP目录表,该目录表记录了所有ZIP数据头偏移位置以及一些和ZIP数据头中类似的文件原始信息。也就是说,ZIP目录表明确了该ZIP文件中包含哪些文件以及所包含的这些文件在该ZIP文件中的位置。
[0031]另外,由于APK特征值能够唯一确定一个APK文件的版本以及用于增量更新时确定APK base文件,因此,本发明利用上述特点,选取那些包含APK文件原始信息的ZIP数据头或者存储在ZIP文件最后的ZIP目录表进行计算,以得到准确表示整个文件特性的特征值。
[0032]为了说明本发明提供的文件增量升级方法,图1示出了根据本发明实施例的文件增量升级方法的第一流程。
[0033]如图1所示,本发明提供的文件增量升级方法包括:
[0034]SllO:读取APK文件的ZIP数据信息,其中,该ZIP数据信息为ZIP数据头或者ZIP
目录表。
[0035]具体地,如上所述,由于ZIP数据头和ZIP目录表中都存储了类似的APK文件的原始信息,因此不管利用ZIP数据头还是利用ZIP目录表都能够准确计算出表示整个APK文件特性的特征值,因此在实际应用中,选择其一即可。
[0036]S120:根据所读取的ZIP数据信息获取APK文件的APK特征值。
[0037]其中,根据所读取的ZIP数据信息获取APK文件的APK特征值的步骤包括:根据所读取的ZIP数据信息,对APK文件进行过滤以获取过滤的APK文件;根据过滤的APK文件的ZIP数据信息获取过滤的APK文件的APK特征值。其中,在根据所读取的ZIP数据信息获取APK文件的APK特征值的过程中,通过MD5或者SHA-1算法对所读取的ZIP数据信息进行计算获取APK文件的APK特征值。
[0038]也就是说,在获取APK文件的APK特征值之前,需要对上述APK文件进行判断,以确定其是否满足文件过滤条件。即根据所读取的ZIP数据信息对上述APK文件进行过滤获取过滤的APK文件。其中,在对APK文件进行过滤以获取过滤的APK文件的过程中,如果未获取到过滤的APK文件,则通过MD5或者SHA-1算法对整个APK文件进行计算获取APK文件的APK特征值。
[0039]即:如果该APK文件满足文件过滤条件,则采用传统的方法对整个APK文件进行MD5或者SHA-1计算以得到该APK文件的APK特征值;如果该APK文件不满足文件过滤条件,则对所读取的ZIP数据信息进行MD5或者SHA-1计算以获取该APK文件的APK特征值,其中,不满足文件过滤条件的APK文件即为过滤的APK文件。
[0040]需要说明的是,由于APK文件的发行特点,虽然很多APK文件不完全一样,但这些APK文件的差异是可以预先知道的。因此如果这些差异是由一个或有限的几个文件修改所造成的,那么在获取APK特征值的过程中,将这些文件排除就能避开这种差异;而如果这些差异是由于附加在ZIP目录表之后的数据引起的,那么通过对APK文件的判断也能避开这
—Tr ο
[0041]也就是说,由于满足文件过滤条件的APK文件是那些预先明确知道会有差异的极少数文件,因此可以以文件名为文件过滤条件对APK文件进行判断。即在对上述APK文件进行过滤获取过滤的APK文件的过程中,根据所读取的ZIP数据信息所包含的文件名对上述APK文件进行过滤获取过滤的APK文件。但需要明确的是,上述的文件过滤条件还可以为文件的大小、文件的创建时间等。即还可以根据所读取的ZIP数据信息所包含的文件的大小或者文件的创建时间对APK文件进行过滤以获取过滤的APK文件。
[0042]另外,由发行渠道所导致的APK文件的差异,但可以认为这些APK文件都是同一个版本的,其大部分内容都是相同的,因此在增量升级的时候可以只对相同的部分做增量升级,极少的差异部分可以认为是新增数据,全量增加就能解决,进而能够维护版本过多的问题,这也正是APK特征值的实用价值所在。
[0043]S130:根据APK特征值对与APK特征值对应的APK base文件进行增量升级。
[0044]具体地,由于一个APK特征值代表一个不同的APK base文件,因此根据特征值选择对应的base文件即可以进行增量升级。
[0045]其中,为了更为详细的说明本发明提供的文件增量升级方法,图2示出了根据本发明实施例的文件增量升级方法的第二流程。如图2所示:
[0046]S210:读取APK文件的ZIP数据
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1