droid終端設備系統(tǒng)設置接口的適配方法,請參考圖1-圖4,所述方法包括:
步驟一:客戶端通過BindService O綁定服務端Service,獲取設備系統(tǒng)設置接口實例對象,并通過Proxy代理服務向服務端發(fā)送請求數(shù)據(jù);
步驟二:服務端Service通過Binder的onTransact ()獲取Proxy代理請求數(shù)據(jù);步驟三:服務端Service通過請求的數(shù)據(jù)封裝結(jié)果,并通過Stub內(nèi)部抽象類調(diào)用服務端相應的函數(shù)接口;
步驟四:服務端Service返回函數(shù)接口調(diào)用數(shù)據(jù)成功或失敗的信息,并判斷信息是否滿足要求,如果滿足要求,則流程結(jié)束;如果關(guān)鍵數(shù)據(jù)不滿足,基本數(shù)據(jù)滿足,則根據(jù)預置的策略,執(zhí)行相應策略;
步驟五:服務端Service返回客戶端請求信息的處理結(jié)果并通過客戶端響應信息,處理流程完畢。
[0019]其中,在本申請實施例中,步驟一種對于請求的數(shù)據(jù),分別做以下處理:解析出請求數(shù)據(jù)的個數(shù)以及數(shù)據(jù)結(jié)構(gòu)類型及長度,然后將請求數(shù)據(jù)解析成符合發(fā)送的格式;或者,根據(jù)請求數(shù)據(jù)的格式,解析出其中特定字段,然后根據(jù)預置的格式,生成符合發(fā)送的格式。
[0020]其中,在本申請實施例中,預置策略:服務端對接收的數(shù)據(jù)分為關(guān)鍵數(shù)據(jù)與基本數(shù)據(jù),對于關(guān)鍵數(shù)據(jù)不論是數(shù)據(jù)結(jié)構(gòu)還是數(shù)據(jù)類型不符合,則流程結(jié)束,如關(guān)鍵數(shù)據(jù)符合要求,基本數(shù)據(jù)不符合,則執(zhí)行結(jié)果成功。
[0021]其中,在本申請實施例中,service是android系統(tǒng)中的服務,bindService就是綁定Service服務;一般android的service分為本地和遠程,此技術(shù)方式是遠程service。
[0022]其中,在本申請實施例中Service是通過Binder機制來和客戶端通訊交互的;transact ():向遠端的對象發(fā)送發(fā)出調(diào)用,onTransact O:是遠程的對象能夠響應另一端發(fā)送過來的調(diào)用請求。這兩個API都是同步執(zhí)行的。transactO方法要一直阻塞到onTransact O方法調(diào)用完成后才返回;代理模式(Proxy):為其他對象提供一種代理以控制對這個對象的訪問。
[0023]其中,在本申請實施例中,步驟二中的約束條件包括android系統(tǒng)版本,不同芯片O
[0024]其中,在本申請實施例中,對應android系統(tǒng)版本的約束,至少包含兩種處理方式:android版本由2.2,4.0,4.2,4.4不斷升級更新,無論才低版本還是高版本,能完全兼容與松耦合;同一 android系統(tǒng)版本,底層的持續(xù)更新不會影響到終端設備接口(可能有擴展接口),能完全兼容與松耦合。
[0025]其中,在本申請實施例中,對于不同的芯片,按照android終端設備系統(tǒng)設置接口的適配方法,業(yè)務方面:做到快速移植;避免重復開發(fā)。
[0026]其中,在本申請實施例中,下面結(jié)合附圖對本發(fā)明的【具體實施方式】再進一步的說明:
圖2是本申請技術(shù)方案應用的android智能終端系統(tǒng)框架結(jié)構(gòu)圖,系統(tǒng)設置接口的適配方法分別包含在系統(tǒng)的 Linux Kernel、Libraries、Applicat1n Framework、Applicat1n 等各層。
[0027]Linux Kernel是Android基于Linux 2.6提供核心系統(tǒng)服務,例如:安全、內(nèi)存管理、進程管理、網(wǎng)絡堆棧、驅(qū)動模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務。
[0028]Linux Kernel 擴展包含:
——Network_Driver:指為支持業(yè)務而擴展集成的網(wǎng)絡驅(qū)動協(xié)議。目前主要包括支持基于IGMP的組播直播功能的標準IGMP V2協(xié)議、支持雙網(wǎng)絡接入的標準802.1Q模塊功能,IPV4/IPV6 協(xié)議;
--Security_Driver:與芯片相關(guān)的硬件、操作系統(tǒng)等相關(guān)信息。
[0029]--Dispyay Driver (顯示驅(qū)動模式),Camera Driver (攝像頭驅(qū)動),Adu1
Driver (音頻驅(qū)動),F(xiàn)lash Men Driver (外接設備驅(qū)動)等其他驅(qū)動。
[0030]Libraries是Android包含一個C/C++庫的集合,供Android系統(tǒng)的各個組件使用。這些功能通過Android的應用程序框架(applicat1n framework)暴露給開發(fā)者
Libraries擴展包含:
--NetworkServic:客戶端軟件,主要發(fā)送數(shù)據(jù)和接收請求執(zhí)行相應功能.——SQLite (關(guān)系數(shù)據(jù)庫引擎),LibffebCore (web瀏覽器),SGL (2D圖形引擎),媒體庫等,
Applicat1n Framework是android通過提供開放的開發(fā)平臺,Android使開發(fā)者能夠編制極其豐富和新穎的應用程序。開發(fā)者可以自由地利用設備硬件優(yōu)勢、訪問位置信息、運行后臺服務、設置鬧鐘、向狀態(tài)欄添加通知等Applicat1n Framework 擴展包含:
——LibsyUtils:主要針對靜態(tài) IP,DHCP+, pppoe,IPV4/IPV6,IP0E,雙棧,鑒權(quán)等,是對智能終端底層網(wǎng)絡封裝API,供智能終端設備上層控制模塊的統(tǒng)一調(diào)用;
--視圖(View),內(nèi)容提供者(Content Providers),資源管理器(Resource
Manager),通知管理器(Notificat1n Manager),活動管理器(Activity Manager)
Applicat1n ;Android裝配一個核心應用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯(lián)系人和其他設置Applicat1n應用包含:
一一Setting APK:主要用于實現(xiàn)智能終端設備系統(tǒng)設置統(tǒng)一Π,方便運營商對軟件業(yè)務模塊的定制,能在不同android系統(tǒng),不同芯片展現(xiàn)同等效果。
[0031]NetworkService, LibSyUtils將系統(tǒng)設置接口統(tǒng)一封裝成成對象,供Setting調(diào)用,做到不依賴android系統(tǒng)與芯片使之間可以跨平臺,跨芯片工作,減少帶來的復雜重復性工作。
[0032]為了保證Setting的方法在不同android系統(tǒng),不同芯片間正常使用,與系統(tǒng),芯片無關(guān)的功能點如業(yè)務賬號,服務器信息,通過Put,Set統(tǒng)一存儲在iptv_prefs.xml或者系統(tǒng)數(shù)據(jù)庫。Setting設置于Android系統(tǒng)的底層的接口可以進行分類,主要包括有線網(wǎng)絡,無線網(wǎng)絡,聲音及顯示,業(yè)務設置,系統(tǒng)版本信息,服務器信息,高級信息等,不同類別的接口具備自己獨有的一些特點,根據(jù)這些特點不僅可以標示該接口類別,還可以根據(jù)不同接口的具體功能上的特點,在不同的消息結(jié)構(gòu)上封裝具體的操作對象。從而不僅可以滿足和不同android系統(tǒng),不同芯片的適配需求,而且可以大大簡化控制流程,比喻把有線網(wǎng)絡設置單獨分類,對靜態(tài)網(wǎng)絡,PPP0E,DHCP等單獨編號,都可以方便的識別并采用哪種消息結(jié)構(gòu)。
[0033]圖3是本發(fā)明的接口適配方法流程圖,具體為:
步驟一:客戶端通過BindService O綁定服務端Service,獲取設備系統(tǒng)設置接口實例對象,并通過Proxy代理服務向服務端發(fā)送請求數(shù)據(jù);
首先,客戶端通過BindService O綁定服務端Service,并收集相關(guān)數(shù)據(jù)信息;
其次,根據(jù)收集的信息,對數(shù)據(jù)類型進行判斷;
對于類型甲,解析出數(shù)據(jù)個數(shù)及每個數(shù)據(jù)的長度,然后根據(jù)這兩個數(shù)據(jù)參數(shù),通過解析單元,獲取設備系統(tǒng)設置接口對象;
對于類型甲,解析出數(shù)據(jù)消息格式,然后根據(jù)這特定字段,通過解析單元,獲取設備系統(tǒng)設置接口對象;
再次,獲取接口信息失敗,客戶端與服務端綁定失?。环駝t綁定成功;
最終,通過代理向服務端發(fā)送請求數(shù)據(jù);
步驟二:服務端Service通過Binder的onTransact ()獲取Proxy代理請求數(shù)據(jù); 若通過代理獲取數(shù)據(jù)字段不匹配