一種終端系統(tǒng)升級的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明實(shí)施例涉及系統(tǒng)升級技術(shù),尤其涉及一種終端系統(tǒng)升級的方法及裝置。
【背景技術(shù)】
[0002] 目前,智能化的電子終端被越來越多的人所接受,并被廣泛地應(yīng)用于人們的工作 和生活中。隨著技術(shù)的進(jìn)步,電子終端廠商不斷的推出針對終端產(chǎn)品的升級包,以提升終端 產(chǎn)品的性能或修復(fù)之前系統(tǒng)程序中的缺陷(Bug)。
[0003]目前,終端產(chǎn)品在接收到升級包時,大都是采用詞法分析、通過回調(diào)機(jī)制解析升級 腳本進(jìn)行系統(tǒng)升級。詞法分析包括掃描器、詞法分析器和單詞生成器,通過掃描器對源程序 進(jìn)行掃描,通過詞法分析器按照語言的詞法規(guī)則識別各類單詞,并通過單詞生成器產(chǎn)生相 應(yīng)單詞的屬性字?;卣{(diào)一般用于層間協(xié)作,上層將本層函數(shù)安裝在下層,而下層在一定條件 下觸發(fā)回調(diào),以驅(qū)動過程舉例說明,驅(qū)動程序是一個底層,它在收到一個數(shù)據(jù)時,除了完成 本層的處理工作外,還將進(jìn)行回調(diào),將這個數(shù)據(jù)交給上層應(yīng)用層來做進(jìn)一步處理。但是,在 實(shí)際應(yīng)用中,詞法分析和回調(diào)機(jī)制的具體實(shí)現(xiàn)過程十分復(fù)雜,進(jìn)而增加了終端系統(tǒng)升級的 復(fù)雜程度。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種終端系統(tǒng)升級的方法及裝置,以降低解析升級腳本的復(fù)雜度,提 高升級效率。
[0005] 第一方面,本發(fā)明實(shí)施例提供了一種終端系統(tǒng)升級的方法,包括:
[0006] 獲取升級腳本,根據(jù)預(yù)先設(shè)置的升級腳本的語法規(guī)則提取所述升級腳本中各行代 碼包括的關(guān)鍵字和參數(shù);
[0007] 根據(jù)所述關(guān)鍵字查找預(yù)先設(shè)置的數(shù)據(jù)結(jié)構(gòu),以獲取與所述關(guān)鍵字對應(yīng)的處理函 數(shù),將與所述關(guān)鍵字對應(yīng)的參數(shù)傳遞給所述處理函數(shù),以執(zhí)行所述處理函數(shù)進(jìn)行系統(tǒng)升級。
[0008] 第二方面,本發(fā)明實(shí)施例還提供了一種終端系統(tǒng)升級的裝置,該裝置包括:
[0009] 提取單元,用于獲取升級腳本,根據(jù)預(yù)先設(shè)置的升級腳本的語法規(guī)則提取所述升 級腳本中各行代碼包括的關(guān)鍵字和參數(shù);
[0010] 腳本解析單元,用于根據(jù)所述關(guān)鍵字查找預(yù)先設(shè)置的數(shù)據(jù)結(jié)構(gòu),以獲取與所述關(guān) 鍵字對應(yīng)的處理函數(shù),將與所述關(guān)鍵字對應(yīng)的參數(shù)傳遞給所述處理函數(shù),以執(zhí)行所述處理 函數(shù)進(jìn)行系統(tǒng)升級。
[0011] 本發(fā)明通過獲取升級腳本,根據(jù)預(yù)先設(shè)置的升級腳本的語法規(guī)則提取所述升級腳 本中各行代碼包括的關(guān)鍵字和參數(shù),根據(jù)所述關(guān)鍵字查找預(yù)先設(shè)置的數(shù)據(jù)結(jié)構(gòu),以獲取與 所述關(guān)鍵字對應(yīng)的處理函數(shù),將與所述關(guān)鍵字對應(yīng)的參數(shù)傳遞給所述處理函數(shù),以執(zhí)行所 述處理函數(shù)進(jìn)行系統(tǒng)升級,解決現(xiàn)有的腳本解析的具體實(shí)現(xiàn)過程難于理解、程序移植性不 好的問題,降低解析升級腳本的復(fù)雜度,提高升級效率。
【附圖說明】
[0012] 圖1是本發(fā)明實(shí)施例一中的一種終端系統(tǒng)升級的方法的流程圖;
[0013] 圖2是本發(fā)明實(shí)施例二中的一種終端系統(tǒng)升級的方法的流程圖;
[0014] 圖3是本發(fā)明實(shí)施例三中的一種終端系統(tǒng)升級的方法的流程圖;
[0015] 圖4是本發(fā)明實(shí)施例四中的一種終端系統(tǒng)升級的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0016] 下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩?述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便 于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0017] 實(shí)施例一
[0018] 圖1為本發(fā)明實(shí)施例一提供的一種終端系統(tǒng)升級的方法的流程圖,本實(shí)施例可適 用于終端獲取升級腳本并進(jìn)行系統(tǒng)升級的情況,該方法可以由終端系統(tǒng)升級的裝置來執(zhí) 行,該裝置被配置于諸如手機(jī)、個人電腦或智能電視等具有操作系統(tǒng)的終端中。所述終端系 統(tǒng)升級的方法具體包括如下步驟:
[0019] 步驟110、獲取升級腳本,根據(jù)預(yù)先設(shè)置的升級腳本的語法規(guī)則提取所述升級腳本 中各行代碼包括的關(guān)鍵字和參數(shù)。
[0020] 其中,所述升級腳本是終端通過接收電子終端廠商推送的或者從電子終端廠商的 網(wǎng)站上下載的或者從第三方網(wǎng)站上下載的包含系統(tǒng)升級代碼的升級文件。所述語法規(guī)則是 用戶定義的解析所述升級腳本包含的系統(tǒng)升級代碼的規(guī)則。根據(jù)用戶定義的升級腳本的語 法規(guī)則,終端可以快速地從所述升級腳本中提取滿足該語法規(guī)則的字段。所述關(guān)鍵字為終 端升級時需要執(zhí)行的操作對應(yīng)的字段,且所述關(guān)鍵字具備唯一性,完整性和擴(kuò)展性。所述參 數(shù)為升級時終端執(zhí)行與關(guān)鍵字對應(yīng)的處理函數(shù)所需的字段。例如,用戶預(yù)先設(shè)置語法規(guī)則 包括:每一行代碼代表升級腳本中的一個動作,忽略各行起始位置的空格,各行中關(guān)鍵字與 參數(shù)之間以括號區(qū)分,參數(shù)與參數(shù)之間以逗號分隔。終端根據(jù)該語法規(guī)則,逐行讀取升級腳 本包含的代碼,每讀取所述升級腳本的一行代碼,能夠快速地從中提取關(guān)鍵字和與關(guān)鍵字 對應(yīng)的參數(shù)。
[0021] 步驟120、根據(jù)所述關(guān)鍵字查找預(yù)先設(shè)置的數(shù)據(jù)結(jié)構(gòu),以獲取與所述關(guān)鍵字對應(yīng)的 處理函數(shù),將與所述關(guān)鍵字對應(yīng)的參數(shù)傳遞給所述處理函數(shù),以執(zhí)行所述處理函數(shù)進(jìn)行系 統(tǒng)升級。
[0022] 其中,所述數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,通 過所述數(shù)據(jù)結(jié)構(gòu)存儲關(guān)鍵字以及所述關(guān)鍵字對應(yīng)的處理函數(shù)。所述關(guān)鍵字為用戶預(yù)先設(shè)置 的終端升級時需要執(zhí)行的操作,例如,用戶可以定義格式化操作對應(yīng)的關(guān)鍵字為format,可 以定義擦除操作對應(yīng)的關(guān)鍵字為wipe,可以定義掛載操作對應(yīng)的關(guān)鍵字為mount等等。所 述關(guān)鍵字對應(yīng)的處理函數(shù)為用戶預(yù)先設(shè)置的處理升級時終端需要執(zhí)行的操作的函數(shù)。例 如,用戶可以將格式化操作的處理函數(shù)定義為int do_format(int n"gs,char**args),可 以將擦除操作的處理函數(shù)定義為int do_wipe(int nafgs,char**args),可以將掛載操作的 處理函數(shù)定義為int do_mount(int n"gs,char**args)等等,其中,n"gs表示參數(shù)的個數(shù), **args表示指針。用戶通過關(guān)聯(lián)函數(shù)建立關(guān)鍵字與處理函數(shù)的配對關(guān)系,例如,可以通過接 口函數(shù)實(shí)現(xiàn)關(guān)鍵字與處理函數(shù)的配對。還可以通過定義枚舉類型實(shí)現(xiàn)關(guān)鍵字與處理函數(shù)的 配對。終端通過定義數(shù)據(jù)結(jié)構(gòu),并通過所述關(guān)鍵字與處理函數(shù)的配對關(guān)系初始化所述數(shù)據(jù) 結(jié)構(gòu)的方式存儲關(guān)鍵字以及所述關(guān)鍵字對應(yīng)的處理函數(shù)。終端在獲取升級腳本中一行代碼 包括的關(guān)鍵字時,根據(jù)所述關(guān)鍵字查詢所述數(shù)據(jù)結(jié)構(gòu)獲取與該關(guān)鍵字對應(yīng)的處理函數(shù)。終 端將與該關(guān)鍵字對應(yīng)的參數(shù)傳遞給所述處理函數(shù),執(zhí)行所述處理函數(shù)完成終端升級的一個 操作。終端順序讀取腳本文件的各行代碼,依次執(zhí)行終端系統(tǒng)升級所需執(zhí)行的操作。
[0023] 本實(shí)施例的技術(shù)方案,通過提取升級腳本,根據(jù)預(yù)先設(shè)置的升級腳本的語法規(guī)則 提取所述升級腳本中各行代碼包括的關(guān)鍵字和參數(shù),根據(jù)所述關(guān)鍵字查找預(yù)先設(shè)置的數(shù)據(jù) 結(jié)構(gòu),以獲取與所述關(guān)鍵字對應(yīng)的處理函數(shù),將與所述關(guān)鍵字對應(yīng)的參數(shù)傳遞給所述處理 函數(shù),以執(zhí)行所述處理函數(shù)進(jìn)行系統(tǒng)升級,解決現(xiàn)有的腳本解析的具體實(shí)現(xiàn)過程難于理解、 程序移植性不好的問題,降低解析升級腳本的復(fù)雜度,提高升級效率。
[0024] 實(shí)施例二
[0025] 圖2是本發(fā)明實(shí)施例二中的一種終端系統(tǒng)升級的方法的流程圖,本實(shí)施例在上述 實(shí)施例的技術(shù)方案的基礎(chǔ)上,進(jìn)一步在獲取升級腳本之前增加了設(shè)置語法規(guī)則和關(guān)鍵字, 通過關(guān)鍵字確定處理函數(shù),通過確定數(shù)據(jù)結(jié)構(gòu)存儲所述關(guān)鍵字和對應(yīng)的處理函數(shù)的特征。 所述終端系統(tǒng)升級的方法具體包括如下步驟:
[0026] 步驟210、獲取預(yù)先設(shè)置的升級腳本的語法規(guī)則和關(guān)鍵字。
[0027] 終端獲取用戶根據(jù)升級腳本包含的代碼的編寫形式定義的語法規(guī)則,以便高效、 準(zhǔn)確地從各行代碼中提取關(guān)鍵字和參數(shù)。終端還獲取了用戶根據(jù)終端系統(tǒng)升級所需執(zhí)行的 操作設(shè)置的關(guān)鍵字,所述關(guān)鍵字可以是格式化操作、擦除操作和/或掛載操作等等。
[0028] 步驟220、獲取根據(jù)所述關(guān)鍵字確定的執(zhí)行系統(tǒng)升級操作的處理函數(shù)。
[0029] 終端獲取用戶根據(jù)關(guān)鍵字定義的執(zhí)行系統(tǒng)升級操作的處理函數(shù),所述處理函數(shù)可 以是格式化函數(shù)、擦除函數(shù)和/或掛載函數(shù)等等。
[0030] 步驟230、將所述關(guān)鍵字與所述處理函數(shù)關(guān)聯(lián),確定存儲所述關(guān)鍵字以及所述關(guān)鍵 字對應(yīng)的處理函數(shù)的數(shù)據(jù)結(jié)構(gòu),并按照該數(shù)據(jù)結(jié)構(gòu)存儲所述關(guān)鍵字以及所述關(guān)鍵字對應(yīng)的 處理函數(shù)。
[0031] 終端通過用戶定義的枚舉類型將所述關(guān)鍵字與所述處理函數(shù)關(guān)聯(lián)。例如, 定義枚舉類型,其中,枚舉元素包括關(guān)鍵字、參數(shù)個數(shù)和處理函數(shù)。具體可以是: Int do; format (lnt ria