1.一種差異信息文件生成方法,其特征在于,所述方法包括:
獲取原始安裝包文件和升級安裝包文件,所述升級安裝包文件是原始安裝包文件升級后的安裝包文件,所述原始安裝包文件和所述升級安裝包文件均包括n個(gè)節(jié),每個(gè)節(jié)中包括至少一個(gè)數(shù)據(jù)項(xiàng);
對于所述原始安裝包文件中的第i節(jié),對比所述第i節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)以及所述第i節(jié)在所述升級安裝包文件中的數(shù)據(jù)項(xiàng),得到所述第i節(jié)的差異信息,i的初始值為1;
將所述第i節(jié)的差異信息添加至差異信息文件中;
當(dāng)i小于n時(shí),則令i=i+1,重新執(zhí)行對比所述第i節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)以及所述第i節(jié)在所述升級安裝包文件中的數(shù)據(jù)項(xiàng)的步驟;
當(dāng)i等于n時(shí),得到所述差異信息文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第i節(jié)的差異信息包括所述第i節(jié)的操作序列和所述第i節(jié)的修正序列,其中:
所述第i節(jié)的操作序列包括所述原始安裝包文件中所述第i節(jié)被刪除的數(shù)據(jù)項(xiàng),和/或,所述升級安裝包文件中所述第i節(jié)增加的數(shù)據(jù)項(xiàng);
所述第i節(jié)的修正序列包括所述第i節(jié)在所述原始安裝包文件和所述升級安裝包文件中相同數(shù)據(jù)項(xiàng)的修正數(shù)據(jù),所述數(shù)據(jù)項(xiàng)的修正數(shù)據(jù)限定了以下前一種或兩種:所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的索引號以及在所述升級安裝包文件的索引號之間的對應(yīng)關(guān)系,和,所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的文件偏移以及在所述升級安裝包文件的文件偏移之間的對應(yīng)關(guān)系。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對比所述第i節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)以及所述第i節(jié)在所述升級安裝包文件中的數(shù)據(jù)項(xiàng),得到所述第i節(jié)的差異信息,包括:
當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),利用所述第i節(jié)所引用的節(jié)的修正序列對所述第i節(jié)在所述原始安裝包文件和所述升級安裝包文件中的所有數(shù)據(jù)項(xiàng)進(jìn)行修正,將所述原始安裝包文件中修正后的數(shù)據(jù)項(xiàng)按照預(yù)定排序方式存入第一數(shù)組,將所述升級安裝包文件中修正后的數(shù)據(jù)項(xiàng)按照所述預(yù)定排序方式存入第二數(shù)組;
當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),將所述原始安裝包文件中的數(shù)據(jù)項(xiàng)按照所述預(yù)定排序方式存入所述第一數(shù)組,將所述升級安裝包文件中的數(shù)據(jù)項(xiàng)按照所述預(yù)定排序方式存入所述第二數(shù)組;
對比所述第一數(shù)組和所述第二數(shù)組,將所述第一數(shù)組中被刪除的數(shù)據(jù)項(xiàng)以及所述第二數(shù)組中增加的數(shù)據(jù)項(xiàng)添加至所述第i節(jié)的操作序列中,將利用所述第一數(shù)組和所述第二數(shù)組中相同數(shù)據(jù)項(xiàng)生成的修正數(shù)據(jù)添加至所述第i節(jié)的修正序列中,將所述第i節(jié)的操作序列和所述第i節(jié)的修正序列作為所述第i節(jié)的差異信息,
其中,所述第i節(jié)的修正序列用于對引用所述第i節(jié)的其他節(jié)中的數(shù)據(jù)項(xiàng)進(jìn)行修正。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述對比所述第一數(shù)組和所述第二數(shù)組,將所述第一數(shù)組中被刪除的數(shù)據(jù)項(xiàng)以及所述第二數(shù)組中增加的數(shù)據(jù)項(xiàng)添加至所述第i節(jié)的操作序列中,將利用所述第一數(shù)組和所述第二數(shù)組中相同數(shù)據(jù)項(xiàng)生成的修正數(shù)據(jù)添加至所述第i節(jié)的修正序列中,包括:
從所述第一數(shù)組中讀取第j數(shù)據(jù)項(xiàng),從所述第二數(shù)組中讀取第k數(shù)據(jù)項(xiàng),j和k的初始值均為1;
在所述第一數(shù)組中的第j數(shù)據(jù)項(xiàng)小于所述第二數(shù)組中的第k數(shù)據(jù)項(xiàng)時(shí),將所述第j數(shù)據(jù)項(xiàng)作為刪除項(xiàng)添加至所述操作序列,令j=j(luò)+1,重復(fù)執(zhí)行所述從所述第一數(shù)組中讀取第j數(shù)據(jù)項(xiàng)的步驟;
在所述第一數(shù)組中的第j數(shù)據(jù)項(xiàng)大于所述第二數(shù)組中的第k數(shù)據(jù)項(xiàng)時(shí),將所述第k數(shù)據(jù)項(xiàng)作為新增項(xiàng)添加至所述操作序列,令k=k+1,重復(fù)執(zhí)行從所述第二數(shù)組中讀取第k數(shù)據(jù)項(xiàng)的步驟;
在所述第一數(shù)組中的第j數(shù)據(jù)項(xiàng)等于所述第二數(shù)組中的第k數(shù)據(jù)項(xiàng)時(shí),根據(jù)所述第j數(shù)據(jù)項(xiàng)和所述第k數(shù)據(jù)項(xiàng)記錄修正數(shù)據(jù),將所述修正數(shù)據(jù)添加至所述第i節(jié)的修正序列中,令j=j(luò)+1、k=k+1,重復(fù)執(zhí)行從所述第一數(shù)組中讀取第j數(shù)據(jù)項(xiàng),從所述第二數(shù)組中讀取第k數(shù)據(jù)項(xiàng)的步驟;
當(dāng)所述第一數(shù)組中的數(shù)據(jù)項(xiàng)全部被讀取完時(shí),將所述第二數(shù)組中剩余的數(shù)據(jù)項(xiàng)作為新增項(xiàng)添加至所述操作序列中;
當(dāng)所述第二數(shù)組中的數(shù)據(jù)項(xiàng)全部被讀取完時(shí),將所述第一數(shù)組中剩余的數(shù)據(jù)項(xiàng)作為刪除項(xiàng)添加至所述操作序列中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述第j數(shù)據(jù)項(xiàng)和所述第k數(shù)據(jù)項(xiàng)記錄修正數(shù)據(jù),包括:
當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)的索引號與所述第k數(shù)據(jù)項(xiàng)的索引號對應(yīng);
當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)的索引號與所述第k數(shù)據(jù)項(xiàng)的索引號對應(yīng),記錄所述第j數(shù)據(jù)項(xiàng)的文件偏移與所述第k數(shù)據(jù)項(xiàng)的文件偏移對應(yīng)。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述將所述第一數(shù)組中被刪除的數(shù)據(jù)項(xiàng)以及所述第二數(shù)組中新增的數(shù)據(jù)項(xiàng)添加至所述第i節(jié)的操作序列中之后,所述方法還包括:
按照所述預(yù)定排序方式對所述操作序列中的數(shù)據(jù)項(xiàng)進(jìn)行排序;
遍歷排序后的所述操作序列,若相鄰的兩個(gè)數(shù)據(jù)項(xiàng)中在前數(shù)據(jù)項(xiàng)為刪除項(xiàng),在后數(shù)據(jù)項(xiàng)為新增項(xiàng),且所述相鄰的兩個(gè)數(shù)據(jù)項(xiàng)的索引號相同時(shí),從所述操作序列中刪除所述相鄰的兩個(gè)數(shù)據(jù)項(xiàng),在刪除的位置插入數(shù)值與所述新增項(xiàng)相同的替換項(xiàng)。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述預(yù)定排序方式包括:
按照數(shù)據(jù)項(xiàng)遞增的順序排列各個(gè)數(shù)據(jù)項(xiàng);
在數(shù)據(jù)項(xiàng)相同時(shí),按照數(shù)據(jù)項(xiàng)的索引號遞增的順序排列各個(gè)數(shù)據(jù)項(xiàng);
其中,對于數(shù)據(jù)項(xiàng)中的第一數(shù)據(jù)項(xiàng)和第二數(shù)據(jù)項(xiàng),當(dāng)所述第一數(shù)據(jù)項(xiàng)的索引號小于所述第二數(shù)據(jù)項(xiàng)的索引號,所述第一數(shù)據(jù)項(xiàng)小于或等于所述第二數(shù)據(jù)項(xiàng)。
8.一種差異信息文件應(yīng)用方法,其特征在于,所述方法包括:
獲取原始安裝包文件和差異信息文件,所述差異信息文件包含所述原始安裝包文件和與所述原始安裝包對應(yīng)的升級安裝包文件之間的差異信息,所述原始安裝包文件包括n個(gè)節(jié),每個(gè)節(jié)中包括至少一個(gè)數(shù)據(jù)項(xiàng);
對于所述原始安裝包文件中的第i原始節(jié),根據(jù)所述第i原始節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)、所述差異信息文件中所述第i原始節(jié)的差異信息,生成與所述第i原始節(jié)對應(yīng)的第i升級節(jié),i的初始值為1;
將所述第i升級節(jié)添加至所述升級安裝包文件中;
當(dāng)i小于n時(shí),則令i=i+1,重新執(zhí)行根據(jù)所述第i原始節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)、所述差異信息文件中所述第i原始節(jié)的差異信息,生成與所述第i原始節(jié)對應(yīng)的第i升級節(jié)的步驟;
當(dāng)i等于n時(shí),得到所述升級安裝包文件。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述第i原始節(jié)的差異信息包括所述第i原始節(jié)的操作序列和第一修正序列,其中:
所述第i原始節(jié)的操作序列包括所述原始安裝包文件中所述第i原始節(jié)被替換的數(shù)據(jù)項(xiàng),和/或,所述第一安裝包文件中所述第i原始節(jié)增加的數(shù)據(jù)項(xiàng);
所述第i原始節(jié)的第一修正序列包括所述第i原始節(jié)在所述原始安裝包文件和所述升級安裝包文件中相同數(shù)據(jù)項(xiàng)的第一修正數(shù)據(jù),所述數(shù)據(jù)項(xiàng)的第一修正數(shù)據(jù)限定了以下前一種或兩種:所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的索引號以及在所述升級安裝包文件的索引號之間的對應(yīng)關(guān)系,和,所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的文件偏移以及在所述升級安裝包文件的文件偏移之間的對應(yīng)關(guān)系。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述根據(jù)所述第i原始節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)、所述差異信息文件中所述第i原始節(jié)的差異信息,生成與所述第i原始節(jié)對應(yīng)的第i升級節(jié),包括:
對于所述第i原始節(jié)中的第j數(shù)據(jù),讀取所述原始安裝包文件中所述第i原始節(jié)的所述第j數(shù)據(jù)項(xiàng);
當(dāng)所述第j數(shù)據(jù)項(xiàng)的索引號對應(yīng)所述第一修正序列中的第一修正數(shù)據(jù)時(shí),將所述第j個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)加入所述第i升級節(jié),根據(jù)所述第一修正數(shù)據(jù)修正所述第i升級節(jié)中加入的所述第j數(shù)據(jù)項(xiàng)的屬性,記錄第二修正數(shù)據(jù),將所述第二修正數(shù)據(jù)添加至第二修正序列中,所述第二修正序列用于對引用所述第i原始節(jié)的其他原始節(jié)中的數(shù)據(jù)項(xiàng)進(jìn)行修正,j的初始值為1;
當(dāng)所述第j數(shù)據(jù)項(xiàng)的索引號對應(yīng)所述操作序列中的新增項(xiàng)時(shí),將所述新增項(xiàng)的數(shù)據(jù)加入與所述第i升級節(jié)中;
當(dāng)所述第j數(shù)據(jù)項(xiàng)的索引號對應(yīng)所述操作序列中的替換項(xiàng)時(shí),將所述替換項(xiàng)的數(shù)據(jù)加入與所述第i升級節(jié)中;
當(dāng)所述第i原始節(jié)存在尚未處理的數(shù)據(jù)項(xiàng)時(shí),則令i=i+1,重新執(zhí)行讀取所述原始安裝包文件中所述第i原始節(jié)的所述第j數(shù)據(jù)項(xiàng)的步驟;
當(dāng)所述第i原始節(jié)不存在尚未處理的數(shù)據(jù)項(xiàng),且所述第i原始節(jié)的操作序列的數(shù)據(jù)項(xiàng)均被添加至所述第i升級節(jié)時(shí),得到所述第i升級節(jié);
在得到所述原始安裝包文件中所有原始節(jié)的升級節(jié)時(shí),根據(jù)所有升級節(jié)生成與所述原始安裝包文件對應(yīng)的升級安裝包文件。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述根據(jù)所述第一修正數(shù)據(jù)修正所述第i升級節(jié)中加入的所述第j數(shù)據(jù)項(xiàng)的屬性,包括:
當(dāng)所述第i原始節(jié)中的數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),根據(jù)所述第一修正數(shù)據(jù)修正所述第i升級節(jié)中加入的所述第j數(shù)據(jù)項(xiàng)的索引號屬性;
當(dāng)所述第i原始節(jié)中的數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),根據(jù)所述第一修正數(shù)據(jù)修正所述第i升級節(jié)中加入的所述第j數(shù)據(jù)項(xiàng)的索引號屬性和文件偏移屬性。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述記錄第二修正數(shù)據(jù),包括:
當(dāng)所述第j數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)在所述第i原始節(jié)中的索引號與在所述第i升級節(jié)的索引號對應(yīng);
當(dāng)所述第j數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)在所述第i原始節(jié)中的索引號與在所述第i升級節(jié)的索引號對應(yīng),且記錄第j數(shù)據(jù)項(xiàng)在所述第i原始節(jié)中的文件偏移與在所述第i升級節(jié)的文件偏移對應(yīng)。
13.一種差異信息文件生成裝置,其特征在于,所述裝置包括:
獲取模塊,用于獲取原始安裝包文件和升級安裝包文件,所述升級安裝包文件是原始安裝包文件升級后的安裝包文件,所述原始安裝包文件和所述升級安裝包文件均包括n個(gè)節(jié),每個(gè)節(jié)中包括至少一個(gè)數(shù)據(jù)項(xiàng);
對比模塊,用于對于所述原始安裝包文件中的第i節(jié),對比所述第i節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)以及所述第i節(jié)在所述升級安裝包文件中的數(shù)據(jù)項(xiàng),得到所述第i節(jié)的差異信息,i的初始值為1;
添加模塊,用于將所述對比模塊對比得到的所述第i節(jié)的差異信息添加至差異信息文件中;
所述對比模塊,還用于當(dāng)i小于n時(shí),則令i=i+1,重新執(zhí)行對比所述第i節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)以及所述第i節(jié)在所述升級安裝包文件中的數(shù)據(jù)項(xiàng)的步驟;當(dāng)i等于n時(shí),得到所述差異信息文件。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述第i節(jié)的差異信息包括所述第i節(jié)的操作序列和所述第i節(jié)的修正序列,其中:
所述第i節(jié)的操作序列包括所述原始安裝包文件中所述第i節(jié)被刪除的數(shù)據(jù)項(xiàng),和/或,所述升級安裝包文件中所述第i節(jié)增加的數(shù)據(jù)項(xiàng);
所述第i節(jié)的修正序列包括所述第i節(jié)在所述原始安裝包文件和所述升級安裝包文件中相同數(shù)據(jù)項(xiàng)的修正數(shù)據(jù),所述數(shù)據(jù)項(xiàng)的修正數(shù)據(jù)限定了以下前一種或兩種:所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的索引號以及在所述升級安裝包文件的索引號之間的對應(yīng)關(guān)系,和,所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的文件偏移以及在所述升級安裝包文件的文件偏移之間的對應(yīng)關(guān)系。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述對比模塊,包括:
第一添加單元,用于當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),利用所述第i節(jié)所引用的節(jié)的修正序列對所述第i節(jié)在所述原始安裝包文件和所述升級安裝包文件中的所有數(shù)據(jù)項(xiàng)進(jìn)行修正,將所述原始安裝包文件中修正后的數(shù)據(jù)項(xiàng)按照預(yù)定排序方式存入第一數(shù)組,將所述升級安裝包文件中修正后的數(shù)據(jù)項(xiàng)按照所述預(yù)定排序方式存入第二數(shù)組;
第二添加單元,用于當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),將所述原始安裝包文件中的數(shù)據(jù)項(xiàng)按照所述預(yù)定排序方式存入所述第一數(shù)組,將所述升級安裝包文件中的數(shù)據(jù)項(xiàng)按照所述預(yù)定排序方式存入所述第二數(shù)組;
對比單元,用于對比所述第一數(shù)組和所述第二數(shù)組,將所述第一數(shù)組中被刪除的數(shù)據(jù)項(xiàng)以及所述第二數(shù)組中增加的數(shù)據(jù)項(xiàng)添加至所述第i節(jié)的操作序列中,將利用所述第一數(shù)組和所述第二數(shù)組中相同數(shù)據(jù)項(xiàng)生成的修正數(shù)據(jù)添加至所述第i節(jié)的修正序列中,將所述第i節(jié)的操作序列和所述第i節(jié)的修正序列作為所述第i節(jié)的差異信息,
其中,所述第i節(jié)的修正序列用于對引用所述第i節(jié)的其他節(jié)中的數(shù)據(jù)項(xiàng)進(jìn)行修正。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述對比單元,還用于:
從所述第一數(shù)組中讀取第j數(shù)據(jù)項(xiàng),從所述第二數(shù)組中讀取第k數(shù)據(jù)項(xiàng),j和k的初始值均為1;
在所述第一數(shù)組中的第j數(shù)據(jù)項(xiàng)小于所述第二數(shù)組中的第k數(shù)據(jù)項(xiàng)時(shí),將所述第j數(shù)據(jù)項(xiàng)作為刪除項(xiàng)添加至所述操作序列,令j=j(luò)+1,重復(fù)執(zhí)行所述從所述第一數(shù)組中讀取第j數(shù)據(jù)項(xiàng)的步驟;
在所述第一數(shù)組中的第j數(shù)據(jù)項(xiàng)大于所述第二數(shù)組中的第k數(shù)據(jù)項(xiàng)時(shí),將所述第k數(shù)據(jù)項(xiàng)作為新增項(xiàng)添加至所述操作序列,令k=k+1,重復(fù)執(zhí)行從所述第二數(shù)組中讀取第k數(shù)據(jù)項(xiàng)的步驟;
在所述第一數(shù)組中的第j數(shù)據(jù)項(xiàng)等于所述第二數(shù)組中的第k數(shù)據(jù)項(xiàng)時(shí),根據(jù)所述第j數(shù)據(jù)項(xiàng)和所述第k數(shù)據(jù)項(xiàng)記錄修正數(shù)據(jù),將所述修正數(shù)據(jù)添加至所述第i節(jié)的修正序列中,令j=j(luò)+1、k=k+1,重復(fù)執(zhí)行從所述第一數(shù)組中讀取第j數(shù)據(jù)項(xiàng),從所述第二數(shù)組中讀取第k數(shù)據(jù)項(xiàng)的步驟;
當(dāng)所述第一數(shù)組中的數(shù)據(jù)項(xiàng)全部被讀取完時(shí),將所述第二數(shù)組中剩余的數(shù)據(jù)項(xiàng)作為新增項(xiàng)添加至所述操作序列中;
當(dāng)所述第二數(shù)組中的數(shù)據(jù)項(xiàng)全部被讀取完時(shí),將所述第一數(shù)組中剩余的數(shù)據(jù)項(xiàng)作為刪除項(xiàng)添加至所述操作序列中。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述對比單元,還用于:
當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)的索引號與所述第k數(shù)據(jù)項(xiàng)的索引號對應(yīng);
當(dāng)所述第i節(jié)中的數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)的索引號與所述第k數(shù)據(jù)項(xiàng)的索引號對應(yīng),記錄所述第j數(shù)據(jù)項(xiàng)的文件偏移與所述第k數(shù)據(jù)項(xiàng)的文件偏移對應(yīng)。
18.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括:
排序模塊,用于按照所述預(yù)定排序方式對所述操作序列中的數(shù)據(jù)項(xiàng)進(jìn)行排序;
替換模塊,用于遍歷所述排序模塊排序后的所述操作序列,若相鄰的兩個(gè)數(shù)據(jù)項(xiàng)中在前數(shù)據(jù)項(xiàng)為刪除項(xiàng),在后數(shù)據(jù)項(xiàng)為新增項(xiàng),且所述相鄰的兩個(gè)數(shù)據(jù)項(xiàng)的索引號相同時(shí),從所述操作序列中刪除所述相鄰的兩個(gè)數(shù)據(jù)項(xiàng),在刪除的位置插入數(shù)值與所述新增項(xiàng)相同的替換項(xiàng)。
19.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述預(yù)定排序方式包括:
按照數(shù)據(jù)項(xiàng)遞增的順序排列各個(gè)數(shù)據(jù)項(xiàng);
在數(shù)據(jù)項(xiàng)相同時(shí),按照數(shù)據(jù)項(xiàng)的索引號遞增的順序排列各個(gè)數(shù)據(jù)項(xiàng);
其中,對于數(shù)據(jù)項(xiàng)中的第一數(shù)據(jù)項(xiàng)和第二數(shù)據(jù)項(xiàng),當(dāng)所述第一數(shù)據(jù)項(xiàng)的索引號小于所述第二數(shù)據(jù)項(xiàng)的索引號,所述第一數(shù)據(jù)項(xiàng)小于或等于所述第二數(shù)據(jù)項(xiàng)。
20.一種差異信息文件應(yīng)用裝置,其特征在于,所述裝置包括:
獲取模塊,用于獲取原始安裝包文件和差異信息文件,所述差異信息文件包含所述原始安裝包文件和與所述原始安裝包對應(yīng)的升級安裝包文件之間的差異信息,所述原始安裝包文件包括n個(gè)節(jié),每個(gè)節(jié)中包括至少一個(gè)數(shù)據(jù)項(xiàng);
生成模塊,用于對于所述原始安裝包文件中的第i原始節(jié),根據(jù)所述第i原始節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)、所述差異信息文件中所述第i原始節(jié)的差異信息,生成與所述第i原始節(jié)對應(yīng)的第i升級節(jié),i的初始值為1;
添加模塊,用于將所述生成模塊得到的所述第i升級節(jié)添加至所述升級安裝包文件中;
所述生成模塊,還用于當(dāng)i小于n時(shí),則令i=i+1,重新執(zhí)行根據(jù)所述第i原始節(jié)在所述原始安裝包文件中的數(shù)據(jù)項(xiàng)、所述差異信息文件中所述第i原始節(jié)的差異信息,生成與所述第i原始節(jié)對應(yīng)的第i升級節(jié)的步驟;當(dāng)i等于n時(shí),得到所述升級安裝包文件。
21.根據(jù)權(quán)利要求20所述的裝置,其特征在于,所述第i原始節(jié)的差異信息包括所述第i原始節(jié)的操作序列和第一修正序列,其中:
所述第i原始節(jié)的操作序列包括所述原始安裝包文件中所述第i原始節(jié)被替換的數(shù)據(jù)項(xiàng),和/或,所述第一安裝包文件中所述第i原始節(jié)增加的數(shù)據(jù)項(xiàng);
所述第i原始節(jié)的第一修正序列包括所述第i原始節(jié)在所述原始安裝包文件和所述升級安裝包文件中相同數(shù)據(jù)項(xiàng)的第一修正數(shù)據(jù),所述數(shù)據(jù)項(xiàng)的第一修正數(shù)據(jù)限定了以下前一種或兩種:所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的索引號以及在所述升級安裝包文件的索引號之間的對應(yīng)關(guān)系,和,所述數(shù)據(jù)項(xiàng)在所述原始安裝包文件的文件偏移以及在所述升級安裝包文件的文件偏移之間的對應(yīng)關(guān)系。
22.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述生成模塊,包括:
讀取單元,用于對于所述第i原始節(jié)中的第j數(shù)據(jù),讀取所述原始安裝包文件中所述第i原始節(jié)的所述第j數(shù)據(jù)項(xiàng);
第一添加單元,用于當(dāng)所述第j數(shù)據(jù)項(xiàng)的索引號對應(yīng)所述第一修正序列中的第一修正數(shù)據(jù)時(shí),將所述第j個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)加入所述第i升級節(jié),根據(jù)所述第一修正數(shù)據(jù)修正所述第i升級節(jié)中加入的所述第j數(shù)據(jù)項(xiàng)的屬性,記錄第二修正數(shù)據(jù),將所述第二修正數(shù)據(jù)添加至第二修正序列中,所述第二修正序列用于對引用所述第i原始節(jié)的其他原始節(jié)中的數(shù)據(jù)項(xiàng)進(jìn)行修正,j的初始值為1;
第二添加單元,用于當(dāng)所述第j數(shù)據(jù)項(xiàng)的索引號對應(yīng)所述操作序列中的新增項(xiàng)時(shí),將所述新增項(xiàng)的數(shù)據(jù)加入與所述第i升級節(jié)中;
第三添加單元,用于當(dāng)所述第j數(shù)據(jù)項(xiàng)的索引號對應(yīng)所述操作序列中的替換項(xiàng)時(shí),將所述替換項(xiàng)的數(shù)據(jù)加入與所述第i升級節(jié)中;
所述讀取單元,還用于當(dāng)所述第i原始節(jié)存在尚未處理的數(shù)據(jù)項(xiàng)時(shí),則令i=i+1,重新執(zhí)行讀取所述原始安裝包文件中所述第i原始節(jié)的所述第j數(shù)據(jù)項(xiàng)的步驟;當(dāng)所述第i原始節(jié)不存在尚未處理的數(shù)據(jù)項(xiàng),且所述第i原始節(jié)的操作序列的數(shù)據(jù)項(xiàng)均被添加至所述第i升級節(jié)時(shí),得到所述第i升級節(jié);
生成單元,用于在得到所述原始安裝包文件中所有原始節(jié)的升級節(jié)時(shí),根據(jù)所有升級節(jié)生成與所述原始安裝包文件對應(yīng)的升級安裝包文件。
23.根據(jù)權(quán)利要求22所述的裝置,其特征在于,所述第一添加單元,還用于:
當(dāng)所述第i原始節(jié)中的數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),根據(jù)所述第一修正數(shù)據(jù)修正所述第i升級節(jié)中加入的所述第j數(shù)據(jù)項(xiàng)的索引號屬性;
當(dāng)所述第i原始節(jié)中的數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),根據(jù)所述第一修正數(shù)據(jù)修正所述第i升級節(jié)中加入的所述第j數(shù)據(jù)項(xiàng)的索引號屬性和文件偏移屬性。
24.根據(jù)權(quán)利要求22所述的裝置,其特征在于,所述第一添加單元,還用于:
當(dāng)所述第j數(shù)據(jù)項(xiàng)的屬性不包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)在所述第i原始節(jié)中的索引號與在所述第i升級節(jié)的索引號對應(yīng);
當(dāng)所述第j數(shù)據(jù)項(xiàng)的屬性包括文件偏移時(shí),記錄所述第j數(shù)據(jù)項(xiàng)在所述第i原始節(jié)中的索引號與在所述第i升級節(jié)的索引號對應(yīng),且記錄第j數(shù)據(jù)項(xiàng)在所述第i原始節(jié)中的文件偏移與在所述第i升級節(jié)的文件偏移對應(yīng)。