本發(fā)明涉及移動(dòng)通信技術(shù)領(lǐng)域,具體地說(shuō),是涉及一種跨版本OTA動(dòng)態(tài)升級(jí)方法。
背景技術(shù):
空中下載技術(shù)(Over the Air Technology,OTA) 是一種通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)下載的技術(shù),現(xiàn)已被廣泛應(yīng)用于手機(jī)、平板電腦等設(shè)備的網(wǎng)絡(luò)升級(jí)中。目前均是通過(guò)下載服務(wù)器端提供的針對(duì)客戶(hù)端當(dāng)前軟件版本的差分文件并將差分文件通過(guò)打補(bǔ)丁的方式更新到當(dāng)前軟件版本中,從而實(shí)現(xiàn)OTA 的升級(jí)。差分文件一般只包含了需要升級(jí)的文件信息,例如,差分文件V2-V1,只包含了版本V2 相對(duì)版本V1 發(fā)生變化的應(yīng)用信息,若要通過(guò)差分文件V2-V1 實(shí)現(xiàn)升級(jí),客戶(hù)端的當(dāng)前版本必須為V1,升級(jí)完成后客戶(hù)端的版本就變?yōu)閂2。
假設(shè)客戶(hù)端的當(dāng)前版本為V3,服務(wù)器側(cè)的最新版本為V5,現(xiàn)有技術(shù)中通常采用的第一種OTA 升級(jí)方法是,由服務(wù)器對(duì)客戶(hù)端的當(dāng)前版本進(jìn)行檢測(cè),根據(jù)當(dāng)前版本將差分文件V4-V3 傳輸給客戶(hù)端,客戶(hù)端接收該差分文件后將當(dāng)前版本由V3 升級(jí)到V4,并在此次升級(jí)完成后正常工作,直至下一次開(kāi)機(jī)或者再次打開(kāi)應(yīng)用程序,再由服務(wù)器重新檢測(cè)客戶(hù)端的當(dāng)前版本(V4) 是否為最新版本,如果不是,服務(wù)器再根據(jù)當(dāng)前版本(V4)將差分文件V5-V4 傳輸給客戶(hù)端進(jìn)行版本升級(jí)。這種OTA 升級(jí)方法的缺點(diǎn)是在版本升級(jí)時(shí)只能將當(dāng)前版本升級(jí)到當(dāng)前版本的上一個(gè)版本,無(wú)法實(shí)現(xiàn)連續(xù)升級(jí)。
為了能夠?qū)崿F(xiàn)將當(dāng)前版本一次性升級(jí)到最新版本,現(xiàn)有技術(shù)中第二種OTA 升級(jí)方法采用的方式是:在服務(wù)器側(cè)配置各個(gè)版本到最新版本的差分文件。例如,若最新版本為V5,則在服務(wù)器上配置V5-V1、V5-V2、V5-V3、V5-V4 這四種差分文件,從而各個(gè)版本的用戶(hù)通過(guò)下載對(duì)應(yīng)的差分文件則能實(shí)現(xiàn)一步到位的升級(jí)。但這種OTA 升級(jí)方法的缺點(diǎn)是,需要制作大量的差分文件,截至最新版本Vn(n 為正整數(shù)),服務(wù)器側(cè)共需制作n(n-1)2 種差分文件,而每種差分文件都需要進(jìn)行測(cè)試驗(yàn)證,開(kāi)發(fā)成本大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了解決現(xiàn)有應(yīng)用在跨版本升級(jí)時(shí)需要下載多個(gè)升級(jí)補(bǔ)丁導(dǎo)致降低下載速度的問(wèn)題,以及客戶(hù)端需逐版本升級(jí),導(dǎo)致升級(jí)效率低的技術(shù)問(wèn)題,提出了一種跨版本OTA動(dòng)態(tài)升級(jí)方法,可以解決上述問(wèn)題。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):
一種跨版本OTA動(dòng)態(tài)升級(jí)方法,包括以下步驟:
(1)、客戶(hù)端將待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本信息發(fā)送至服務(wù)器;
(2)、服務(wù)器將與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包與最新版本的完整安裝包做差分,得到客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本與最新版本之間的差分包,并將所述差分包發(fā)送至客戶(hù)端;
(3)、客戶(hù)端接收服務(wù)器發(fā)送的差分包對(duì)待升級(jí)應(yīng)用或者系統(tǒng)進(jìn)行升級(jí),直接從當(dāng)前版本升級(jí)至最新版本。
進(jìn)一步的,步驟(1)中,客戶(hù)端將當(dāng)前待升級(jí)應(yīng)用或者系統(tǒng)的名稱(chēng)、版本號(hào)、以及校驗(yàn)信息發(fā)送至服務(wù)器,所述服務(wù)器在本地查找是否具有與待升級(jí)應(yīng)用或者系統(tǒng)名稱(chēng)一致的應(yīng)用或者系統(tǒng),以及是否具有待升級(jí)應(yīng)用或者系統(tǒng)的版本,如果有,則繼續(xù)步驟(2),否則,不繼續(xù)步驟(2),并返回錯(cuò)誤信息。
進(jìn)一步的,所述校驗(yàn)信息包括待升級(jí)應(yīng)用或者系統(tǒng)的大小和/或MD5值。
進(jìn)一步的,步驟(2)中,服務(wù)器獲取與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包與最新版本的完整安裝包的方法為:
a、服務(wù)器中存儲(chǔ)有待升級(jí)應(yīng)用或者系統(tǒng)的完整的基礎(chǔ)版本,以及從基礎(chǔ)版本到最高版本每相鄰兩版本之間的差分包,相鄰兩版本之間的差分包為鄰近差分包;
b、服務(wù)器根據(jù)客戶(hù)端發(fā)送的待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本信息,利用所述基礎(chǔ)版本以及鄰近差分包,分別生成與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包和最新版本的完整安裝包。
進(jìn)一步的,步驟a中,服務(wù)器的配置方法為:
首先,服務(wù)器中存儲(chǔ)有待升級(jí)應(yīng)用或者系統(tǒng)的完整的基礎(chǔ)版本;
其次,在所述基礎(chǔ)版本之后,該應(yīng)用或者系統(tǒng)每發(fā)布一個(gè)新版本,將該新版本與前一版本之間的鄰近差分包放置在服務(wù)器。
進(jìn)一步的,步驟b中,若待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本與所述基礎(chǔ)版本之間跨版本,則從所述基礎(chǔ)版本上逐版本生成至與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包。
進(jìn)一步的,步驟b中,分別生成與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包和最新版本的完整安裝包的先后順序?yàn)椋菏紫葟乃龌A(chǔ)版本上生成與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包,其次,在與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包的基礎(chǔ)上生成最新版本的完整安裝包。
或者,步驟(2)中,服務(wù)器中直接存儲(chǔ)有從基礎(chǔ)版本到最新版本的完整安裝包,服務(wù)器在本地查找出與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)當(dāng)前版本一致的完整安裝包以及最新版本的完整安裝包,然后將兩個(gè)完整的安裝包做差分,得到差分包。
進(jìn)一步的,服務(wù)器的配置方法為:
首先,服務(wù)器中存儲(chǔ)有待升級(jí)應(yīng)用或者系統(tǒng)的完整的基礎(chǔ)版本;
其次,在所述基礎(chǔ)版本之后,每發(fā)布一個(gè)新版本,將該新版本的完整安裝包放置在服務(wù)器。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果是:本發(fā)明的跨版本OTA動(dòng)態(tài)升級(jí)方法,通過(guò)在服務(wù)器端計(jì)算客戶(hù)端的當(dāng)前版本與最新版本之間的差分包,該差分包可以是跨版本的差分包,由于差分包生成在服務(wù)器端完成,大大提高了效率,并且傳遞給客戶(hù)端的只有一個(gè)差分包,大大減少了數(shù)據(jù)傳輸量,客戶(hù)端只需升級(jí)一個(gè)差分包,也提高了升級(jí)的速度。
結(jié)合附圖閱讀本發(fā)明實(shí)施方式的詳細(xì)描述后,本發(fā)明的其他特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明所提出的跨版本OTA動(dòng)態(tài)升級(jí)方法的一種實(shí)施例流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
針對(duì)目前的應(yīng)用升級(jí)都是客戶(hù)端通過(guò)查詢(xún)自身版本號(hào),然后去服務(wù)器端進(jìn)行比對(duì),如果有高于自身版本號(hào)的應(yīng)用,則直接下載高版本的應(yīng)用或者補(bǔ)丁進(jìn)行升級(jí),補(bǔ)丁的數(shù)據(jù)量小,占用空間小, 相應(yīng)傳輸時(shí)間少,較多的采用補(bǔ)丁的方式進(jìn)行升級(jí),但如果自身應(yīng)用和服務(wù)器上最新的版本號(hào)差別比較大,則中間有很多的補(bǔ)丁需要更新,導(dǎo)致下載多個(gè)補(bǔ)丁,導(dǎo)致升級(jí)效率低,用時(shí)過(guò)長(zhǎng),基于此,本發(fā)明提出了一種跨版本OTA動(dòng)態(tài)升級(jí)方法,尤其針對(duì)跨版本的應(yīng)用升級(jí),具有升級(jí)的速度快,數(shù)據(jù)傳輸量小的優(yōu)點(diǎn)。
本實(shí)施例提出了一種跨版本OTA動(dòng)態(tài)升級(jí)方法,包括以下步驟:
S1、客戶(hù)端將待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本信息發(fā)送至服務(wù)器;其中,當(dāng)前版本信息也即當(dāng)前待升級(jí)應(yīng)用的版本信息,該當(dāng)前版本信息至少包括當(dāng)前版本的版本號(hào)。
S2、服務(wù)器將與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包與最新版本的完整安裝包做差分,得到客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本與最新版本之間的差分包,并將所述差分包發(fā)送至客戶(hù)端;服務(wù)器接收到客戶(hù)端發(fā)送的當(dāng)前版本信息,并根據(jù)其版本號(hào)查找出存儲(chǔ)在本地或者動(dòng)態(tài)生成與客戶(hù)端當(dāng)前版本一致的完整安裝包以及最新版本的完整安裝包,并且將兩者做差分,由于是完整安裝包之間進(jìn)行差分,因此,兩個(gè)完整安裝包之間的版本可以是跨版本。
S3、客戶(hù)端接收服務(wù)器發(fā)送的差分包對(duì)待升級(jí)應(yīng)用或者系統(tǒng)進(jìn)行升級(jí),直接從當(dāng)前版本升級(jí)至最新版本。由于差分包是客戶(hù)端當(dāng)前版本一致的完整安裝包以及最新版本的完整安裝包之間的差分,因此,將客戶(hù)端當(dāng)前版本按照所述差分包升級(jí)后,即可直接升級(jí)至最新版本。
本實(shí)施例的跨版本OTA動(dòng)態(tài)升級(jí)方法,通過(guò)在服務(wù)器端計(jì)算客戶(hù)端的當(dāng)前版本與最新版本之間的差分包,該差分包可以是跨版本的差分包,由于差分包生成在服務(wù)器端完成,大大提高了效率,并且傳遞給客戶(hù)端的只有一個(gè)差分包,大大減少了數(shù)據(jù)傳輸量,客戶(hù)端只需升級(jí)一個(gè)差分包,也提高了升級(jí)的速度。
為了提高升級(jí)效率,服務(wù)器檢測(cè)當(dāng)前待升級(jí)應(yīng)用的版本號(hào)是否合法,步驟S1中,客戶(hù)端將當(dāng)前待升級(jí)應(yīng)用或者系統(tǒng)的名稱(chēng)、版本號(hào)、以及校驗(yàn)信息發(fā)送至服務(wù)器,服務(wù)器在本地查找是否具有與待升級(jí)應(yīng)用或者系統(tǒng)名稱(chēng)一致的應(yīng)用或者系統(tǒng),以及是否具有待升級(jí)應(yīng)用或者系統(tǒng)的版本,如果有,則繼續(xù)步驟S2,否則,不繼續(xù)步驟S2,并返回錯(cuò)誤信息。比對(duì)結(jié)果不一致原因可能是用戶(hù)升級(jí)過(guò)非正常途徑的版本導(dǎo)致,或者可能存在兼容性錯(cuò)誤,對(duì)于上述情況均不予以升級(jí)。
服務(wù)器端放置的可能是多個(gè)應(yīng)用或者系統(tǒng)的多個(gè)版本,通過(guò)客戶(hù)端將當(dāng)前待升級(jí)應(yīng)用名稱(chēng)發(fā)送給服務(wù)器,服務(wù)器相應(yīng)根據(jù)當(dāng)前待升級(jí)應(yīng)用名稱(chēng)查找同一應(yīng)用的相應(yīng)版本。
其中,校驗(yàn)信息包括待升級(jí)應(yīng)用或者系統(tǒng)的大小和/或MD5值。
在本實(shí)施例的步驟S2中,服務(wù)器獲取與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包與最新版本的完整安裝包的方法為:
a、服務(wù)器中存儲(chǔ)有待升級(jí)應(yīng)用或者系統(tǒng)的完整的基礎(chǔ)版本,以及從基礎(chǔ)版本到最高版本每相鄰兩版本之間的差分包,相鄰兩版本之間的差分包為鄰近差分包;
b、服務(wù)器根據(jù)客戶(hù)端發(fā)送的待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本信息,利用所述基礎(chǔ)版本以及鄰近差分包,分別生成與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包和最新版本的完整安裝包。
本實(shí)施例的服務(wù)器配置方法僅存儲(chǔ)待升級(jí)應(yīng)用的完整的基礎(chǔ)版本,以及從基礎(chǔ)版本到最高版本每相鄰兩版本之間的差分包,節(jié)省空間。
步驟a中,服務(wù)器的配置方法為:
首先,服務(wù)器中存儲(chǔ)有待升級(jí)應(yīng)用或者系統(tǒng)的完整的基礎(chǔ)版本;
其次,在所述基礎(chǔ)版本之后,該應(yīng)用或者系統(tǒng)每發(fā)布一個(gè)新版本,將該新版本與前一版本之間的鄰近差分包放置在服務(wù)器。
例如,1、服務(wù)器上方存儲(chǔ)一個(gè)基礎(chǔ)版本base;
2、發(fā)布第二個(gè)版本A2后,存儲(chǔ)至服務(wù)器的是A2與base之間的差分包patch1;
3、發(fā)布第三個(gè)版本A3后,存儲(chǔ)至服務(wù)器的是A3與A2之間的差分包patch2;
4、發(fā)布第n個(gè)版本An后,存儲(chǔ)至服務(wù)器的是An與A(n-1)之間的差分包patch (n-1)。
步驟b中,若待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本與所述基礎(chǔ)版本之間跨版本,則從所述基礎(chǔ)版本上逐版本生成至與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包。
例如客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本是A3,最新版本是A5。此時(shí)客戶(hù)端將當(dāng)前版本號(hào)告知服務(wù)器,這個(gè)時(shí)候,服務(wù)器會(huì)根據(jù)當(dāng)前的版本號(hào)A3,從基礎(chǔ)版本上依次生成版本A2,然后根據(jù)版本A2生成版本A3,也就是用戶(hù)當(dāng)前版本,以及生成最新版本A5,然后使用版本A5和版本A3進(jìn)行差分,將得到的差分包發(fā)給客戶(hù)端,客戶(hù)端可以直接從版本A3升級(jí)至版本A5。
步驟b中,分別生成與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包和最新版本的完整安裝包的先后順序?yàn)椋菏紫葟乃龌A(chǔ)版本上生成與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包,其次,在與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包的基礎(chǔ)上生成最新版本的完整安裝包。本方法可以進(jìn)一步提高升級(jí)效率。
例如,客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本是A3,最新版本是A5。服務(wù)器根據(jù)當(dāng)前的版本號(hào)A3,從基礎(chǔ)版本上依次生成版本A2,然后根據(jù)版本A2生成版本A3,得到用戶(hù)當(dāng)前版本,然后再根據(jù)版本A3,依次生成版本A4,然后生成最新版本A5。
實(shí)施例二
本實(shí)施例的跨版本OTA動(dòng)態(tài)升級(jí)方法包括以下步驟:
S1、客戶(hù)端將待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本信息發(fā)送至服務(wù)器;
S2、服務(wù)器將與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包與最新版本的完整安裝包做差分,得到客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本與最新版本之間的差分包,并將所述差分包發(fā)送至客戶(hù)端;
S3、客戶(hù)端接收服務(wù)器發(fā)送的差分包對(duì)待升級(jí)應(yīng)用或者系統(tǒng)進(jìn)行升級(jí),直接從當(dāng)前版本升級(jí)至最新版本。
其中,步驟S2中,服務(wù)器中直接存儲(chǔ)有從基礎(chǔ)版本到最新版本的完整安裝包,服務(wù)器在本地查找出與客戶(hù)端待升級(jí)應(yīng)用或者系統(tǒng)的當(dāng)前版本一致的完整安裝包以及最新版本的完整安裝包,然后將兩個(gè)完整的安裝包做差分,得到差分包。本方法省去了服務(wù)器根據(jù)基礎(chǔ)版本以及鄰近差分包,分別生成與客戶(hù)端的當(dāng)前版本一致的完整安裝包和最新版本的完整安裝包的步驟,與實(shí)施例一中的方法相比用時(shí)更短。
本實(shí)施例中服務(wù)器的配置方法為:
首先,服務(wù)器中存儲(chǔ)有待升級(jí)應(yīng)用或者系統(tǒng)的完整的基礎(chǔ)版本;
其次,在基礎(chǔ)版本之后,每發(fā)布一個(gè)新版本,將該新版本的完整安裝包放置在服務(wù)器。
當(dāng)然,上述說(shuō)明并非是對(duì)本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例,本技術(shù)領(lǐng)域的普通技術(shù)人員在本發(fā)明的實(shí)質(zhì)范圍內(nèi)所做出的變化、改型、添加或替換,也應(yīng)屬于本發(fā)明的保護(hù)范圍。