版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 本 科 畢 業(yè) 論 文(設(shè) 計(jì))</p><p> 題目: 基于Android平臺的移動(dòng)警務(wù)通系統(tǒng) </p><p> 學(xué) 院: 軟件學(xué)院 </p><p> 姓 名: </p><p> 學(xué)
2、 號: </p><p> 專 業(yè): 軟件工程 </p><p> 班 級: </p><p> 二0 一 三 年 五 月</p><p>
3、;<b> 摘要</b></p><p> 在這個(gè)信息高速發(fā)達(dá)的時(shí)代,任何領(lǐng)域都需要及時(shí)的獲取有價(jià)值的信息。當(dāng)此之際,公安部提出了“科技強(qiáng)警”的戰(zhàn)略。通過先進(jìn)的無線通訊網(wǎng)絡(luò)和無線終端來隨時(shí)隨地獲取警務(wù)信息,已被列為“科技強(qiáng)警”的一個(gè)重要組成部分。</p><p> 本文將在對Android移動(dòng)平臺的分析和研究的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)基于Android的移動(dòng)警務(wù)通系統(tǒng)
4、??蛻舳瞬捎肑ava編碼實(shí)現(xiàn)一些邏輯功能,采用Apache Http協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)訪問,服務(wù)器采用Tomcat并運(yùn)用常用的Servlet技術(shù),數(shù)據(jù)庫使用MySql并通過JDBC進(jìn)行訪問。該系統(tǒng)實(shí)現(xiàn)了人員查詢、信息采集、文件上報(bào)以及GPS定位及導(dǎo)航等功能。</p><p> 基于無線終端的移動(dòng)警務(wù)查詢系統(tǒng)在核查人口、抓捕逃犯、偵破案件、打擊不法分子、預(yù)防犯罪等公安事項(xiàng)中有著極其重要的意義和重大的應(yīng)用價(jià)值。同時(shí)因?yàn)锳
5、ndroid是真正開放和完整的移動(dòng)平臺,建立基于Android的移動(dòng)警務(wù)查詢系統(tǒng)有著極大的創(chuàng)新性和實(shí)用性。</p><p> 關(guān)鍵詞:移動(dòng)警務(wù);Android;GPS;定位;JAVA;科技強(qiáng)警</p><p><b> Abstract</b></p><p> In the age of advanced information sup
6、erhighway, any areas of need timely access to valuable information. When this occasion, the Ministry of Public Security police training and technology “strategy”. Through state-of-the-art wireless communication network a
7、nd a wireless terminal to anytime, anywhere access to police information, has been identified as an important part of police training and technology. This article based on the analysis and research of the Android mob
8、ile platform designed </p><p> Key words : Police Mobile; Android; GPS positioning; Java; police training and technology</p><p><b> 目錄</b></p><p><b> 1 緒論1<
9、/b></p><p> 1.1 研究背景及研究意義1</p><p> 1.2 移動(dòng)警務(wù)系統(tǒng)研究現(xiàn)狀2</p><p> 1.3 課題的研究內(nèi)容2</p><p> 1.4 論文的組織結(jié)構(gòu)3</p><p> 2 相關(guān)技術(shù)及開發(fā)工具介紹4</p><p> 2.1
10、Android移動(dòng)平臺4</p><p> 2.2 開發(fā)工具介紹和關(guān)鍵技術(shù)8</p><p> 2.3 本章小結(jié)12</p><p> 3 移動(dòng)警務(wù)通系統(tǒng)的需求分析和設(shè)計(jì)13</p><p> 3.1 需求分析13</p><p> 3.2 系統(tǒng)設(shè)計(jì)原則和目標(biāo)14</p><p
11、> 3.3 總體設(shè)計(jì)14</p><p> 3.4 詳細(xì)設(shè)計(jì)16</p><p> 3.5 本章小結(jié)20</p><p> 4 移動(dòng)警務(wù)通系統(tǒng)的實(shí)現(xiàn)21</p><p> 4.1 登錄模塊實(shí)現(xiàn)21</p><p> 4.2 主菜單模塊實(shí)現(xiàn)24</p><p> 4
12、.3 信息查詢模塊實(shí)現(xiàn)26</p><p> 4.4 信息收集模塊實(shí)現(xiàn)30</p><p> 4.5 文件上傳模塊實(shí)現(xiàn)32</p><p> 4.6 GPS模塊實(shí)現(xiàn)36</p><p> 4.7 本章小結(jié)38</p><p><b> 5 系統(tǒng)測試39</b></p&g
13、t;<p> 5.1 用戶登錄功能測試39</p><p> 5.2 信息查詢功能測試40</p><p> 5.3 信息收集功能測試41</p><p> 5.4 文件上傳功能測試43</p><p> 5.5 GPS功能測試48</p><p> 5.6 本章小結(jié)50</
14、p><p><b> 參考文獻(xiàn)51</b></p><p><b> 致謝52</b></p><p><b> 1 緒論</b></p><p> 1.1 研究背景及研究意義</p><p> 1.1.1 研究背景</p>
15、<p> 以短訊為基礎(chǔ)的第一代移動(dòng)辦公訪問技術(shù)存在著許多嚴(yán)重的缺陷,其中最嚴(yán)重的問題是實(shí)時(shí)性較差,查詢請求不會立即得到回答。此外,由于短訊信息長度的限制也使得一些查詢無法得到一個(gè)完整的答案。這些令用戶無法忍受的嚴(yán)重問題也導(dǎo)致了一些早期使用基于短訊的移動(dòng)警務(wù)通系統(tǒng)的部門紛紛要求升級和改造現(xiàn)有的系統(tǒng)。 </p><p> 第二代移動(dòng)警務(wù)通系統(tǒng)采用基于WAP技術(shù)的方式,手機(jī)主要通過瀏覽器的方式來訪問WA
16、P網(wǎng)頁,以實(shí)現(xiàn)信息的查詢,部分地解決了第一代移動(dòng)訪問技術(shù)的問題。第二代的移動(dòng)訪問技術(shù)的缺陷主要表現(xiàn)在WAP網(wǎng)頁訪問的交互能力極差, 因此極大地限制了移動(dòng)警務(wù)通系統(tǒng)的靈活性和方便性。此外,由于WAP使用的加密認(rèn)證的WTLS協(xié)議建立的安全通道必須在WAP網(wǎng)關(guān)上終止,形成安全隱患, 所以WAP網(wǎng)頁訪問的安全問題對于安全性要求極為嚴(yán)格的政務(wù)系統(tǒng)來說也是一個(gè)嚴(yán)重的問題。這些問題也使得第二代技術(shù)難以滿足用戶的要移動(dòng)警務(wù)通。</p>&
17、lt;p> 新一代的移動(dòng)警務(wù)通系統(tǒng),也就是第三代移動(dòng)警務(wù)通系統(tǒng)融合了3G移動(dòng)技術(shù)、智能移動(dòng)終端、VPN、數(shù)據(jù)庫同步、身份認(rèn)證及Web-service等多種移動(dòng) 通訊、信息處理和計(jì)算機(jī)網(wǎng)絡(luò)的最新的前沿技術(shù),以專網(wǎng)和無線通訊技術(shù)為依托,使得系統(tǒng)的安全性和交互能力有了極大的提高,為電子商務(wù)人員提供了一種安全、快速的現(xiàn)代化移動(dòng)執(zhí)法機(jī)制。新一代移動(dòng)警務(wù)通系統(tǒng),數(shù)碼星辰宇宙盾移動(dòng)警務(wù)通系統(tǒng),采用了先進(jìn)的自適應(yīng)結(jié)構(gòu)可以靈活地適應(yīng)用戶的數(shù)據(jù)環(huán)境
18、,具有現(xiàn)場零編程、高安全、部署快、使用方便、響應(yīng)速度快的優(yōu)點(diǎn)。該系統(tǒng)支持GPRS、CDMA、Edge以及所有制式的3G網(wǎng)絡(luò)。</p><p> 由于人們對于信息的隨時(shí)隨地的訪問需求,移動(dòng)技術(shù)得到了飛速的發(fā)展。傳統(tǒng)的公安系統(tǒng)是以固定專網(wǎng)的形式訪問的。這樣,雖然能夠滿足大部分公安人員的日常工作,卻無法滿足很多外勤工作人員的需求。因?yàn)椋馇诠ぷ魅藛T并非工作在公安局中,他們常年工作在外執(zhí)行各項(xiàng)工作,擔(dān)任著治安管理、案件
19、偵破、緊急事件處理、追捕逃犯、走訪調(diào)查等重要的工作。而這些工作中無疑會牽涉到諸如人口查詢、車輛查詢、逃犯查詢、治安采集、信息比對等業(yè)務(wù)需求。因此,這些工作特點(diǎn)和性質(zhì)決定了他們需要在非辦公環(huán)境下進(jìn)行隨時(shí)隨地訪問公安專網(wǎng)的需求。因此,公安干警需要方便的移動(dòng)終端,配上簡單易用的移動(dòng)警務(wù)查詢系統(tǒng)來輔助他們進(jìn)行日常外勤工作。</p><p> 同時(shí),公安部也注意到移動(dòng)警務(wù)在“科技強(qiáng)警”中所起的作用,已將移動(dòng)警務(wù)系統(tǒng)列入“
20、金盾工程”項(xiàng)目中,成為“金盾工程”的重要組成部分。因此,建設(shè)移動(dòng)警務(wù)系統(tǒng)也是公安部下一階段著重的發(fā)展計(jì)劃。[1]</p><p> 1.1.2 研究意義</p><p> 通過該移動(dòng)警務(wù)查詢系統(tǒng)的研究與開發(fā),將率先模擬實(shí)現(xiàn)移動(dòng)警務(wù)查詢系統(tǒng)對于公安干警的日常工作的實(shí)際意義。同時(shí),對于其他移動(dòng)警務(wù)軟件的研究及開發(fā)起到借鑒和表率作用。不僅如此,本課題采用了Android作為該系統(tǒng)運(yùn)行的平臺
21、,為研究和推廣Android平臺做出了一定的貢獻(xiàn)。</p><p> 1.2 移動(dòng)警務(wù)系統(tǒng)研究現(xiàn)狀</p><p> 公安部已經(jīng)明確了移動(dòng)警務(wù)系統(tǒng)的重要意義,然而,在國內(nèi),對于移動(dòng)警務(wù)系統(tǒng)的研究還很欠缺,以至于相關(guān)的文獻(xiàn)較少。雖然有相關(guān)資料,但很多并沒有給出系統(tǒng)而全面的分析和設(shè)計(jì)。而在國外,移動(dòng)應(yīng)用在公安日常工作中已非常普遍,公安人員可以使用移動(dòng)終端隨時(shí)隨地完成上傳照片,比對指紋,采
22、集數(shù)據(jù),查詢?nèi)丝谛畔?,查詢案件信息等一系列工作。[2]</p><p> 同時(shí),由Google和開放手機(jī)聯(lián)盟合作開發(fā)的基于Linux的移動(dòng)手機(jī)開發(fā)平臺,正在受到越來越多開發(fā)者和移動(dòng)生產(chǎn)商的青睞。眼下,其發(fā)展勢頭不可阻擋。</p><p> 選擇基于Android移動(dòng)平臺來設(shè)計(jì)并實(shí)現(xiàn)移動(dòng)警務(wù)系統(tǒng),有著豐富的資料和技術(shù)支持。</p><p> 1.3 課題的研究
23、內(nèi)容</p><p> 1)分析研究Android移動(dòng)平臺并掌握其應(yīng)用原理</p><p> 移動(dòng)系統(tǒng)的開發(fā)和常規(guī)的基于PC的軟件開發(fā)還是有很大的區(qū)別。這是因?yàn)橐苿?dòng)系統(tǒng),是安裝在形如手機(jī)、PDA等無線終端上的。而這些無線終端具有體積、內(nèi)存、電量等因素的限制,所以,開發(fā)移動(dòng)系統(tǒng),首先需要選取一款合適的移動(dòng)操作系統(tǒng)。Android是基于Linux的一款開源的手機(jī)操作系統(tǒng),該平臺由操作系統(tǒng)、
24、中間件、應(yīng)用程序框架及應(yīng)用軟件組成,是第一個(gè)真正開放和完整的移動(dòng)平臺。同時(shí),Android出自Google之手,自然,Google已將其強(qiáng)大的Web訪問和搜索功能內(nèi)嵌進(jìn)了Android操作系統(tǒng)中。這樣,基于Android移動(dòng)平臺,通過無線網(wǎng)絡(luò),就可以自由地交換數(shù)據(jù),實(shí)現(xiàn)隨時(shí)隨地地獲取信息。[3] </p><p> 2)解決如何將現(xiàn)有的業(yè)務(wù)邏輯封裝成Web服務(wù),供客戶端調(diào)用</p><p&g
25、t; 我們知道,公安網(wǎng)是及其保密的,而且是完整的。那么如何讓無線終端通過防火墻訪問到公安專網(wǎng)呢?這里,我們需要用到Web Service等相關(guān)的技術(shù)。通過將公安專網(wǎng)現(xiàn)有的業(yè)務(wù)邏輯封裝成Web服務(wù),在無線終端,通過無線通信技術(shù),以特定的Web服務(wù)對應(yīng)的協(xié)議進(jìn)行訪問。在對比了兩種常見的Web服務(wù)實(shí)現(xiàn)機(jī)制,本課題選擇了REST(Representational State Transfer),而不是采用WSDL及SOAP協(xié)議。因?yàn)?,REST
26、是輕量級的,協(xié)議簡單,使用類似HTTP請求的形式封裝請求,適合移動(dòng)終端的對web服務(wù)的訪問。[4]</p><p> 由于移動(dòng)警務(wù)系統(tǒng)在核查人口、偵破案件、抓捕逃犯等公安工作中具有及其重要的意義和重大的應(yīng)用價(jià)值,本課題將移動(dòng)計(jì)算技術(shù)、無線通訊技術(shù)、無線Web服務(wù)訪問技術(shù)、Android移動(dòng)平臺技術(shù)結(jié)合起來,設(shè)計(jì)并實(shí)現(xiàn)了一款移動(dòng)警務(wù)查詢系統(tǒng)。</p><p> 3)采用面向?qū)ο蟮募夹g(shù)分析
27、設(shè)計(jì)移動(dòng)警務(wù)系統(tǒng)</p><p> 4)實(shí)現(xiàn)基于Android的移動(dòng)警務(wù)系統(tǒng)并模擬測試</p><p> 1.4 論文的組織結(jié)構(gòu)</p><p> 本文的結(jié)構(gòu)組織如下:</p><p> 第1章講述了本課題研究的背景及意義,提出了本文的主要研究內(nèi)容</p><p> 第2章詳細(xì)分析并研究了Android移動(dòng)
28、平臺,并對開發(fā)工具和關(guān)鍵技術(shù)等進(jìn)行介紹</p><p> 第3章對警務(wù)系統(tǒng)進(jìn)行了需求分析并做出總體和詳細(xì)設(shè)計(jì)以及數(shù)據(jù)庫設(shè)計(jì)。</p><p> 第4章對警務(wù)系統(tǒng)的功能和編碼實(shí)現(xiàn)進(jìn)行了一個(gè)介紹</p><p> 第5章對算比較完整的警務(wù)系統(tǒng)進(jìn)行了功能性和系統(tǒng)性測試</p><p> 2 相關(guān)技術(shù)及開發(fā)工具介紹</p>&
29、lt;p> 2.1 Android移動(dòng)平臺</p><p> Android是一款開源手機(jī)操作系統(tǒng),由Google和開放手機(jī)聯(lián)盟(中國移動(dòng)、摩托羅拉、T-Mobile等30多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè))合作開發(fā)。它是以Linux為底層技術(shù)而開發(fā)的,它完全開源,幾乎可以運(yùn)行在所有硬件設(shè)備上。Google通過與運(yùn)營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方面結(jié)成深層次的合作伙伴關(guān)系,希望建立標(biāo)準(zhǔn)、開放的移動(dòng)電話
30、軟件平臺,在移動(dòng)領(lǐng)域內(nèi)形成一個(gè)系統(tǒng)的開放式的移動(dòng)生態(tài)系統(tǒng)。[5]</p><p> Android自面世以來,受到了業(yè)界的廣泛關(guān)注,Google已推出一套完整的基于Java語言的SDK,開發(fā)者可以利用SDK提供的工具方便地進(jìn)行基于Android移動(dòng)平臺的軟件開發(fā)。同時(shí),Google也同步推出了各個(gè)SDK版本對應(yīng)的模擬器,方便基于Android移動(dòng)軟件的部署和測試。</p><p> 本
31、章主要分析Android平臺的架構(gòu)以及將其應(yīng)用于移動(dòng)警務(wù)查詢系統(tǒng)的基本方法。</p><p> 2.1.1 Android移動(dòng)平臺架構(gòu)分析</p><p> Android平臺的架構(gòu)從下到上包含了如下幾個(gè)部分:Linux內(nèi)核,Android運(yùn)行時(shí)環(huán)境,開發(fā)庫,應(yīng)用框架和應(yīng)用程序(如圖2-1所示)。</p><p> 圖2-1 Android平臺的架構(gòu)<
32、/p><p> 2.1.2 Android四大組件類型</p><p> Android應(yīng)用程序可以分成四種主要類型:Activity、Service、BroadcastReceiver和ContentProvider。</p><p> 1).Activity</p><p> Activity簡單來說,就是一個(gè)窗體,可以讓應(yīng)用程序以
33、直觀的方式呈現(xiàn)在用戶的面前,也就是說,呈現(xiàn)在用戶面前的界面就是一個(gè)Activity。所以,Activity就是應(yīng)用程序和用戶之間的交互組件。幾乎所有的Activity都是用來和用戶交互的,因此,Activity最重要的職責(zé)就是負(fù)責(zé)創(chuàng)建一個(gè)窗體,開發(fā)者可以使用setContentView(View)在Activity上放置各種UI控件。常見的Activity都是以全屏的方式呈現(xiàn)的,但是這并非必須的,還可以通過主題設(shè)置將Activity設(shè)置
34、成浮動(dòng)的或者嵌入的。</p><p> Android通過堆棧來管理Activity。當(dāng)一個(gè)Activity被啟動(dòng)的時(shí)候,它就被放置在堆棧的頂部,成為直接和用戶交互的Activity(用戶可以看到的并可以進(jìn)行相關(guān)操作的Activity)。而之前的Activity仍然在棧中。</p><p> Activity具有完整的生命周期,當(dāng)調(diào)用startActivity啟動(dòng)一個(gè)Activity時(shí)
35、,這個(gè)Activity的生命周期就開始了。圖2-2展示了Activity完整的生命周期。</p><p> 圖2-2 Activity 生命周期</p><p> 2).Service</p><p> Service 也是Android應(yīng)用程序及其重要的組件之一,使用它可以在后臺完成需要長時(shí)間才能完成的操作,或者給其他應(yīng)用提供服務(wù)。Service既可以運(yùn)行在
36、獨(dú)立的進(jìn)程中,也可以運(yùn)行在應(yīng)用程序的進(jìn)程里。這就說明,一個(gè)Service的生命周期可以與應(yīng)用程序的生命周期無關(guān)。如果Service運(yùn)行自己的進(jìn)程中,那么應(yīng)用程序可以通過AIDL和Service進(jìn)行通信。</p><p> 3). BroadcastReceiver</p><p> 顧名思義,BroadcastReceiver 就是一個(gè)接收請求并處理Intent。與Service一樣,
37、BroadcastReceiver也沒有UI元素。應(yīng)用程序中可以利用該組件接收由sendBroadcast()發(fā)出的Intent。開發(fā)者既可以在代碼中通過使用Context.registerReceiver()來注冊一個(gè)Receiver實(shí)例,也可以在AndroidManifest.xml文件中使用<receiver>標(biāo)簽來注冊。</p><p> Android中主要有兩類Broadcast。一種是
38、普通的Broadcast,這種Broadcast是通過Context.sendBroadcast()發(fā)出的。另一種是有序的Broadcast,這種Broadcast是通過Cotext.sendOrderedBroadcast()發(fā)出的。對于普通的Broadcast,它的所有Receiver運(yùn)行在一個(gè)無序的環(huán)境,甚至同時(shí)運(yùn)行。而對于有序的Broadcast,每一次只傳遞到某一個(gè)Receiver。這樣,該Broadcast既可以從一個(gè)Rec
39、eiver傳遞到另一個(gè)Receiver,也可以在一個(gè)Receiver中被銷毀,這樣其他的Receiver就接收不到該Broadcast了。</p><p> 4). ContentProvider</p><p> ContentProvider也是Android四大組件之一。主要向應(yīng)用程序提供數(shù)據(jù)。應(yīng)用程序可以使用ContentResolver接口來操作ContentProvider
40、。ContentProvider最主要的用處就是在多個(gè)應(yīng)用程序之間共享數(shù)據(jù)。Android已經(jīng)提供了很多種通用數(shù)據(jù)類型的ContentProvider,比如audio、video、images、personal contact information等。</p><p> Android應(yīng)用框架API類型</p><p> 在Android SDK中,應(yīng)用框架層表現(xiàn)為一系列組件,開發(fā)者
41、可以利用這些組件開發(fā)出各種應(yīng)用程序。這些組件也是第三方應(yīng)用和Android系統(tǒng)交互的接口層。這部分API主要有以下幾大類:Views、Intents、Activity、Permissions、Resource Types、Services、Notifications、ContentProviders、以及XML支持等。每種類型都有對應(yīng)的一套管理機(jī)制。</p><p> 1).Activity Manager:管
42、理所有應(yīng)用程序的生命周期。</p><p> 2).Window Manager:管理開啟的窗口(主要是主窗口)。在Android中Window的概念其實(shí)被View替代了。</p><p> 3).Telephony Manager:處理用戶撥打或者接收電話等操作。</p><p> 4).Resource Manager:為應(yīng)用程序提供非程序代碼的資源。例如
43、,布局、字符串、圖像等。</p><p> 5).ViewsSystem:提供UI接口,是用來構(gòu)建應(yīng)用程序的基本原件。</p><p> 6).Content Providers:定義系統(tǒng)級的數(shù)據(jù)庫,供多個(gè)應(yīng)用程序共享。</p><p> Notification Manager:提供提醒功能的API,提供應(yīng)用程序在狀態(tài)欄中顯示應(yīng)用程序自定義的提示信息。<
44、;/p><p> 7).Location Manager:管理地圖和GPS等相關(guān)功能。</p><p> 8).Package Manager:管理所有安裝在Android系統(tǒng)中的應(yīng)用程序。</p><p> 2.1.4 Android開發(fā)環(huán)境搭建</p><p> Android開發(fā)環(huán)境主要是eclipse+ADT+Android S
45、DK。</p><p> 1).下載eclipse,解壓就可以使用,并安裝ADT插件。ADT是專門為Android開發(fā)的一套插件,該插件集成了對Android工程和工具的支持,它包含大量功能強(qiáng)大的擴(kuò)展,使得創(chuàng)建、運(yùn)行、調(diào)試Android應(yīng)用程序變得簡單便捷。</p><p> 2).下載Android SDK,并將其解壓。</p><p> 3).打開ecli
46、pse,如果安裝ADT成功,則可以在工具欄看到Android工程對應(yīng)的圖標(biāo)?;蛘咴凇靶陆ā敝锌梢钥吹紸ndroid工程。在SDK配置中選擇剛剛下載的SDK路徑,系統(tǒng)將自動(dòng)加載各個(gè)版本的Android SDK。</p><p> 4).接下來,就可以新建Android工程了。很簡單,這里不再贅述。</p><p> 2.2 開發(fā)工具介紹和關(guān)鍵技術(shù)</p><p>
47、; 2.2.1 Eclipse的介紹</p><p> Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Kit,JDK). [6]</p><p> Eclipse的發(fā)展史,版本代號
48、 平臺版本 主要版本發(fā)行日期 SR1發(fā)行日期 SR2發(fā)行日期,如下:</p><p> 表2-1 Eclipse的版本號</p><p> Eclipse是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成——Eclipse Pla
49、tform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個(gè)開放的可擴(kuò)展IDE,提供了一個(gè)通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開發(fā)與他人工具無縫集成的工具從而無須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開始。</p><p> Android工
50、程是在Eclipse工具上編寫的,進(jìn)行android工程的編寫,首先需要在Eclipse上安裝ADT插件,然后指定SDK所在的路徑,便可以創(chuàng)建android虛擬機(jī)了。</p><p> 在Eclipse下創(chuàng)建虛擬機(jī)的步驟如下:</p><p><b> 安裝ADT插件</b></p><p> 在Eclipse單擊菜單欄的Help,在He
51、lp里面選中Install NewSoftware選項(xiàng),之后便可以出現(xiàn)如下界面:</p><p> 圖2-3 ADT安裝步驟界面</p><p> 指定好你的ADT路徑后,便可以安裝好ADT插件。</p><p> 導(dǎo)入AndroidSDK</p><p> 安裝好ADT插件后,單擊Eclipse菜單欄Windows下找到preper
52、ence,點(diǎn)擊進(jìn)入,得到如下界面:</p><p> 圖2-4 AndroidSDK安裝界面</p><p> 在左邊選項(xiàng)選中Android,在SDK Location下導(dǎo)入AndroidSDK路徑,點(diǎn)擊Apply應(yīng)用,便會導(dǎo)入Android的各個(gè)版本。</p><p><b> 創(chuàng)建虛擬機(jī)</b></p><p>
53、; 安裝好ADT和導(dǎo)入AndroidSDK成功后,便可以在菜單欄Windows下找到AVD manage選項(xiàng),單擊進(jìn)入后便有新建android虛擬機(jī)界面,在創(chuàng)建界面設(shè)置好虛擬機(jī)參數(shù)點(diǎn)擊確定后,就創(chuàng)建好了一個(gè)android虛擬機(jī)。</p><p> 創(chuàng)建好虛擬機(jī)后,點(diǎn)擊開始便可以運(yùn)行一個(gè)android虛擬機(jī),虛擬機(jī)運(yùn)行成功界面如下:</p><p> 圖2-5 android虛擬機(jī)視圖
54、</p><p> 虛擬機(jī)模擬的是android智能手機(jī)的界面,通過操作虛擬機(jī)可以體驗(yàn)到android智能手機(jī)的部分應(yīng)用。同時(shí)虛擬機(jī)是作為開發(fā)的android應(yīng)用運(yùn)行的場所,他提供基本的人機(jī)交互功能。</p><p> 2.2.2 My Eclipse 與 Tomcat 介紹</p><p> MyEclipse是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的
55、Eclipse插件集合。MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,支持HTML,Struts,JSP,Javascript, Hibernate,MyE
56、clipse,CSS, Spring,SQL的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯(cuò)。[7] 在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類: (1). JavaEE模型 (2). WEB開發(fā)工具 (3). EJB開發(fā)工具 (4). 應(yīng)用程序服務(wù)器的連接器 (5). JavaEE項(xiàng)目部署服務(wù) (6). 數(shù)據(jù)庫服務(wù) (7). MyEc
57、lipse整合幫助 對于以上每一種功能上的類別,</p><p> 本系統(tǒng)是基于C/S架構(gòu)的,所以需要在MyEclipse上創(chuàng)建服務(wù)器端,利用Java EE中的servlet來提供服務(wù),并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務(wù)。</p><p> Tomcat是Apache 軟件基金會(Apache Software Foundation
58、)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。目前最新版本是7.
59、0。[8]</p><p> Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。</p><p> Tomcat 是一個(gè)輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于
60、一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你 Apache Tomcat運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。而Tomcat 實(shí)際上運(yùn)行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能
61、,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.27 Released。</p><p> 2.2.3 關(guān)鍵技術(shù)介紹</p><p> 本軟件采用java作為開發(fā)語言,布局和數(shù)據(jù)存儲是開發(fā)本軟件的關(guān)鍵技術(shù),布局用來設(shè)計(jì)用戶交互界面,用戶界面的
62、設(shè)計(jì)是否美觀和合理直接影響用戶體驗(yàn),因此運(yùn)用好布局技術(shù)是直接和用戶相關(guān)的,而數(shù)據(jù)存儲技術(shù)則記錄了用戶所有的操作數(shù)據(jù)和用戶所需要提取的數(shù)據(jù)。</p><p> 在android中,軟件UI通常使用xml技術(shù)設(shè)計(jì),而xml中控件的位置和狀態(tài)則離不開布局的使用,android中常用的布局有5種,分別是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、Tab
63、leLayout,由于布局的使用,并且布局之間可以互相嵌套,使得android軟件UI的設(shè)計(jì)變得非常靈活,即使是一些非常復(fù)雜的界面設(shè)計(jì),只要合理的使用布局,也會使開發(fā)變得很容易。[9]</p><p> Android中數(shù)據(jù)存儲技術(shù)主要有:文件存儲、preference、sqlite、ContentProvider和網(wǎng)絡(luò)存儲,文件存儲是以流的形式讀寫文件,可以以文格的格式,也可以以二進(jìn)制的形式,在java語言中
64、要使用流,則寫入文件的對象必須進(jìn)行序列化,sqlite是嵌入式移動(dòng)設(shè)備中常用的輕量級數(shù)據(jù)庫,可看作計(jì)算機(jī)上使用的sql server、oracle數(shù)據(jù)庫。本系統(tǒng)中,采用的是MySql數(shù)據(jù)庫進(jìn)行儲存一些查詢的基本信息。[10]</p><p><b> 2.3 本章小結(jié)</b></p><p> 正所謂工欲善其事,必先利其器。本章介紹了一下本系統(tǒng)用到的技術(shù)和相關(guān)工
65、具??蛻舳擞玫紼clipse和Android ADT工具,Android SDK和JAVA語言;服務(wù)器端用到MyEclipse,主要技術(shù)為Servlet;數(shù)據(jù)庫整的是MySql,用的JDBC驅(qū)動(dòng)訪問之。</p><p> 3 移動(dòng)警務(wù)通系統(tǒng)的需求分析和設(shè)計(jì)</p><p><b> 3.1 需求分析</b></p><p> 3.1.
66、1 需求描述</p><p> 隨著高科技的高速發(fā)展,特別是網(wǎng)絡(luò)技術(shù)和移動(dòng)通信技術(shù)在全世界的推廣,人們獲取信息的手段發(fā)生了巨大的變化,尤其是那些對實(shí)時(shí)信息要求強(qiáng)烈、移動(dòng)性強(qiáng)的行業(yè),移動(dòng)計(jì)算和無線數(shù)據(jù)安全將為他們的工作帶來嶄新的體驗(yàn)以及前所未有的效率。</p><p> 公安行業(yè)是一個(gè)具有工作移動(dòng)性、突發(fā)性、緊急性強(qiáng)的行業(yè),一線部門需要實(shí)時(shí)數(shù)據(jù)中心交換信息,對在逃人員、常住人口、暫住人口
67、、重點(diǎn)人口、車輛等信息進(jìn)行及時(shí)、迅速地查詢,特別是照片和相關(guān)照片的傳輸應(yīng)用,能夠極大地提高辦公人員的辦事效率。</p><p> 目前無論是公安刑警、巡警、交警都已經(jīng)具備基本的綜合管理系統(tǒng),如以CCIC為核心的“金盾工程”、戶籍管理系統(tǒng)、案/事件業(yè)務(wù)、監(jiān)管業(yè)務(wù)、旅店業(yè)登記、出入境、進(jìn)出口機(jī)動(dòng)車檢查、指紋處理、綜合應(yīng)用等綜合信息系統(tǒng)。但這些都僅僅局限于桌面應(yīng)用,不能夠解決公安行業(yè)移動(dòng)性、突發(fā)性、緊急性的工作特點(diǎn)之
68、要求,極大地限制了現(xiàn)有系統(tǒng)的使用效率。</p><p> 根據(jù)以上分析,根據(jù)“數(shù)字警察”的理念,本系統(tǒng)采用先進(jìn)的移動(dòng)技術(shù)(Android),提出了結(jié)合GPRS、CDMA、3G等多種無線網(wǎng)絡(luò)及多種移動(dòng)終端的移動(dòng)警務(wù)通系統(tǒng)解決方案,實(shí)現(xiàn)公安系統(tǒng)移動(dòng)互聯(lián)及相關(guān)的業(yè)務(wù)應(yīng)用,將現(xiàn)有系統(tǒng)的功能通過移動(dòng)互聯(lián)網(wǎng)技術(shù)擴(kuò)展到每個(gè)警員的掌中,做到隨時(shí)、隨地、任意使用綜合信息資源,不僅提高現(xiàn)有系統(tǒng)的使用頻率,而且大大提高了警員的工作效
69、率,為公安行業(yè)提升自己的社會和經(jīng)濟(jì)效益提供有力的技術(shù)保障。</p><p> 3.1.2 功能需求相關(guān)用例圖</p><p> 本系統(tǒng)使用者主要為民警用戶,如圖3-1所示。</p><p> 圖3-1 民警用戶用例圖</p><p> 3.2 系統(tǒng)設(shè)計(jì)原則和目標(biāo)</p><p> 3.2.1 系統(tǒng)設(shè)計(jì)原則
70、</p><p> (1).簡單實(shí)用性原則:要求系統(tǒng)的設(shè)計(jì),易于使用、維護(hù)和管理。同時(shí),充分考慮到無線網(wǎng)絡(luò)和手持設(shè)備的特殊性,最大化利用公安專網(wǎng)中的網(wǎng)絡(luò)資源。</p><p> (2).可行性原則:需要在公安現(xiàn)有系統(tǒng)的基礎(chǔ)上,開發(fā)出可以真正方便外勤工作人員的系統(tǒng)。</p><p> (3).安全性原則:由于本文主要考慮的是信息查詢,所以在安全性這塊,暫時(shí)未予以
71、考慮。</p><p> (4).可擴(kuò)展性原則:設(shè)計(jì)功能的同時(shí),需要充分考慮到系統(tǒng)的可伸縮性,在設(shè)計(jì)和代碼實(shí)現(xiàn)上,需要留有可擴(kuò)展的余地。</p><p> 3.2.2 系統(tǒng)目標(biāo)</p><p> 本系統(tǒng)的設(shè)計(jì)目的就是充分利用公安現(xiàn)有系統(tǒng)的數(shù)據(jù),通過無線通信技術(shù)及web服務(wù),基于Android移動(dòng)平臺開發(fā)一個(gè)實(shí)時(shí),快捷,易于維護(hù)、擴(kuò)充的移動(dòng)警務(wù)查詢系統(tǒng),警務(wù)人員
72、可以利用該系統(tǒng)隨時(shí)隨地地查詢?nèi)丝?、案件、逃犯等信息,提高警?wù)工作效率。</p><p><b> 3.3 總體設(shè)計(jì)</b></p><p> 3.3.1 系統(tǒng)架構(gòu)</p><p> 系統(tǒng)的物理架構(gòu)是這樣的:客戶端Android系統(tǒng)智能手機(jī)通過移動(dòng)信號塔訪問移動(dòng)警務(wù)服務(wù)器,如果需要數(shù)據(jù)訪問,則訪問后臺數(shù)據(jù)庫。</p>&l
73、t;p> 系統(tǒng)物理結(jié)構(gòu)如圖3-2所示。</p><p> 圖3-2 系統(tǒng)物理結(jié)構(gòu)</p><p> 3.3.2 技術(shù)選型</p><p> Android客戶端應(yīng)用使用Java技術(shù),網(wǎng)絡(luò)通信使用Apache HTTP客戶端,中間Web服務(wù)器采用Servlet響應(yīng)客戶請求,后臺數(shù)據(jù)庫使用JDBC訪問數(shù)據(jù)庫。</p><p>
74、Web服務(wù)器采用開源的Tomcat,數(shù)據(jù)庫采用MySql。</p><p> 圖3-3描述了三級C/S模型。</p><p> 圖3-3 三級C/S模型</p><p> 3.3.3 系統(tǒng)功能</p><p> 通過對系統(tǒng)進(jìn)行需求分析,我們了解了系統(tǒng)的需求。通過系統(tǒng)物理架構(gòu)和技術(shù)選擇,我們確定了項(xiàng)目的可行性。接下來我們將對系統(tǒng)功能進(jìn)
75、行介紹。見圖3.3.</p><p><b> 1)系統(tǒng)登錄</b></p><p> 為了增強(qiáng)系統(tǒng)的使用安全,所有使用系統(tǒng)之前必須登錄系統(tǒng),登錄過程是通過無線網(wǎng)絡(luò),在后臺的數(shù)據(jù)庫通過用戶名稱密碼進(jìn)行查詢。有該注冊用戶方可使用該系統(tǒng)。</p><p><b> 2)信息查詢</b></p><p&
76、gt; 信息查詢可以通過無線網(wǎng)絡(luò)對遠(yuǎn)端公安信息庫進(jìn)行各種查詢,例如在逃人員查詢、被盜車輛查詢、人口信息查詢、社區(qū)信息查詢、出入境查詢、案件查詢和公文查詢等。</p><p><b> 3)信息采集</b></p><p> 信息采集功能是對公安人員現(xiàn)場采集的信息進(jìn)行及時(shí)高效的保存。可以采集的內(nèi)容包括:區(qū)警務(wù)信息采集、治安信息上報(bào)、機(jī)動(dòng)車違章信息文字采集、交通違法
77、信息采集、現(xiàn)場取證筆錄、現(xiàn)場違法事件處理等。</p><p><b> 4)文件上傳</b></p><p> 文件上傳功能主要是對現(xiàn)場照片(如:交通事故)、現(xiàn)場錄音及文件進(jìn)行及時(shí)上傳。文件上傳包括現(xiàn)場圖片、現(xiàn)場錄音和文件。</p><p><b> 5)位置服務(wù)</b></p><p>
78、位置服務(wù)通過GPS硬件和百度地圖的位置服務(wù)來實(shí)現(xiàn)位置查詢、跟蹤和定位等功能。位置服務(wù)包括:我的位置和目的地導(dǎo)航等。</p><p> 圖3-4 系統(tǒng)功能需求總體描述圖</p><p><b> 3.4 詳細(xì)設(shè)計(jì)</b></p><p> 確定了系統(tǒng)功能之后,我們就可以進(jìn)行圖形的詳細(xì)設(shè)計(jì)了。詳細(xì)設(shè)計(jì)里主要包括:系統(tǒng)包及其資源規(guī)劃、Acti
79、vity界面規(guī)劃及其程序執(zhí)行流程、系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)等。</p><p> 3.4.1 系統(tǒng)包及其資源規(guī)劃</p><p> 根據(jù)系統(tǒng)功能設(shè)計(jì),本系統(tǒng)分為五個(gè)模塊:登錄系統(tǒng)、信息查詢、信息采集、文件上傳和GPS定位。那么系統(tǒng)的包劃分也是按照五個(gè)模塊來劃分的。包結(jié)構(gòu)說明如表3-1所示。</p><p> 表3-1 系統(tǒng)包說明</p><p>
80、; Activity系統(tǒng)及資源分布如圖3-5所示。</p><p> 圖3-5 客戶端結(jié)構(gòu)一覽</p><p> 3.4.2 Activity界面規(guī)劃及其程序執(zhí)行流程</p><p> 進(jìn)行項(xiàng)目之前我們需要把系統(tǒng)展示的界面做一個(gè)規(guī)劃。本系統(tǒng)用到了大量的Activity,并且每個(gè)模塊的展現(xiàn)結(jié)構(gòu)都是大同小異,SO在這里只針對每個(gè)模塊的不同功能做一個(gè)介紹。<
81、;/p><p><b> 1)系統(tǒng)登錄界面</b></p><p> 系統(tǒng)登錄界面是系統(tǒng)的入口,該界面包括一個(gè)圖片視圖ImageView、兩個(gè)TextView、兩個(gè)EditView和兩個(gè)Button。</p><p><b> 2)系統(tǒng)主菜單</b></p><p> 系統(tǒng)用戶登錄成功后將進(jìn)入系
82、統(tǒng)主菜單。系統(tǒng)主菜單由一個(gè)GridView包裹著ImageView和TextView展開,其中包括信息查詢、信息收集。文件上傳和GPS定位等功能。</p><p><b> 3)系統(tǒng)子菜單</b></p><p> 進(jìn)入系統(tǒng)主菜單后,選擇菜單項(xiàng)將進(jìn)入該菜單的子菜單。</p><p><b> 4)查詢功能界面</b>
83、</p><p> 單擊查詢功能項(xiàng)進(jìn)入查詢功能界面。查詢界面與登錄界面很相似,一般要輸入查詢條件,例如身份證號碼、車牌照等。輸入查詢條件后選擇查詢按鈕進(jìn)行查詢,下面將顯示查詢結(jié)果。</p><p> 5)信息采集功能界面</p><p> 選擇信息收集子菜單將進(jìn)入信息采集功能頁面。信息采集主要是讓用戶輸入采集的信息,輸入好信息后,選擇單擊提交或者取消按鈕。提交
84、后使用對話框顯示提交成功或失敗信息。</p><p> 6)文件上傳功能界面</p><p> 選擇文件上傳子菜單將進(jìn)入文件上傳功能頁面。文件上傳功能界面要求用戶選擇上傳文件路徑。選擇單擊提交或者取消按鈕,進(jìn)行文件上傳或者取消上傳。</p><p><b> 7)GPS定位界面</b></p><p> 選擇GP
85、S定位功能子菜單將進(jìn)入GPS定位功能界面。GPS定位功能主要使用MapView來顯示地圖位置信息。</p><p> 3.4.3 數(shù)據(jù)庫設(shè)計(jì)</p><p><b> E-R實(shí)體圖設(shè)計(jì)</b></p><p> 下面就民警用戶、在逃人員信息、機(jī)動(dòng)車信息和上傳信息之間的實(shí)體關(guān)系作出下列實(shí)體E-R圖,如圖3-6所示。</p>
86、<p> 圖3-6 系統(tǒng)總體E-R圖</p><p><b> 2.數(shù)據(jù)庫表結(jié)構(gòu)</b></p><p> 移動(dòng)警務(wù)查詢系統(tǒng)通過無線網(wǎng)絡(luò)從公安數(shù)據(jù)中心檢索數(shù)據(jù),由于公安數(shù)據(jù)的保密性,本課題只能模擬公安專網(wǎng)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),下面表格列出了本系統(tǒng)的一些數(shù)據(jù)信息。</p><p> 表3-2 系統(tǒng)用戶表</p>&l
87、t;p> 表3-3 在逃人口表</p><p> 表3-4 機(jī)動(dòng)車信息采集表</p><p> 表3-5 上傳文件表</p><p><b> 3.5 本章小結(jié)</b></p><p> 萬事預(yù)則立,一個(gè)好的項(xiàng)目伊始都有一個(gè)比較明確的計(jì)劃、目的。</p><p> 本章從需求分
88、析開始,對移動(dòng)警務(wù)通系統(tǒng)的設(shè)計(jì)目標(biāo),以及所遵守的原則,再到整體設(shè)計(jì)做了一個(gè)比較細(xì)致的介紹。</p><p> 4 移動(dòng)警務(wù)通系統(tǒng)的實(shí)現(xiàn)</p><p> 4.1 登錄模塊實(shí)現(xiàn)</p><p> 4.1.1 登錄模塊客戶端部分</p><p> 為了提高系統(tǒng)的安全性,要想使用該系統(tǒng)必須進(jìn)行登錄。登錄的基本流程是:通過用戶輸入的用戶
89、名稱和用戶密碼,到后臺數(shù)據(jù)庫做查詢,如果有該用戶存在則進(jìn)入系統(tǒng),否則提示用戶輸入錯(cuò)誤。下面介紹一下在Android客戶端設(shè)計(jì)實(shí)現(xiàn)的一般步驟:</p><p> 1)創(chuàng)建一個(gè)Android工程,名稱為“項(xiàng)目名稱”;</p><p> 2)在工程的res/layout,創(chuàng)建一個(gè)*.xml的布局文件;</p><p> 3)在工程src下創(chuàng)建一個(gè)包,建一個(gè)類clas
90、s繼承Activity,在其OnCreat方法中引入之前創(chuàng)建的布局文件,setContentView(R.layout.*);</p><p> 4)最后Activity類中完成程序邏輯;</p><p> 登錄模塊部分用到的一些文件和設(shè)計(jì)的元素如圖4-1所示:</p><p> 圖4-1 登錄模塊客戶端一些文件</p><p> 為
91、了實(shí)現(xiàn)登錄功能,Android需要通過網(wǎng)絡(luò)訪問后臺的數(shù)據(jù)庫進(jìn)行查詢。Android訪問網(wǎng)絡(luò)的方法有很多,例如Web Service、HTTP、直接使用WebView瀏覽器。Android集成了Apache的Http Client模塊,這樣使得使用HTTP訪問網(wǎng)絡(luò)成為可能。定義一個(gè)工具類HttpUtil來獲取HttpRequest對象和HttpResponse對象,以及發(fā)送get和post請求獲得返回Response信息的方法。如圖4.1
92、中的HttpUtil.java文件。</p><p> 4.1.2 登錄模塊服務(wù)器部分</p><p> 后臺服務(wù)器實(shí)現(xiàn)采用JDBC訪問后臺數(shù)據(jù)庫,Servlet響應(yīng)HttpRequest請求,并返回響應(yīng)結(jié)果。為了完成該功能我們需要安裝MySql數(shù)據(jù)并配置Tomcat服務(wù)器。</p><p> 下面介紹一下在服務(wù)器端實(shí)現(xiàn)需要的一般步驟:</p>
93、<p> 1).創(chuàng)建一個(gè)名稱為“項(xiàng)目名稱”的Web工程;</p><p> 2).創(chuàng)建程序需要的包結(jié)構(gòu)。Dao包放置采用DAO設(shè)計(jì)模式實(shí)現(xiàn)的訪問數(shù)據(jù)庫接口及其實(shí)現(xiàn)類;entity包用于放置對應(yīng)數(shù)據(jù)庫表的實(shí)體類;servlet包用于放置Servlet類;filter包用于放置過濾器;util包是工具類。內(nèi)容如圖4.2所示;</p><p> 3).因?yàn)橐L問MySql數(shù)據(jù)庫
94、,所以要添加MySql驅(qū)動(dòng)包"mysql-connector-java-5.0.3-bin.jar"。將該jar文件添加到工程的classpath下。本工程可以直接將其復(fù)制到lib目錄下;</p><p> 4).創(chuàng)建訪問數(shù)據(jù)庫的工具類DBUtil,該類的主要功能是打開和關(guān)閉數(shù)據(jù)連接。為了程序的可擴(kuò)展性,我們將配置信息保存到配置文件中,這樣可以在不修改程序的前提下移植數(shù)據(jù)庫。</p&g
95、t;<p> 圖4-2 服務(wù)器包一覽</p><p> 登錄模塊服務(wù)器實(shí)現(xiàn)部分:</p><p> 1)創(chuàng)建用于封裝UserTbl表信息的實(shí)體類User,如圖4-3所示:</p><p> 圖4-3 實(shí)體類User</p><p> 2)創(chuàng)建訪問數(shù)據(jù)庫的DAO接口類UserDao,如圖4-4所示:</p>
96、<p> 圖4-4 UserDao</p><p> 3)創(chuàng)建UserDao接口實(shí)現(xiàn)類UserDaoImpl,如圖4-5所示:</p><p> 圖4-5 UserDao接口實(shí)現(xiàn)類UserDaoImpl</p><p> 4)創(chuàng)建LoginServlet類響應(yīng)請求。該類通過request.getParameter( )方法獲得請求參數(shù),調(diào)用Use
97、rImpl的login( )方法,并根據(jù)登錄結(jié)果返回響應(yīng)結(jié)果信息。該servlet主要業(yè)務(wù)代碼如圖4-6所示:</p><p> 圖4-6 LoginServlet類</p><p> 到此為止,系統(tǒng)登錄模塊的前后臺實(shí)現(xiàn)已全部完成。</p><p> 4.2 主菜單模塊實(shí)現(xiàn)</p><p> 系統(tǒng)主界面比較簡單,包含一個(gè)藍(lán)色顯示條
98、,和六個(gè)功能選項(xiàng)。通過各個(gè)選項(xiàng)導(dǎo)航到各個(gè)功能模塊。主界面如圖4-7所示:</p><p> 圖4-7 系統(tǒng)主界面</p><p><b> 主界面實(shí)現(xiàn)步驟:</b></p><p> 1)創(chuàng)建布局文件p02_gridview.xml、p02_gridview_son.xml,如圖4-8所示:</p><p> 圖
99、4-8 p02_gridview.xml</p><p> 2)編寫圖片適配器類,存放圖片和文字,對應(yīng)每一個(gè)小選項(xiàng),如圖4-9所示:</p><p> 圖4-9 ImageAdapter圖片適配器類</p><p> 3)最后,完成主界面菜單主類MainActivity,如圖4-10所示:</p><p> 圖4-10 主菜單Main
100、Activity類</p><p> 4.3 信息查詢模塊實(shí)現(xiàn)</p><p> 系統(tǒng)中信息查詢模塊的流程圖如圖4-11所示:</p><p> 圖4-11 信息查詢流程圖</p><p> 以在逃人員查詢?yōu)槔?,客戶端部分及服?wù)器部分實(shí)現(xiàn)步驟與登錄類似,就不詳細(xì)贅述了,此處就著流程圖貼出關(guān)鍵部分代碼:</p><
101、p> 1)創(chuàng)建查詢方法query(),發(fā)送post請求,并返回響應(yīng)結(jié)果。該方法用到了HttpUtils工具類。</p><p> private String query(String idno){</p><p> String queryString = "idno="+idno;</p><p> String url = H
102、ttpUtil.BASE_URL+"servlet/PeopleServlet?"+queryString;</p><p> return HttpUtil.queryStringForPost(url);</p><p><b> }</b></p><p> 2)創(chuàng)建queryPicPath(),通過身份證號碼查
103、詢照片路徑。</p><p> private String queryPicPath(String idno){</p><p> String queryString = "idno="+idno;</p><p> String url = HttpUtil.BASE_URL+"servlet/PeopleImgServle
104、t?"+queryString;</p><p> return HttpUtil.queryStringForPost(url);</p><p><b> } </b></p><p> 3)創(chuàng)建showPic()方法,通過照片路徑獲得照片字節(jié)流,并通過BitmapFactory的decodeStream(in)方法,將其
105、轉(zhuǎn)化為Bitmap對象,通過ImageView來顯示。具體是將url路徑字符轉(zhuǎn)換為URL對象,調(diào)用URL的openConnection()方法,該方法返回URLConnection對象,調(diào)用URL的connect()方法建立連接。調(diào)用getInputStream()方法打開輸入流InputStream()。</p><p> private void showPic(String urlStr){</p&
106、gt;<p><b> try {</b></p><p> URL url = new URL(urlStr);</p><p> URLConnection conn = url.openConnection();</p><p> conn.connect();</p><p> Input
107、Stream in = conn.getInputStream();</p><p> Bitmap map = BitmapFactory.decodeStream(in);</p><p> myImageView.setImageBitmap(map);</p><p> } catch (Exception e) {</p><p&
108、gt; e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> 4)設(shè)置查詢基本信息的按鈕單擊事件,進(jìn)行查詢:</p><p> myBtn = (Button)findViewById(R.id.Button
109、01);</p><p> myBtn.setOnClickListener(new OnClickListener() {</p><p><b> @Override</b></p><p> public void onClick(View v) {</p><p> if(validate()){<
110、/p><p> String idno = myEditText.getText().toString();</p><p> String msg = query(idno);</p><p> if(msg!=null&&!msg.equals(""))</p><p> myTextView.se
111、tText(msg);</p><p><b> else</b></p><p> myTextView.setText("查無此人!");</p><p><b> }</b></p><p><b> }</b></p><
112、p><b> });</b></p><p> 5)為顯示照片按鈕設(shè)置單擊事件,查詢圖片:</p><p> myBtn2 = (Button)findViewById(R.id.Button02);</p><p> myBtn2.setOnClickListener(new OnClickListener() {</p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于Android的移動(dòng)警務(wù)通管理系統(tǒng).pdf
- 基于android平臺的校園通軟件畢業(yè)論文
- 基于android移動(dòng)手機(jī)平臺的警務(wù)查詢系統(tǒng)
- 基于Android移動(dòng)手機(jī)平臺的警務(wù)查詢系統(tǒng).pdf
- 基于android的移動(dòng)辦公系統(tǒng)畢業(yè)論文
- 基于Android系統(tǒng)的移動(dòng)警務(wù)平臺設(shè)計(jì)與實(shí)現(xiàn).pdf
- android畢業(yè)論文--基于android平臺的商城
- 基于Android系統(tǒng)的移動(dòng)警務(wù)應(yīng)用平臺研究與應(yīng)用.pdf
- 畢業(yè)論文--基于android平臺的短信通的設(shè)計(jì)與實(shí)現(xiàn)
- android聊天系統(tǒng)畢業(yè)論文--基于android平臺的聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于Android的移動(dòng)警務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于android平臺的手機(jī)商城的畢業(yè)論文
- 基于android平臺的聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)論文
- android校園通軟件畢業(yè)論文
- 畢業(yè)論文--基于android平臺的beatplane游戲開發(fā)
- 基于android平臺的手機(jī)計(jì)步器設(shè)計(jì)【畢業(yè)論文】
- 移動(dòng)警務(wù)通
- Android平臺下移動(dòng)警務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于Android的移動(dòng)警務(wù)查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- android畢業(yè)論文--基于android 平臺的google map的手機(jī)導(dǎo)航設(shè)計(jì)
評論
0/150
提交評論