【摘 要】本文介紹了一種基于Android系統(tǒng)的遠程控制系統(tǒng)設計思路。使用基于Android系統(tǒng)的移動終端設備可利用無線網(wǎng)絡與其他設備進行自發(fā)交互,為移動互聯(lián)網(wǎng)中其他具有傳感功能和計算能力的設備提供數(shù)據(jù)集成方面的支持。設計思路中……
【關鍵詞】遠程控制 系統(tǒng)設計
一、 引言
安卓系統(tǒng)最初由Andy Rubin開發(fā),是一種以Linux為基礎的開源操作系統(tǒng),目前應用于一些手持設備上,例如:手機,平板電腦等。2005年由Google公司,并聯(lián)合多家相關領域的廠商組成OHA(Open Handset Alliance,開放手機聯(lián)盟)對安卓系統(tǒng)進行后繼的開發(fā)和推廣工作。其英文名Android一詞最早出現(xiàn)于法國作家利爾亞當?shù)目苹眯≌f《未來夏娃》中。他將外表像人的機器起名為Android。從安卓 1.5系統(tǒng)開始,采用甜點的名稱作為系統(tǒng)版本的代號,并以26個英文字母為序,依次是:紙杯蛋糕Cupcake,甜甜圈Donut,松餅Eclair,凍酸奶Froyo,姜餅Gingerbread,蜂巢Honeycomb,冰激凌三明治Ice Cream Sandwich。
二、 安卓系統(tǒng)結構
(一)安卓系統(tǒng)架構
安卓系統(tǒng)以Linux系統(tǒng)為核心,使用Java作為主要編程語言,在NDK的支持下也可使用C/C++進行編程。從系統(tǒng)結構的角度看,安卓系統(tǒng)可分為4個層次:
1.內(nèi)核:內(nèi)核為上層提供安全、內(nèi)存管理、進程管理等服務,同時也作為硬件層和系統(tǒng)上層軟件之間的一個抽象層、橋梁通道。
2.函數(shù)庫和運行環(huán)境:函數(shù)庫提供了JAVA語言的部分功能。在庫中提供的API能被安卓系統(tǒng)中的組件調(diào)用,通過應用程序框架為開發(fā)者進行支持。運行環(huán)境主要指的是安卓應用程序的運行環(huán)境,其作用相當于微軟.NET架構下的 Frameworks。
3.應用程序框架:專門為應用程序的開發(fā)而設計的系統(tǒng)結構,安卓程序員通過框架得以直接訪問核心應用程序,以及系統(tǒng)API。從而簡化程序設計工作,提高編碼效率,加強程序的可重用性。
4.應用程序集合:安卓系統(tǒng)自帶的一系列核心應用程序集合,可提供綜合數(shù)字服務的相關功能,支持郵件的發(fā)送和接受、提供收發(fā)SMS、MMS的相關服務、擁有內(nèi)置的行事日歷管理功能、www瀏覽功能、電話薄管理功能、基于GPS的Google Maps功能等。
(二) 安卓程序結構
目前谷歌公司所公布的安卓系統(tǒng)源代碼包含以下內(nèi)容:目標機代碼,編譯工具、虛擬運行環(huán)境。
三、 系統(tǒng)設計
系統(tǒng)的設計思路是在整個系統(tǒng)架構中中部署一臺計算機,提供業(yè)務處理功能服務,與使用安卓系統(tǒng)的移動終端進行通信。智能終端設備作為管理其他設備的中控設備,提供管理界面和用戶接口,支持遠程控制、文件讀寫、指令反饋等功能。
系統(tǒng)中,計算機連接網(wǎng)絡,所有的設備與計算機相連,它主要由在安卓系統(tǒng)的Activity中使用Bundle進行通信。使用安卓系統(tǒng)的移動終端設備進入系統(tǒng)后,由網(wǎng)絡偵測機構(WIFI或射頻設備)主動發(fā)現(xiàn)設備,并邀請設備連入網(wǎng)絡,智能設備通過動態(tài)方式獲取一個IP地址,并在計算機的服務器列表中搜索其它可用設備服務,發(fā)現(xiàn)設備后選擇處于激活狀態(tài)的可用服務,并與之進行交互。使用安卓系統(tǒng)的移動終端與計算機之間使用套接字進行通信,計算機與外部可控設備之間使用串口或總線進行通信。
終端設備通過點擊觸控的方式觸發(fā)預設的命令集,通過套接字接口將命令集表示發(fā)送到計算機服務器端,服務器解析該命令集標識并轉換成可控設備能夠識別的匯編指令信號,發(fā)送給外圍設備。
四、 系統(tǒng)實現(xiàn)
(一) 服務器端的設計
服務器端啟動的時候,將設置一個廣播地址段,利用此廣播地址初始化套接字在,并對9432端口進行監(jiān)聽。當收到連接請求時,利用授權模塊對連接請求的合法性進行驗證,服務器端將會向客戶端發(fā)送一個驗證數(shù)據(jù),并將線程設置為阻塞狀態(tài),等待客戶端的響應。收到的客戶端響應后,進行校驗。根據(jù)校驗結果決定是否連接或拒絕。連接成功后,服務器將開始接受并解析收到的命令集。
(二) 客戶端的設計
系統(tǒng)中服務器與客戶端利用Socket通過用戶數(shù)據(jù)報(UDP)協(xié)議進行通信,傳輸速度快,無延遲。雖然UDP協(xié)議有數(shù)據(jù)報容易丟失、不能保證每個數(shù)據(jù)報準確無誤地傳到等問題,但對于運動體感的操作,用戶的動作產(chǎn)生的數(shù)據(jù)是連續(xù)的,即使丟掉部分的數(shù)據(jù)報對用戶體驗也無大礙。
在確定移動通信傳輸協(xié)議的基礎上,需要將移動設備的多點觸摸功能和傳感器功能融入到服務器強大的計算功能中,即實現(xiàn)信息空間和物理空間的融合,因此需要將移動設備發(fā)出的指令變成服務器能夠識別的操作。客戶端改變狀態(tài)模式改變時,應該通知服務器端進行識別,這樣才能進行正確的操作映射。
五、 結束語
經(jīng)過在MOTO設備上的測試,客戶端與服務器端的連接時延在10秒內(nèi),連接后的指令響應時間小于5秒,基本能夠達到設計要求。系統(tǒng)在設計與實現(xiàn)中,已預置了與其他類型設備進行交互的接口,下一步將準備實現(xiàn)多種異構設備之間的遠程交互。
參考文獻:
[1]ITeye專欄.Android 源碼結構. [EB/OL]. http://helin-era.iteye.com/blog/1090237.2011-11-21
[2]陳益強. 簡析Android系統(tǒng)的安全性能[J].信息系統(tǒng)工程.2011.9.20
[3]YUAN M J. J2ME移動應用程序開發(fā)[M] 梁超,王延華 譯. 清華大學出版社, 2004