預(yù)設(shè)格式的協(xié)議字符串,預(yù)設(shè)格式的協(xié)議字符串包括協(xié)議頭、函數(shù)返回值類型、插件名、函數(shù)名、參數(shù)類型和參數(shù)值,具體地,本實施實施例中,本協(xié)議字符串的結(jié)構(gòu)為:協(xié)議頭{函數(shù)返回值類型■'插件名_函數(shù)名(參數(shù)類型■'參數(shù)值,參數(shù)類型'參數(shù)值,…)},比如在需要執(zhí)行插件test中add函數(shù),運算3加5的功能指令時,JNI通信模塊將所述功能指令轉(zhuǎn)換為10?{;[111:1681:_3口;!_3(1(1(;[111:~3,;[111:~5)}”的協(xié)議字符串。
[0052]進一步地,在本實施例中為使得Binder服務(wù)能正常運行,本實施例中在所述電視開機啟動時,啟動所述Binder服務(wù),并注冊所述Binder服務(wù),所述Binder服務(wù)用于傳遞所述協(xié)議字符串。開機運行過程中,可以不需要進行重復(fù)注冊。當然也可以在開機運行過程中,需要開啟所述Binder服務(wù)時,開啟所述Binder服務(wù)。
[0053]本實施例中將所述協(xié)議字符串通過Binder服務(wù)模塊傳遞至控制模塊,具體地,本實施例中將所述協(xié)議字符串傳輸至Binder服務(wù)模塊中的Binder Client,然后傳輸至Binder服務(wù)模塊中的Binder Server,再傳輸至控制模塊,進入步驟S30。
[0054]步驟S40,根據(jù)所述協(xié)議字符串調(diào)用對應(yīng)的函數(shù),執(zhí)行對應(yīng)的操作。
[0055]根據(jù)在步驟S30獲得的所述協(xié)議字符串調(diào)用對應(yīng)的函數(shù),執(zhí)行對應(yīng)的操作,具體地,本實施例中,控制模塊根據(jù)在步驟S30獲得的所述協(xié)議字符串調(diào)用對應(yīng)的函數(shù),執(zhí)行對應(yīng)的操作。比如控制模塊可以解析所述協(xié)議字符串,獲得需要調(diào)用的函數(shù)類型,根據(jù)需要調(diào)用的函數(shù)的類型,查找到需要調(diào)用的函數(shù),執(zhí)行對應(yīng)的操作。
[0056]本發(fā)明通過接收遙控指令,并根據(jù)所述遙控指令產(chǎn)生功能指令;根據(jù)所述功能指令在所述調(diào)用接口協(xié)議表中查找與所述功能指令對應(yīng)的函數(shù)接口,其中所述調(diào)用接口協(xié)議表為通過規(guī)范函數(shù)接口生成的協(xié)議表;根據(jù)查找到的函數(shù)接口將所述功能指令轉(zhuǎn)換成預(yù)設(shè)格式的協(xié)議字符串;根據(jù)所述協(xié)議字符串調(diào)用對應(yīng)的函數(shù),執(zhí)行對應(yīng)的操作。通過上述方式,本發(fā)明通過AIDL服務(wù)模塊規(guī)范調(diào)用接口生成的調(diào)用接口協(xié)議表,能夠?qū)?yīng)用軟件和系統(tǒng)完全獨立;電視功能軟件產(chǎn)生的功能指令時,只有在所述調(diào)用接口協(xié)議表中查找到的與所述功能指令對應(yīng)的函數(shù)接口時才會被執(zhí)行,可以防止電視系統(tǒng)不認可的程序的運行;產(chǎn)生的功能指令需通過特定的流轉(zhuǎn)和處理,才能調(diào)用對應(yīng)的函數(shù)接口,能夠減少開發(fā)人員在開發(fā)過程中開發(fā)電視功能軟件中與電視系統(tǒng)一樣的函數(shù)功能的時間和出現(xiàn)的BUG數(shù)量;在需要維護時,只需要分模塊或分功能進行維護,能夠方便技術(shù)人員維護。
[0057]參照圖2,圖2為本發(fā)明實施例中根據(jù)所述協(xié)議字符串調(diào)用對應(yīng)的函數(shù),執(zhí)行對應(yīng)的操作的一種流程示意圖。
[0058]基于本發(fā)明電視功能處理方法第一實施例,步驟S40可以包括:
[0059]步驟S41,解析所述協(xié)議字符串獲得函數(shù)信息;
[0060]由于每臺電視注冊的內(nèi)容不同,需求不同,功能實現(xiàn)過程也可能不同,為方便每臺電視能正常使用本發(fā)明實施,本實施例中將每個函數(shù)作為插件,安裝在所述系統(tǒng)中,在新增某個插件時,需將新增插件安裝到指定目錄,新增插件在安裝完成時,自動在所述電視的系統(tǒng)中注冊,在本實施例中在所述控制模塊中注冊,使得電視功能軟件能夠調(diào)用其功能。
[0061]本實施例中在所述控制模塊接收到所述協(xié)議字符串時,對所述協(xié)議字符串進行解析,獲得所述協(xié)議字符串對應(yīng)的功能需要調(diào)用的函數(shù)信息,然后進入步驟S42。
[0062]步驟S42,根據(jù)所述函數(shù)信息查找到對應(yīng)的函數(shù)插件,并根據(jù)所述協(xié)議字符串調(diào)用所述函數(shù)插件執(zhí)行對應(yīng)的操作。
[0063]根據(jù)解析獲得的所述函數(shù)信息在注冊的函數(shù)插件中查找,查找到對應(yīng)的函數(shù)插件,調(diào)用所述函數(shù)插件,執(zhí)行對應(yīng)的操作,比如根據(jù)10?{;[111:16 81:_3口;[_3(1(1(;[111:~3,;[111:~5)}”的協(xié)議字符串和查找到api_add的插件,調(diào)用add函數(shù)插件,并傳入兩個int型參數(shù)3和5,add函數(shù)插件根據(jù)傳入的參數(shù)進行計算獲得值8,并向上返回傳遞給電視功能應(yīng)用軟件,當然在調(diào)用其函數(shù)時,可能不需要向上返回,比如向下傳遞,使得所述電視執(zhí)行對應(yīng)的操作。具體實施中可以根據(jù)實際需要調(diào)用多個函數(shù)同時進行運算。在更多的實施中也可以規(guī)范其它的基礎(chǔ)功能做成功能插件,進行類似處理,如果所述功能指令是指示電視執(zhí)行相應(yīng)的操作,則在處理完時,將獲得結(jié)果發(fā)送給電視系統(tǒng)底層,執(zhí)行對應(yīng)的操作。
[0064]技術(shù)人員在開發(fā)每個電視功能時,技術(shù)人員只需完成每個功能的邏輯調(diào)用,便可編譯打包為函數(shù)或者功能插件。
[0065]本發(fā)明將各個函數(shù)功能規(guī)范為單獨的插件,在需要維護函數(shù)功能時,技術(shù)人員可以只需維護函數(shù)插件即可,方便技術(shù)人員開發(fā)和維護;插件具有獨立性,每個插件出現(xiàn)問題不會影響其他插件功能;每個插件生成的文件小,易于升級。
[0066]本發(fā)明進一步提供一種電視功能處理系統(tǒng)。
[0067]參照圖3,圖3為本發(fā)明電視功能處理系統(tǒng)第一實施例的功能模塊示意圖。
[0068]在本實施例中,該電視功能處理系統(tǒng)包括:
[0069]接收模塊10,用于接收遙控指令,并根據(jù)所述遙控指令產(chǎn)生功能指令。
[0070]本發(fā)明主要應(yīng)用于電視系統(tǒng)中,本實施例中以電視系統(tǒng)為Android系統(tǒng)為例,進行說明。具體實施中也可以根據(jù)本發(fā)明核心思想應(yīng)用在其他的系統(tǒng)中。本發(fā)明主要適用與電視系統(tǒng)中常見功能的開發(fā)。
[0071]其中,本發(fā)明先規(guī)范電視系統(tǒng)中函數(shù)的調(diào)用接口,并生成對應(yīng)的調(diào)用接口協(xié)議表,將電視功能應(yīng)用軟件所在的應(yīng)用層與電視系統(tǒng)完全獨立。具體地,本發(fā)明通過AIDL(Android Interface Definit1n Language)服務(wù)模塊規(guī)范電視系統(tǒng)中函數(shù)的調(diào)用接口。
[0072]用戶可以通過電視遙控器或者其他設(shè)備產(chǎn)生遙控指令,電視在接收到所述遙控指令時,安裝在所述電視上對應(yīng)的控制或應(yīng)用軟件根據(jù)所述遙控指令產(chǎn)生對應(yīng)的功能指令。
[0073]查找模塊20,用于在調(diào)用接口協(xié)議表中查找與所述功能指令對應(yīng)的函數(shù)接口,其中所述調(diào)用接口協(xié)議表為通過規(guī)范函數(shù)接口生成的協(xié)議表。
[0074]根據(jù)接收模塊10獲得的功能指令,在預(yù)先生成的調(diào)用接口協(xié)議表中查找與所述功能指令對應(yīng)的函數(shù)接口。在本實施例中將接收模塊10獲得的所述功能指令發(fā)送至所述AIDL服務(wù)模塊,所述AIDL服務(wù)模塊在接收到所述功能指令時,在所述調(diào)用接口協(xié)議表中查找與所述功能指令對應(yīng)的函數(shù)接口,具體地,AIDL服務(wù)模塊中AIDL Client接收所述功能指令;AIDL服務(wù)模塊中AIDL Server根據(jù)AIDL Client接收到所述功能指令在所述調(diào)用接口協(xié)議表中查找與所述功能指令對應(yīng)的函數(shù)接口。在所述調(diào)用接口協(xié)議表中查找與所述功能指令對應(yīng)的函數(shù)接口也相當于對功能應(yīng)用軟件進行校驗。
[0075]進一步地,所述系統(tǒng)還包括顯示模塊(圖未示),用于在所述AIDL服務(wù)模塊沒有在所述調(diào)用接口協(xié)議表中查找到與所述功能指令對應(yīng)的函數(shù)接口時,顯示提示界面。
[0076]具體實施中,如果所述AIDL服務(wù)模塊沒有在所述調(diào)用接口協(xié)議表中查找到與所述功能指令對應(yīng)的函數(shù)接口,則可以顯示提示,比如無法識別此次操作,當然也可以不顯示提不ο
[0077]轉(zhuǎn)換模塊30,用于根據(jù)查找到的函數(shù)接口將所述功能指令轉(zhuǎn)換成預(yù)設(shè)格式的協(xié)議字符串。
[0078]在所述調(diào)用接口協(xié)議表中查找到與所述功能指令對應(yīng)的函數(shù)接口時,根據(jù)查找到的函數(shù)接口將所述功能指令轉(zhuǎn)換成預(yù)設(shè)格式的協(xié)議字符串。本實施例中Java本地接口通信模塊JNI(Java Native Interface Communicat1n)通信模塊根據(jù)所述AIDL服務(wù)模塊查找到的函數(shù)接口將所述功能指令轉(zhuǎn)換成預(yù)設(shè)格式的協(xié)議字符串,預(yù)設(shè)格式的協(xié)議字符串包括協(xié)議頭、函數(shù)返回值類型、插件名、函數(shù)名、參數(shù)類型和參數(shù)值,具體地,本實施實施例中,本協(xié)議字符串的結(jié)構(gòu)為:協(xié)議頭{函數(shù)返回值類型■'插件名_函數(shù)名(參數(shù)類型■'參數(shù)值,參數(shù)類型'參數(shù)值,…)},比如在需要執(zhí)行插件test中add函數(shù),運算3加5的功能指令時,JNI通信模塊將所述功能指令轉(zhuǎn)換為10?{;[111:1681:_3口;