ZigBee和Android的智能移動(dòng)監(jiān)控系統(tǒng)設(shè)計(jì)
2.2 信息處理與控制子系統(tǒng)
信息處理與控制子系統(tǒng)是在Android智能移動(dòng)平臺(tái)上研發(fā)的。Android智能平臺(tái)體系從上到下由應(yīng)用程序、應(yīng)用程序框架、外部庫(kù)、Andr oid運(yùn)行時(shí)庫(kù)、硬件抽象層HAL(Hardware Abstraction Laycr)和Linux內(nèi)核組成。
Android智能移動(dòng)平臺(tái)的研發(fā)需要借助Eclipse、NDK和JNI等工具和方法。信息處理與控制子系統(tǒng)的MVC模式如圖8所示。本文是按MVC模式研發(fā)信息處理與控制子系統(tǒng)的。本文引用地址:http://m.butianyuan.cn/article/154377.htm
Android應(yīng)用程序的設(shè)計(jì)必須要遵循單線程模型。當(dāng)Android應(yīng)用程序啟動(dòng)時(shí),Android系統(tǒng)會(huì)同時(shí)啟動(dòng)一個(gè)對(duì)應(yīng)的主線程即UI線程,用于處理與用戶界面UI(User Interface)相關(guān)的事件。UI線程不是線程安全的。
此設(shè)計(jì)需要將環(huán)境信息實(shí)時(shí)地顯示在Android應(yīng)用程序上,同時(shí)需要及時(shí)地將用戶操作轉(zhuǎn)換成用戶命令發(fā)送至信息采集與傳輸子系統(tǒng)。岡此,為了避免阻塞UI線程,設(shè)計(jì)了一個(gè)守候線程并采用了基于zbHandler的消息傳遞機(jī)制。UI線程和守候線程的關(guān)系如圖9所示。
守候線程是借助于本地方法獲取Linux底層驅(qū)動(dòng)環(huán)境信息的。信息處理與控制子系統(tǒng)中的本地方法被封裝在一個(gè)名為ZigBeeJni的類中,其定義如下:
結(jié)語(yǔ)
本文研究了基于ZigBee網(wǎng)絡(luò)和Android智能移動(dòng)平臺(tái)的監(jiān)控系統(tǒng)的設(shè)計(jì)。經(jīng)過(guò)嚴(yán)格的測(cè)試,本系統(tǒng)能夠完成對(duì)環(huán)境信息的實(shí)時(shí)監(jiān)測(cè),并能及時(shí)地響應(yīng)用戶發(fā)出的各種控制命令,系統(tǒng)的設(shè)計(jì)達(dá)到了預(yù)期的目標(biāo)。
評(píng)論