本發(fā)明涉及Android技術(shù)領(lǐng)域,尤其涉及一種基于定制Android系統(tǒng)的升級(jí)方法。
背景技術(shù):
Android系統(tǒng)經(jīng)過Google及開放手持設(shè)備聯(lián)盟多年的開發(fā),早已形成一整套成熟穩(wěn)定的升級(jí)流程。現(xiàn)有Android系統(tǒng)標(biāo)準(zhǔn)升級(jí)策略有兩種升級(jí)方式:完整包升級(jí)和差分包升級(jí)。
完整包升級(jí)基本可以對(duì)于同一系列的所有產(chǎn)品進(jìn)行升級(jí),但每一個(gè)完整包都很大,大小為300MB或500MB都很正常。如果每一次升級(jí)都使用完整包,不僅會(huì)因?yàn)樯?jí)時(shí)間長(zhǎng)而造成糟糕的用戶體驗(yàn),也會(huì)對(duì)OTA升級(jí)服務(wù)器造成巨大的壓力,從而增加OTA服務(wù)器的投入成本。
差分包升級(jí)只是對(duì)系統(tǒng)中變化的部分進(jìn)行增量升級(jí),在同種條件下對(duì)比完整升級(jí)包,體量上是顯得非常小了,但其缺點(diǎn)是只能一對(duì)一進(jìn)行升級(jí),一個(gè)升級(jí)包只能對(duì)與其對(duì)應(yīng)Android系統(tǒng)的某一個(gè)版本進(jìn)行升級(jí),這導(dǎo)致了多產(chǎn)品線Android設(shè)備的升級(jí)管理流程變得相當(dāng)復(fù)雜,必須為每一款不同軟硬件Android系統(tǒng)維持一條系統(tǒng)升級(jí)管理線,而這會(huì)隨著Android系統(tǒng)版本的更新指數(shù)式增加升級(jí)管理難度。
技術(shù)實(shí)現(xiàn)要素:
基于此,本發(fā)明提供了一種基于定制Android系統(tǒng)的升級(jí)方法,優(yōu)化了基于同一Android系統(tǒng)源碼多分支固件的升級(jí)管理策略,很大程度上減輕了升級(jí)管理難度。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:在基于同一系統(tǒng)源碼的定制Android系統(tǒng)上(以下所指定制系統(tǒng)都是指基于同一系統(tǒng)源碼的定制Android系統(tǒng))增設(shè)兩個(gè)獨(dú)立分區(qū):boardInfo分區(qū)和custom分區(qū),將boardInfo分區(qū)和custom分區(qū)以外的分區(qū)(boot、system等)統(tǒng)稱為Android系統(tǒng)原有分區(qū);將Android系統(tǒng)原有分區(qū)中基于客戶定制的所有硬件配置方面差異化內(nèi)容轉(zhuǎn)移到boardInfo分區(qū),所有軟件方面差異化內(nèi)容轉(zhuǎn)移到custom分區(qū),使得Android系統(tǒng)原有分區(qū)在所有不同軟硬件配置的或不同客戶的定制系統(tǒng)系統(tǒng)中保持內(nèi)容一致,boardInfo分區(qū)存放硬件配置信息,custom分區(qū)存放系統(tǒng)配置信息及客戶定制信息;整個(gè)定制系統(tǒng)升級(jí)分為:custom分區(qū)升級(jí)和Android系統(tǒng)原有分區(qū)升級(jí),兩者互相獨(dú)立,boardInfo分區(qū)內(nèi)容始終不變,無需升級(jí);custom分區(qū),不同配置的定制系統(tǒng)使用不同的升級(jí)包,在客戶定制需求改變或者客戶預(yù)裝軟件有升級(jí)需求時(shí)可升級(jí),升級(jí)包不需基于Android系統(tǒng)源碼,可由客戶自行制作與管理,使用替換系統(tǒng)文件的方式升級(jí);Android系統(tǒng)原有分區(qū),內(nèi)容為Android系統(tǒng)核心內(nèi)容,所有不同軟硬件配置的或不同客戶的定制系統(tǒng),共用同一升級(jí)包,使用Android標(biāo)準(zhǔn)系統(tǒng)升級(jí)方式升級(jí)。
本發(fā)明的有益效果是:優(yōu)化了基于同一Android系統(tǒng)源碼多分支固件的升級(jí)管理策略,通過在基于同一系統(tǒng)源碼的Android系統(tǒng)上增加獨(dú)立分區(qū)存放差異化內(nèi)容,使核心內(nèi)容(Android系統(tǒng)原有分區(qū))在不同軟硬件配置的或者不同客戶的定制系統(tǒng)中保持內(nèi)容一致,在此基礎(chǔ)上實(shí)現(xiàn)差異化內(nèi)容和核心內(nèi)容互相獨(dú)立升級(jí),并且核心內(nèi)容升級(jí)在不同配置的定制系統(tǒng)中共用一個(gè)升級(jí)包,這很大程度上減輕了升級(jí)管理難度,而且差異化內(nèi)容升級(jí)包還可由客戶自行制作與管理,這也極大地方便了客戶。
附圖說明
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。
圖1為本發(fā)明中定制Android系統(tǒng)的分區(qū)劃分示意圖。
圖2為本發(fā)明中定制Android系統(tǒng)的啟動(dòng)流程。
圖3為本發(fā)明中定制Android系統(tǒng)的OTA升級(jí)流程。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚完整,下面將結(jié)合本發(fā)明實(shí)施例及附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)一步詳細(xì)地說明。很顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例?;诒景l(fā)明的實(shí)施例,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,或者在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的其他實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
本發(fā)明實(shí)施例提供一種基于定制Android系統(tǒng)的升級(jí)方法,包括:
在基于同一系統(tǒng)源碼的定制Android系統(tǒng)中增設(shè)兩個(gè)獨(dú)立的分區(qū):boardInfo分區(qū)和custom分區(qū),所以定制Android系統(tǒng)現(xiàn)可分為三大分區(qū)(參見圖1):Android系統(tǒng)原有分區(qū)(boardInfo分區(qū)和custom分區(qū)以外的分區(qū)(boot、system等))、boardInfo分區(qū)、custom分區(qū)。boardInfo分區(qū)無需升級(jí);custom分區(qū),不同配置的定制系統(tǒng)使用不同升級(jí)包,使用替換系統(tǒng)文件的方式升級(jí);Android系統(tǒng)原有分區(qū),所有不同配置的定制定制系統(tǒng)共用同一個(gè)升級(jí)包,使用Android標(biāo)準(zhǔn)系統(tǒng)升級(jí)方式升級(jí)(參見圖2)。
上述升級(jí)方法中,Android系統(tǒng)原有分區(qū),需將基于客戶定制的所有硬件配置方面差異化內(nèi)容轉(zhuǎn)移到boardInfo分區(qū),所有軟件方面差異化內(nèi)容轉(zhuǎn)移到custom分區(qū),使其內(nèi)容在不同軟硬件配置的或不同客戶定制的系統(tǒng)中保持一致,因此在不同配置的定制系統(tǒng)中可共用同一升級(jí)包進(jìn)行升級(jí),升級(jí)包制作需基于Android源碼進(jìn)行,此升級(jí)包為主升級(jí)包。
上述升級(jí)方法中,boardInfo分區(qū),用于存放不同機(jī)型的硬件配置信息,其內(nèi)容在rom第一次燒寫完成后不再改變,無需升級(jí)。
上述升級(jí)方法中,custom分區(qū),其內(nèi)容為系統(tǒng)配置信息和客戶定制信息,可升級(jí),不同配置的定制系統(tǒng)在該部分使用不同的升級(jí)包,在客戶需求改變或者客戶預(yù)裝軟件有升級(jí)需求時(shí)升級(jí),升級(jí)包不需基于Android系統(tǒng)源碼,可由客戶自行制作與管理,使用替換系統(tǒng)文件的方式升級(jí),此升級(jí)包為副升級(jí)包。
上述升級(jí)方法中,custom分區(qū)升級(jí)和Android系統(tǒng)原有分區(qū)升級(jí),都是各自獨(dú)立的,兩者之間無依賴關(guān)系,也不依賴于boardInfo分區(qū)。
基于上述升級(jí)方法,更詳細(xì)的流程說明如下(如圖2):
(1)開始OTA升級(jí);
(2)檢查OTA服務(wù)器上是否存在主升級(jí)包,若有則繼續(xù)下一步,若無則跳到第6步;
(3)下載主升級(jí)包;
(4)使用Android系統(tǒng)的標(biāo)準(zhǔn)升級(jí)方式升級(jí)主升級(jí)包;
(5)升級(jí)完成重啟機(jī)器;
(6)檢查OTA服務(wù)器上是否存在副升級(jí)包,若有則繼續(xù)下一步,若無則跳到第10步;
(7)下載副升級(jí)包;
(8)使用替換系統(tǒng)文件的方式升級(jí)副升級(jí)包;
(9)升級(jí)完成重啟機(jī)器;
(10)當(dāng)前版本為系統(tǒng)最新版本,退出OTA升級(jí)。
本發(fā)明實(shí)施例中,Android增加了兩個(gè)分區(qū),系統(tǒng)啟動(dòng)較普通Android系統(tǒng)稍有不同,現(xiàn)說明啟動(dòng)流程(如圖3),步驟如下:
(1)系統(tǒng)啟動(dòng);
(2)Bootloader啟動(dòng);
(3)讀取boardInfo分區(qū)信息并加載相應(yīng)硬件驅(qū)動(dòng);
(4)把boardinfo信息解析并存放到cmdline;
(5)Kernel啟動(dòng);
(6)解析cmdline數(shù)據(jù)得到硬件配置信息并加載相應(yīng)硬件驅(qū)動(dòng);
(7)Android系統(tǒng)框架啟動(dòng);
(8)讀取custom分區(qū)信息加載系統(tǒng)配置信息和客戶定制信息;
(9)加載相應(yīng)的系統(tǒng)配置、配置客戶定制需求和啟動(dòng)客戶所需應(yīng)用。