本公開涉及計(jì)算機(jī)軟件領(lǐng)域,特別是涉及一種應(yīng)用插件安裝包安裝方法、生成方法、相關(guān)裝置和介質(zhì)。
背景技術(shù):
1、目前,應(yīng)用(app)一般采用互聯(lián)網(wǎng)進(jìn)行分發(fā)和更新??蛻舳讼螺d應(yīng)用后,應(yīng)用中的某個(gè)功能(插件)發(fā)生了更新,有了新的版本。當(dāng)對象在客戶端上觸發(fā)該功能時(shí),應(yīng)用服務(wù)器會(huì)將該功能更新的版本發(fā)送到客戶端,由客戶端更新。為了減少網(wǎng)絡(luò)傳輸負(fù)荷,目前一般采用差分安裝包更新,即將本次更新后的功能版本和上一次更新后的功能版本的差分部分傳輸?shù)娇蛻舳?,由客戶端根?jù)該差分部分和上一次更新后的功能版本,還原本次更新后的功能版本。
2、一般來說,應(yīng)用插件的安裝包都含有壓縮包,本次更新后的功能版本和上一次更新后的功能版本的差分文件、以及插件運(yùn)行時(shí)需要的各種管理文件等都是打包在一個(gè)壓縮包中,再放入安裝包的。在將應(yīng)用插件的當(dāng)前安裝包和上一次的安裝包進(jìn)行差分時(shí),由于各種文件打包在壓縮包中的順序不同,導(dǎo)致差分文件很大,占用大量傳輸資源,且應(yīng)用插件更新速度很慢。
技術(shù)實(shí)現(xiàn)思路
1、本公開實(shí)施例提供了一種應(yīng)用插件安裝包安裝方法、生成方法、相關(guān)裝置和介質(zhì),它能夠減少傳輸資源的占用,并提高應(yīng)用插件更新效率。
2、根據(jù)本公開的一方面,提供了一種應(yīng)用插件安裝包安裝方法,包括:
3、接收差分插件安裝包,所述差分插件安裝包包含差分文件、還原規(guī)則文件、和插件管理文件,所述差分文件指示目標(biāo)應(yīng)用插件當(dāng)前的第一安裝包的第一應(yīng)用插件代碼文件、和所述第一安裝包之前的第二安裝包的第二應(yīng)用插件代碼文件之間的差異,所述第一安裝包包含第一壓縮包,所述第一壓縮包內(nèi)以第一順序包含所述第一應(yīng)用插件代碼文件和所述插件管理文件;
4、基于所述還原規(guī)則文件,將所述差分文件添加到所述第二應(yīng)用插件代碼文件中以還原所述第一應(yīng)用插件代碼文件;
5、基于所述第一順序,排列還原的所述第一應(yīng)用插件代碼文件和所述插件管理文件并壓縮,以還原所述第一壓縮包,并基于所述第一壓縮包還原所述第一安裝包用于安裝。
6、根據(jù)本公開的一方面,提供了一種差分插件安裝包生成方法,包括:
7、獲取目標(biāo)應(yīng)用插件當(dāng)前的第一安裝包、和所述第一安裝包之前的第二安裝包,所述第一安裝包包含第一壓縮包,所述第一壓縮包內(nèi)以第一順序包含第一應(yīng)用插件代碼文件和插件管理文件,所述第二安裝包包含第二應(yīng)用插件代碼文件;
8、基于第一應(yīng)用插件代碼文件和所述第二應(yīng)用插件代碼文件,獲取差分文件和還原規(guī)則文件;
9、基于所述差分文件、所述還原規(guī)則文件和所述插件管理文件,生成所述差分插件安裝包,發(fā)送到客戶端,以便所述客戶端基于所述差分文件和還原規(guī)則文件還原所述第一應(yīng)用插件代碼文件,并基于所述第一順序,對所述第一應(yīng)用插件代碼文件和所述插件管理文件進(jìn)行排列并壓縮,以還原包含第一壓縮包的所述第一安裝包。
10、根據(jù)本公開的一方面,提供了一種應(yīng)用插件安裝包安裝裝置,包括:
11、第一接收單元,用于接收差分插件安裝包,所述差分插件安裝包包含差分文件、還原規(guī)則文件、和插件管理文件,所述差分文件指示目標(biāo)應(yīng)用插件當(dāng)前的第一安裝包的第一應(yīng)用插件代碼文件、和所述第一安裝包之前的第二安裝包的第二應(yīng)用插件代碼文件之間的差異,所述第一安裝包包含第一壓縮包,所述第一壓縮包內(nèi)以第一順序包含所述第一應(yīng)用插件代碼文件和所述插件管理文件;
12、添加單元,用于基于所述還原規(guī)則文件,將所述差分文件添加到所述第二應(yīng)用插件代碼文件中以還原所述第一應(yīng)用插件代碼文件;
13、第一排列單元,用于基于所述第一順序,排列還原的所述第一應(yīng)用插件代碼文件和所述插件管理文件并壓縮,以還原所述第一壓縮包,并基于所述第一壓縮包還原所述第一安裝包用于安裝。
14、可選地,所述還原規(guī)則文件包含對所述第一應(yīng)用插件代碼文件按照預(yù)定摘要算法生成的第一摘要值;
15、所述添加單元用于:
16、基于所述還原規(guī)則文件,將所述差分文件添加到所述第二應(yīng)用插件代碼文件中,得到添加后文件;
17、基于所述預(yù)定摘要算法對所述添加后文件進(jìn)行摘要運(yùn)算,得到第二摘要值;
18、如果所述第二摘要值與所述第一摘要值相同,將所述添加后文件作為還原的所述第一應(yīng)用插件代碼文件。
19、可選地,所述還原規(guī)則文件包含對所述第一壓縮包按照所述預(yù)定摘要算法生成的第三摘要值;
20、所述第一排列單元,用于:
21、基于所述第一順序,排列還原的所述第一應(yīng)用插件代碼文件和所述插件管理文件并壓縮,得到第一壓縮結(jié)果;
22、對所述第一壓縮結(jié)果按照所述預(yù)定摘要算法進(jìn)行摘要運(yùn)算,得到第四摘要值;
23、如果所述第四摘要值與所述第三摘要值相同,將所述第一壓縮結(jié)果作為還原的所述第一壓縮包。
24、可選地,所述預(yù)定摘要算法通過以下方式預(yù)先確定:
25、獲取所述目標(biāo)應(yīng)用插件的插件類型;
26、基于所述插件類型,確定所述預(yù)定摘要算法。
27、可選地,所述差分插件安裝包還包含壓縮包管理文件,所述第一安裝包通過以第二順序排列所述第一壓縮包和所述壓縮包管理文件后進(jìn)行壓縮獲得;
28、所述第一排列單元包括第二排序單元;所述第二排序單元用于:
29、基于所述第二順序,排列還原的所述第一壓縮包和所述壓縮包管理文件并壓縮,以還原所述第一安裝包。
30、可選地,所述還原規(guī)則文件包含對所述第一安裝包按照所述預(yù)定摘要算法生成的第五摘要值;
31、所述第二排序單元用于:
32、基于所述第二順序,排列還原的所述第一壓縮包和所述壓縮包管理文件并壓縮,得到第二壓縮結(jié)果;
33、對所述第二壓縮結(jié)果按照所述預(yù)定摘要算法進(jìn)行摘要運(yùn)算,得到第六摘要值;
34、如果所述第六摘要值與所述第五摘要值相同,將所述第二壓縮結(jié)果作為還原的所述第一安裝包。
35、可選地,所述還原規(guī)則文件包含第一映射關(guān)系、第二映射關(guān)系和還原規(guī)則,其中,所述第一映射關(guān)系指示所述插件管理文件在所述差分插件安裝包中的第一位置、與所述插件管理文件在所述第一安裝包中的第二位置的映射關(guān)系,所述第二映射關(guān)系指示所述壓縮包管理文件在所述差分插件安裝包中的第三位置、與所述壓縮包管理文件在所述第一安裝包中的第四位置的映射關(guān)系,所述還原規(guī)則指示所述差分文件在所述差分插件安裝包中的第五位置、與要添加到的所述第二應(yīng)用插件代碼文件的第六位置的映射關(guān)系;
36、所述添加單元,用于:
37、基于所述第一映射關(guān)系,將所述插件管理文件從所述差分插件安裝包中的所述第一位置轉(zhuǎn)移到所述第一安裝包中的所述第二位置;
38、基于所述第二映射關(guān)系,將所述壓縮包管理文件從所述差分插件安裝包中的所述第三位置轉(zhuǎn)移到所述第一安裝包中的所述第四位置;
39、基于所述還原規(guī)則,將位于所述差分插件安裝包中的第五位置的差分文件添加到所述第二應(yīng)用插件代碼文件的第六位置,以還原所述第一應(yīng)用插件代碼文件。
40、可選地,所述接收差分插件安裝包包括從應(yīng)用服務(wù)器接收差分插件安裝包,其中,所述差分插件安裝包由所述應(yīng)用服務(wù)器通過以下單元生成:
41、獲取單元,用于從所述第一安裝包獲取所述第一應(yīng)用插件代碼文件,并從所述第二安裝包獲取所述第二應(yīng)用插件代碼文件;
42、文件生成單元,用于基于所述第一應(yīng)用插件代碼文件和所述第二應(yīng)用插件代碼文件,生成所述差分文件和所述還原規(guī)則文件;
43、文件獲取單元,用于從所述第一安裝包的所述第一壓縮包中,獲取所述插件管理文件;
44、差分插件安裝包生成單元,用于基于所述差分文件、所述還原規(guī)則文件和所述插件管理文件,生成所述差分插件安裝包。
45、可選地,所述第一安裝包由所述應(yīng)用服務(wù)器通過以下單元生成:
46、第一壓縮單元,用于將所述第一應(yīng)用插件代碼文件和所述插件管理文件,基于所述第一順序排列并壓縮,得到所述第一壓縮包;
47、第二壓縮單元,用于將所述第一壓縮包和壓縮包管理文件,基于第二順序排列并壓縮,得到所述第一安裝包。
48、可選地,所述第一壓縮單元用于:從所述第一應(yīng)用插件代碼文件和所述插件管理文件中,刪除所述第一壓縮包的第一時(shí)間戳和壓縮包屬性信息,并基于所述第一順序排列并壓縮,得到所述第一壓縮包;
49、所述第二壓縮單元,用于從所述第一壓縮包和所述壓縮包管理文件中,刪除所述第一安裝包的第二時(shí)間戳和安裝包屬性信息,并基于所述第二順序排列并壓縮,得到所述第一安裝包。
50、可選地,所述應(yīng)用插件安裝包安裝裝置還包括簽名單元;所述簽名單元用于:
51、獲取所述應(yīng)用服務(wù)器的第一簽名;
52、將所述第一簽名嵌入所述第一應(yīng)用插件代碼文件,以更新所述第一應(yīng)用插件代碼文件。
53、可選地,所述第二安裝包由所述應(yīng)用服務(wù)器通過以下過程生成:
54、將所述第二應(yīng)用插件代碼文件和所述插件管理文件,基于所述第一順序排列并壓縮,得到第二壓縮包;
55、將所述第二壓縮包和壓縮包管理文件,基于第二順序排列并壓縮,得到所述第二安裝包。
56、可選地,所述應(yīng)用插件安裝包安裝裝置還包括請求獲取單元,所述請求獲取單元用于:
57、獲取更新請求隊(duì)列,所述更新請求隊(duì)列包含針對多個(gè)所述目標(biāo)應(yīng)用插件的更新請求;
58、順序取出所述更新請求隊(duì)列中的所述更新請求,獲取所述更新請求對應(yīng)的所述目標(biāo)應(yīng)用插件的所述第一安裝包和所述第二安裝包;
59、所述差分插件安裝包生成單元,用于:
60、將所述差分文件、所述還原規(guī)則文件和所述插件管理文件打包為所述更新請求對應(yīng)的子包;確定所述子包的大小,并將所述子包的大小累積到計(jì)數(shù)器;一旦所述計(jì)數(shù)器的值大于第一閾值,將已打包的所述子包組裝成所述差分插件安裝包。
61、可選地,所述更新請求隊(duì)列中多個(gè)所述更新請求的順序通過以下方式確定:
62、獲取所述更新請求對應(yīng)的所述目標(biāo)應(yīng)用插件的更新頻度;
63、獲取所述更新請求對應(yīng)的所述目標(biāo)應(yīng)用插件的更新實(shí)時(shí)性;
64、基于所述更新頻度和所述更新實(shí)時(shí)性,確定所述更新請求隊(duì)列中多個(gè)所述更新請求的順序。
65、可選地,所述第二安裝包從所述第一安裝包之前的多個(gè)第二候選安裝包中通過以下方式選出:
66、獲取多個(gè)所述第二候選安裝包的多個(gè)第二候選應(yīng)用插件代碼文件;
67、獲取每個(gè)所述第二候選應(yīng)用插件代碼文件與所述第一應(yīng)用插件代碼文件之間的候選差分文件;
68、基于多個(gè)所述候選差分文件的大小,在多個(gè)所述第二候選安裝包中確定所述第二安裝包。
69、可選地,所述第一順序通過以下方式確定:
70、獲取所述目標(biāo)應(yīng)用插件的插件類型;
71、獲取所述目標(biāo)應(yīng)用插件所屬的目標(biāo)應(yīng)用的應(yīng)用類型;
72、基于所述插件類型和所述應(yīng)用類型,確定所述第一順序。
73、根據(jù)本公開的一方面,提供了一種差分插件安裝包生成裝置,包括:
74、第一獲取單元,用于獲取目標(biāo)應(yīng)用插件當(dāng)前的第一安裝包、和所述第一安裝包之前的第二安裝包,所述第一安裝包包含第一壓縮包,所述第一壓縮包內(nèi)以第一順序包含第一應(yīng)用插件代碼文件和插件管理文件,所述第二安裝包包含第二應(yīng)用插件代碼文件;
75、第二獲取單元,用于基于第一應(yīng)用插件代碼文件和所述第二應(yīng)用插件代碼文件,獲取差分文件和還原規(guī)則文件;
76、第一生成單元,用于基于所述差分文件、所述還原規(guī)則文件和所述插件管理文件,生成所述差分插件安裝包,發(fā)送到客戶端,以便所述客戶端基于所述差分文件和還原規(guī)則文件還原所述第一應(yīng)用插件代碼文件,并基于所述第一順序,對所述第一應(yīng)用插件代碼文件和所述插件管理文件進(jìn)行排列并壓縮,以還原包含第一壓縮包的所述第一安裝包。
77、根據(jù)本公開的一方面,提供了一種電子設(shè)備,包括存儲器和處理器,所述存儲器存儲有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上所述的應(yīng)用插件安裝包安裝方法或者差分插件安裝包生成方法。
78、根據(jù)本公開的一方面,提供了一種計(jì)算機(jī)可讀存儲介質(zhì),所述存儲介質(zhì)存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的應(yīng)用插件安裝包安裝方法或者差分插件安裝包生成方法。
79、根據(jù)本公開的一方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被計(jì)算機(jī)設(shè)備的處理器讀取并執(zhí)行,使得該計(jì)算機(jī)設(shè)備執(zhí)行如上所述的應(yīng)用插件安裝包安裝方法或者差分插件安裝包生成方法。
80、本公開實(shí)施例把安裝包中的壓縮包內(nèi)應(yīng)用插件代碼文件和各插件管理文件的順序固定下來,即第一順序。在生成差分插件安裝包時(shí),按照第一順序排列第一壓縮包內(nèi)的第一應(yīng)用插件代碼文件和插件管理文件。在客戶端接收到差分插件安裝包進(jìn)行安裝包還原時(shí),不但按照還原規(guī)則文件把差分文件添加到應(yīng)用插件代碼文件中進(jìn)行還原,還按照第一順序排列還原后的應(yīng)用插件代碼文件和插件管理文件并壓縮,使得還原后的第一壓縮包內(nèi)的文件排列順序與應(yīng)用服務(wù)器生成差分插件安裝包時(shí)第一壓縮包內(nèi)的文件排列順序相同。這樣,解決了在將應(yīng)用插件的當(dāng)前安裝包和上一次的安裝包進(jìn)行差分時(shí),由于各種文件打包在壓縮包中的順序不同,導(dǎo)致差分文件很大的問題,減少了對傳輸資源的占用,并提高了應(yīng)用插件更新效率。
81、本公開的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本公開而了解。本公開的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。