本申請涉及計算機技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用軟件的更新方法和設(shè)備。
背景技術(shù):
隨著科學技術(shù)的發(fā)展,為了滿足用戶需求,應(yīng)用軟件開發(fā)商開發(fā)出現(xiàn)了各種各樣的應(yīng)用軟件,例如:即時通信軟件、各種應(yīng)用客戶端等等,極大方便了用戶的實際生活需要。
應(yīng)用軟件開發(fā)者開發(fā)在開發(fā)應(yīng)用軟件后,將不斷地基于應(yīng)用軟件本身的使用情況或者應(yīng)用軟件產(chǎn)品本身性能完善的需要對應(yīng)用軟件進行功能更新。這種更新意味著對應(yīng)用軟件功能的新開發(fā)。
目前,應(yīng)用軟件的開發(fā)方式包含應(yīng)用軟件的全量構(gòu)建方式和應(yīng)用軟件的增量構(gòu)建方式。
具體地,所謂應(yīng)用軟件的全量構(gòu)建方式是指對應(yīng)用軟件的所有功能進行構(gòu)建,并針對構(gòu)建得到的所有功能模塊進行編譯,以得到應(yīng)用軟件的安裝包。這種全量構(gòu)建方式適用于應(yīng)用軟件開發(fā)的初期。
所謂應(yīng)用軟件的增量構(gòu)建方式是指針對應(yīng)用軟件的部分功能進行構(gòu)建,并針對構(gòu)建得到的部分功能進行編譯,以生成針對該部分功能的補丁包。這種增量構(gòu)建方式適用于應(yīng)用軟件開發(fā)的后期以及應(yīng)用軟件的維護階段。
不管是在應(yīng)用軟件的開發(fā)階段還是應(yīng)用軟件的維護階段,為了提高應(yīng)用軟件功能的構(gòu)建效率,可以采用增量構(gòu)建方式對應(yīng)用軟件的功能進行修改構(gòu)建,最后將修改構(gòu)建的功能進行整合以得到應(yīng)用軟件的安裝包。
但是,在實際應(yīng)用中,需要開發(fā)者自行記錄哪些功能采用增量構(gòu)建方式,這樣在需要整合得到應(yīng)用軟件的全量安裝包時,一旦忘記哪些功能采用增量構(gòu)建方式,將使得整合得到的全量安裝包中未包含增量構(gòu)建的功能,導(dǎo)致安裝包出現(xiàn)“不完整”,進而使得應(yīng)用軟件在運行階段出現(xiàn)錯誤,降低用戶對應(yīng)用軟件的使用體驗。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請實施例提供的一種應(yīng)用軟件的更新方法和設(shè)備,用于解決現(xiàn)有技術(shù)中應(yīng)用軟件由于安裝包“不完整”出現(xiàn)運行錯誤的問題。
本申請實施例提供了一種應(yīng)用軟件的更新方法,包括:
提供應(yīng)用軟件的增量安裝包,所述增量安裝包中包括第一基準版本信息;
接收用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求,所述應(yīng)用軟件更新請求中包含所述應(yīng)用軟件的當前版本信息,所述當前版本信息中包括第二基準版本信息;
在確定所述第一基準版本信息與所述第二基準版本信息一致時,將所述應(yīng)用軟件的增量安裝包發(fā)送給所述用戶設(shè)備,以用于增量更新。
本申請實施例還提供了一種應(yīng)用軟件的更新設(shè)備,包括:
存儲單元,提供應(yīng)用軟件的增量安裝包,所述增量安裝包中包括第一基準版本信息;
接收單元,接收用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求,所述應(yīng)用軟件更新請求中包含所述應(yīng)用軟件的當前版本信息,所述當前版本信息中包括第二基準版本信息;
發(fā)送單元,在確定所述第一基準版本信息與所述第二基準版本信息一致時,將所述應(yīng)用軟件的增量安裝包發(fā)送給所述用戶設(shè)備,以用于增量更新。
本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:
通過提供應(yīng)用軟件的增量安裝包,所述增量安裝包中包括第一基準版本信息;接收用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求,所述應(yīng)用軟件更新請求中包含所述應(yīng)用軟件的當前版本信息,所述當前版本信息中包括第二基準版本信息;在確定所述第一基準版本信息與所述第二基準版本信息一致時,將所述應(yīng)用軟件的增量安裝包發(fā)送給所述用戶設(shè)備,以用于增量更新。通過判斷應(yīng)用軟件的實際版本信息與該應(yīng)用軟件的增量安裝包對應(yīng)的基準版本信息是否一致,有選擇地向用戶設(shè)備推送增量安裝包或者全量安裝包,以保證用戶設(shè)備能夠快速實現(xiàn)軟件更新,提升了應(yīng)用軟件更新的效率,進而改善用戶對應(yīng)用軟件的用戶體驗。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
圖1為本申請實施例提供的一種應(yīng)用軟件的更新方法的流程示意圖;
圖2為本申請實施例中提供的指針指向基線包的結(jié)構(gòu)示意圖;
圖3為本申請實施例提供的一種應(yīng)用軟件的更新設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
為了實現(xiàn)本申請的目的,本申請實施例提供了一種應(yīng)用軟件的更新方法和設(shè)備,提供應(yīng)用軟件的增量安裝包,所述增量安裝包中包括第一基準版本信息;接收用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求,所述應(yīng)用軟件更新請求中包含所述應(yīng)用軟件的當前版本信息,所述當前版本信息中包括第二基準版本信息;在確定所述第一基準版本信息與所述第二基準版本信息一致時,將所述應(yīng)用軟件的增量安裝包發(fā)送給所述用戶設(shè)備,以用于增量更新。通過判斷應(yīng)用軟件的實際版本信息與該應(yīng)用軟件的增量安裝包對應(yīng)的基準版本信息是否一致,有選擇地向用戶設(shè)備推送增量安裝包或者全量安裝包,以保證用戶設(shè)備能夠快速實現(xiàn)軟件更新,提升了應(yīng)用軟件更新的效率,進而改善用戶對應(yīng)用軟件的用戶體驗。
本申請實施例所提供的技術(shù)方案除了可以應(yīng)用在Android操作系統(tǒng)中,還可以應(yīng)用在其他各種半開源操作系統(tǒng)中,這里不做具體限定。
需要說明的是,本申請實施例中所記載的基線包是指應(yīng)用軟件的基準安裝包,可以通過全量方式構(gòu)建得到,又可以稱之為基準安裝包;增量包又可以稱之為增量安裝包,是指在基線包的基礎(chǔ)之上針對應(yīng)用軟件的某一個或者某幾個功能進行增量構(gòu)建形成的安裝包;全量包又可以稱之為全量安裝包,是針對應(yīng)用軟件的全部功能構(gòu)建形成的安裝包,可以包含基線包和增量包。
下面結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
以下結(jié)合附圖,詳細說明本申請各實施例提供的技術(shù)方案。
實施例1
圖1為本申請實施例提供的一種應(yīng)用軟件的更新方法的流程示意圖。所述方法可以如下所示。
步驟101:提供應(yīng)用軟件的增量安裝包和全量安裝包。
其中,所述增量安裝包中包括第一基準版本信息。
在本申請實施例中,在應(yīng)用軟件的開發(fā)過程中,可以根據(jù)開發(fā)需要,構(gòu)建應(yīng)用軟件的增量安裝包或者構(gòu)建應(yīng)用軟件的全量安裝包。
具體地,針對應(yīng)用軟件的部分功能,以基準安裝包為基礎(chǔ),通過增量構(gòu)建的方式得到針對所述部分功能的增量安裝包。
可選地,在構(gòu)建得到所述部分功能的增量安裝包時,所述方法還包括:
確定所述基準安裝包的版本信息,并將所述基準安裝包的版本信息作為所述增量安裝包的第一基準版本信息;
建立所述增量安裝包與所述增量安裝包對應(yīng)的第一基準版本信息之間的映射關(guān)系。
例如:在應(yīng)用軟件開發(fā)初始化階段,應(yīng)用軟件的運行代碼通過全量打包方式形成安裝包,即初始基線包(又可以稱之為基準安裝包)。
那么在該基準安裝包的基礎(chǔ)之上,對應(yīng)用軟件的某一功能的代碼進行優(yōu)化或者維護,那么針對優(yōu)化后的代碼可以采用增量構(gòu)建的方式得到針對這一功能的增量安裝包。同樣的道理,還可以在該基準安裝包的基礎(chǔ)之上,對應(yīng)用軟件的其他功能的代碼進行優(yōu)化,得到其他功能的增量安裝包。
那么在針對同一個基準安裝包構(gòu)建得到不同的增量安裝包后,可以針對應(yīng)用軟件的全部或者部分功能,以基準安裝包和/或增量安裝包為基礎(chǔ),通過全量構(gòu)建的方式得到針對所述應(yīng)用軟件的全量安裝包。
可選地,在構(gòu)建得到所述應(yīng)用軟件的全量安裝包時,所述方法還包括:
確定所述全量安裝包的版本信息,并將所述版本信息作為所述全量安裝包的第二基準版本信息,所述第二基準版本信息中包含的版本號高于所述基準安裝包對應(yīng)的基準版本信息中包含的版本號;
建立所述全量安裝包與所述第二基準版本信息之間的映射關(guān)系。
需要說明的是,在構(gòu)建得到全量安裝包時,需要為該全量安裝包確定一個版本信息,這一個版本信息可以稱之為一個新的基準版本信息。
也就是說,本申請實施例中所記載的基準安裝包對應(yīng)的基準版本信息可以是指通過全量構(gòu)建得到的全量安裝包對應(yīng)的版本信息。
例如:如表1所示,為對應(yīng)用軟件進行增量或者全量構(gòu)建后的得到的基準版本信息與不同安裝包之間的映射關(guān)系表:
表1
從表1中可以看出,增量安裝包1、增量安裝包2和增量安裝包3是以基準版本信息為1.0的基準安裝包為基礎(chǔ)通過增量構(gòu)建得到的;增量安裝包4和增量安裝包5是以基準版本信息為3.0的基準安裝包為基礎(chǔ)通過增量構(gòu)建得到的。
優(yōu)選地,在本申請實施例中,確定所述應(yīng)用軟件的增量安裝包對應(yīng)的基準版本信息,包括:
首先,查找在對所述應(yīng)用軟件進行增量安裝包構(gòu)建之前所述應(yīng)用軟件的基準版本信息。
具體地,掃描所述應(yīng)用軟件的腳本,并確定指針指向的所述應(yīng)用軟件的基準版本信息。
其次,將查找到所述應(yīng)用軟件的基準版本信息作為所述應(yīng)用軟件的增量安裝包對應(yīng)的基準版本信息。
最后,在對所述應(yīng)用軟件的增量安裝包進行全量構(gòu)建后,調(diào)整所述指針的位置,使所述指針指向包含所述增量安裝包的全量安裝包對應(yīng)的基準版本信息。
在本申請實施例中,在掃描應(yīng)用軟件的腳本時,可以通過查找指針的方式確定應(yīng)用軟件的基準版本信息。
在應(yīng)用軟件開發(fā)以及編譯階段,為了保證全量構(gòu)建和增量構(gòu)建的狀態(tài)同步,本申請實施例中采用指針標定應(yīng)用軟件的基準版本信息的方式,以確定增量構(gòu)建的增量包對應(yīng)的基準版本信息以及以確定全量構(gòu)建的全量包對應(yīng)的基準版本信息,為后續(xù)應(yīng)用軟件維護提供便利,同時也能夠防止在構(gòu)建全量包時因為無法確定增量構(gòu)建的具體情形導(dǎo)致全量包“不完整”問題。
例如:在應(yīng)用軟件開發(fā)階段,對于應(yīng)用軟件1,構(gòu)建初始全量安裝包,該初始全量安裝包對應(yīng)的基準版本信息可以稱為版本1.0,此時指針指向版本1.0;之后,開發(fā)者在版本1.0的基礎(chǔ)之上對該應(yīng)用軟件的功能1進行修改,生成增量安裝包a,那么該增量安裝包對應(yīng)的基準版本信息為版本1.0;開發(fā)者在版本1.0的基礎(chǔ)之上對該應(yīng)用軟件的功能2進行修改,生成增量安裝包b,那么該增量安裝包對應(yīng)的基準版本信息為版本1.0;開發(fā)者在版本1.0的基礎(chǔ)之上對該應(yīng)用軟件的功能3進行修改,生成增量安裝包c,那么該增量安裝包對應(yīng)的基準版本信息為版本1.0。
假設(shè)在得到三個增量安裝包之后,基于增量安裝包a、增量安裝包b和增量安裝包c可以構(gòu)建針對該應(yīng)用軟件的全量安裝包,那么該全量安裝包對應(yīng)的基準版本信息為版本2.0,此時指針指向版本2.0。
或者,開發(fā)者在版本1.0的基礎(chǔ)之上對該應(yīng)用軟件的功能1進行修改,生成增量安裝包a,那么該增量安裝包對應(yīng)的基準版本信息為版本1.0;假設(shè)在得到增量安裝包a之后,基于該增量安裝包a構(gòu)建包含該增量安裝包的全量安裝包,那么該全量安裝包對應(yīng)的基準版本信息為版本1.0.1,此時指針指向版本1.0.1;開發(fā)者在版本1.0.1的基礎(chǔ)之上對該應(yīng)用軟件的功能2進行修改,生成增量安裝包b,那么該增量安裝包對應(yīng)的基準版本信息為版本1.0.1。
這樣,應(yīng)用軟件在后續(xù)的開發(fā)中,通過不斷構(gòu)建新的全量基線包和/或新的增量包實現(xiàn)應(yīng)用軟件的更新。當在初始基線包中構(gòu)建出新的全量基線包后,指針自動向新的全量基線包位置移動;當以新的全量基線包為基準構(gòu)建出新的增量包時,增量包所對應(yīng)的基線包即為新的全量基線包,指針的位置不發(fā)生移動;當以新的增量包為基準構(gòu)建新的全量基線包時,此時新的全量基線包中包含新的增量包,此時基線包發(fā)生變化,即指針的位置自動移動至包含新的增量包的全量基線包所在位置。
圖2為本申請實施例中提供的指針指向基線包的結(jié)構(gòu)示意圖。
在應(yīng)用軟件開發(fā)階段,可以根據(jù)實際需要構(gòu)建應(yīng)用軟件的全量安裝包,也可以在一個已經(jīng)構(gòu)建的全量安裝包的基礎(chǔ)之上構(gòu)建多個增量安裝包,即可以在全量安裝包的基礎(chǔ)之上,對應(yīng)用軟件的多個不同功能分別構(gòu)建增量安裝包,那么這些增量安裝包的基線包對應(yīng)該全量安裝包。
假設(shè)一個應(yīng)用軟件,目前已經(jīng)存在基線包base,存在三個功能:A、B和C,從圖2中可以看出,base為基線包(假設(shè)該基線包對應(yīng)應(yīng)用軟件的版本信息為1.0),在該基線包的基礎(chǔ)之上,分別進行增量構(gòu)建得到增量安裝包A(對功能A進行增量構(gòu)建)、增量安裝包B(對功能B進行增量構(gòu)建)和增量安裝包C(對功能C進行增量構(gòu)建),那么對于該應(yīng)用軟件來說,包含基線包base,三個增量安裝包:增量安裝包A、增量安裝包B和增量安裝包C,那么該應(yīng)用軟件的基準版本信息為base對應(yīng)的版本信息,此時指針指向基線包base。
假設(shè)在應(yīng)用軟件開發(fā)階段,開發(fā)者在開發(fā)得到應(yīng)用軟件的基線包base(對應(yīng)版本信息為1.0)時,通過全量構(gòu)建的方式構(gòu)建得到全量安裝包M,這個全量安裝包M是在基線包base基礎(chǔ)之上對應(yīng)用軟件的一個功能(例如:功能A)進行改進后全量構(gòu)建得到(即包含base+增量安裝包A),此時應(yīng)用軟件對應(yīng)的基線包變更為全量安裝包M(對應(yīng)的版本信息為1.0.1);
在全量安裝包M的基礎(chǔ)之上,通過全量構(gòu)建的方式建得到全量安裝包N,這個全量安裝包N是在全量安裝包M基礎(chǔ)之上對應(yīng)用軟件的另一個功能(例如:功能B)進行改進后全量構(gòu)建得到(即包含base+增量安裝包A+增量安裝包B),此時應(yīng)用軟件對應(yīng)的基線包變更為全量安裝包N(對應(yīng)的版本信息為1.0.2);
在全量安裝包N的基礎(chǔ)之上,通過全量構(gòu)建的方式建得到全量安裝包P,這個全量安裝包P是在全量安裝包N基礎(chǔ)之上對應(yīng)用軟件的第三個功能(例如:功能C)進行改進后全量構(gòu)建得到(即包含base+增量安裝包A+增量安裝包B+增量安裝包C),此時應(yīng)用軟件對應(yīng)的基線包變更為全量安裝包P(對應(yīng)的版本信息為2.0)。
那么此時指針指向全量安裝包P,即得到新的基準版本信息。
需要說明的是,應(yīng)用軟件在后續(xù)的開發(fā)中,應(yīng)用軟件中的程序代碼需要不斷地進行變更,而變更后的應(yīng)用軟件的程序代碼會經(jīng)過不同構(gòu)建流程形成新的基線包和/或增量包,進而實現(xiàn)應(yīng)用軟件中不同的功能模塊的完善、功能模塊的添加、以及應(yīng)用軟件的程序代碼中漏洞的修復(fù)。
在應(yīng)用軟件開發(fā)階段,當應(yīng)用軟件的功能更新只需要在基線包之上構(gòu)建新的增量包時,指針指向所述基線包的位置,那么此時應(yīng)用軟件的功能更新不觸發(fā)基線對齊,能夠直接構(gòu)建新的增量包,應(yīng)用軟件在功能更新前與功能更新后的基線包狀態(tài)是一致的,當新的增量包構(gòu)建完畢后,指針位置保持不變。當應(yīng)用軟件的功能更新需要重新構(gòu)建基線包時,需要確定在該基線包之后是否構(gòu)建過增量包,若在基線包之后沒有構(gòu)建過增量包,那么,應(yīng)用軟件直接通過全量構(gòu)建的方式來構(gòu)建新的基線包,不觸發(fā)基線對齊,在新的基線包構(gòu)建完畢后,指針自動移向最新的基線包狀態(tài);如果在基線包之后構(gòu)建過增量包,那么,結(jié)合基線包和構(gòu)建得到的增量包,通過全量構(gòu)建的方式得到新的基線包,同步調(diào)整指針指向新的基線包位置。
需要說明的是,在對當前的應(yīng)用軟件中的增量包的各個子程序進行全量構(gòu)建時,也存在各個子程序位于同層級的情況,此時采用并發(fā)構(gòu)建的方式對增量包中的各個子程序進行全量構(gòu)建,在全量構(gòu)建完畢后,新的基線包中包含增量包中各個子程序的修改,而更新前的應(yīng)用軟件安裝包中的增量包也在應(yīng)用軟件更新后的第一次啟動中被清除,此時,指針自動指向新的基線包,實現(xiàn)基線的對齊。
步驟102:接收用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求,所述應(yīng)用軟件更新請求中包含所述應(yīng)用軟件的當前版本信息。
所述當前版本信息中包括第二基準版本信息。
在步驟102中,用戶設(shè)備在檢測到本地安裝的應(yīng)用軟件發(fā)布的新版本時,向該應(yīng)用軟件對應(yīng)的服務(wù)器發(fā)送應(yīng)用軟件更新請求,在該應(yīng)用軟件更新請求中包含該應(yīng)用軟件當前所使用的版本信息。
優(yōu)選地,應(yīng)用軟件服務(wù)器在檢測到用戶設(shè)備所使用的應(yīng)用軟件的版本不是最新版本時,向用戶設(shè)備發(fā)送應(yīng)用軟件更新通知消息,若用戶設(shè)備確定更新應(yīng)用軟件,則向應(yīng)用軟件服務(wù)器發(fā)送應(yīng)用軟件更新請求,即應(yīng)用軟件服務(wù)器能夠接收到用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求。
優(yōu)選地,通過應(yīng)用軟件中的自動檢測功能檢測用戶設(shè)備所使用的應(yīng)用軟件的版本是否為應(yīng)用軟件服務(wù)器所發(fā)布的最新版本。
其中,應(yīng)用軟件的自動檢測功能可以通過運行應(yīng)用軟件中相應(yīng)的檢測程序代碼實現(xiàn)。
具體地,當啟動用戶設(shè)備中安裝的應(yīng)用軟件時,安裝在用戶設(shè)備中的應(yīng)用軟件的客戶端主動與應(yīng)用軟件服務(wù)器建立數(shù)據(jù)連接。當應(yīng)用軟件的客戶端與應(yīng)用軟件服務(wù)器建立數(shù)據(jù)連接后,應(yīng)用軟件的客戶端通過對比當前所使用的應(yīng)用軟件的版本信息與應(yīng)用軟件服務(wù)器中已發(fā)布的最新的應(yīng)用軟件的版本信息,確定所使用的應(yīng)用軟件版本是否與應(yīng)用軟件服務(wù)器中已發(fā)布最新的應(yīng)用軟件版本一致。
如果客戶端所使用的應(yīng)用軟件版本是否與應(yīng)用軟件服務(wù)器中已發(fā)布最新的應(yīng)用軟件版本一致,說明客戶端無需更新應(yīng)用軟件版本;如果客戶端所使用的應(yīng)用軟件版本是否與應(yīng)用軟件服務(wù)器中已發(fā)布最新的應(yīng)用軟件版本不一致,說明客戶端需要更新應(yīng)用軟件版本,那么此時可以通過用戶設(shè)備向應(yīng)用軟件服務(wù)器發(fā)送應(yīng)用軟件更新請求。
需要說明的是,客戶端可以通過使用傳輸控制協(xié)議(Transmission Control Protocol,TCP)的三次握手協(xié)議實現(xiàn)與應(yīng)用軟件服務(wù)器之間的數(shù)據(jù)連接。具體地,客戶端創(chuàng)建一個基于TCP的套接字(Socket),并向應(yīng)用軟件服務(wù)器發(fā)出連接請求(也可稱作握手信號,Synchronous,SYN),在接收到應(yīng)用軟件服務(wù)器返回的握手信號確認(Synchronous+Acknowledgement,SYN+ACK)時,對應(yīng)用軟件服務(wù)器的SYN進行ACK確認,并建立客戶端與應(yīng)用軟件服務(wù)器之間的數(shù)據(jù)連接。
步驟103:判斷所述應(yīng)用軟件的第二基準版本信息與步驟101中提供的增量安裝包的第一基準版本信息是否一致;若一致,則執(zhí)行步驟104;若不一致,則執(zhí)行步驟105。
在步驟103中,比較所述應(yīng)用軟件的第二基準版本信息與所述應(yīng)用軟件的增量安裝包對應(yīng)的第一基準版本信息是否一致。
例如:該應(yīng)用軟件的當前版本信息為2.0.1.2,那么其第二基準版本信息為2.0或者2.0.1或者2.0.1.2,這個根據(jù)實際需要確定;若此時步驟101中提供的增量安裝包對應(yīng)的第一基準版本信息為3.0,則說明不一致;若此時步驟101中提供的增量安裝包對應(yīng)的第一基準版本信息為2.0.1.2,則說明一致。
步驟104:將所述應(yīng)用軟件的增量安裝包發(fā)送給所述用戶設(shè)備,以用于增量更新。
步驟105:將所述應(yīng)用軟件的全量安裝包發(fā)送給所述用戶設(shè)備,以用于全量更新。
通過本申請實施例提供的技術(shù)方案,提供應(yīng)用軟件的增量安裝包,所述增量安裝包中包括第一基準版本信息;接收用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求,所述應(yīng)用軟件更新請求中包含所述應(yīng)用軟件的當前版本信息,所述當前版本信息中包括第二基準版本信息;在確定所述第一基準版本信息與所述第二基準版本信息一致時,將所述應(yīng)用軟件的增量安裝包發(fā)送給所述用戶設(shè)備,以用于增量更新。通過判斷應(yīng)用軟件的實際版本信息與該應(yīng)用軟件的增量安裝包對應(yīng)的基準版本信息是否一致,有選擇地向用戶設(shè)備推送增量安裝包或者全量安裝包,以保證用戶設(shè)備能夠快速實現(xiàn)軟件更新,提升了應(yīng)用軟件更新的效率,進而改善用戶對應(yīng)用軟件的用戶體驗。
需要說明的是,與現(xiàn)有的版本控制系統(tǒng)SVN(Subversion)相比:現(xiàn)有SVN需要將代碼提交到中央庫,在中央庫中共用一份代碼,SVN管理的是服務(wù)器與客戶端之間的代碼版本;而本申請實施例針對操作系統(tǒng)(如Android)開發(fā)編譯過程中基線包與終端(手機端)中的安裝包同步的問題,不需要提交到中央庫,代碼的開發(fā)環(huán)境可以不一致,具體管理的是代碼與安裝包之間的關(guān)系。
實施例2
圖3為本申請實施例提供的一種應(yīng)用軟件的更新設(shè)備的結(jié)構(gòu)示意圖。所述更新設(shè)備包括:存儲單元31、接收單元32和發(fā)送單元33,其中:
存儲單元31,提供應(yīng)用軟件的增量安裝包,所述增量安裝包中包括第一基準版本信息;
接收單元32,接收用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求,所述應(yīng)用軟件更新請求中包含所述應(yīng)用軟件的當前版本信息,所述當前版本信息中包括第二基準版本信息;
發(fā)送單元33,在確定所述第一基準版本信息與所述第二基準版本信息一致時,將所述應(yīng)用軟件的增量安裝包發(fā)送給所述用戶設(shè)備,以用于增量更新。
在本申請的另一個實施例中,所述存儲單元31,還提供所述應(yīng)用軟件的全量安裝包;
所述發(fā)送單元33,在確定所述第一基準版本信息與所述第二基準版本信息不一致時,將所述應(yīng)用軟件的全量安裝包發(fā)送給所述用戶設(shè)備,以用于全量更新。
在本申請的另一個實施例中,所述存儲單元31提供應(yīng)用軟件的增量安裝包,包括:
在應(yīng)用軟件的開發(fā)階段,針對應(yīng)用軟件的部分功能,以基準安裝包為基礎(chǔ),通過增量構(gòu)建的方式得到針對所述部分功能的增量安裝包。
在本申請的另一個實施例中,所述存儲單元31,在構(gòu)建得到所述部分功能的增量安裝包時,確定所述基準安裝包的版本信息,并將所述基準安裝包的版本信息作為所述增量安裝包的第一基準版本信息;
建立所述增量安裝包與所述增量安裝包對應(yīng)的第一基準版本信息之間的映射關(guān)系。
在本申請的另一個實施例中,所述存儲單元31提供應(yīng)用軟件的全量安裝包,包括:
在應(yīng)用軟件的開發(fā)階段,針對應(yīng)用軟件的全部或者部分功能,以基準安裝包和/或增量安裝包為基礎(chǔ),通過全量構(gòu)建的方式得到針對所述應(yīng)用軟件的全量安裝包。
在本申請的另一個實施例中,所述存儲單元31,在構(gòu)建得到所述應(yīng)用軟件的全量安裝包時,確定所述全量安裝包的版本信息,并將所述版本信息作為所述全量安裝包的第二基準版本信息,所述第二基準版本信息中包含的版本號高于所述基準安裝包對應(yīng)的基準版本信息中包含的版本號;
建立所述全量安裝包與所述第二基準版本信息之間的映射關(guān)系。
需要說明的是,本申請實施例提供的更新設(shè)備可以通過軟件方式實現(xiàn),也可以通過硬件方式實現(xiàn),這里不做具體限定。所述更新設(shè)備在接收到用戶設(shè)備發(fā)送的應(yīng)用軟件更新請求時,通過判斷應(yīng)用軟件的實際版本信息與該應(yīng)用軟件的增量安裝包對應(yīng)的基準版本信息是否一致,有選擇地向用戶設(shè)備推送增量安裝包或者全量安裝包,以保證用戶設(shè)備能夠快速實現(xiàn)軟件更新,提升了應(yīng)用軟件更新的效率,進而改善用戶對應(yīng)用軟件的用戶體驗。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。