《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android的情報(bào)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于Android的情報(bào)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2017年微型機(jī)與應(yīng)用第2期
譚欽紅,黃茂碟,張作運(yùn)
重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065
摘要: 根據(jù)現(xiàn)有信息處理方式,設(shè)計(jì)了基于Android的情報(bào)管理系統(tǒng)。情報(bào)管理系統(tǒng)通過網(wǎng)絡(luò)實(shí)時(shí)上傳采集的情報(bào)信息,管理員及時(shí)處理并下發(fā)指令,APP用戶根據(jù)指令進(jìn)行處理并將結(jié)果反饋給管理員從而形成閉合的信息處理方式。緊急情況下手機(jī)客戶端直接與后臺管理端進(jìn)行視頻直播,更加快捷地做出處理措施。詳細(xì)闡述了系統(tǒng)的總體構(gòu)架,介紹了系統(tǒng)的功能模塊和具體實(shí)現(xiàn),對系統(tǒng)進(jìn)行測試,并提出系統(tǒng)需要完善的地方。
Abstract:
Key words :

  譚欽紅,黃茂碟,張作運(yùn)

 ?。ㄖ貞c郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)

       摘要:根據(jù)現(xiàn)有信息處理方式,設(shè)計(jì)了基于Android情報(bào)管理系統(tǒng)。情報(bào)管理系統(tǒng)通過網(wǎng)絡(luò)實(shí)時(shí)上傳采集的情報(bào)信息,管理員及時(shí)處理并下發(fā)指令,APP用戶根據(jù)指令進(jìn)行處理并將結(jié)果反饋給管理員從而形成閉合的信息處理方式。緊急情況下手機(jī)客戶端直接與后臺管理端進(jìn)行視頻直播,更加快捷地做出處理措施。詳細(xì)闡述了系統(tǒng)的總體構(gòu)架,介紹了系統(tǒng)的功能模塊和具體實(shí)現(xiàn),對系統(tǒng)進(jìn)行測試,并提出系統(tǒng)需要完善的地方。

  關(guān)鍵詞:Android;情報(bào)管理系統(tǒng);JAX-WS;視頻通話

  中圖分類號:TN919.82文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.030

  引用格式:譚欽紅,黃茂碟,張作運(yùn).基于Android的情報(bào)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(2):100-103.

0引言

  隨著 “互聯(lián)網(wǎng)+”[1]時(shí)代的到來,傳統(tǒng)行業(yè)中情報(bào)信息處理方式顯得有些過時(shí),如民警執(zhí)法、事故現(xiàn)場指揮救援等采集的情報(bào)信息往往是事后處理,導(dǎo)致信息滯留,采集設(shè)備也因行業(yè)不同使應(yīng)用場景受限。本文基于互聯(lián)網(wǎng)技術(shù),采用全新信息處理模式,設(shè)計(jì)了基于Android[2]的情報(bào)管理系統(tǒng)。選用開源MySQL[3]關(guān)系型數(shù)據(jù)庫放置在網(wǎng)絡(luò)服務(wù)端,通過Web Service技術(shù)進(jìn)行數(shù)據(jù)傳輸,利用線程及流媒體技術(shù)進(jìn)行視頻數(shù)據(jù)傳輸,實(shí)現(xiàn)信息及時(shí)上傳處理并利用Android平臺擴(kuò)展應(yīng)用場景,達(dá)到了較好的情報(bào)管理效果。

1系統(tǒng)總體架構(gòu)

  1.1系統(tǒng)簡介

  情報(bào)管理系統(tǒng)主要包括后臺數(shù)據(jù)存儲服務(wù)器、手機(jī)端(包括手機(jī)客戶端和手機(jī)服務(wù)端)和后臺管理端三部分,其系統(tǒng)架構(gòu)圖如圖1所示。手機(jī)端采集情報(bào)信息上傳至后臺管理端,后臺管理端處理采集信息下發(fā)指令給手機(jī)端,手機(jī)端用戶根據(jù)指令內(nèi)容完成相應(yīng)動作并進(jìn)行反饋從而完成一條閉合的信息處理。情報(bào)信息數(shù)據(jù)在兩大服務(wù)器中進(jìn)行處理。系統(tǒng)接入互聯(lián)網(wǎng),實(shí)時(shí)將現(xiàn)場音視頻圖像回傳給后臺管理端,將手機(jī)變成隨身攜帶的監(jiān)控點(diǎn),彌補(bǔ)傳統(tǒng)監(jiān)控設(shè)備有圖像沒聲音,無法實(shí)時(shí)上傳視頻圖像等問題。

001.jpg

  1.2系統(tǒng)設(shè)計(jì)

  情報(bào)管理系統(tǒng)手機(jī)端由Android平臺開發(fā)完成,手機(jī)端采用C/S[4]架構(gòu)將應(yīng)用程序分為手機(jī)客戶端、手機(jī)服務(wù)端兩部分,手機(jī)服務(wù)端與數(shù)據(jù)存儲服務(wù)器進(jìn)行數(shù)據(jù)交互;后臺管理端由.NET[5]平臺開發(fā)完成,后臺管理端訪問數(shù)據(jù)存儲服務(wù)器獲得數(shù)據(jù)。

  通過調(diào)用JAXWS[6]服務(wù)來發(fā)布使用Web Service框架的手機(jī)服務(wù)端,簡化了Java技術(shù)開發(fā)和部署Web Service的工作。手機(jī)客戶端采集情報(bào)信息通過HTTP協(xié)議訪問Tomcat發(fā)布的Web Service服務(wù)器接口將信息存入數(shù)據(jù)庫,將圖片存入FTP服務(wù)器并將圖片路徑寫入數(shù)據(jù)庫中。后臺管理端通過訪問數(shù)據(jù)庫得到情報(bào)信息,進(jìn)行分析并下發(fā)處理指令寫入數(shù)據(jù)庫中,同時(shí)接收手機(jī)客戶端通過Socket連接請求的實(shí)時(shí)視頻傳輸。情報(bào)管理系統(tǒng)數(shù)據(jù)流圖如圖2所示。

 

002.jpg

2系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

  情報(bào)管理系統(tǒng)主要有三大功能模塊:情報(bào)模塊、指令模塊、視頻圖傳模塊。情報(bào)模塊包括后臺管理端的情報(bào)管理和手機(jī)端的情報(bào)采集,兩者共同完成情報(bào)信息的管理以及采集;指令模塊包括后臺管理端的指令管理和手機(jī)端的指令處理,兩者共同完成實(shí)時(shí)指令的處理;視頻圖傳模塊實(shí)現(xiàn)一對多的通信模式,后臺管理端可以同時(shí)接受多個(gè)手機(jī)客戶端發(fā)起的視頻連接請求,實(shí)時(shí)監(jiān)聽完成視頻傳輸,并在視頻通話結(jié)束后把視頻存入FTP服務(wù)器中將視頻路徑寫入數(shù)據(jù)庫。

  2.1情報(bào)模塊

  該模塊手機(jī)客戶端通過HTTP方法上傳情報(bào)信息,情報(bào)信息包括情報(bào)標(biāo)題、情報(bào)內(nèi)容、發(fā)生時(shí)間和地點(diǎn),以及選擇圖片作為附件等,同時(shí)手機(jī)客戶端用戶可以查看歷史上傳情報(bào)。從后臺管理端,管理員可以查看相應(yīng)的情報(bào)信息,實(shí)時(shí)監(jiān)聽手機(jī)端是否上傳情報(bào)。

  2.1.1情報(bào)模塊手機(jī)端實(shí)現(xiàn)

  完成該模塊功能需要在程序中申明INTERNET權(quán)限讓APP應(yīng)用接入網(wǎng)絡(luò),申明調(diào)用手機(jī)攝像頭拍照和操作權(quán)限允許APP應(yīng)用拍照以及操作手機(jī)圖庫照片,APP應(yīng)用實(shí)現(xiàn)完整信息上傳。

  在手機(jī)客戶端定義InformToServer類,利用HTTP的POST請求方法實(shí)現(xiàn)客戶端與服務(wù)器之間的數(shù)據(jù)傳輸。訪問服務(wù)端Web Service接口的方法如下:HttpPost httpPost = new HttpPost(urlAddress)創(chuàng)建POST請求方法,并且在List<NameValuePair> params 數(shù)組中附加上傳手機(jī)服務(wù)端數(shù)據(jù),最后使用httpPost.setEntity(new UrlEncodedFormEntity(para))方法將數(shù)據(jù)上傳至手機(jī)服務(wù)端。手機(jī)服務(wù)端使用request.getParameter()方法獲得數(shù)據(jù)并對數(shù)據(jù)進(jìn)行處理存入數(shù)據(jù)庫。最后手機(jī)客戶端使用ht.getEntity()方法獲得手機(jī)服務(wù)端反饋。

  在手機(jī)客戶端創(chuàng)建基于JAXWS的InformActivity客戶端類,在手機(jī)服務(wù)端創(chuàng)建基于JAXWS的Upload服務(wù)端類,實(shí)現(xiàn)WSDL對Web Service接口的定義。手機(jī)客戶端通過訪問手機(jī)服務(wù)端指定Web Service的wsdlURL(訪問路徑)和QName(命名空間)完成圖片信息的上傳。

  2.1.2情報(bào)模塊后臺管理端實(shí)現(xiàn)

  該模塊后臺管理端將實(shí)時(shí)監(jiān)聽手機(jī)端上傳情報(bào)信息條數(shù),提醒管理員系統(tǒng)中存在未處理情報(bào)。

  點(diǎn)擊主界面“情報(bào)管理”按鈕,通過mysql.mySqlCommand.ExecuteReader()方法訪問數(shù)據(jù)庫,將返回的數(shù)據(jù)在ListView控件中顯示。管理員可以按照指定日期的時(shí)間段、所屬機(jī)構(gòu)以及情報(bào)信息狀態(tài)查詢情報(bào)內(nèi)容。管理員根據(jù)上傳的情報(bào)內(nèi)容做出正確處理措施并將以指令方式下達(dá)給APP用戶,通過new Order(order_ID, inform_ID)方法跳轉(zhuǎn)到指令下發(fā)界面進(jìn)行下發(fā)操作。

  2.2指令模塊

  該模塊中手機(jī)客戶端主動向手機(jī)服務(wù)端請求查詢后臺管理端下發(fā)的指令信息,后臺下發(fā)的指令內(nèi)容插入MySQL數(shù)據(jù)庫中,手機(jī)服務(wù)端訪問數(shù)據(jù)庫,將數(shù)據(jù)反饋給手機(jī)客戶端,利用ListView控件將信息顯示在APP界面上,并根據(jù)指令信息進(jìn)行情報(bào)反饋。

  2.2.1指令模塊手機(jī)端實(shí)現(xiàn)

  點(diǎn)擊APP應(yīng)用主界面的“新指令”按鈕,使用HTTP的POST請求訪問手機(jī)服務(wù)端的Web Service接口。手機(jī)服務(wù)端反饋數(shù)據(jù)較多,將采用JSON數(shù)組形式進(jìn)行返回。首先將從數(shù)據(jù)庫中獲得的數(shù)據(jù)以鍵值對的方式存入HashMap散列表中,接著調(diào)用JSONObject類將HashMap對象轉(zhuǎn)成Jason數(shù)組反饋給手機(jī)客戶端。手機(jī)客戶端以Jason格式接收數(shù)據(jù)再進(jìn)行處理。

  APP主界面中將實(shí)時(shí)顯示未讀指令條數(shù),提醒APP用戶及時(shí)查看新指令并對指令進(jìn)行反饋。該功能將在手機(jī)客戶端設(shè)置一個(gè)定時(shí)任務(wù),不斷輪詢手機(jī)服務(wù)端得到最新數(shù)據(jù)[7],實(shí)現(xiàn)方法如下:Timer timer = new Timer()創(chuàng)建定時(shí)器,TimerTask task = new TimerTask()創(chuàng)建執(zhí)行任務(wù),利用timer.schedule(task, 0, 3000)執(zhí)行定時(shí)任務(wù)。

  2.2.2指令模塊后臺管理端實(shí)現(xiàn)

  后臺管理端的指令功能包括指令管理和指令模板兩個(gè)模塊。指令管理即為管理員下達(dá)新指令,指令模板將日常事件生成樣板,在下達(dá)新指令時(shí)選擇即可。模塊內(nèi)容可根據(jù)日期、狀態(tài)或者標(biāo)題進(jìn)行查詢,同時(shí)可完成新建與刪除操作。后臺管理端指令下發(fā)流程如圖3所示。

004.jpg

  2.3視頻圖傳模塊

  該模塊中手機(jī)客戶端將直接與后臺管理端進(jìn)行網(wǎng)絡(luò)連接完成視頻通話[8],此通信方式實(shí)現(xiàn)了視頻傳輸實(shí)時(shí)性高、傳輸效率高等。情報(bào)管理系統(tǒng)可實(shí)現(xiàn)多個(gè)手機(jī)客戶端與后臺管理端通話,同時(shí)進(jìn)行多個(gè)場景的視頻監(jiān)控。手機(jī)客戶端與后臺管理端交互的數(shù)據(jù)流向如圖2虛線標(biāo)識部分所示。該模塊采用傳輸控制協(xié)議[9](Transmission Control Protocol,TCP)協(xié)議建立連接實(shí)現(xiàn)Socket通信。

 ?。?)手機(jī)客戶端視頻請求

  Socket通信前對APP應(yīng)用中視頻通話的視頻質(zhì)量進(jìn)行設(shè)置。首先在程序中申明調(diào)用使用手機(jī)攝像頭拍照權(quán)限對攝像頭進(jìn)行初始化,設(shè)置視頻寬度、視頻高度等影響視頻質(zhì)量因素的值。完成視頻通話準(zhǔn)備工作后新開線程建立TCP連接,實(shí)現(xiàn)方法如下:client=new Socket(serverUrl,serverPort)定義MyThread對象方法,Thread th = new MyThread()實(shí)例化MyThread對象,th.start()執(zhí)行連接請求。

  (2)后臺管理端接收請求并存儲視頻

  后臺管理端接收來自手機(jī)客戶端的TCP請求,點(diǎn)擊打開視頻播放器實(shí)現(xiàn)與手機(jī)用戶視頻通話,在視頻通話結(jié)束后將視頻存入FTP服務(wù)器并在數(shù)據(jù)庫中寫入視頻存放地址,以便回放歷史視頻查看。為了完成多個(gè)場景下視頻監(jiān)控,后臺管理端同時(shí)開啟多個(gè)Socket線程接收手機(jī)客戶端的視頻請求。實(shí)現(xiàn)方法如下:

  實(shí)例化名SocketServer對象,名為server;

  調(diào)用server對象的接入函數(shù),數(shù)據(jù)流接收函數(shù),中斷函數(shù);

  開始監(jiān)聽server對象;

 ?。?)后臺管理端視頻回放

  每次視頻通話結(jié)束后臺管理端會將視頻存入FTP服務(wù)器,訪問數(shù)據(jù)庫得到視頻存儲地址對視頻進(jìn)行回放,為事件處理提供有利證據(jù)。系統(tǒng)需要在指定管理員身份下查看相關(guān)視頻錄像。該功能的偽代碼如下:

  獲得歷史視頻存儲地址lvi;

  實(shí)例化名為vlc的視頻播放對象;

  設(shè)置vlc的名稱:lvi.SubItems[3].Text;

  開始播放視頻;

3系統(tǒng)功能測試

  系統(tǒng)手機(jī)服務(wù)端由MyEclipse、Tomcat、JDK、MySQL開發(fā)完成,手機(jī)客戶端由Eclipse、JDK、Android SDK、ADT開發(fā)完成,后臺管理端由Visual Studio開發(fā)完成。基于系統(tǒng)開發(fā)環(huán)境以及系統(tǒng)框架的設(shè)計(jì),首先在xampp中開啟MySQL服務(wù),其次打開系統(tǒng)后臺管理端可執(zhí)行文件,并在MyEclipse軟件中啟動Tomcat服務(wù)器開啟系統(tǒng)手機(jī)服務(wù)端,為手機(jī)客戶端提供可訪問Web Service接口。最后將情報(bào)管理系統(tǒng)手機(jī)APP的安裝文件apk安裝到Android手機(jī)終端,進(jìn)行系統(tǒng)測試。

  (1)系統(tǒng)主界面

  系統(tǒng)主界面的呈現(xiàn)方式對于用戶體驗(yàn)是至關(guān)重要的,簡單大方的UI設(shè)計(jì)方便用戶快速定位到所需功能。在手機(jī)端和后臺管理端的主界面都直接設(shè)置了系統(tǒng)功能模塊按鈕,用戶點(diǎn)擊按鈕即可跳轉(zhuǎn)對應(yīng)功能模塊,進(jìn)入系統(tǒng)主界面流程如圖4所示。

 

005.jpg

  (2)情報(bào)和指令模塊

  情報(bào)模塊和指令模塊是相互關(guān)聯(lián)的功能模塊。手機(jī)客戶端采集情報(bào)上傳,后臺管理端根據(jù)情報(bào)信息下發(fā)處理指令,手機(jī)端對指令信息進(jìn)行情報(bào)反饋,因此情報(bào)與指令模塊測試一起進(jìn)行。進(jìn)入模塊流程如圖5所示。

006.jpg

  (3)視頻圖傳模塊

  視頻圖傳是系統(tǒng)開發(fā)的核心,要求視頻清晰,對該模塊進(jìn)行測試。APP應(yīng)用接入網(wǎng)絡(luò)并調(diào)用手機(jī)攝像頭進(jìn)行視頻錄入與后臺管理端進(jìn)行Socket連接完成實(shí)時(shí)通話,視頻通話流程如圖6所示。

  

007.jpg

4結(jié)論

  情報(bào)管理系統(tǒng)應(yīng)用解決了傳統(tǒng)行業(yè)中的信息滯留問題,同時(shí)將隨身攜帶的手機(jī)變成監(jiān)控點(diǎn)、定位點(diǎn),節(jié)約了不少設(shè)備資金。這樣的系統(tǒng)取代了傳統(tǒng)行業(yè)中的情報(bào)信息處理方式,隨時(shí)隨地采集信息,實(shí)時(shí)上傳,及時(shí)處理。此外,系統(tǒng)還需要進(jìn)一步完善,做到Android手機(jī)端之間的信息共享。

參考文獻(xiàn)

 ?。?] 寧家駿.“互聯(lián)網(wǎng)+”行動計(jì)劃的實(shí)施背景、內(nèi)涵及主要內(nèi)容[J]. 電子政務(wù), 2015(6):32-38.

 ?。?] LEE J K, LEE J Y. Android programming techniques for improving performance[C]. 2011 3rd International Conference on Awareness Science and Technology (ICAST2011), 2011:386389.[3] CABRAL S K. MySQL 5.5: improving on the world’s most popular open source database[J]. Database Trends and Applications, 2011, 25(3):30.

  [4] 陳俊斌.C/S與B/S結(jié)合的軟件體系結(jié)構(gòu)[J]. 電子技術(shù)與軟件工程,2015(3):68-69.

 ?。?] 王海燕.C#.NET下三層架構(gòu)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(6):78-81.

 ?。?] 彭邦倫.利用JAX—WS開發(fā)Web Service[J]. 電腦編程技巧與維護(hù), 2008(12):21-23.

 ?。?] 倪紅軍.基于Android平臺的消息推送研究與實(shí)現(xiàn)[J]. 實(shí)驗(yàn)室研究與探索, 2014,33(5):99-100.

  [8] 鄧蕊.基于Android的視頻監(jiān)控的研究與實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué),2012.

  [9] Xiong Yonghua, Wu Min, Jia Weijia. Delay prediction for realtime video adaptive transmisson over TCP[J]. Journal of Multimedia, 2010,5(3):216-223.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。