《電子技術(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ī)客戶端直接與后臺(tái)管理端進(jìn)行視頻直播,,更加快捷地做出處理措施。詳細(xì)闡述了系統(tǒng)的總體構(gòu)架,,介紹了系統(tǒng)的功能模塊和具體實(shí)現(xiàn),,對(duì)系統(tǒng)進(jìn)行測(cè)試,,并提出系統(tǒng)需要完善的地方。
Abstract:
Key words :

  譚欽紅,,黃茂碟,,張作運(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ī)客戶端直接與后臺(tái)管理端進(jìn)行視頻直播,,更加快捷地做出處理措施,。詳細(xì)闡述了系統(tǒng)的總體構(gòu)架,介紹了系統(tǒng)的功能模塊和具體實(shí)現(xiàn),,對(duì)系統(tǒng)進(jìn)行測(cè)試,,并提出系統(tǒng)需要完善的地方。

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

  中圖分類號(hào):TN919.82文獻(xiàn)標(biāo)識(shí)碼: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)場(chǎng)指揮救援等采集的情報(bào)信息往往是事后處理,,導(dǎo)致信息滯留,,采集設(shè)備也因行業(yè)不同使應(yīng)用場(chǎ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平臺(tái)擴(kuò)展應(yīng)用場(chǎng)景,,達(dá)到了較好的情報(bào)管理效果,。

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

  1.1系統(tǒng)簡(jiǎn)介

  情報(bào)管理系統(tǒng)主要包括后臺(tái)數(shù)據(jù)存儲(chǔ)服務(wù)器、手機(jī)端(包括手機(jī)客戶端和手機(jī)服務(wù)端)和后臺(tái)管理端三部分,其系統(tǒng)架構(gòu)圖如圖1所示,。手機(jī)端采集情報(bào)信息上傳至后臺(tái)管理端,,后臺(tái)管理端處理采集信息下發(fā)指令給手機(jī)端,手機(jī)端用戶根據(jù)指令內(nèi)容完成相應(yīng)動(dòng)作并進(jìn)行反饋從而完成一條閉合的信息處理,。情報(bào)信息數(shù)據(jù)在兩大服務(wù)器中進(jìn)行處理,。系統(tǒng)接入互聯(lián)網(wǎng),實(shí)時(shí)將現(xiàn)場(chǎng)音視頻圖像回傳給后臺(tái)管理端,,將手機(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平臺(tái)開發(fā)完成,,手機(jī)端采用C/S[4]架構(gòu)將應(yīng)用程序分為手機(jī)客戶端、手機(jī)服務(wù)端兩部分,,手機(jī)服務(wù)端與數(shù)據(jù)存儲(chǔ)服務(wù)器進(jìn)行數(shù)據(jù)交互,;后臺(tái)管理端由.NET[5]平臺(tái)開發(fā)完成,后臺(tái)管理端訪問數(shù)據(jù)存儲(chǔ)服務(wù)器獲得數(shù)據(jù),。

  通過調(diào)用JAXWS[6]服務(wù)來發(fā)布使用Web Service框架的手機(jī)服務(wù)端,,簡(jiǎn)化了Java技術(shù)開發(fā)和部署Web Service的工作。手機(jī)客戶端采集情報(bào)信息通過HTTP協(xié)議訪問Tomcat發(fā)布的Web Service服務(wù)器接口將信息存入數(shù)據(jù)庫,,將圖片存入FTP服務(wù)器并將圖片路徑寫入數(shù)據(jù)庫中,。后臺(tái)管理端通過訪問數(shù)據(jù)庫得到情報(bào)信息,進(jìn)行分析并下發(fā)處理指令寫入數(shù)據(jù)庫中,,同時(shí)接收手機(jī)客戶端通過Socket連接請(qǐng)求的實(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)模塊包括后臺(tái)管理端的情報(bào)管理和手機(jī)端的情報(bào)采集,,兩者共同完成情報(bào)信息的管理以及采集;指令模塊包括后臺(tái)管理端的指令管理和手機(jī)端的指令處理,,兩者共同完成實(shí)時(shí)指令的處理,;視頻圖傳模塊實(shí)現(xiàn)一對(duì)多的通信模式,后臺(tái)管理端可以同時(shí)接受多個(gè)手機(jī)客戶端發(fā)起的視頻連接請(qǐng)求,,實(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),。從后臺(tái)管理端,管理員可以查看相應(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請(qǐng)求方法實(shí)現(xiàn)客戶端與服務(wù)器之間的數(shù)據(jù)傳輸,。訪問服務(wù)端Web Service接口的方法如下:HttpPost httpPost = new HttpPost(urlAddress)創(chuàng)建POST請(qǐng)求方法,,并且在List<NameValuePair> params 數(shù)組中附加上傳手機(jī)服務(wù)端數(shù)據(jù),最后使用httpPost.setEntity(new UrlEncodedFormEntity(para))方法將數(shù)據(jù)上傳至手機(jī)服務(wù)端,。手機(jī)服務(wù)端使用request.getParameter()方法獲得數(shù)據(jù)并對(duì)數(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對(duì)Web Service接口的定義。手機(jī)客戶端通過訪問手機(jī)服務(wù)端指定Web Service的wsdlURL(訪問路徑)和QName(命名空間)完成圖片信息的上傳,。

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

  該模塊后臺(tái)管理端將實(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ī)客戶端主動(dòng)向手機(jī)服務(wù)端請(qǐng)求查詢后臺(tái)管理端下發(fā)的指令信息,,后臺(tái)下發(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請(qǐng)求訪問手機(jī)服務(wù)端的Web Service接口。手機(jī)服務(wù)端反饋數(shù)據(jù)較多,,將采用JSON數(shù)組形式進(jìn)行返回,。首先將從數(shù)據(jù)庫中獲得的數(shù)據(jù)以鍵值對(duì)的方式存入HashMap散列表中,,接著調(diào)用JSONObject類將HashMap對(duì)象轉(zhuǎn)成Jason數(shù)組反饋給手機(jī)客戶端。手機(jī)客戶端以Jason格式接收數(shù)據(jù)再進(jìn)行處理,。

  APP主界面中將實(shí)時(shí)顯示未讀指令條數(shù),,提醒APP用戶及時(shí)查看新指令并對(duì)指令進(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指令模塊后臺(tái)管理端實(shí)現(xiàn)

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

004.jpg

  2.3視頻圖傳模塊

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

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

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

 ?。?)后臺(tái)管理端接收請(qǐng)求并存儲(chǔ)視頻

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

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

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

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

 ?。?)后臺(tái)管理端視頻回放

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

  獲得歷史視頻存儲(chǔ)地址lvi;

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

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

  開始播放視頻;

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

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

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

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

 

005.jpg

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

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

006.jpg

  (3)視頻圖傳模塊

  視頻圖傳是系統(tǒng)開發(fā)的核心,要求視頻清晰,,對(duì)該模塊進(jìn)行測(cè)試,。APP應(yīng)用接入網(wǎng)絡(luò)并調(diào)用手機(jī)攝像頭進(jìn)行視頻錄入與后臺(tái)管理端進(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)+”行動(dòng)計(jì)劃的實(shí)施背景,、內(nèi)涵及主要內(nèi)容[J]. 電子政務(wù), 2015(6):32-38.

  [2] 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.

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

  [5] 王海燕.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平臺(tái)的消息推送研究與實(shí)現(xiàn)[J]. 實(shí)驗(yàn)室研究與探索,, 2014,33(5):99-100.

 ?。?] 鄧蕊.基于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)載。