張霄
摘 要 基于Android3.1操作系統(tǒng),本文提出了一種基于智能手機(jī)遠(yuǎn)程視頻監(jiān)控系統(tǒng)的方案。本文首先分析了Android操作系統(tǒng),然后闡述和分析了設(shè)計(jì)系統(tǒng)的總體結(jié)構(gòu),并詳細(xì)的闡述了主要的技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了該系統(tǒng)。經(jīng)過(guò)驗(yàn)證,所設(shè)計(jì)系統(tǒng)穩(wěn)定可靠,攜帶方便,應(yīng)用前景較好。
關(guān)鍵詞 Android系統(tǒng) 智能手機(jī) 遠(yuǎn)程視頻監(jiān)控
中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A
3G移動(dòng)網(wǎng)絡(luò)的出現(xiàn),使智能手機(jī)能夠輕易實(shí)現(xiàn)視頻的傳輸。這篇文章所提出的方案實(shí)現(xiàn)視頻監(jiān)測(cè)的功能是在Eclipse編程環(huán)境下的,運(yùn)用Android語(yǔ)言進(jìn)行編程。它能夠?qū)崿F(xiàn)只要存在無(wú)線網(wǎng)絡(luò),就可以通過(guò)Android智能手機(jī)手對(duì)目標(biāo)現(xiàn)場(chǎng)進(jìn)行實(shí)時(shí)監(jiān)控,使人們的生活變得更加便利。
1 Android操作系統(tǒng)
Android是一種基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng),它運(yùn)用的架構(gòu)是軟件堆層(SoftwareStack,又叫做軟件疊層),一般包括三個(gè)部分:中介軟件、底層Linux內(nèi)核和應(yīng)用軟件。
中介軟件的作用是溝通操作系統(tǒng)和應(yīng)用程序,包括虛擬機(jī)(VirtualMachine)和函數(shù)層(Library)。Android的中間層采用特殊的Dalvik虛擬機(jī),多以Java實(shí)現(xiàn)。通過(guò)使用虛擬機(jī)技術(shù),Android的Java應(yīng)用效率更高,更接近于底層系統(tǒng),也讓Android的應(yīng)用能夠運(yùn)行在被監(jiān)控的情況下,提高了安全性。
底層Linux內(nèi)核只用來(lái)提供基本功能,位于硬件和其他軟件層之間,用來(lái)提供系統(tǒng)的底層服務(wù)。其特點(diǎn)是多了Android運(yùn)行所需的特定驅(qū)動(dòng)代碼和一個(gè)叫做Goldfish的虛擬CPU,包括內(nèi)存管理、安全機(jī)制、網(wǎng)絡(luò)堆棧、進(jìn)程管理和一系列的驅(qū)動(dòng)模塊。
Android的平臺(tái)是開(kāi)放的,不包含任何從前妨礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專(zhuān)有權(quán)的障礙,因而任何的移動(dòng)終端廠商都可以加入到Android聯(lián)盟。Android是一個(gè)開(kāi)放的平臺(tái),對(duì)第三方軟件完全開(kāi)源免費(fèi)。
2 系統(tǒng)總體設(shè)計(jì)
要實(shí)現(xiàn)次系統(tǒng),必須先要讀取視頻流,這就需要網(wǎng)絡(luò)監(jiān)控?cái)z像頭的幫助。這樣就用戶就可以通過(guò)網(wǎng)絡(luò)瀏覽和播放對(duì)家居環(huán)境的監(jiān)控。監(jiān)控系統(tǒng)采用C/S架構(gòu):服務(wù)器端被部署在用戶家中,是一臺(tái)帶有監(jiān)控?cái)z像頭的PC,主要功能是連接、與用戶的智能手機(jī)進(jìn)行通信且控制監(jiān)控設(shè)備;客戶端是一部Android智能手機(jī),能夠連接互聯(lián)網(wǎng),并支持音頻視頻和3G業(yè)務(wù)。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 服務(wù)器端軟件設(shè)計(jì)
設(shè)計(jì)服務(wù)器端的一般作用是用來(lái)將主機(jī)IP和攝像頭設(shè)備和網(wǎng)絡(luò)端口號(hào)初始化,并開(kāi)啟視頻監(jiān)控服務(wù),實(shí)時(shí)等待客戶端的連接請(qǐng)求并捕捉現(xiàn)場(chǎng)圖像。在與遠(yuǎn)程請(qǐng)求的手機(jī)客戶端成功建立連接后便開(kāi)始向其發(fā)送視頻圖像信息。
PC服務(wù)器端是用來(lái)負(fù)責(zé)現(xiàn)場(chǎng)監(jiān)控的,實(shí)現(xiàn)是運(yùn)用VisualStudio編程環(huán)境下的C++/MFC語(yǔ)言來(lái),原因是需要對(duì)監(jiān)控設(shè)備進(jìn)行初始化控制。為了實(shí)現(xiàn)圖像穩(wěn)定傳輸在進(jìn)行網(wǎng)絡(luò)通信傳輸,此系統(tǒng)選擇可靠穩(wěn)定的TCP套接字(Socket)傳輸協(xié)議,用作客戶端和服務(wù)器端之間的通信的實(shí)現(xiàn)。
3.2 手機(jī)客戶端軟件設(shè)計(jì)
在這一基于Android操作系統(tǒng)智能手機(jī)開(kāi)發(fā)的系統(tǒng)的手機(jī)客戶端軟件設(shè)計(jì)的過(guò)程中,利用Android所已有的各種組件API接口設(shè)計(jì)和實(shí)現(xiàn)應(yīng)用層。
手機(jī)客戶端的開(kāi)發(fā)是利用Eclipse工具下的Android插件,主要基于Java語(yǔ)言進(jìn)行程序的設(shè)計(jì)并進(jìn)行實(shí)現(xiàn),而且調(diào)用了Android中的部分API函數(shù)庫(kù)。Java語(yǔ)言是通過(guò)構(gòu)建各個(gè)類(lèi)來(lái)實(shí)現(xiàn)編程,因此進(jìn)行了系統(tǒng)的主要類(lèi)構(gòu)建,分別為主程序入口類(lèi)Video Monitor Client,通信處理類(lèi)Socket Vide,連接視頻類(lèi)Connect Server,線程類(lèi)Monitor Thread,和圖像捕獲處理類(lèi)Video Monitor View。Socket Vide的任務(wù)是套接字Socket服務(wù),通過(guò)綁定端口號(hào)和服務(wù)器IP地址來(lái)和遠(yuǎn)程服務(wù)器之間通信連接。程序的實(shí)現(xiàn)過(guò)程:一開(kāi)始先建立遠(yuǎn)程視頻請(qǐng)求連接,程序開(kāi)始執(zhí)行并調(diào)用Connect Server,之后Connect Server中調(diào)用Monitor View,Video Monitor View新建一個(gè)mvideo對(duì)象,mvideo對(duì)象調(diào)用其方法Download Thread處理線程函數(shù)和Monitor Thread類(lèi)創(chuàng)建的對(duì)象thread,對(duì)象thread調(diào)用Socket Vide類(lèi)對(duì)象,這一類(lèi)對(duì)象可以建立TCP連接,建立連接后對(duì)象thread調(diào)用中的視頻處理捕捉圖像的函數(shù),結(jié)果是保存圖像并不斷顯示出圖像。
3.3 測(cè)試結(jié)果
對(duì)于整個(gè)系統(tǒng)在有wifi的條件下進(jìn)行了測(cè)試,客戶端為基于Android的智能手機(jī),服務(wù)器端是可以進(jìn)行現(xiàn)場(chǎng)監(jiān)控的PC,實(shí)驗(yàn)顯示,連接圖像的速度快,整個(gè)系統(tǒng)的運(yùn)行穩(wěn)定,預(yù)期設(shè)想的效果達(dá)到。
4 結(jié)論
本系統(tǒng)利用Android環(huán)境編程和VS,對(duì)于當(dāng)今的主流Android智能手機(jī),對(duì)系統(tǒng)進(jìn)行了設(shè)計(jì)和實(shí)現(xiàn)。完全利用開(kāi)源代碼實(shí)現(xiàn)了手機(jī)客戶端,其二次開(kāi)發(fā)設(shè)計(jì)和跨平臺(tái)移植性很強(qiáng),具有先進(jìn)、經(jīng)濟(jì)、可靠、便利等特點(diǎn)。經(jīng)過(guò)試驗(yàn)可以看出該系統(tǒng)具有較高的可靠性和性能。隨著智能手機(jī)處理性能的大幅度提高和3G、4G移動(dòng)網(wǎng)絡(luò)的發(fā)展,該手機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)的發(fā)展前景十分廣闊。