亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種Android手持設備連續(xù)增量的空中升級方法

文檔序號:6367581閱讀:187來源:國知局
專利名稱:一種Android手持設備連續(xù)增量的空中升級方法
技術領域
本發(fā)明涉及移動通訊和智能手機,具體涉及一種Android手持設備連續(xù)增量的空中升級(OTA)方法。
背景技術
目前,安卓(Android)系統每升級一個升級包都會重啟一次系統。對應地,OTA升級出于網絡速度、流量價格等考慮,大多會采用增量升級包。增量升級包文件小,但只能在指定的版本上進行升級。在現有的技術上,如果已發(fā)布的版本較多,為了考慮到向所有用戶提供升級,則只有兩種方法,一種是以每一個已發(fā)布的版本為基準,發(fā)布多個增量包,匹配用戶手持設備中可能存在的任意版本;二是一次次遞增升級,每次升級到下一個版本,每次升級后重啟一次,多次升級后重啟到最新版本。這兩種方法都有缺陷,第一種方法每次發(fā)布新版本需要的增量升級包太多,不方便升級服務器的管理,也不方便開發(fā)人員的編譯;第二種方法則大大降低了用戶升級設備時的用戶體驗。因此迫切需要一次重啟完成所有升級的方法,但目前還沒有這種解決方法或這種方法被公開。另一方面,上述解決方法具有以下技術難題①OTA應用與Android系統的升級模式(Recovery模式)之間通過命令文件傳遞升級命令,只有符合規(guī)范的升級命令才能被識別現有的Recovery模式每升級一個升級包都會重啟一次系統,這樣一次最多只能執(zhí)行一次升級操作和一次恢復出廠設置的操作現有的Android系統升級在保留分區(qū)(MISC分區(qū))保存的升級信息的字符串滿足了一次升級一個升級包的升級掉電恢復的要求,但無法滿足升級多個升級包的升級掉電恢復的要求。而回避上述三個技術問題的任何跳出Android系統機制的解決方案,勢必影響系統使用的使用安全,嚴重的會造成系統崩潰。

發(fā)明內容
本發(fā)明需要解決的技術問題是,如何提供一種Android手持設備連續(xù)增量的空中升級方法,能傳遞多個升級包并在它們全部執(zhí)行完后一次重啟完成所有升級且滿足升級掉電恢復的要求。本發(fā)明的技術問題這樣解決構建一種Android手持設備連續(xù)增量的空中升級方法,包括以下步驟101)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將他們返回給應用,應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按由前到后升級順序在所述多行中由上到下排列;102)重啟手持設備進入升級模式;103)-107)從第一行開始,由上到下按行讀取并依次處理所述命令文件中命令直到最后一行;所述處理過程包括在misc分區(qū)的升級信息中保存行處理進度;108)重啟手持設備進入升級后的Android系統。
按照本發(fā)明提供的Android手持設備連續(xù)增量的空中升級方法,步驟103-107)異常掉電,重啟后根據所述升級信息和行處理進度從中斷行開始繼續(xù)處理所述命令文件。按照本發(fā)明提供的Android手持設備連續(xù)增量的空中升級方法,所述處理進度包括但不限制于是(一)所述升級信息中的當前正在升級的命令字符串或者所述升級信息不存在所述當前正在升級的命令字符串。或者(二)通過記錄行號來記錄所述處理進度。按照本發(fā)明提供的Android手持設備連續(xù)增量的空中升級方法,該Android手持設備這樣進行升級掉電恢復,包括以下具體步驟
401)從所述命令文件中讀取命令,并讀取保存在misc分區(qū)的升級信息,獲取其中的當前正在升級的命令字符串;402)如果所述當前正在升級的命令字符串不存在則選擇第一行命令為中斷行進入步驟404),否則進入下一步;403)比較從所述命令文件中逐行讀取到的命令與所述當前正在升級的命令字符串,直至從所述命令文件中逐行讀取到的命令與所述當前正在升級的命令字符串相同,選擇該行命令為中斷行;404)由上到下從中斷行開始,按行讀取并依次處理所述命令文件中命令直到最后一行;所述處理過程包括在misc分區(qū)的升級信息中保存行處理進度;405)重啟手持設備進入升級后的Android系統。按照本發(fā)明提供的Android手持設備連續(xù)增量的空中升級方法,所述命令文件還可以包括位于文件最后一行的清除用戶數據命令,也可以沒有該清除用戶數據命令。按照本發(fā)明提供的Android手持設備連續(xù)增量的空中升級方法,所述步驟103)-107)包括讀取所述命令文件中每行命令輸出到對應數組變量中,再操作數組指針從第一行命令對應變量開始,由上到下按行處理各行命令對應變量。按照本發(fā)明提供的Android手持設備連續(xù)增量的空中升級方法,包括以下步驟101)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將他們返回給應用,應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按前后升級順序在所述多行中由上到下排列;102)重啟手持設備進入升級模式;103)打開所述命令文件;104)將所述命令文件中各行命令按從上到下順序依次讀入數組中,將當前數組指針設置為0,關閉所述命令文件;105)執(zhí)行當前數組指針對應數組變量,當前數組指針加I ;106)判斷當前數組指針是否為END 是進入步驟108),否則進入下一步;107)在misc分區(qū)的升級信息中記錄保存當前數組變量;返回步驟105);108)重啟手持設備進入升級后的Android系統。本發(fā)明的技術問題這樣解決構建一種Android手持設備連續(xù)增量的空中升級方法,包括以下步驟801)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將他們返回給應用,應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按由前到后升級順序在所述多行中由下到上排列; 802)重啟手持設備進入升級模式;803)從最后一行開始,由下到上按行讀取并依次處理命令直到第一行;所述處理過程包括在misc分區(qū)的升級信息中保存行處理進度;804)重啟手持設備進入升級后的Android系統。本發(fā)明提供的Android 手持設備連續(xù)增量的空中升級方法,在現有Android系統框架內改進,較現有技術具有以下優(yōu)點I、無論升級多少個的升級包只須一次重啟;2、沒有一次發(fā)布多個對應升級包的障礙;3、多個升級包的升級掉電保護;4、處理簡單、實現可靠,不影響Android系統安全和使用。


下面結合附圖和具體實施例進一步對本發(fā)明進行詳細說明圖I為本發(fā)明具體實施例觸摸屏智能手機的升級模式處理命令文件的程序流程示意圖。
具體實施例方式
首先,說明本發(fā)明基礎(一)改寫OTA應用寫入的命令文件a)原來的命令只支持一條,命令內容類似“_update_package =/sdcard/update.zip,,b)修改后的命令文件可支持多個升級包同時升級,命令內容類似“_update_package = /sdcard/updateL zip-update_package = /sdcard/update2. zip-update_package = /sdcard/update3. zip-update_package = /sdcard/update4. zip,,如果是清除用戶數據的升級,還會在最后一行有”-wipe_data”的命令。( 二)改寫升級信息結構a)原來的是
struct bootloader一message { char command[32]; char status[32]; char recovery[1024];
};
b)修改之后的
struct bootloader一message { char command[32]; char status[32]; char recovery[1024]; char running一command[128]; };添加了一行char running_command[128],用于記錄當前正在升級的命令字符串;(三)升級掉電恢復該方法利用char running_command[128],具體包括以下步驟a)從命令文件中讀取命令,再讀取保存在misc分區(qū)的bootloader_message,其中的running_command字符串即為上一次升級出現異常時正在執(zhí)行的命令字符串。I)如果running_command字符串不存在則說明是第一次升級,跳到b ;2)如果running_command字符串存在說明之前出現過異常斷電的狀況,則比較讀取到的命令與當前正在升級命令,不相同說明該條命令已經升級過,開始讀下一行命令,重復a過程;3)如果running_command字符串與讀取到的命令相同,說明上次正好執(zhí)行的就是讀取到的命令,跳到b ;b)保存讀取到的命令到misc分區(qū);c)開始執(zhí)行讀取到的命令;d)刪除保存的命令;e)升級完成,重啟。第二,結合具體實施例詳細說明本發(fā)明核心和關鍵如圖I所示,本發(fā)明具體實施例觸摸屏智能手機這樣進行升級,具體包括以下具體步驟101)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將他們返回給應用,應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按前后升級順序在所述多行中由上到下排列;102)重啟手持設備進入升級模式;103)打開命令文件;104)將命令文件中各行命令按從上到下順序依次讀入數組中,將當前數組指針設置為O,關閉命令文件;105)執(zhí)行當前數組指針對應數組變量,當前數組指針加I ;
106)判斷當前數組指針 是否為END 是進入步驟108),否則進入下一步;107)在misc分區(qū)的升級信息中記錄保存當前數組變量;返回步驟105);108)重啟手持設備進入升級后的Android系統。最后,以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明權利要求范圍所做的均等變化與修飾,皆應屬本發(fā)明權利要求的涵蓋范圍。
權利要求
1.ー種Android手持設備連續(xù)增量的空中升級方法,其特征在于,包括以下步驟 101)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將它們返回給所述空中升級應用,所述空中升級應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按由前到后升級順序在所述多行中由上到下排列; 102)重啟手持設備進入升級模式; 103)-107)從第一行開始,由上到下按行讀取并依次處理所述命令文件中命令直到最后一行;所述處理過程包括在保留分區(qū)的升級信息中保存行處理進度; 108)重啟手持設備進入升級后的Android系統。
2.根據權利要求I所述Android手持設備連續(xù)增量的空中升級方法,其特征在于,步驟103-107)異常掉電,重啟后根據所述升級信息和行處理進度從中斷行開始繼續(xù)處理所述命令文件。
3.根據權利要求I所述Android手持設備連續(xù)增量的空中升級方法,其特征在于,所述處理進度是所述升級信息中的當前正在升級的命令字符串或者所述升級信息不存在所述當前正在升級的命令字符串。
4.根據權利要求3所述Android手持設備連續(xù)增量的空中升級方法,其特征在于,該Android手持設備這樣進行升級掉電恢復,包括以下具體步驟 401)從所述命令文件中讀取命令,并讀取保存在保留分區(qū)的升級信息,獲取其中的所述當前正在升級的命令字符串; 402)如果所述當前正在升級的命令字符串不存在則選擇第一行命令為中斷行進入步驟404),否則進入下一歩; 403)比較從所述命令文件中逐行讀取到的命令與所述當前正在升級的命令字符串,直至從所述命令文件中逐行讀取到的命令與所述當前正在升級的命令字符串相同,選擇該行命令為中斷行; 404)由上到下從中斷行開始,按行讀取并依次處理所述命令文件中命令直到最后ー行;所述處理過程包括在所述保留分區(qū)的升級信息中保存行處理進度; 405)重啟手持設備進入升級后的Android系統。
5.根據權利要求I所述Android手持設備連續(xù)增量的空中升級方法,其特征在于,所述命令文件還包括位于文件最后一行的清除用戶數據命令。
6.根據權利要求I所述Android手持設備連續(xù)增量的空中升級方法,其特征在于,所述步驟103)-107)包括讀取所述命令文件中每行命令輸出到對應數組變量中,再操作數組指針從第一行對應變量開始,由上到下按行處理各行命令對應變量。
7.根據權利要求1-6任一項所述Android手持設備連續(xù)增量的升級方法,其特征在干,包括以下步驟 101)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將它們返回給所述空中升級應用,所述空中升級應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按前后升級順序在所述多行中由上到下排列; 102)重啟手持設備進入升級模式;103)打開所述命令文件; 104)將所述命令文件中各行命令按從上到下順序依次讀入數組中,將當前數組指針設置為0,關閉所述命令文件; 105)執(zhí)行當前數組指針對應數組變量中命令,當前數組指針加I; 106)判斷當前數組指針是否為END 是進入步驟108),否則進入下一歩; 107)在misc分區(qū)的升級信息中記錄當前數組變量保存的字符串;返回步驟105); 108)重啟手持設備進入升級后的Android系統。
8.—種Android手持設備連續(xù)增量的空中升級方法,其特征在于,包括以下步驟 801)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將他們返回給所述空中升級應用,所述空中升級應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按由前到后升級順序在所述多行中由下到上排列; 802)重啟手持設備進入升級模式; 803)從最后一行開始,由下到上按行讀取并依次處理所述命令文件中命令直到第一行;所述處理過程包括在保留分區(qū)的升級信息中保存行處理進度; 804)重啟手持設備進入升級后的Android系統。
全文摘要
本發(fā)明涉及一種Android手持設備連續(xù)增量的空中升級方法,包括101)手持設備的空中升級應用將手持設備當前版本發(fā)送到服務器端,服務器端根據服務器上已有的版本判斷出適合手持設備的升級包,并將它們返回給應用,應用根據返回的信息寫入命令文件;所述命令文件包括多行內置各自升級包路徑的升級命令,所述升級包按由前到后升級順序在所述多行中由上到下排列;102)重啟手持設備進入升級模式;103)-107)從第一行開始,由上到下按行讀取并依次處理所述命令文件中命令直到最后一行;所述處理過程包括在保留分區(qū)(MISC分區(qū))的升級信息中保存行處理進度;108)重啟手持設備進入升級后的Android系統。
文檔編號G06F9/445GK102650947SQ201210096378
公開日2012年8月29日 申請日期2012年4月1日 優(yōu)先權日2012年4月1日
發(fā)明者曾元清 申請人:廣東歐珀移動通信有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1