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