增量文件生成方法、应用程序安装文件更新方法及装置制造方法

文档序号:6526807阅读:169来源:国知局
增量文件生成方法、应用程序安装文件更新方法及装置制造方法
【专利摘要】本发明提供的增量文件生成方法、应用程序安装文件更新方法及装置。由服务器将新版本应用程序压缩包和旧版本应用程序压缩包解压得到新版本应用程序安装文件以及旧版本应用程序安装文件,然后基于解压后的文件生成的增量文件,客户端收到增量文件后基于其存储于本地的旧版本应用程序安装文件和增量文件反向合成新版本应用程序安装文件。由于是由服务器将新版本应用程序压缩包和旧版本应用程序压缩包解压得到新版本应用程序安装文件以及旧版本应用程序安装文件,然后基于解压后的文件生成的增量文件,所以增量文件小,服务器向客户端传输的数据也小,节省了传输流量。
【专利说明】增量文件生成方法、应用程序安装文件更新方法及装置
【技术领域】
[0001]本发明涉及移动通信【技术领域】,更为具体地,涉及一种增量文件生成方法、应用程序安装文件更新方法及装置。
【背景技术】
[0002]目前移动互联网发展迅猛,吃紧的移动带宽及昂贵的流量使得增量升级技术更显重要。
[0003]现有技术中新旧版本安装文件的增量文件的生成方法是基于整个安装压缩包的文件对比而生成的。即在用查分算法生成新旧版本安装文件的压缩包的时候是基于压缩好的文件进行比较,进行的是压缩流的比较,所以获得的增量文件仍然很大。使得移动终端接收的增量文件仍然很大,增量升级技术实现的省流量的效果仍然不好。

【发明内容】

[0004]鉴于上述问题,本发明提出了增量文件生成方法、应用程序安装文件更新方法及装置,该增量文件生成方法、应用程序安装文件更新方法及装置生成的增量文件小,节省了服务器与移动终端传输流量。
[0005]根据本发明的一个方面,提供了一种在服务器执行的用于应用程序升级的增量文件生成方法,包括:在获取到新版本应用程序压缩包后,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,获得新版本应用程序安装文件以及旧版本应用程序安装文件;以及
基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件,
所述增量文件包括文件头和文件体,所述文件头包含新版本应用程序安装文件的版本信息,所述文件体用于存储新版本应用程序安装文件中的各个文件的升级文件信息。
[0006]其中,所述新版本应用程序压缩包以及旧版本应用程序压缩包解压至两个文件夹。
[0007]其中,基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件包括:
针对旧版本应用程序安装文件中的每个文件;
查询在新版本应用程序安装文件中是否存在位于同一目录下的同名文件;
在新版本应用程序安装文件的同一目录下存在文件名相同但文件MD5值不同的文件时,基于该两个文件生成对应的差分文件,将差分文件处理标记信息、该文件的文件名称、存储路径和差分文件作为该文件的升级文件信息写入增量文件的文件体中;
在新版本应用程序安装文件的同一目录下存在文件名相同且文件MD5值相同的文件时,将相同文件处理标记信息、该文件的文件名称和存储路径作为该文件的升级文件信息写入所述增量文件中;
在新版本应用程序安装文件中不存在任何具有相同文件名的文件时,则将该文件的文件名称、存储路径和删除文件处理标记信息作为该文件的升级文件信息写入所述增量文件中;
针对新版本应用程序安装文件中的每个文件,
查询在旧版本安装文件中查询是否存在位于同一目录下的同名文件,在旧版本安装文件中查询不到同名文件时,将该文件的文件名称、存储路径、新增文件处理标记信息和文件数据作为该文件的升级文件信息写入所述增量文件中。
[0008]根据本发明的另一个方面,提供了一种在移动终端执行的应用程序安装文件更新方法,包括:
在从服务器接收到增量文件后,读取与该增量文件对应的旧版本安装文件,所述增量文件是根据权利要求1生成的;
基于增量文件,对旧版本安装文件进行更新得到新版本安装文件。
[0009]其中,基于增量文件,对旧版本安装文件进行更新得到新版本安装文件包括: 从增量文件中读取文件体中的升级文件信息,所述升级文件信息包括文件处理标记信
息、路径信息和文件内容;
在所读取的文件处理标记信息为新增文件处理标记信息时,根据所读取的路径信息和文件内容,将当前文件加入到旧版本安装文件对应路径的文件中;
在所读取的文件处理标记信息为差分文件处理标记信息时,根据所读取的路径信息,查找旧版本安装文件中的对应文件,并基于对应的旧版本文件和差分文件生成新版本文件;
在所读取的文件处理标记信息为删除文件处理标记信息时,根据所读取的路径信息,删除该路径下的旧版本安装文件;
在所读取的文件处理标记信息为相同文件处理标记信息时,根据所读取的路径信息,不对旧版本安装文件的该路径下的该文件进行处理。
[0010]本方法还包括:根据新版本安装文件进行软件升级。
[0011]其中,所述文件头包含新版本安装文件的MD5值,对旧版本安装文件进行更新得到新版本安装文件后还包括:
对更新得到的新版本安装文件进行压缩,生成新版本安装文件压缩文件的MD5值;以

在所生成的新版本安装文件压缩文件的MD5值与所述文件头中的MD5值相同时,确认所得到的新版本安装文件校验合格。
[0012]其中,所述文件头包含旧版本安装文件的MD5值,所述增量文件是服务器响应于移动终端根据本地存储的旧版本安装文件的版本号及MD5值发起的应用程序安装文件更新请求下发的。
[0013]根据本发明的另一个方面,提供了一种用于应用程序升级的增量文件生成装置,包括:
解压单元,用于在获取到新版本应用程序压缩包后,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,获得新版本应用程序安装文件以及旧版本应用程序安装文件;
增量文件生成单元,用于基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件。
[0014]其中,所述增量文件生成单元包括:
第一获取模块,用于获取旧版本应用程序安装文件中的每个文件的文件信息;
第一查询模块,用于根据获取的旧版本应用程序安装文件中的文件信息,查询在新版本应用程序安装文件中是否存在位于同一目录下的同名文件;
第一写入模块,被配置为:
在新版本应用程序安装文件的同一目录下存在文件名相同但文件MD5值不同的文件时,基于该两个文件生成对应的差分文件,将差分文件处理标记信息、该文件的文件名称、存储路径和差分文件作为该文件的升级文件信息写入增量文件的文件体中;
在新版本应用程序安装文件的同一目录下存在文件名相同且文件MD5值相同的文件时,将相同文件处理标记信息、该文件的文件名称和存储路径作为该文件的升级文件信息写入所述增量文件中;
在新版本应用程序安装文件中不存在任何具有相同文件名的文件时,则将该文件的文件名称、存储路径和删除文件处理标记信息作为该文件的升级文件信息写入所述增量文件中;
第二获取模块,用于获取新版本应用程序安装文件中的每个文件的文件信息;
第二查询模块,用于根据获取的新版本应用程序安装文件中的文件信息,在旧版本安装文件中查询是否存在位于同一目录下的同名文件,以及第二写入模块,用于在旧版本安装文件中查询不到同名文件时,将该获取的新版本应用程序安装文件的文件名称、存储路径、新增文件处理标记信息和文件数据作为该文件的升级文件信息写入所述增量文件中。
[0015]根据本发明的另一个方面,提供了一种应用程序安装文件更新装置,所述更新装置设置于移动终端,包括:
旧版本安装文件读取单元,用于在从服务器接收到增量文件后,读取与该增量文件对应的旧版本安装文件,所述增量文件是根据权利要求1生成的;
安装文件更新单元,基于增量文件,对旧版本安装文件进行更新得到新版本安装文件。
[0016]其中,所述安装文件更新单元包括:
增量文件读取模块,用于从增量文件中读取文件体中的升级文件信息,所述升级文件信息包括文件处理标记信息、路径信息和文件内容;
新版本安装文件合并模块,被配置为
在所读取的文件处理标记信息为新增文件处理标记信息时,根据所读取的路径信息和文件内容,将当前文件加入到旧版本安装文件对应路径的文件中;
在所读取的文件处理标记信息为差分文件处理标记信息时时,根据读取的路径信息,查找旧版本安装文件中对应的文件,并基于对应的旧版本文件和差分文件生成新版本文件;
在所读取的文件处理标记信息为删除文件处理标记信息时,根据所读取的路径信息,删除该路径下的旧版本安装文件;
在所读取的文件处理标记信息为相同文件处理标记信息时,根据所读取的路径信息,不对旧版本安装文件的该路径下的文件进行处理。
[0017]其中,应用程序安装文件更新装置还包括文件MD5值生成模块,用于对更新得到的新版本安装文件进行压缩,生成新版本安装文件压缩文件的MD5值;
校验模块,用于在所生成的新版本安装文件压缩文件的MD5值与所述文件头中的MD5值相同时,确认所得到的新版本安装文件校验合格。
[0018]其中,应用程序安装文件更新装置,还包括:
更新请求发送模块,用于移动终端根据本地存储的旧版本安装文件的版本号及MD5值发起的应用程序安装文件更新请求。
[0019]为了实现上述以及相关目的,本发明提供的增量文件生成方法、应用程序安装文件更新方法及装置。由服务器将新版本应用程序压缩包和旧版本应用程序压缩包解压得到新版本应用程序安装文件以及旧版本应用程序安装文件,然后基于解压后的文件生成的增量文件,客户端收到增量文件后基于其存储于本地的旧版本应用程序安装文件和增量文件反向合成新版本应用程序安装文件。由于是由服务器将新版本应用程序压缩包和旧版本应用程序压缩包解压得到新版本应用程序安装文件以及旧版本应用程序安装文件,然后基于解压后的文件生成的增量文件,所以增量文件小,服务器向客户端传输的数据也小,节省了传输流量。
[0020]后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
【专利附图】

【附图说明】
[0021]根据下述参照附图进行的详细描述,本发明的上述和其他目的、特征和优点将变得更加显而易见。在附图中:
图1为本发明的一种在服务器执行的用于应用程序升级的增量文件生成方法流程图;图2为本发明的一种在服务器执行的用于应用程序升级的增量文件生成方法的步骤S2的流程图;
图3为本发明的一种在移动终端执行的应用程序安装文件更新方法的流程图;
图4为本发明的图3中实施步骤S3之前的一个实施例流程图;
图5为本发明的基于增量文件对旧版本安装文件进行更新得到新版本安装文件的步骤详细流程图;
图6为本发明的用于应用程序升级的增量文件生成装置的框图;
图7示出了本发明的增量文件生成单元一个实施例框图;
图8为本发明的应用程序安装文件更新装置的实施框图;
图9本发明的应用程序安装文件更新装置中安装文件更新单元的实施例框图。
[0022]在所有附图中相同的标号指示相似或相应的特征或功能。
【具体实施方式】
[0023]下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。
[0024]下面将参照附图描述本发明的各个实施例。
[0025]图1为本发明的一种在服务器执行的用于应用程序升级的增量文件生成方法流程图。
[0026]如图1所示本发明的一种在服务器执行的用于应用程序升级的增量文件生成方法,包括:
步骤SI,在获取到新版本应用程序压缩包后,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,获得新版本应用程序安装文件以及旧版本应用程序安装文件。
[0027]本步骤中新版本应用程序压缩包可以是程序开发者发送至服务器上的。也就是开发者向服务器发送新版本应用程序压缩包后,查询本地存储的旧版本应用程序压缩包,查询到有旧版本应用程序压缩包时,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,得到新版本应用程序安装文件以及旧版本应用程序安装文件。服务器中如果存储有多个版本的旧版本应用程序压缩包,则每个旧版本应用程序压缩包都需要解压。解压后得到的新版本应用程序安装文件以及旧版本应用程序安装文件一般是二进制文件。
[0028]步骤S2,基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件,所述增量文件包括文件头和文件体,所述文件头包含新版本应用程序安装文件的版本信息,所述文件体用于存储新版本应用程序安装文件中的各个文件的升级文件信息。
[0029]本实施例的一种在服务器执行的用于应用程序升级的增量文件生成方法,由服务器将新版本应用程序压缩包和旧版本应用程序压缩包解压得到新版本应用程序安装文件以及旧版本应用程序安装文件,然后基于解压后的文件生成的增量文件,生成的增量文件小,服务器向客户端传输的数据也小,节省了传输流量。
[0030]图2为本发明的一种在服务器执行的用于应用程序升级的增量文件生成方法的步骤S2的流程图。
[0031]如图2所示,步骤S2基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件包括:
步骤S200获取旧版本应用程序安装文件中的文件的文件信息。由于旧版本应用程序安装文件包含很多个子文件,所以在本步骤中选取的文件为可以为随意选取的文件。例如可以是 E: \a\...\assets\location_public_key.der。
[0032]步骤S201查询在新版本应用程序安装文件中是否存在位于同一目录下的同名文件。这里的同一目录的意思,应该是说相对相同。比如旧版本安装文件解压的目录为E: \a\,新版本安装文件的解压目录为E: \b\,而步骤S200中获取的文件的目录为E: a\c\...\assets\,而其对应的新版本安装文件的目录为E: b\c\...'assets',那么这里比较的时候应该忽略这两个文件的上级两级目录,本发明中同一目录是指VA..Λassets' 相同。
[0033]在新版本应用程序安装文件的同一目录下存在同名文件情况下,进入步骤S202判断文件MD5值是否相同。在判断文件MD5值是否相同之前,首先要生成两个文件的MD5值,可以在本发明实施之前生成,也可以在本发明的步骤SI的解压过程中生成,文件的MD5值是基于两个文件的文件内容生成的,生成方法为常用方法,本发明不再详述。
[0034]在MD5值不同时,则认为两个文件的内容存在差异,进入步骤S203基于该两个文件生成对应的差分文件,将差分文件处理标记信息、该文件的文件名称、存储路径和差分文件作为该文件的升级文件信息写入增量文件的文件体中。这里是通过通用增量算法bsdiff生成两个文件的差分文件,本发明还可以是其它通用的增量算法生成两个文件的差分文件。
[0035]在判断出MD5值相同时,则认为两个文件为完全相同的文件,进入步骤S204将相同文件处理标记信息、该文件的文件名称和存储路径作为该文件的升级文件信息写入所述增量文件中。
[0036]在新版本应用程序安装文件的同一目录下不存在同名文件时,此时旧版本安装文件中这个文件需要删除,之后进入步骤S205将该文件的文件名称、存储路径和删除文件处理标记信息作为该文件的升级文件信息写入所述增量文件中。
[0037]完成S203,S204, S205任意一步骤完成后,进入步骤S206判断旧版本应用程序安装文件中有未处理过的文件。这里判断旧版本应用程序安装文件中有未处理过的文件可以是通过遍历文件的方式,根据文件的目录逐一判断当前处理文件是否进行上面S201至S205的处理。例如当前处理文件为location_public_key.der,其目录为E: a\...\d\assets\,判断该文件需要删除,则完成的是前述步骤的S200、S201、S205,之后步骤S206是首先判断E: \a\...\assets\目录下是否有未经过前面流程处理的文件,没有则继续判断E: \a\...\assets\目录的上一级目录E: \a\...\d\中是否有未进行前面流程处理的文件处理的文件,直到E: a\目录下的所有文件查询完都没有没有处理的文件,则认为旧版本应用程序安装文件中没有未处理过的文件。随便一个目录下有未处理的文件,则进入步骤S207获取旧版本应用程序安装文件中下一未处理文件的文件信息,之后返回步骤S203。
[0038]如果旧版本应用程序安装文件中没有未处理过的文件,则进入步骤S208获取新版本应用程序安装文件中的文件的文件信息,这里的获取也是随意获取。例如是E:b\c\...\f\armeabi\ xxx.so,之后步骤S209判断在旧版本安装文件中是否存在位于同一目录下的同名文件。这里同一目录的判断与前面的判断一样。在旧版本安装文件中查询不到同名文件时,则认为该文件为新增文件,进入步骤S210将该文件的文件名称、存储路径、新增文件处理标记信息和文件数据作为该文件的升级文件信息写入所述增量文件中。
[0039]之后进入步骤S211判断新版本应用程序安装文件中是否有未处理过的文件。这里未处理过的文件的判断方法与前面的判断方法一样,是判断是否有未经过S209和S210步骤处理过,如果不存在未处理的文件,则结束。如果存在未处理过的文件,则进入步骤S212获取新版本应用程序安装文件中下一未处理文件的文件信息,之后返回步骤S209。
[0040]在步骤S209中判断出在旧版本安装文件中存在位于同一目录下的同名文件时,不做处理,结束本流程。
[0041]从上述步骤可以看出本实施例中是基于解压后的文件生成的增量文件,增量文件小。使得服务器向客户端传输的数据也小,节省了流量。
[0042]图3为本发明的一种在移动终端执行的应用程序安装文件更新方法的流程图。[0043]图4为本发明的图3中实施步骤S3之前的一个实施例流程图。
[0044]如图3、图4所示本发明的一种在移动终端执行的应用程序安装文件更新方法包括步骤:
步骤S3在从服务器接收到增量文件后,读取与该增量文件对应的旧版本安装文件。本步骤中所述增量文件是根据上述实施例生成的,即是服务器根据在获取到新版本应用程序压缩包后,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,获得新版本应用程序安装文件以及旧版本应用程序安装文件,基于新版本应用程序安装文件与IH版本应用程序安装文件生成的增量文件。
[0045]本步骤中如果在移动终端本地仅仅是存储了旧版本安装文件的压缩文件,那么在执行步骤S3时首先要将旧版本安装文件的压缩文件进行解压得到旧版本安装文件,然后才能读取所述旧版本安装文件。
[0046]所述增量文件包括文件头和文件体,所述文件头包含新版本应用程序安装文件的版本信息,所述文件体用于存储新版本应用程序安装文件中的各个文件的升级文件信息。
[0047]在S3之前包括步骤S300,移动终端根据本地存储的旧版本安装文件的版本号及MD5值发起应用程序安装文件更新请求。向服务器发送移动终端的本地存储的旧版本安装文件的版本号及MD5值的目的是供服务器对该旧版本安装文件进行校验(步骤S301)。校验目的是判断请求升级的移动终端存储的旧版本安装文件是否为官方发布。如果移动终端的本地存储的旧版本安装文件的版本号及MD5值与服务器上存储的旧版本安装文件的版本号及MD5值对应则认为校验通过,校验通过后,进入步骤S302服务器根据旧版本安装文件的版本号查找对应的增量文件。本发明的优选实施例是当软件发布者发布最新版本安装文件时,就会生成最新版本安装文件与所有旧版本安装文件的增量文件存储在服务器上,例如,软件发布者发布最新版本安装文件的软件版本为V2.3时,而旧版本安装文件的版本有V2.0、V1.9、V1.8、V1.0,服务器就会分别生成V2.3安装文件与V2.0、V1.9、V1.8、V1.0的增量文件。存储在服务器上。找不到合适版本的增量文件时,则进入生成增量文件的程序,即前面实施例的SI,S2步骤。
[0048]找到对应的增量文件之后,服务器向移动终端发送增量文件进入步骤S3或者,找到对应的增量文件之后,进入步骤S303服务器向移动终端发送增量文件的下载地址,之后步骤S304移动终端根据接收的增量文件的下载地址,请求下载增量文件,之后才进入步骤S3。
[0049]完成S3之后,进入步骤S4,基于增量文件对旧版本安装文件进行更新得到新版本安装文件。该过程为增量文件生成过程的逆过程。是移动终端基于其本地存储的旧版本安装文件和增量文件生成新版本安装文件。
[0050]完成步骤S4后,进一步需要对更新得到的新版本安装文件进行压缩,生成新版本安装文件压缩文件的MD5值(步骤S5)。生成新版本安装文件压缩文件的MD5值后,是步骤S6,确认生成的新版本安装文件压缩文件的MD5值与所述增量文件的文件头中包含的新版本安装文件MD5相同,如果相同则认为移动终端更新得到的新版本安装文件校验合格。
[0051]值得说明的是在服务器侧生成的新版本安装文件与旧版本安装文件的增量文件之前,服务器会对新版本安装文件进行预处理,即使用特定的压缩算法压缩软件发布者发布的新版本安装文件,生成新版本安装文件的MD5值。并且在生成增量文件的时候将所生成的新版本安装文件的MD5值写入增量文件的头文件中。所以在上述对移动终端更新得到的新版本安装文件进行校验过程的步骤S5中,对更新得到的新版本安装文件进行压缩,生成新版本安装文件压缩文件的MD5值。其采用的压缩算法必须与服务器对新版本安装文件进行预处理时对软件发布者发布的新版本安装文件进行压缩采用的压缩算法相同。具体的算法采用现有技术中常用的算法进行压缩。
[0052]完成更新得到的新版本安装文件的校验后,进入步骤S7,根据新版本安装文件进行软件升级。
[0053]本发明提供的应用程序安装文件更新方法。使用由服务器将新版本应用程序压缩包和旧版本应用程序压缩包解压得到新版本应用程序安装文件以及旧版本应用程序安装文件,然后基于解压后的文件生成的增量文件和移动终端其存储于本地的旧版本应用程序安装文件反向合成新版本应用程序安装文件。由于是由服务器将新版本应用程序压缩包和旧版本应用程序压缩包解压得到新版本应用程序安装文件以及旧版本应用程序安装文件,然后基于解压后的文件生成的增量文件,所以增量文件小,服务器向移动终端传输的数据也小,节省了传输流量。
[0054]图5为本发明的一种在移动终端执行的应用程序安装文件更新方法的步骤S4的详细流程图。
[0055]如图5所示基于增量文件对旧版本安装文件进行更新得到新版本安装文件,包括步骤S500,从增量文件中读取文件体中的升级文件信息。所述升级文件信息包括文件处理标记信息、路径信息和文件内容。
[0056]之后是步骤S501,确定升级文件处理类型。这里是根据读取的升级文件信息中包含的文件处理标记信息来确定升级文件处理类型。
[0057]在所读取的文件处理标记信息为新增文件处理标记信息时,进入步骤S502,根据所读取的路径信息和文件内容,将当前文件加入到旧版本安装文件对应路径的文件中。
[0058]在所读取的文件处理标记信息为差分文件处理标记信息时,进入步骤S503,根据所读取的路径信息,查找旧版本安装文件中的对应文件,并基于对应的旧版本文件和差分文件生成新版本文件。此步骤的基于对应的旧版本文件和差分文件生成新版本文件的过程是前一实施例步骤S203的逆过程,也就是如果步骤S203采用的是增量算法bsdiff生成两个文件的差分文件,那么此步骤是采用bsdiff算法的逆运算生成新版本文件。如果步骤S203是采用其它通用的增量算法生成两个文件的差分文件,那么对应是其它的差分算法的逆运算。
[0059]在所读取的文件处理标记信息为删除文件处理标记信息时,进入步骤S504,根据所读取的路径信息,删除该路径下的旧版本安装文件。
[0060]在所读取的文件处理标记信息为相同文件处理标记信息时,进入步骤S505,根据所读取的路径信息,不对旧版本安装文件的该路径下的该文件进行处理。
[0061]上述实施例完成了移动终端的安装文件跟新过程,由于是将新版本应用程序压缩包和旧版本应用程序压缩包解压后,得到新版本应用程序安装文件以及旧版本应用程序安装文件是基于解压后的文件生成的增量文件,增量文件小。移动终端接收的数据也小,节省了传输流量。
[0062]图6为本发明的用于应用程序升级的增量文件生成装置的框图。[0063]如图6所示,本发明的增量文件生成装置包括:解压单元600,用于在获取到新版本应用程序压缩包后,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,获得新版本应用程序安装文件以及旧版本应用程序安装文件。所述新版本应用程序压缩包可以是程序开发者发送至服务器上的。也就是开发者向服务器发送新版本应用程序压缩包后,查询本地存储的旧版本应用程序压缩包,查询到有旧版本应用程序压缩包时,解压单元600解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,得到新版本应用程序安装文件以及旧版本应用程序安装文件。服务器中如果存储有多个版本的旧版本应用程序压缩包,则解压单元600需要对每个旧版本应用程序压缩包解压。解压后得到的新版本应用程序安装文件以及旧版本应用程序安装文件一般是二进制文件。
[0064]增量文件生成单元601,用于基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件,所述增量文件包括文件头和文件体,所述文件头包含新版本应用程序安装文件的版本信息,所述文件体用于存储新版本应用程序安装文件中的各个文件的升级文件信息。 [0065]本实施例的一种增量文件生成装置设置于服务器,解压单元将新版本应用程序压缩包和旧版本应用程序压缩包解压后,得到新版本应用程序安装文件以及旧版本应用程序安装文件,增量文件生成单元基于解压后的文件生成的增量文件。由于是基于文件生成的增量文件,所以增量文件小。使得服务器向移动终端传输的数据也小,节省了流量。
[0066]图7示出了本发明的增量文件生成单元一个实施例框图。
[0067]如图7所不增量文件生成单兀601包括--第一获取模块6011、第一查询模块6012、第一写入模块6013、第二获取模块6014、第二查询模块6015和第二查询模块6015。
[0068]第一获取模块6011,用于获取旧版本应用程序安装文件中的所有文件的文件信息。由于旧版本应用程序安装文件包含很多个子文件,所以在第一获取模块6011选取的文件为可以为随意选取的文件。例如可以是E: \a\...\assets\location_public_key.der。
[0069]第一查询模块6012用于查询在新版本应用程序安装文件中是否存在位于同一目录下的同名文件。这里的同一目录的意思,应该是说相对相同。比如旧版本安装文件解压的目录为E: \a\,新版本安装文件的解压目录为E: \b\,而步骤S200中获取的文件的目录为E: a\c\...\assets\,而其对应的新版本安装文件的目录为E: b\c\...\assets\,那么这里比较的时候应该忽略这两个文件的上级两级目录,本发明中同一目录是指\c\...\assets' 相同。
[0070]第一写入模块6013被配置为在新版本应用程序安装文件的同一目录下存在文件名相同但文件MD5值不同的文件时,基于该两个文件生成对应的差分文件,将差分文件处理标记信息、该文件的文件名称、存储路径和差分文件作为该文件的升级文件信息写入增量文件的文件体中。
[0071]在新版本应用程序安装文件的同一目录下存在文件名相同且文件MD5值相同的文件时,将相同文件处理标记信息、该文件的文件名称和存储路径作为该文件的升级文件信息写入所述增量文件。
[0072]本实施例中比较MD5值是否相同前,首先要生成两个文件的MD5值,可以在本发明实施之前生成,也可以在本发明的解压单元600解压文件的过程中生成,文件的MD5值是基于两个文件的文件内容生成的,生成方法为常用方法本发明不再详述。[0073]在新版本应用程序安装文件中不存在任何具有相同文件名的文件时,则将该文件的文件名称、存储路径和删除文件处理标记信息作为该文件的升级文件信息写入所述增量文件中。
[0074]第二获取模块6014用于获取新版本应用程序安装文件中的每个文件的文件信息;第二获取模块6014获取新版本应用程序安装文件第一个文件也是随意获取。例如是E:b\c\...\f\armeabi\ xxx.so,之后是判断该目录下是否有其它的未处理文件,如果有的话则进入下一模块处理,当前目录下的文件全部处理完成后,查询上一级目录下是否有其它的未处理文件,直到所有文件都处理完成。
[0075]第二查询模块6015用于根据获取的新版本应用程序安装文件中的文件信息,在旧版本安装文件中查询是否存在位于同一目录下的同名文件。
[0076]第二写入模块6016用于在旧版本安装文件中查询不到同名文件时,将该获取的新版本应用程序安装文件的文件名称、存储路径、新增文件处理标记信息和文件数据作为该文件的升级文件信息写入所述增量文件。
[0077]图8为本发明的应用程序安装文件更新装置的实施框图。
[0078]如图8所示,所述应用程序安装文件更新装置包括:旧版本安装文件读取单元800,用于在从服务器接收到增量文件后,读取与该增量文件对应的旧版本安装文件,所述增量文件是前述增量文件生成单元601生成的。所述增量文件包括文件头和文件体,所述文件头包含新版本应用程序安装文件的版本信息,所述文件体用于存储新版本应用程序安装文件中的各个文件的升级文件信息。
[0079]本实施例中如果在移动终端本地仅仅是存储了旧版本安装文件的压缩文件,那么在旧版本安装文件读取单元800读取与该增量文件对应的旧版本安装文件前,首先要将旧版本安装文件的压缩文件进行解压得到旧版本安装文件,然后才能读取所述旧版本安装文件。
[0080]安装文件更新单元801,基于增量文件,对旧版本安装文件进行更新得到新版本安装文件。
[0081]作为优选的实施例本发明的应用程序安装文件更新装置还包括:更新请求发送模块804,用于移动终端根据本地存储的旧版本安装文件的版本号及MD5值发起的应用程序安装文件更新请求。向服务器发送移动终端的本地存储的旧版本安装文件的版本号及MD5值的目的是供服务器对该旧版本安装文件进行校验。校验目的是判断请求升级的移动终端存储的旧版本安装文件是否为官方发布。如果移动终端的本地存储的旧版本安装文件的版本号及MD5值与服务器上存储的旧版本安装文件的版本号及MD5值对应则认为校验通过。
[0082]作为优选的实施例本发明的应用程序安装文件更新装置还包括:文件MD5值生成模块802,用于对更新得到的新版本安装文件进行压缩,生成新版本安装文件压缩文件的MD5 值。
[0083]校验模块803,用于在所生成的新版本安装文件压缩文件的MD5值与所述文件头中的MD5值相同时,确认所得到的新版本安装文件校验合格。
[0084]值得说明的是在服务器侧增量文件生成单元601生成的新版本安装文件与旧版本安装文件的增量文件之前,服务器会对新版本安装文件进行预处理,即使用特定的压缩算法压缩软件发布者发布的新版本安装文件,生成新版本安装文件的MD5值。并且在生成增量文件的时候将所生成的新版本安装文件的MD5值写入增量文件的头文件中。所以在上述对移动终端的校验模块803对更新得到的新版本安装文件进行校验时,对移动终端先要对更新得到的新版本安装文件进行压缩生成新版本安装文件压缩文件的MD5值。此时其采用的压缩算法必须与服务器对新版本安装文件进行预处理时对软件发布者发布的新版本安装文件进行压缩采用的压缩算法相同。具体的算法采用现有技术中常用的算法进行压缩。
[0085]图9本发明的应用程序安装文件更新装置中安装文件更新单元的实施例框图。
[0086]如图9所示,安装文件更新单元包括:增量文件读取模块8010,用于从增量文件中读取文件体中的升级文件信息,所述升级文件信息包括文件处理标记信息、路径信息和文件内容。
[0087]新版本安装文件合并模块8011,被配置为
在所读取的文件处理标记信息为新增文件处理标记信息时,根据所读取的路径信息和文件内容,将当前文件加入到旧版本安装文件对应路径的文件中;
在所读取的文件处理标记信息为差分文件处理标记信息时时,根据读取的路径信息,查找旧版本安装文件中对应的文件,并基于对应的旧版本文件和差分文件生成新版本文件;
在所读取的文件处理标记信息为删除文件处理标记信息时,根据所读取的路径信息,删除该路径下的旧版本安装文件;
在所读取的文件处理标记信息为相同文件处理标记信息时,根据所读取的路径信息,不对旧版本安装文件的该路径下的文件进行处理。
[0088]上述实施例完成了移动终端的安装文件跟新,由于是将新版本应用程序压缩包和旧版本应用程序压缩包解压后得到新版本应用程序安装文件以及旧版本应用程序安装文件,是基于解压后的文件生成的增量文件,增量文件小。移动终端接收的数据也小,节省了传输流量。
[0089]此外,典型地,本发明所述的移动终端可为各种手持终端设备,例如手机、个人数字助理(PDA)。
[0090]此外,根据本发明的方法还可以被实现为由移动终端中的处理器(比如CPU)执行的计算机程序,并且存储在移动终端的存储器中。在该计算机程序被处理器执行时,执行本发明的方法中限定的上述功能。
[0091]此外,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的方法中限定的上述功能的计算机程序。
[0092]此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储设备实现。
[0093]本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。
[0094]尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
[0095]虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本
【发明内容】
的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
【权利要求】
1.一种在服务器执行的用于应用程序升级的增量文件生成方法,包括: 在获取到新版本应用程序压缩包后,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,获得新版本应用程序安装文件以及旧版本应用程序安装文件;以及 基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件, 所述增量文件包括文件头和文件体,所述文件头包含新版本应用程序安装文件的版本信息,所述文件体用于存储新版本应用程序安装文件中的各个文件的升级文件信息。
2.如权利要求1所述的增量文件生成方法,其中,所述新版本应用程序压缩包以及旧版本应用程序压缩包解压至两个文件夹。
3.如权利要求2所述的增量文件生成方法,其中,基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件包括: 针对旧版本应用程序安装文件中的每个文件; 查询在新版本应用程序安装文件中是否存在位于同一目录下的同名文件; 在新版本应用程序安装文件的同一目录下存在文件名相同但文件MD5值不同的文件时,基于该两个文件生成对应的差分文件,将差分文件处理标记信息、该文件的文件名称、存储路径和差分文件作为该文件的升级文件信息写入增量文件的文件体中; 在新版本应用程序安装 文件的同一目录下存在文件名相同且文件MD5值相同的文件时,将相同文件处理标记信息、该文件的文件名称和存储路径作为该文件的升级文件信息写入所述增量文件中; 在新版本应用程序安装文件中不存在任何具有相同文件名的文件时,则将该文件的文件名称、存储路径和删除文件处理标记信息作为该文件的升级文件信息写入所述增量文件中; 针对新版本应用程序安装文件中的每个文件, 查询在旧版本安装文件中查询是否存在位于同一目录下的同名文件,在旧版本安装文件中查询不到同名文件时,将该文件的文件名称、存储路径、新增文件处理标记信息和文件数据作为该文件的升级文件信息写入所述增量文件中。
4.一种在移动终端执行的应用程序安装文件更新方法,包括: 在从服务器接收到增量文件后,读取与该增量文件对应的旧版本安装文件,所述增量文件是根据权利要求1生成的; 基于增量文件,对旧版本安装文件进行更新得到新版本安装文件。
5.如权利要求4所述的应用程序安装文件更新方法,基于增量文件,对旧版本安装文件进行更新得到新版本安装文件包括: 从增量文件中读取文件体中的升级文件信息,所述升级文件信息包括文件处理标记信息、路径信息和文件内容; 在所读取的文件处理标记信息为新增文件处理标记信息时,根据所读取的路径信息和文件内容,将当前文件加入到旧版本安装文件对应路径的文件中; 在所读取的文件处理标记信息为差分文件处理标记信息时,根据所读取的路径信息,查找旧版本安装文件中的对应文件,并基于对应的旧版本文件和差分文件生成新版本文件;在所读取的文件处理标记信息为删除文件处理标记信息时,根据所读取的路径信息,删除该路径下的旧版本安装文件; 在所读取的文件处理标记信息为相同文件处理标记信息时,根据所读取的路径信息,不对旧版本安装文件的该路径下的该文件进行处理。
6.如权利要求4所述的应用程序安装文件更新方法,还包括:根据新版本安装文件进行软件升级。
7.如权利要求4所述的应用程序安装文件更新方法,其中,所述文件头包含新版本安装文件的MD5值,对旧版本安装文件进行更新得到新版本安装文件后还包括: 对更新得到的新版本安装文件进行压缩,生成新版本安装文件压缩文件的MD5值;以及 在所生成的新版本安装文件压缩文件的MD5值与所述文件头中的MD5值相同时,确认所得到的新版本安装文件校验合格。
8.如权利要求4所述的应用程序安装文件更新方法,其中,所述文件头包含旧版本安装文件的MD5值,所述增量文件是服务器响应于移动终端根据本地存储的旧版本安装文件的版本号及MD5值发起的应用程序安装文件更新请求下发的。
9.一种用于应用程序升级的增量文件生成装置,包括: 解压单元,用于在获取到新版本应用程序压缩包后,解压所述新版本应用程序压缩包以及本地存储的旧版本应用程序压缩包,获得新版本应用程序安装文件以及旧版本应用程序安装文件; 增量文件生成单元,用于基于新版本应用程序安装文件与旧版本应用程序安装文件,生成增量文件。
10.如权利要求9所述的增量文件生成装置,所述增量文件生成单元包括: 第一获取模块,用于获取旧版本应用程序安装文件中的每个文件的文件信息; 第一查询模块,用于根据获取的旧版本应用程序安装文件中的文件信息,查询在新版本应用程序安装文件中是否存在位于同一目录下的同名文件; 第一写入模块,被配置为 在新版本应用程序安装文件的同一目录下存在文件名相同但文件MD5值不同的文件时,基于该两个文件生成对应的差分文件,将差分文件处理标记信息、该文件的文件名称、存储路径和差分文件作为该文件的升级文件信息写入增量文件的文件体中; 在新版本应用程序安装文件的同一目录下存在文件名相同且文件MD5值相同的文件时,将相同文件处理标记信息、该文件的文件名称和存储路径作为该文件的升级文件信息写入所述增量文件中; 在新版本应用程序安装文件中不存在任何具有相同文件名的文件时,则将该文件的文件名称、存储路径和删除文件处理标记信息作为该文件的升级文件信息写入所述增量文件中; 第二获取模块,用于获取新版本应用程序安装文件中的每个文件的文件信息; 第二查询模块,用于根据获取的新版本应用程序安装文件中的文件信息,在旧版本安装文件中查询是否存在位于同一目录下的同名文件,以及第二写入模块,用于在旧版本安装文件中查询不到同名文件时,将该获取的新版本应用程序安装文件的文件名称、存储路径、新增文件处理标记信息和文件数据作为该文件的升级文件信息写入所述增量文件中。
11.一种应用程序安装文件更新装置,所述更新装置设置于移动终端,包括: 旧版本安装文件读取单元,用于在从服务器接收到增量文件后,读取与该增量文件对应的旧版本安装文件,所述增量文件是根据权利要求1生成的; 安装文件更新单元,基于增量文件,对旧版 本安装文件进行更新得到新版本安装文件。
12.如权利要求11所述的应用程序安装文件更新装置,所述安装文件更新单元包括: 增量文件读取模块,用于从增量文件中读取文件体中的升级文件信息,所述升级文件信息包括文件处理标记信息、路径信息和文件内容; 新版本安装文件合并模块,被配置为 在所读取的文件处理标记信息为新增文件处理标记信息时,根据所读取的路径信息和文件内容,将当前文件加入到旧版本安装文件对应路径的文件中; 在所读取的文件处理标记信息为差分文件处理标记信息时时,根据读取的路径信息,查找旧版本安装文件中对应的文件,并基于对应的旧版本文件和差分文件生成新版本文件; 在所读取的文件处理标记信息为删除文件处理标记信息时,根据所读取的路径信息,删除该路径下的旧版本安装文件; 在所读取的文件处理标记信息为相同文件处理标记信息时,根据所读取的路径信息,不对旧版本安装文件的该路径下的文件进行处理。·
13.如权利要求11所述的应用程序安装文件更新装置,还包括: 文件MD5值生成模块,用于对更新得到的新版本安装文件进行压缩,生成新版本安装文件压缩文件的MD5值; 校验模块,用于在所生成的新版本安装文件压缩文件的MD5值与所述文件头中的MD5值相同时,确认所得到的新版本安装文件校验合格。
14.如权利要求11至13任意一项所述的应用程序安装文件更新装置,还包括: 更新请求发送模块,用于移动终端根据本地存储的旧版本安装文件的版本号及MD5值发起的应用程序安装文件更新请求。
【文档编号】G06F9/445GK103713928SQ201310749085
【公开日】2014年4月9日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】付方助 申请人:优视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1