本申請涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及增量更新包的生成方法、裝置和服務(wù)器。
背景技術(shù):
在客戶端進(jìn)行應(yīng)用更新時,為了節(jié)省客戶端為下載新版本安裝包所需的下載時間及流量,目前大都采用增量更新方式從服務(wù)器下載增量更新包。服務(wù)器通過二進(jìn)制差異算法對新版本安裝包與歷史版本安裝包做差量計算,生成增量更新包。然后,服務(wù)器在接收到客戶端發(fā)來的更新請求時,將與客戶端發(fā)來的當(dāng)前版本號和目標(biāo)版本號對應(yīng)的增量更新包的下載地址發(fā)送給客戶端,從而客戶端可以下載增量更新包,并與當(dāng)前安裝包進(jìn)行合并,生成新版本安裝包,從而最終完成從當(dāng)前版本號到目標(biāo)版本號的升級。
然而,目前的增量更新方法中,服務(wù)器在生成增量更新包的過程中,不管新版本安裝包中所包括的文件是文本文件還是二進(jìn)制文件均按照統(tǒng)一的方式生成增量更新包,從而所生成的增量更新包較大,繼而導(dǎo)致客戶端下載增量更新包的時間較長和所需流量較大。
技術(shù)實(shí)現(xiàn)要素:
本申請的目的在于提出一種改進(jìn)的增量更新包的生成方法、裝置和服務(wù)器,來解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請實(shí)施例提供了一種增量更新包的生成方法,該方法包括:獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包;對于上述新版本安裝包中的每個新版本安裝文件,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件;壓縮所生成的各個差異文件,將壓縮所得到的文件包作為上述目標(biāo)應(yīng)用的增量更新包。
在一些實(shí)施例中,上述文件類型為文本文件或者二進(jìn)制文件;以及上述根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件,包括:確定該新版本安裝文件的文件類型;響應(yīng)于確定該新版本安裝文件的文件類型為二進(jìn)制文件,復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件,還包括:響應(yīng)于確定該新版本安裝文件的文件類型為文本文件,確定上述歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件;響應(yīng)于確定上述歷史版本安裝包中不存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,則復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件,還包括:響應(yīng)于確定上述歷史版本安裝包中存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,生成該新版本安裝文件與上述歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件;判斷所生成的差異文件的文件大小是否大于預(yù)設(shè)文件大小閾值;響應(yīng)于所生成的差異文件的文件大小大于上述預(yù)設(shè)文件大小閾值,則復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件,還包括:響應(yīng)于所生成的差異文件的文件大小不大于預(yù)設(shè)文件大小閾值,則將所生成的差異文件確定為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述方法還包括:接收客戶端發(fā)來的更新請求,上述更新請求包括上述目標(biāo)應(yīng)用的當(dāng)前版本號和目標(biāo)版本號;根據(jù)上述當(dāng)前版本號和上述目標(biāo)版本號,確定上述目標(biāo)應(yīng)用的與上述當(dāng)前版本號和上述目標(biāo)版本號對應(yīng)的增量更新包的下載地址;將上述增量更新包的下載地址發(fā)送給上述客戶端,以使上述客戶端根據(jù)上述增量更新包的下載地址下載上述目標(biāo)應(yīng)用的與上述當(dāng)前版本號和上述目標(biāo)版本號對應(yīng)的增量更新包并進(jìn)行增量更新操作。
在一些實(shí)施例中,上述方法還包括:接收客戶端發(fā)來的回滾降級請求,上述回滾降級請求包括上述目標(biāo)應(yīng)用的回滾降級版本號,其中,上述回滾降級版本號低于上述客戶端中安裝的目標(biāo)應(yīng)用的當(dāng)前版本號;獲取上述目標(biāo)應(yīng)用的與上述回滾降級版本號對應(yīng)的全量安裝包的下載地址;將上述全量安裝包的下載地址發(fā)送到上述客戶端,以使上述客戶端根據(jù)上述全量安裝包的下載地址下載上述全量安裝包并進(jìn)行回滾降級操作。
第二方面,本申請實(shí)施例提供了一種增量更新包的生成裝置,該裝置包括:第一獲取單元,配置用于獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包;生成單元,配置用于對于上述新版本安裝包中的每個新版本安裝文件,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件;壓縮單元,配置用于壓縮所生成的各個差異文件,將壓縮所得到的文件包作為上述目標(biāo)應(yīng)用的增量更新包。
在一些實(shí)施例中,上述文件類型為文本文件或者二進(jìn)制文件;以及上述生成單元包括:第一確定模塊,配置用于確定該新版本安裝文件的文件類型;第一復(fù)制模塊,配置用于響應(yīng)于確定該新版本安裝文件的文件類型為二進(jìn)制文件,復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述生成單元還包括:第二確定模塊,配置用于響應(yīng)于確定該新版本安裝文件的文件類型為文本文件,確定上述歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件;第二復(fù)制模塊,配置用于響應(yīng)于確定上述歷史版本安裝包中不存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,則復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述生成單元還包括:生成模塊,配置用于響應(yīng)于確定上述歷史版本安裝包中存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,生成該新版本安裝文件與上述歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件;判斷模塊,配置用于判斷所生成的差異文件的文件大小是否大于預(yù)設(shè)文件大小閾值;第三復(fù)制模塊,配置用于響應(yīng)于所生成的差異文件的文件大小大于上述預(yù)設(shè)文件大小閾值,則復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述生成單元還包括:第三確定模塊,配置用于響應(yīng)于所生成的差異文件的文件大小不大于預(yù)設(shè)文件大小閾值,則將所生成的差異文件確定為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。
在一些實(shí)施例中,上述裝置還包括:更新請求接收單元,配置用于接收客戶端發(fā)來的更新請求,上述更新請求包括上述目標(biāo)應(yīng)用的當(dāng)前版本號和目標(biāo)版本號;確定單元,配置用于根據(jù)上述當(dāng)前版本號和上述目標(biāo)版本號,確定上述目標(biāo)應(yīng)用的與上述當(dāng)前版本號和上述目標(biāo)版本號對應(yīng)的增量更新包的下載地址;第一發(fā)送單元,配置用于將上述增量更新包的下載地址發(fā)送給上述客戶端,以使上述客戶端根據(jù)上述增量更新包的下載地址下載上述目標(biāo)應(yīng)用的與上述當(dāng)前版本號和上述目標(biāo)版本號對應(yīng)的增量更新包并進(jìn)行增量更新操作。
在一些實(shí)施例中,上述裝置還包括:回滾降級請求接收單元,配置用于接收客戶端發(fā)來的回滾降級請求,上述回滾降級請求包括上述目標(biāo)應(yīng)用的回滾降級版本號,其中,上述回滾降級版本號低于上述客戶端中安裝的目標(biāo)應(yīng)用的當(dāng)前版本號;第二獲取單元,配置用于獲取上述目標(biāo)應(yīng)用的與上述回滾降級版本號對應(yīng)的全量安裝包的下載地址;第二發(fā)送單元,配置用于將上述全量安裝包的下載地址發(fā)送到上述客戶端,以使上述客戶端根據(jù)上述全量安裝包的下載地址下載上述全量安裝包并進(jìn)行回滾降級操作。
第三方面,本申請實(shí)施例提供了一種服務(wù)器,該服務(wù)器包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當(dāng)上述一個或多個程序被上述一個或多個處理器執(zhí)行時,使得上述一個或多個處理器實(shí)現(xiàn)如第一方面中任一實(shí)現(xiàn)方式描述的方法。
第四方面,本申請實(shí)施例提供了一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,其特征在于,該計算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如第一方面中任一實(shí)現(xiàn)方式描述的方法。
本申請?zhí)峁┑脑隽扛掳纳煞椒ê脱b置,通過獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包,然后對于上述新版本安裝包中的每個新版本安裝文件,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件,最后壓縮所生成的各個差異文件,將壓縮所得到的文件包作為上述目標(biāo)應(yīng)用的增量更新包,從而在生成新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件的過程中,根據(jù)新版本安裝文件的文件類型的不同采取不同的方法,減少了增量更新包的文件大小,繼而減少了客戶端下載增量更新包所需的時間和流量。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
圖1是本申請可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
圖2a是根據(jù)本申請的增量更新包的生成方法的一個實(shí)施例的流程圖;
圖2b是圖2a所示的流程圖中步驟202的一種實(shí)現(xiàn)方式的流程圖;
圖2c是圖2a所示的流程圖中步驟202的另一種實(shí)現(xiàn)方式的流程圖;
圖3是根據(jù)本申請的增量更新包的生成方法的一個應(yīng)用場景的示意圖;
圖4是根據(jù)本申請的增量更新包的生成方法的又一個實(shí)施例的流程圖;
圖5是根據(jù)本申請的增量更新包的生成裝置的一個實(shí)施例的結(jié)構(gòu)示意圖;
圖6是適于用來實(shí)現(xiàn)本申請實(shí)施例的服務(wù)器的計算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本申請。
圖1示出了可以應(yīng)用本申請的增量更新包的生成方法或增量更新包的生成裝置的實(shí)施例的示例性系統(tǒng)架構(gòu)100。
如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102、103,網(wǎng)絡(luò)104和服務(wù)器105。網(wǎng)絡(luò)104用以在終端設(shè)備101、102、103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
用戶可以使用終端設(shè)備101、102、103通過網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種客戶端應(yīng)用,例如網(wǎng)頁瀏覽器應(yīng)用、購物類應(yīng)用、搜索類應(yīng)用、即時通信工具、郵箱客戶端、社交平臺軟件等。此外,終端設(shè)備101、102、103上還可以安裝有用于管理(例如下載、更新、回滾降級、卸載等)上述終端設(shè)備所安裝的各個應(yīng)用的管理類應(yīng)用。
終端設(shè)備101、102、103可以是支持應(yīng)用下載、更新、回滾降級、卸載的各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、膝上型便攜計算機(jī)和臺式計算機(jī)等等。
服務(wù)器105可以是為終端設(shè)備101、102、103上所安裝的管理類應(yīng)用提供支持的服務(wù)器。服務(wù)器105可以對接收到的更新請求等數(shù)據(jù)進(jìn)行分析等處理,并將處理結(jié)果(例如增量更新包的下載地址)反饋給終端設(shè)備101、102、103。
需要說明的是,本申請實(shí)施例所提供的增量更新包的生成方法一般由服務(wù)器105執(zhí)行,相應(yīng)地,增量更新包的生成裝置一般設(shè)置于服務(wù)器105中。
應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
繼續(xù)參考圖2a,其示出了根據(jù)本申請的增量更新包的生成方法的一個實(shí)施例的流程200。該增量更新包的生成方法,包括以下步驟:
步驟201,獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包。
在本實(shí)施例中,增量更新包的生成方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的服務(wù)器)可以獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包。其中,新版本安裝包可以是對目標(biāo)應(yīng)用在歷史版本安裝包中的已有功能進(jìn)行改善、增加新功能或者刪除已有功能后所生成的。
實(shí)踐中,目標(biāo)應(yīng)用的新版本安裝包可以是對目標(biāo)應(yīng)用的各個新版本安裝文件進(jìn)行壓縮后所得到的壓縮包。目標(biāo)應(yīng)用的各個新版本安裝文件可以包括可執(zhí)行程序文件、腳本文件、配置文件以及圖片文件、音頻文件、視頻文件等。同樣,目標(biāo)應(yīng)用的歷史版本安裝包也可以是對目標(biāo)應(yīng)用的各個歷史版本安裝文件進(jìn)行壓縮后所得到的壓縮包。目標(biāo)應(yīng)用的各個歷史版本安裝文件也可以包括可執(zhí)行程序文件、腳本文件、配置文件以及圖片文件、音頻文件、視頻文件等。另外,目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包可以有相應(yīng)的版本號,版本號可以用于指示目標(biāo)應(yīng)用的新版本安裝包或歷史版本安裝包的版本。
需要說明的是,上述電子設(shè)備可以通過有線或無線的方式從與其通信連接的其他電子設(shè)備獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包;還可以從本地獲取本地存儲的目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包。其中,本地存儲的目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包可以是電子設(shè)備預(yù)先生成的,也可以是第三方服務(wù)器預(yù)先生成并發(fā)送給上述電子設(shè)備中的。本實(shí)施例對目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包的具體存儲位置不進(jìn)行限定。
步驟202,對于新版本安裝包中的每個新版本安裝文件,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)施例中,基于步驟201中得到的新版本安裝包和歷史版本安裝包,上述電子設(shè)備(例如圖1所示的服務(wù)器)可以首先獲取新版本安裝包中的每個新版本安裝文件,然后,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
實(shí)踐中,上述電子設(shè)備可以通過對目標(biāo)應(yīng)用的新版本安裝包進(jìn)行解壓縮,從而得到新版本安裝包中的各個新版本安裝文件。同理,上述電子設(shè)備也可以通過對目標(biāo)應(yīng)用的歷史版本安裝包進(jìn)行解壓縮,從而得到目標(biāo)應(yīng)用的歷史版本安裝包中的各個歷史版本安裝文件。
需要說明的是,上述對壓縮包進(jìn)行解壓縮的方法是目前廣泛研究和應(yīng)用的公知技術(shù),在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述文件類型可以為文本文件或者二進(jìn)制文件。其中,文本文件是指專門用于存儲文本字符的數(shù)據(jù)的文件,除文本文件之外的文件為二進(jìn)制文件,例如,圖片文件、音頻文件、視頻文件、可執(zhí)行文件等等。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,如圖2b所示,步驟202可以包括如下子步驟:
子步驟2021b,確定歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,如果存在,轉(zhuǎn)到子步驟2022b,如果不存在,轉(zhuǎn)到子步驟2022b’。
子步驟2022b’,復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在子步驟2021b中確定歷史版本安裝包中不存在與該新版本安裝文件的文件名相同的歷史版本安裝文件的情況下,表明該新版本安裝文件相對歷史版本安裝包為增加的文件,因此,上述電子設(shè)備可以直接復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
子步驟2022b,確定該新版本安裝文件的文件類型,如果該新版本安裝文件的文件類型為二進(jìn)制文件,轉(zhuǎn)到子步驟2023b’,如果該新版本安裝文件的文件類型為文本文件,轉(zhuǎn)到子步驟2023b。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在子步驟2021b中確定歷史版本安裝包中存在與該新版本安裝文件的文件名相同的歷史版本安裝文件的情況下,表明該新版本安裝文件相對歷史版本安裝包為修改后的文件,因此,上述電子設(shè)備可以為該新版本安裝文件生成與歷史版本安裝包中同名文件的差異文件。由于文件類型不同,相應(yīng)的生成差異文件的算法也不相同。由于文本文件中存儲的是字符數(shù)據(jù),相應(yīng)的文本文件差異算法一般都是基于字符比對。而二進(jìn)制文件中存儲的是二進(jìn)制數(shù)據(jù),相應(yīng)的二進(jìn)制差異算法不能是字符比對,而應(yīng)是二進(jìn)制比對。因此,在生成差異文件之前,上述電子設(shè)備可以先確定該新版本安裝文件的文件類型。如果確定該新版本安裝文件的文件類型為二進(jìn)制文件,轉(zhuǎn)到子步驟2023b’,如果該新版本安裝文件的文件類型為文本文件,轉(zhuǎn)到子步驟2023b。
子步驟2023b’,采用二進(jìn)制差異算法生成該新版本安裝文件與歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件,并將所生成的差異文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
作為示例,可以采用各種現(xiàn)有的二進(jìn)制差異算法比較工具(例如,Beyond Compare,一套由Scooter Software推出的軟件,主要用途是對比兩個文件夾或者文件),對該新版本安裝文件和歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件做差量計算,生成差異文件。
子步驟2023b,采用文本差異算法生成該新版本安裝文件與歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件,并將所生成的差異文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
作為示例,可以采用各種現(xiàn)有的文本差異算法比較工具(例如,谷歌公司提供的開源工具google-diff-match-patch),對該新版本安裝文件和歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件做差量計算,生成差異文件。
可選地,文本差異算法比較工具一般通過對文本類型的歷史版本安裝文件A和新版本安裝文件B的文件內(nèi)容進(jìn)行字符比對,獲取從歷史版本安裝文件A的文件內(nèi)容更新為新版本安裝文件B的文件內(nèi)容所需新增、刪除或變更的字符。其中,字符比對可以是將兩個文本文件中的相同位置的字符逐個進(jìn)行比對,以確定兩個文本文件中相同位置的字符是否發(fā)生變更。作為示例,新版本安裝文件B的文件內(nèi)容包括字符串“天氣真不錯啊,想出去走走”,歷史版本安裝文件A的文件內(nèi)容包括字符串“天氣不行啊,能出去走走嗎”,通過將兩個字符串中的字符逐個進(jìn)行比對,可知由字符串“天氣不行啊,能出去走走嗎”更新為字符串“天氣真不錯啊,想出去走走”需要新增字符“真”,需要進(jìn)行的操作包括:刪除字符“嗎”、將字符“行”替換成“錯”以及將字符“能”替換成“想”,因此,歷史版本安裝文件A和新版本安裝文件B的差異文件的文件內(nèi)容可以包括如下信息:
1、刪除字符“嗎”;
2、將字符“行”替換成“錯”
3、將字符“能”替換成“想”。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,如圖2c所示,步驟202還可以包括如下子步驟:
子步驟2021c,確定該新版本安裝文件的文件類型,如果該新版本安裝文件的文件類型為二進(jìn)制文件,轉(zhuǎn)到子步驟2022c’,如果該新版本安裝文件的文件類型為文本文件,轉(zhuǎn)到子步驟2022c。
經(jīng)過對現(xiàn)有的文件差異比較算法的對比分析后發(fā)現(xiàn),現(xiàn)有的差異算法在生成兩個二進(jìn)制文件之間的差異文件時,往往生成的差異文件的文件大小與原始的二進(jìn)制文件的大小沒有太大差別,因此,不適合為兩個二進(jìn)制文件生成差異文件,反而,生成差異文件的過程造成了增量更新包的生成速度較慢,以及造成客戶端在下載了增量更新包后,需要付出根據(jù)歷史版本安裝文件和差異文件合成新版本安裝文件的時間。而現(xiàn)有的差異算法在生成兩個文本文件之間的差異文件時,往往生成的差異文件大小與原始的文本文件的大小差別較大,適合為兩個文本文件生成差異文件。因此,在本實(shí)現(xiàn)方式中,可以在確定該新版本安裝文件的文件類型為二進(jìn)制文件時,轉(zhuǎn)到子步驟2022c’,在確定該新版本安裝文件的文件類型為文本文件,轉(zhuǎn)到子步驟2022c。
子步驟2022c’,復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在子步驟2021c中確定該新版本安裝文件的文件類型為二進(jìn)制文件的情況下,由于,二進(jìn)制文件不適合生成差異文件,從而,可以直接復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備也可以在子步驟2022c中確定歷史版本安裝包中不存在與該新版本安裝文件的文件名相同的歷史版本安裝文件的情況下,表明該新版本安裝文件相對歷史版本安裝包為增加的文件,因此,可以直接復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
子步驟2022c,確定歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,如果存在,轉(zhuǎn)到子步驟2023c,如果不存在,轉(zhuǎn)到子步驟2022c’。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在子步驟2021c中確定該新版本安裝文件的文件類型為文本文件的情況下,確定歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,如果存在,轉(zhuǎn)到子步驟2023c,如果不存在,轉(zhuǎn)到子步驟2022c’。
子步驟2023c,生成該新版本安裝文件與歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件,并將所生成的差異文件,作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在子步驟2022c中確定歷史版本安裝包中存在與該新版本安裝文件的文件名相同的歷史版本安裝文件的情況下,表明該新版本安裝文件相對歷史版本安裝包為修改后的文件,因此,可以生成該新版本安裝文件與歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件,并將所生成的差異文件,作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。實(shí)踐中,可以采用各種現(xiàn)有的文本差異算法比較工具(例如,google-diff-match-patch),對該新版本安裝文件和歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件做差量計算,生成差異文件。
步驟203,壓縮所生成的各個差異文件,將壓縮所得到的文件包作為目標(biāo)應(yīng)用的增量更新包。
在本實(shí)施例中,增量更新包的生成方法運(yùn)行于其上的電子設(shè)備可以對步驟202中所生成的各個差異文件進(jìn)行壓縮,并壓縮所得到的文件包作為目標(biāo)應(yīng)用的增量更新包。
需要說明的是,上述壓縮文件并得到文件包的方法是目前廣泛研究和應(yīng)用的公知技術(shù),在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述電子設(shè)備也可以在步驟203后執(zhí)行以下步驟(圖2a中未示出):
步驟204,接收客戶端發(fā)來的更新請求。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在生成目標(biāo)應(yīng)用的增量更新包后,接收客戶端發(fā)來的更新請求,其中,更新請求包括目標(biāo)應(yīng)用的當(dāng)前版本號和目標(biāo)版本號。即,客戶端希望將其上安裝的目標(biāo)應(yīng)用從當(dāng)前版本號升級到目標(biāo)版本號,上述目標(biāo)版本號高于上述當(dāng)前版本號。
步驟205,根據(jù)當(dāng)前版本號和目標(biāo)版本號,確定目標(biāo)應(yīng)用的與當(dāng)前版本號和目標(biāo)版本號對應(yīng)的增量更新包的下載地址。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以預(yù)先針對目標(biāo)應(yīng)用的兩個版本號的安裝包,將其中較高版本號對應(yīng)的更新包作為新版本更新包,將較低版本號對應(yīng)的更新包作為歷史版本更新包,然后采用步驟201至步驟203中所描述的方法,生成目標(biāo)應(yīng)用的從較低版本號對應(yīng)的歷史版本安裝包升級到較高版本號對應(yīng)的新版本安裝包的增量更新包。
這樣,當(dāng)上述電子設(shè)備接收到客戶端發(fā)來的更新請求后,就可以以更新請求中的當(dāng)前版本號作為較低版本號,以更新請求中的目標(biāo)版本號作為較高版本號,然后獲取預(yù)先針對目標(biāo)應(yīng)用從上述較低版本號增量更新到較高版本號所生成的增量更新包的下載地址。
步驟206,將增量更新包的下載地址發(fā)送給客戶端
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以將步驟205中確定的增量更新包的下載地址發(fā)送給客戶端,以使客戶端根據(jù)增量更新包的下載地址下載目標(biāo)應(yīng)用的與當(dāng)前版本號和目標(biāo)版本號對應(yīng)的增量更新包并進(jìn)行增量更新操作。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述電子設(shè)備還可以在步驟203后執(zhí)行以下步驟(圖2a中未示出):
步驟204’,接收客戶端發(fā)來的回滾降級請求。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以接收客戶端發(fā)來的回滾降級請求。其中,回滾降級請求包括目標(biāo)應(yīng)用的回滾降級版本號,這里回滾降級請求中的回滾降級版本號是目標(biāo)應(yīng)用的版本號且該版本號低于客戶端中安裝的目標(biāo)應(yīng)用的當(dāng)前版本號。
步驟205’,獲取目標(biāo)應(yīng)用的與回滾降級版本號對應(yīng)的全量安裝包的下載地址。
在本實(shí)現(xiàn)方式中,由于客戶端發(fā)送了回滾降級請求,表明客戶端希望將其上安裝的目標(biāo)應(yīng)用回滾到比當(dāng)前版本號還低的版本,而通??蛻舳松现槐A粲挟?dāng)前版本號的全量安裝包,并且也不會存在比當(dāng)前版本號還低的版本的增量更新包,因此,客戶端也不能實(shí)現(xiàn)從比回滾降級版本號還低的版本號增量更新到回滾降級版本號,只能進(jìn)行全量更新。故而,上述電子設(shè)備需要獲取目標(biāo)應(yīng)用的與回滾降級版本號對應(yīng)的全量安裝包的下載地址。
步驟206’,將全量安裝包的下載地址發(fā)送到客戶端,以使客戶端根據(jù)全量安裝包的下載地址下載全量安裝包并進(jìn)行回滾降級操作。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以將步驟205’中獲取的全量安裝包的下載地址發(fā)送到客戶端,以使客戶端根據(jù)全量安裝包的下載地址下載全量安裝包并進(jìn)行回滾降級操作,從而客戶端可以實(shí)現(xiàn)將目標(biāo)應(yīng)用回滾到回滾降級版本號。
繼續(xù)參見圖3,圖3是根據(jù)本實(shí)施例的增量更新包的生成方法的應(yīng)用場景的一個示意圖。
在圖3的應(yīng)用場景中,如圖3中圖標(biāo)301所示,電子設(shè)備首先獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包。
然后,如圖3中圖標(biāo)302所示,上述電子設(shè)備獲取新版本安裝包中的四個新版本安裝文件:兩個二進(jìn)制文件“1.png”、“2.png”和兩個文本文件“1.jsp”、“2.jsp”,并如圖3中圖標(biāo)303所示,獲取歷史版本安裝包中的兩個歷史版本安裝文件二進(jìn)制文件“1.png”和文本文件“1.jsp”。
而后,對于新版本安裝包相對于歷史版本安裝包新增的兩個文件“2.png”和“2.jsp”直接復(fù)制該兩個文件并將復(fù)制到的兩個文件作為“2.png”和“2.jsp”與歷史版本安裝包中歷史版本安裝文件的差異文件,如圖3中圖標(biāo)304所示。
接著,對新版本安裝包中和歷史版本安裝包中同名的二進(jìn)制文件“1.png”采用二進(jìn)制差異算法生成兩個同名二進(jìn)制文件“1.png”之間的差異文件,如圖3中圖標(biāo)305所示。對新版本安裝包中和歷史版本安裝包中同名的兩個文本文件“1.jsp”采用文本差異算法生成兩個同名文本文件“1.jsp”之間的差異文件,如圖3中圖標(biāo)306所示。
最后,將對四個差異文件:復(fù)制后的“2.png”和“2.jsp”、兩個同名二進(jìn)制文件“1.png”之間的差異文件以及兩個同名文本文件“1.jsp”之間的差異文件,進(jìn)行壓縮后得到的壓縮包作為目標(biāo)應(yīng)用的與新版本安裝包和歷史版本安裝包對應(yīng)的增量更新包,如圖3中圖標(biāo)307所示。
本申請的上述實(shí)施例提供的方法通過獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包,然后對于上述新版本安裝包中的每個新版本安裝文件,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件,最后壓縮所生成的各個差異文件,將壓縮所得到的文件包作為上述目標(biāo)應(yīng)用的增量更新包。在生成目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包之間的增量更新包的過程中,根據(jù)新版本安裝包中各個新版本安裝文件的文件類型的不同采取不同的差異文件生成方法,減少了增量更新包的文件大小,繼而減少了客戶端下載增量更新包所需的時間和流量。
進(jìn)一步參考圖4,其示出了增量更新包的生成方法的又一個實(shí)施例的流程400。該增量更新包的生成方法的流程400,包括以下步驟:
步驟401,獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包。
在本實(shí)施例中,步驟401的具體處理與圖2a所示的實(shí)施例中步驟201的具體處理基本相同,在此不再贅述。
步驟402,對于新版本安裝包中的每個新版本安裝文件,確定該新版本安裝文件的文件類型,如果該新版本安裝文件的文件類型為二進(jìn)制文件,轉(zhuǎn)到步驟403’,如果該新版本安裝文件的文件類型為文本文件,轉(zhuǎn)到步驟403。
經(jīng)過對現(xiàn)有的文件差異比較算法的對比分析后發(fā)現(xiàn),現(xiàn)有的差異算法在生成兩個二進(jìn)制文件之間的差異文件時,往往生成的差異文件的文件大小與原始的二進(jìn)制文件的大小沒有太大差別,因此,不適合為兩個二進(jìn)制文件生成差異文件,反而,生成差異文件的過程造成了增量更新包的生成速度較慢,以及造成客戶端在下載了增量更新包后,需要付出根據(jù)歷史版本安裝文件和差異文件合成新版本安裝文件的時間。而現(xiàn)有的差異算法在生成兩個文本文件之間的差異文件時,往往生成的差異文件大小與原始的文本文件的大小差別較大,適合為兩個文本文件生成差異文件。
因此,在本實(shí)施例中,增量更新包的生成方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的服務(wù)器)可以對于新版本安裝包中的每個新版本安裝文件,確定該新版本安裝文件的文件類型,上述文件類型可以為文本文件或者二進(jìn)制文件。其中,文本文件是指專門用于存儲文本字符的數(shù)據(jù)的文件,除文本文件之外的文件為二進(jìn)制文件,例如,圖片文件、音頻文件、視頻文件、可執(zhí)行程序文件等等。如果該新版本安裝文件的文件類型為二進(jìn)制文件,轉(zhuǎn)到步驟403’,如果該新版本安裝文件的文件類型為文本文件,轉(zhuǎn)到步驟403。
步驟403’,復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)施例中,上述電子設(shè)備可以在步驟402中確定該新版本安裝文件的文件類型為二進(jìn)制文件的情況下,由于不適合為兩個二進(jìn)制文件生成差異文件,因此,上述電子設(shè)備可以直接復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)施例中,上述電子設(shè)備也可以在步驟403中確定歷史版本安裝包中不存在與該新版本安裝文件的文件名相同的歷史版本安裝文件的情況下,表明該新版本安裝文件相對歷史版本安裝包為增加的文件,因此,可以直接復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)施例中,上述電子設(shè)備還可以在步驟405中判斷所生成的差異文件的文件大小大于預(yù)設(shè)文件大小閾值的情況下,表明該新版本安裝文件與歷史版本安裝包中的同名文件的差異文件的較大,不適合將該差異文件添加到增量更新包中,因此,也可以直接復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
步驟403,確定歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,如果存在,轉(zhuǎn)到步驟404,如果不存在,轉(zhuǎn)到步驟403’。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在步驟402中確定該新版本安裝文件的文件類型為文本文件的情況下,確定歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,如果存在,轉(zhuǎn)到步驟404,如果不存在,轉(zhuǎn)到步驟403’。
步驟404,生成該新版本安裝文件與歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件,并將所生成的差異文件,作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)現(xiàn)方式中,上述電子設(shè)備可以在步驟403中確定歷史版本安裝包中存在與該新版本安裝文件的文件名相同的歷史版本安裝文件的情況下,表明該新版本安裝文件相對歷史版本安裝包為修改后的文件,因此,可以生成該新版本安裝文件與歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件,并將所生成的差異文件,作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。實(shí)踐中,可以采用各種現(xiàn)有的文本差異算法比較工具(例如,google-diff-match-patch),對該新版本安裝文件和歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件做差量計算,生成差異文件。
步驟405,判斷所生成的差異文件的文件大小是否大于預(yù)設(shè)文件大小閾值,如果大于,轉(zhuǎn)到步驟403’,如果不大于,轉(zhuǎn)到步驟406。
在本實(shí)施例中,上述電子設(shè)備可以在步驟404中生成該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件之后,判斷所生成的差異文件的文件大小是否大于預(yù)設(shè)文件大小閾值。
如果將所生成的差異文件作為該新版本安裝文件與歷史版本安裝中歷史版本安裝文件的差異文件并添加到增量更新包中,則客戶端在增量更新的過程中,需要為所生成的差異文件付出以下流量和時間:網(wǎng)絡(luò)傳輸所生成的差異文件所需的時間和流量、復(fù)制所生成的差異文件的所需的時間、將客戶端中安裝的目標(biāo)應(yīng)用的與該新版本安裝文件的文件名相同的歷史版本安裝文件差量更新到該新版本安裝文件所需的時間。而如果復(fù)制該新版本安裝文件作為該新版本安裝文件與歷史版本安裝中歷史版本安裝文件的差異文件并添加到增量更新包中,則客戶端在增量更新的過程中,僅需要為該新版本安裝文件付出以下流量和時間:網(wǎng)絡(luò)傳輸該新版本安裝文件所需的時間和流量、復(fù)制該新版本安裝文件的所需的時間,而不需要付出將客戶端中安裝的目標(biāo)應(yīng)用的與該新版本安裝文件的文件名相同的歷史版本安裝文件差量更新到該新版本安裝文件所需的時間。因此,為了減少將客戶端增量更新的流量和時間,需要設(shè)置預(yù)設(shè)文件大小閾值,如果所生成的差異文件的文件大小大于預(yù)設(shè)文件大小閾值時,表明差異文件本身較大,為了節(jié)省客戶端進(jìn)行增量更新的時間和流量,可以對該新版本安裝文件進(jìn)行全量更新,因此,可以轉(zhuǎn)到步驟403’。如果所生成的差異文件的文件大小不大于預(yù)設(shè)文件大小閾值,表明差異文件較小,為了節(jié)省客戶端進(jìn)行增量更新的時間和流量,可以對該新版本安裝文件進(jìn)行增量更新,因此,可以轉(zhuǎn)到步驟406。
作為示例,假設(shè)新版本安裝文件F1的文件大小為1MB(Mega Byte,兆字節(jié),),新版本安裝文件F1與歷史版本安裝文件F1的差異文件F1’的文件大小為900KB(Kilo Byte,千字節(jié))。
如果采用全量更新,需要將新版本安裝文件F1(文件大小1MB)傳輸?shù)娇蛻舳耍鑲鬏敃r間為5秒,復(fù)制該新版本安裝文件F1需要的時間為0.5秒,那么客戶端需要總共付出的時間為5.5秒。
如果采用差量更新,需要將差異文件F1’(文件大小900KB)傳輸?shù)娇蛻舳?,所需傳輸時間為4.5秒,復(fù)制差異文件F1’需要的時間為0.5秒,將客戶端的歷史版本安裝文件F1根據(jù)差異文件F1’差量更新到新版本安裝文件F1所需時間為1秒,那么客戶端需要總共付出的時間為6秒。
雖然,差異文件F1’的文件大小小于新版本安裝文件F1的文件大小,但是從客戶端需要付出的總時間來看,全量更新所需的時間更短。因此,需要預(yù)先設(shè)置文件大小閾值,并根據(jù)差異文件的大小是否大于該預(yù)設(shè)文件大小閾值來確定是否將所生成的差異文件作為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
實(shí)踐中,可以預(yù)先根據(jù)網(wǎng)絡(luò)帶寬狀況和現(xiàn)有終端設(shè)備的復(fù)制速度進(jìn)行統(tǒng)計分析后設(shè)置文件大小閾值。
步驟406,將所生成的差異文件確定為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
在本實(shí)施例中,上述電子設(shè)備可以在步驟405中判斷所生成的差異文件的文件大小不大于預(yù)設(shè)文件大小閾值的情況下,表明所生成的差異文件較小,適合做增量更新,因此可以將所生成的差異文件確定為該新版本安裝文件與歷史版本安裝包中歷史版本安裝文件的差異文件。
步驟407,壓縮所生成的各個差異文件,將壓縮所得到的文件包作為目標(biāo)應(yīng)用的增量更新包。
在本實(shí)施例中,增量更新包的生成方法運(yùn)行于其上的電子設(shè)備可以對所生成的各個差異文件進(jìn)行壓縮,并壓縮所得到的文件包作為目標(biāo)應(yīng)用的增量更新包。
從圖4中可以看出,與圖2a對應(yīng)的實(shí)施例相比,本實(shí)施例中的增量更新包的生成方法的流程400多出了對所生成的差異文件的文件大小進(jìn)行判斷的步驟。由此,本實(shí)施例描述的方案可以在新版本安裝文件為文本文件且該新版本安裝文件與歷史版本安裝中同名歷史版本安裝文件的差異文件的文件大小不大于預(yù)設(shè)文件大小閾值的情況下做增量更新,反之,做全量更新,從而更大程度上減少了客戶端進(jìn)行增量更新所需的時間。
進(jìn)一步參考圖5,作為對上述各圖所示方法的實(shí)現(xiàn),本申請?zhí)峁┝艘环N增量更新包的生成裝置的一個實(shí)施例,該裝置實(shí)施例與圖2a所示的方法實(shí)施例相對應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
如圖5所示,本實(shí)施例的增量更新包的生成裝置500包括:第一獲取單元501、生成單元502和壓縮單元503。其中,第一獲取單元501,配置用于獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包;生成單元502,配置用于對于上述新版本安裝包中的每個新版本安裝文件,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件;而壓縮單元503,配置用于壓縮所生成的各個差異文件,將壓縮所得到的文件包作為上述目標(biāo)應(yīng)用的增量更新包。
在本實(shí)施例中,增量更新包的生成裝置500的第一獲取單元501、生成單元502和壓縮單元503的具體處理及其所帶來的技術(shù)效果可分別參考圖2a對應(yīng)實(shí)施例中步驟201、步驟202和步驟203的相關(guān)說明,在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述文件類型可以為文本文件或者二進(jìn)制文件;以及上述生成單元502可以包括:第一確定模塊5021,配置用于確定該新版本安裝文件的文件類型;第一復(fù)制模塊5022,配置用于響應(yīng)于確定該新版本安裝文件的文件類型為二進(jìn)制文件,復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。第一確定模塊5021和第一復(fù)制模塊5022的具體處理及其所帶來的技術(shù)效果可分別參考圖4對應(yīng)實(shí)施例中步驟402和步驟403’的相關(guān)說明,在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述生成單元502還可以包括:第二確定模塊5023,配置用于響應(yīng)于確定該新版本安裝文件的文件類型為文本文件,確定上述歷史版本安裝包中是否存在與該新版本安裝文件的文件名相同的歷史版本安裝文件;第二復(fù)制模塊5024,配置用于響應(yīng)于確定上述歷史版本安裝包中不存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,則復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。第二確定模塊5023和第二復(fù)制模塊5024的具體處理及其所帶來的技術(shù)效果可分別參考圖4對應(yīng)實(shí)施例中步驟403、步驟403’的相關(guān)說明,在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述生成單元502還可以包括:生成模塊5025,配置用于響應(yīng)于確定上述歷史版本安裝包中存在與該新版本安裝文件的文件名相同的歷史版本安裝文件,生成該新版本安裝文件與上述歷史版本安裝包中與該新版本安裝文件的文件名相同的歷史版本安裝文件的差異文件;判斷模塊5026,配置用于判斷所生成的差異文件的文件大小是否大于預(yù)設(shè)文件大小閾值;第三復(fù)制模塊5027,配置用于響應(yīng)于所生成的差異文件的文件大小大于上述預(yù)設(shè)文件大小閾值,則復(fù)制該新版本安裝文件,并將復(fù)制得到的新版本安裝文件作為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。生成模塊5025、判斷模塊5026和第三復(fù)制模塊5027的具體處理及其所帶來的技術(shù)效果可分別參考圖4對應(yīng)實(shí)施例中步驟404、步驟405和步驟403’的相關(guān)說明,在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述生成單元502還可以包括:第三確定模塊5028,配置用于響應(yīng)于所生成的差異文件的文件大小不大于預(yù)設(shè)文件大小閾值,則將所生成的差異文件確定為該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件。第三確定模塊5028的具體處理及其所帶來的技術(shù)效果可參考圖4對應(yīng)實(shí)施例中步驟406的相關(guān)說明,在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述增量更新包的生成裝置500還可以包括:更新請求接收單元504,配置用于接收客戶端發(fā)來的更新請求,上述更新請求包括上述目標(biāo)應(yīng)用的當(dāng)前版本號和目標(biāo)版本號;確定單元505,配置用于根據(jù)上述當(dāng)前版本號和上述目標(biāo)版本號,確定上述目標(biāo)應(yīng)用的與上述當(dāng)前版本號和上述目標(biāo)版本號對應(yīng)的增量更新包的下載地址;第一發(fā)送單元506,配置用于將上述增量更新包的下載地址發(fā)送給上述客戶端,以使上述客戶端根據(jù)上述增量更新包的下載地址下載上述目標(biāo)應(yīng)用的與上述當(dāng)前版本號和上述目標(biāo)版本號對應(yīng)的增量更新包并進(jìn)行增量更新操作。更新請求接收單元504、確定單元505和第一發(fā)送單元506的具體處理及其所帶來的技術(shù)效果可分別參考圖2a對應(yīng)實(shí)施例中步驟204、步驟205和步驟206的相關(guān)說明,在此不再贅述。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述增量更新包的生成裝置500還可以包括:回滾降級請求接收單元507,配置用于接收客戶端發(fā)來的回滾降級請求,上述回滾降級請求包括上述目標(biāo)應(yīng)用的回滾降級版本號,其中,上述回滾降級版本號低于上述客戶端中安裝的目標(biāo)應(yīng)用的當(dāng)前版本號;第二獲取單元508,配置用于獲取上述目標(biāo)應(yīng)用的與上述回滾降級版本號對應(yīng)的全量安裝包的下載地址;第二發(fā)送單元509,配置用于將上述全量安裝包的下載地址發(fā)送到上述客戶端,以使上述客戶端根據(jù)上述全量安裝包的下載地址下載上述全量安裝包并進(jìn)行回滾降級操作?;貪L降級請求接收單元507、第二獲取單元508和第二發(fā)送單元509的具體處理及其所帶來的技術(shù)效果可分別參考圖2a對應(yīng)實(shí)施例中步驟204’、步驟205’和步驟206’的相關(guān)說明,在此不再贅述。
下面參考圖6,其示出了適于用來實(shí)現(xiàn)本申請實(shí)施例的服務(wù)器的計算機(jī)系統(tǒng)600的結(jié)構(gòu)示意圖。圖6示出的服務(wù)器僅僅是一個示例,不應(yīng)對本申請實(shí)施例的功能和使用范圍帶來任何限制。
如圖6所示,計算機(jī)系統(tǒng)600包括中央處理單元(CPU,Central Processing Unit)601,其可以根據(jù)存儲在只讀存儲器(ROM,Read Only Memory)602中的程序或者從存儲部分606加載到隨機(jī)訪問存儲器(RAM,Random Access Memory)603中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在RAM 603中,還存儲有系統(tǒng)600操作所需的各種程序和數(shù)據(jù)。CPU 601、ROM 602以及RAM 603通過總線604彼此相連。輸入/輸出(I/O,Input/Output)接口605也連接至總線604。
以下部件連接至I/O接口605:包括硬盤等的存儲部分606;以及包括諸如LAN(局域網(wǎng),Local Area Network)卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分607。通信部分607經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器608也根據(jù)需要連接至I/O接口605。可拆卸介質(zhì)609,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等,根據(jù)需要安裝在驅(qū)動器608上,以便于從其上讀出的計算機(jī)程序根據(jù)需要被安裝入存儲部分606。
特別地,根據(jù)本公開的實(shí)施例,上文參考流程圖描述的過程可以被實(shí)現(xiàn)為計算機(jī)軟件程序。例如,本公開的實(shí)施例包括一種計算機(jī)程序產(chǎn)品,其包括承載在計算機(jī)可讀介質(zhì)上的計算機(jī)程序,該計算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實(shí)施例中,該計算機(jī)程序可以通過通信部分607從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)609被安裝。在該計算機(jī)程序被中央處理單元(CPU)601執(zhí)行時,執(zhí)行本申請的方法中限定的上述功能。需要說明的是,本申請所述的計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)或者是上述兩者的任意組合。計算機(jī)可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子可以包括但不限于:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)訪問存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本申請中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。而在本申請中,計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于:無線、電線、光纜、RF等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本申請各種實(shí)施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個或多個用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實(shí)現(xiàn)。
描述于本申請實(shí)施例中所涉及到的單元可以通過軟件的方式實(shí)現(xiàn),也可以通過硬件的方式來實(shí)現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括第一獲取單元、生成單元和壓縮單元。其中,這些單元的名稱在某種情況下并不構(gòu)成對該單元本身的限定,例如,壓縮單元還可以被描述為“壓縮差異文件的單元”。
作為另一方面,本申請還提供了一種計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以是上述實(shí)施例中描述的裝置中所包含的;也可以是單獨(dú)存在,而未裝配入該裝置中。上述計算機(jī)可讀介質(zhì)承載有一個或者多個程序,當(dāng)上述一個或者多個程序被該裝置執(zhí)行時,使得該裝置:獲取目標(biāo)應(yīng)用的新版本安裝包和歷史版本安裝包;對于上述新版本安裝包中的每個新版本安裝文件,根據(jù)該新版本安裝文件的文件類型生成該新版本安裝文件與上述歷史版本安裝包中歷史版本安裝文件的差異文件;壓縮所生成的各個差異文件,將壓縮所得到的文件包作為上述目標(biāo)應(yīng)用的增量更新包。
以上描述僅為本申請的較佳實(shí)施例以及對所運(yùn)用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應(yīng)涵蓋在不脫離上述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。