差异信息文件生成及应用方法、装置与流程

文档序号:12177149阅读:来源:国知局

技术特征:

1.一种差异信息文件生成方法,其特征在于,所述方法包括:

获取原始安装包文件和升级安装包文件,所述升级安装包文件是原始安装包文件升级后的安装包文件,所述原始安装包文件和所述升级安装包文件均包括n个节,每个节中包括至少一个数据项;

对于所述原始安装包文件中的第i节,对比所述第i节在所述原始安装包文件中的数据项以及所述第i节在所述升级安装包文件中的数据项,得到所述第i节的差异信息,i的初始值为1;

将所述第i节的差异信息添加至差异信息文件中;

当i小于n时,则令i=i+1,重新执行对比所述第i节在所述原始安装包文件中的数据项以及所述第i节在所述升级安装包文件中的数据项的步骤;

当i等于n时,得到所述差异信息文件。

2.根据权利要求1所述的方法,其特征在于,所述第i节的差异信息包括所述第i节的操作序列和所述第i节的修正序列,其中:

所述第i节的操作序列包括所述原始安装包文件中所述第i节被删除的数据项,和/或,所述升级安装包文件中所述第i节增加的数据项;

所述第i节的修正序列包括所述第i节在所述原始安装包文件和所述升级安装包文件中相同数据项的修正数据,所述数据项的修正数据限定了以下前一种或两种:所述数据项在所述原始安装包文件的索引号以及在所述升级安装包文件的索引号之间的对应关系,和,所述数据项在所述原始安装包文件的文件偏移以及在所述升级安装包文件的文件偏移之间的对应关系。

3.根据权利要求2所述的方法,其特征在于,所述对比所述第i节在所述原始安装包文件中的数据项以及所述第i节在所述升级安装包文件中的数据项,得到所述第i节的差异信息,包括:

当所述第i节中的数据项的属性包括文件偏移时,利用所述第i节所引用的节的修正序列对所述第i节在所述原始安装包文件和所述升级安装包文件中的所有数据项进行修正,将所述原始安装包文件中修正后的数据项按照预定排序方式存入第一数组,将所述升级安装包文件中修正后的数据项按照所述预定排序方式存入第二数组;

当所述第i节中的数据项的属性不包括文件偏移时,将所述原始安装包文件中的数据项按照所述预定排序方式存入所述第一数组,将所述升级安装包文件中的数据项按照所述预定排序方式存入所述第二数组;

对比所述第一数组和所述第二数组,将所述第一数组中被删除的数据项以及所述第二数组中增加的数据项添加至所述第i节的操作序列中,将利用所述第一数组和所述第二数组中相同数据项生成的修正数据添加至所述第i节的修正序列中,将所述第i节的操作序列和所述第i节的修正序列作为所述第i节的差异信息,

其中,所述第i节的修正序列用于对引用所述第i节的其他节中的数据项进行修正。

4.根据权利要求3所述的方法,其特征在于,所述对比所述第一数组和所述第二数组,将所述第一数组中被删除的数据项以及所述第二数组中增加的数据项添加至所述第i节的操作序列中,将利用所述第一数组和所述第二数组中相同数据项生成的修正数据添加至所述第i节的修正序列中,包括:

从所述第一数组中读取第j数据项,从所述第二数组中读取第k数据项,j和k的初始值均为1;

在所述第一数组中的第j数据项小于所述第二数组中的第k数据项时,将所述第j数据项作为删除项添加至所述操作序列,令j=j+1,重复执行所述从所述第一数组中读取第j数据项的步骤;

在所述第一数组中的第j数据项大于所述第二数组中的第k数据项时,将所述第k数据项作为新增项添加至所述操作序列,令k=k+1,重复执行从所述第二数组中读取第k数据项的步骤;

在所述第一数组中的第j数据项等于所述第二数组中的第k数据项时,根据所述第j数据项和所述第k数据项记录修正数据,将所述修正数据添加至所述第i节的修正序列中,令j=j+1、k=k+1,重复执行从所述第一数组中读取第j数据项,从所述第二数组中读取第k数据项的步骤;

当所述第一数组中的数据项全部被读取完时,将所述第二数组中剩余的数据项作为新增项添加至所述操作序列中;

当所述第二数组中的数据项全部被读取完时,将所述第一数组中剩余的数据项作为删除项添加至所述操作序列中。

5.根据权利要求4所述的方法,其特征在于,所述根据所述第j数据项和所述第k数据项记录修正数据,包括:

当所述第i节中的数据项的属性不包括文件偏移时,记录所述第j数据项的索引号与所述第k数据项的索引号对应;

当所述第i节中的数据项的属性包括文件偏移时,记录所述第j数据项的索引号与所述第k数据项的索引号对应,记录所述第j数据项的文件偏移与所述第k数据项的文件偏移对应。

6.根据权利要求3所述的方法,其特征在于,在所述将所述第一数组中被删除的数据项以及所述第二数组中新增的数据项添加至所述第i节的操作序列中之后,所述方法还包括:

按照所述预定排序方式对所述操作序列中的数据项进行排序;

遍历排序后的所述操作序列,若相邻的两个数据项中在前数据项为删除项,在后数据项为新增项,且所述相邻的两个数据项的索引号相同时,从所述操作序列中删除所述相邻的两个数据项,在删除的位置插入数值与所述新增项相同的替换项。

7.根据权利要求3所述的方法,其特征在于,所述预定排序方式包括:

按照数据项递增的顺序排列各个数据项;

在数据项相同时,按照数据项的索引号递增的顺序排列各个数据项;

其中,对于数据项中的第一数据项和第二数据项,当所述第一数据项的索引号小于所述第二数据项的索引号,所述第一数据项小于或等于所述第二数据项。

8.一种差异信息文件应用方法,其特征在于,所述方法包括:

获取原始安装包文件和差异信息文件,所述差异信息文件包含所述原始安装包文件和与所述原始安装包对应的升级安装包文件之间的差异信息,所述原始安装包文件包括n个节,每个节中包括至少一个数据项;

对于所述原始安装包文件中的第i原始节,根据所述第i原始节在所述原始安装包文件中的数据项、所述差异信息文件中所述第i原始节的差异信息,生成与所述第i原始节对应的第i升级节,i的初始值为1;

将所述第i升级节添加至所述升级安装包文件中;

当i小于n时,则令i=i+1,重新执行根据所述第i原始节在所述原始安装包文件中的数据项、所述差异信息文件中所述第i原始节的差异信息,生成与所述第i原始节对应的第i升级节的步骤;

当i等于n时,得到所述升级安装包文件。

9.根据权利要求8所述的方法,其特征在于,所述第i原始节的差异信息包括所述第i原始节的操作序列和第一修正序列,其中:

所述第i原始节的操作序列包括所述原始安装包文件中所述第i原始节被替换的数据项,和/或,所述第一安装包文件中所述第i原始节增加的数据项;

所述第i原始节的第一修正序列包括所述第i原始节在所述原始安装包文件和所述升级安装包文件中相同数据项的第一修正数据,所述数据项的第一修正数据限定了以下前一种或两种:所述数据项在所述原始安装包文件的索引号以及在所述升级安装包文件的索引号之间的对应关系,和,所述数据项在所述原始安装包文件的文件偏移以及在所述升级安装包文件的文件偏移之间的对应关系。

10.根据权利要求9所述的方法,其特征在于,所述根据所述第i原始节在所述原始安装包文件中的数据项、所述差异信息文件中所述第i原始节的差异信息,生成与所述第i原始节对应的第i升级节,包括:

对于所述第i原始节中的第j数据,读取所述原始安装包文件中所述第i原始节的所述第j数据项;

当所述第j数据项的索引号对应所述第一修正序列中的第一修正数据时,将所述第j个数据项的数据加入所述第i升级节,根据所述第一修正数据修正所述第i升级节中加入的所述第j数据项的属性,记录第二修正数据,将所述第二修正数据添加至第二修正序列中,所述第二修正序列用于对引用所述第i原始节的其他原始节中的数据项进行修正,j的初始值为1;

当所述第j数据项的索引号对应所述操作序列中的新增项时,将所述新增项的数据加入与所述第i升级节中;

当所述第j数据项的索引号对应所述操作序列中的替换项时,将所述替换项的数据加入与所述第i升级节中;

当所述第i原始节存在尚未处理的数据项时,则令i=i+1,重新执行读取所述原始安装包文件中所述第i原始节的所述第j数据项的步骤;

当所述第i原始节不存在尚未处理的数据项,且所述第i原始节的操作序列的数据项均被添加至所述第i升级节时,得到所述第i升级节;

在得到所述原始安装包文件中所有原始节的升级节时,根据所有升级节生成与所述原始安装包文件对应的升级安装包文件。

11.根据权利要求10所述的方法,其特征在于,所述根据所述第一修正数据修正所述第i升级节中加入的所述第j数据项的属性,包括:

当所述第i原始节中的数据项的属性不包括文件偏移时,根据所述第一修正数据修正所述第i升级节中加入的所述第j数据项的索引号属性;

当所述第i原始节中的数据项的属性包括文件偏移时,根据所述第一修正数据修正所述第i升级节中加入的所述第j数据项的索引号属性和文件偏移属性。

12.根据权利要求10所述的方法,其特征在于,所述记录第二修正数据,包括:

当所述第j数据项的属性不包括文件偏移时,记录所述第j数据项在所述第i原始节中的索引号与在所述第i升级节的索引号对应;

当所述第j数据项的属性包括文件偏移时,记录所述第j数据项在所述第i原始节中的索引号与在所述第i升级节的索引号对应,且记录第j数据项在所述第i原始节中的文件偏移与在所述第i升级节的文件偏移对应。

13.一种差异信息文件生成装置,其特征在于,所述装置包括:

获取模块,用于获取原始安装包文件和升级安装包文件,所述升级安装包文件是原始安装包文件升级后的安装包文件,所述原始安装包文件和所述升级安装包文件均包括n个节,每个节中包括至少一个数据项;

对比模块,用于对于所述原始安装包文件中的第i节,对比所述第i节在所述原始安装包文件中的数据项以及所述第i节在所述升级安装包文件中的数据项,得到所述第i节的差异信息,i的初始值为1;

添加模块,用于将所述对比模块对比得到的所述第i节的差异信息添加至差异信息文件中;

所述对比模块,还用于当i小于n时,则令i=i+1,重新执行对比所述第i节在所述原始安装包文件中的数据项以及所述第i节在所述升级安装包文件中的数据项的步骤;当i等于n时,得到所述差异信息文件。

14.根据权利要求13所述的装置,其特征在于,所述第i节的差异信息包括所述第i节的操作序列和所述第i节的修正序列,其中:

所述第i节的操作序列包括所述原始安装包文件中所述第i节被删除的数据项,和/或,所述升级安装包文件中所述第i节增加的数据项;

所述第i节的修正序列包括所述第i节在所述原始安装包文件和所述升级安装包文件中相同数据项的修正数据,所述数据项的修正数据限定了以下前一种或两种:所述数据项在所述原始安装包文件的索引号以及在所述升级安装包文件的索引号之间的对应关系,和,所述数据项在所述原始安装包文件的文件偏移以及在所述升级安装包文件的文件偏移之间的对应关系。

15.根据权利要求14所述的装置,其特征在于,所述对比模块,包括:

第一添加单元,用于当所述第i节中的数据项的属性包括文件偏移时,利用所述第i节所引用的节的修正序列对所述第i节在所述原始安装包文件和所述升级安装包文件中的所有数据项进行修正,将所述原始安装包文件中修正后的数据项按照预定排序方式存入第一数组,将所述升级安装包文件中修正后的数据项按照所述预定排序方式存入第二数组;

第二添加单元,用于当所述第i节中的数据项的属性不包括文件偏移时,将所述原始安装包文件中的数据项按照所述预定排序方式存入所述第一数组,将所述升级安装包文件中的数据项按照所述预定排序方式存入所述第二数组;

对比单元,用于对比所述第一数组和所述第二数组,将所述第一数组中被删除的数据项以及所述第二数组中增加的数据项添加至所述第i节的操作序列中,将利用所述第一数组和所述第二数组中相同数据项生成的修正数据添加至所述第i节的修正序列中,将所述第i节的操作序列和所述第i节的修正序列作为所述第i节的差异信息,

其中,所述第i节的修正序列用于对引用所述第i节的其他节中的数据项进行修正。

16.根据权利要求15所述的装置,其特征在于,所述对比单元,还用于:

从所述第一数组中读取第j数据项,从所述第二数组中读取第k数据项,j和k的初始值均为1;

在所述第一数组中的第j数据项小于所述第二数组中的第k数据项时,将所述第j数据项作为删除项添加至所述操作序列,令j=j+1,重复执行所述从所述第一数组中读取第j数据项的步骤;

在所述第一数组中的第j数据项大于所述第二数组中的第k数据项时,将所述第k数据项作为新增项添加至所述操作序列,令k=k+1,重复执行从所述第二数组中读取第k数据项的步骤;

在所述第一数组中的第j数据项等于所述第二数组中的第k数据项时,根据所述第j数据项和所述第k数据项记录修正数据,将所述修正数据添加至所述第i节的修正序列中,令j=j+1、k=k+1,重复执行从所述第一数组中读取第j数据项,从所述第二数组中读取第k数据项的步骤;

当所述第一数组中的数据项全部被读取完时,将所述第二数组中剩余的数据项作为新增项添加至所述操作序列中;

当所述第二数组中的数据项全部被读取完时,将所述第一数组中剩余的数据项作为删除项添加至所述操作序列中。

17.根据权利要求16所述的装置,其特征在于,所述对比单元,还用于:

当所述第i节中的数据项的属性不包括文件偏移时,记录所述第j数据项的索引号与所述第k数据项的索引号对应;

当所述第i节中的数据项的属性包括文件偏移时,记录所述第j数据项的索引号与所述第k数据项的索引号对应,记录所述第j数据项的文件偏移与所述第k数据项的文件偏移对应。

18.根据权利要求15所述的装置,其特征在于,所述装置还包括:

排序模块,用于按照所述预定排序方式对所述操作序列中的数据项进行排序;

替换模块,用于遍历所述排序模块排序后的所述操作序列,若相邻的两个数据项中在前数据项为删除项,在后数据项为新增项,且所述相邻的两个数据项的索引号相同时,从所述操作序列中删除所述相邻的两个数据项,在删除的位置插入数值与所述新增项相同的替换项。

19.根据权利要求15所述的装置,其特征在于,所述预定排序方式包括:

按照数据项递增的顺序排列各个数据项;

在数据项相同时,按照数据项的索引号递增的顺序排列各个数据项;

其中,对于数据项中的第一数据项和第二数据项,当所述第一数据项的索引号小于所述第二数据项的索引号,所述第一数据项小于或等于所述第二数据项。

20.一种差异信息文件应用装置,其特征在于,所述装置包括:

获取模块,用于获取原始安装包文件和差异信息文件,所述差异信息文件包含所述原始安装包文件和与所述原始安装包对应的升级安装包文件之间的差异信息,所述原始安装包文件包括n个节,每个节中包括至少一个数据项;

生成模块,用于对于所述原始安装包文件中的第i原始节,根据所述第i原始节在所述原始安装包文件中的数据项、所述差异信息文件中所述第i原始节的差异信息,生成与所述第i原始节对应的第i升级节,i的初始值为1;

添加模块,用于将所述生成模块得到的所述第i升级节添加至所述升级安装包文件中;

所述生成模块,还用于当i小于n时,则令i=i+1,重新执行根据所述第i原始节在所述原始安装包文件中的数据项、所述差异信息文件中所述第i原始节的差异信息,生成与所述第i原始节对应的第i升级节的步骤;当i等于n时,得到所述升级安装包文件。

21.根据权利要求20所述的装置,其特征在于,所述第i原始节的差异信息包括所述第i原始节的操作序列和第一修正序列,其中:

所述第i原始节的操作序列包括所述原始安装包文件中所述第i原始节被替换的数据项,和/或,所述第一安装包文件中所述第i原始节增加的数据项;

所述第i原始节的第一修正序列包括所述第i原始节在所述原始安装包文件和所述升级安装包文件中相同数据项的第一修正数据,所述数据项的第一修正数据限定了以下前一种或两种:所述数据项在所述原始安装包文件的索引号以及在所述升级安装包文件的索引号之间的对应关系,和,所述数据项在所述原始安装包文件的文件偏移以及在所述升级安装包文件的文件偏移之间的对应关系。

22.根据权利要求21所述的装置,其特征在于,所述生成模块,包括:

读取单元,用于对于所述第i原始节中的第j数据,读取所述原始安装包文件中所述第i原始节的所述第j数据项;

第一添加单元,用于当所述第j数据项的索引号对应所述第一修正序列中的第一修正数据时,将所述第j个数据项的数据加入所述第i升级节,根据所述第一修正数据修正所述第i升级节中加入的所述第j数据项的属性,记录第二修正数据,将所述第二修正数据添加至第二修正序列中,所述第二修正序列用于对引用所述第i原始节的其他原始节中的数据项进行修正,j的初始值为1;

第二添加单元,用于当所述第j数据项的索引号对应所述操作序列中的新增项时,将所述新增项的数据加入与所述第i升级节中;

第三添加单元,用于当所述第j数据项的索引号对应所述操作序列中的替换项时,将所述替换项的数据加入与所述第i升级节中;

所述读取单元,还用于当所述第i原始节存在尚未处理的数据项时,则令i=i+1,重新执行读取所述原始安装包文件中所述第i原始节的所述第j数据项的步骤;当所述第i原始节不存在尚未处理的数据项,且所述第i原始节的操作序列的数据项均被添加至所述第i升级节时,得到所述第i升级节;

生成单元,用于在得到所述原始安装包文件中所有原始节的升级节时,根据所有升级节生成与所述原始安装包文件对应的升级安装包文件。

23.根据权利要求22所述的装置,其特征在于,所述第一添加单元,还用于:

当所述第i原始节中的数据项的属性不包括文件偏移时,根据所述第一修正数据修正所述第i升级节中加入的所述第j数据项的索引号属性;

当所述第i原始节中的数据项的属性包括文件偏移时,根据所述第一修正数据修正所述第i升级节中加入的所述第j数据项的索引号属性和文件偏移属性。

24.根据权利要求22所述的装置,其特征在于,所述第一添加单元,还用于:

当所述第j数据项的属性不包括文件偏移时,记录所述第j数据项在所述第i原始节中的索引号与在所述第i升级节的索引号对应;

当所述第j数据项的属性包括文件偏移时,记录所述第j数据项在所述第i原始节中的索引号与在所述第i升级节的索引号对应,且记录第j数据项在所述第i原始节中的文件偏移与在所述第i升级节的文件偏移对应。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1