安卓的遠程定位系統(tǒng)參考模板_第1頁
安卓的遠程定位系統(tǒng)參考模板_第2頁
安卓的遠程定位系統(tǒng)參考模板_第3頁
安卓的遠程定位系統(tǒng)參考模板_第4頁
安卓的遠程定位系統(tǒng)參考模板_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、本科生畢業(yè)論文題目:基于安卓的遠程定位系統(tǒng) 學(xué) 院:計算機科學(xué)與技術(shù)學(xué)院專 業(yè):學(xué) 號:學(xué)生姓名:指導(dǎo)教師:日 期:二一六年六月I / 35摘 要隨著智能手機走進普通人的生活,它將成為人們獲取信息的主要設(shè)備。智能移動終端所具有的通訊服務(wù)、定位服務(wù)和攝像功能為及時獲取照片信息帶來了極大的方便。Android平臺支持各種應(yīng)用的開發(fā),它是目前最流行的開源智能手機操作系統(tǒng)。因此,Android手機的應(yīng)用服務(wù)將會有很大的發(fā)展空間,手機GPS遠程定位及運行軌跡管理系統(tǒng)服務(wù)就是其中的一項。 遠程定位是指通過特定的定位技術(shù)來獲取移動手機或終端用戶的位置信息(經(jīng)緯度坐標),在電子地圖上標出被定位對象的

2、位置的技術(shù)或服務(wù)。定位技術(shù)有兩種,一種是基于GPS的定位,一種是基于移動運營網(wǎng)的基站的定位?;贕PS的定位方式是利用手機上的GPS定位模塊將自己的位置信號發(fā)送到定位后臺來實現(xiàn)移動定位的。所以本系統(tǒng)采用前者來開發(fā)遠程定位系統(tǒng)。本文采用java語言和Eclipse平臺,開發(fā)了一個安卓遠程定位系統(tǒng),本系統(tǒng)的主要模塊:客戶端登錄模塊為用戶提供登錄,登錄方式分為管理員登錄和普通用戶登錄??蛻舳俗阅K進行用戶的注冊。客戶端主界面模塊定位用戶所在位置,更改定位的刷新時間,管理員可以查看普通用戶的軌跡。服務(wù)器端登錄模塊為管理員提供登錄。服務(wù)器端用戶管理模塊對用戶進行增刪改查。服務(wù)器端遠程定位模塊查詢用戶的

3、位置信息。服務(wù)器端軌跡回放查詢用戶的軌跡。關(guān)鍵詞:Java;Eclipse;安卓;遠程定位 AbstractAs smart phones into the life of the ordinary people, it will become the main equipment of access to information. Therefore, the application of mobile phone service will have very big development space, mobile phone GPS positioning and orbit serv

4、ice management system is one of them. Android platform to support the development of a variety of applications, it is by far the most popular open source smartphone operating system, the latest version is android4.0, provides a convenient and flexible development interface. Mobile positioning refers

5、 to the fixed by a specific technology for mobile phones or end user's location information (latitude and longitude coordinates), was located in the electronic map object location technology or service. Positioning technology, there are two, one is based on GPS, a positioning is based on mobile

6、operation network base station. Based on GPS positioning way is to use a mobile phone GPS module will send signals to its own position background to realize the mobile location. Base station positioning is the use of measuring distance to determine the distance of the base station for mobile phone l

7、ocation. The latter do not need to mobile phones with GPS capabilities, but the precision is largely dependent on the distribution of base station and the size of the coverage, sometimes error more than a kilometer. The former location accuracy is higher. In addition to use Wifi positioning on a sma

8、ll scale. This procedure has the very good portability and inheritance, developers can in its foundation.Intelligent mobile terminal of communication services, location-based services, and camera for photo information brought great convenience in a timely manner. This subject requires students based

9、 on the Android mobile intelligent terminal to develop a GPS positioning system, management system and the orbit including photography, upload, pictures, etc. This information need by intelligent terminal positioning function, at the same time should be running in the background copy information tra

10、nsmission.Keywords: Java, Eclipse, Android, DistanceLocation目錄1緒論11.1 項目研究背景11.2 項目研究意義21.3 論文的組織結(jié)構(gòu)22 需求分析32.1 軟件目標32.2 功能分析32.3 開發(fā)工具32.3.1 Eclipse32.3.2 Android ADT42.3.3 Android SDK42.3.4 Genymotion42.4 數(shù)據(jù)存儲42.5 運行環(huán)境52.6 本章小結(jié)53 系統(tǒng)分析與設(shè)計63.1 可行性分析63.2 系統(tǒng)設(shè)計原理63.2.1 Android系統(tǒng)結(jié)構(gòu)63.2.2 Broadcast工作原理83.3

11、 系統(tǒng)組成模塊93.4 系統(tǒng)流程圖103.5 系統(tǒng)用列圖103.6 本章小結(jié)114 系統(tǒng)編碼實現(xiàn)124.1 安卓的工程124.1.1 安卓工程程序結(jié)構(gòu)124.1.2 系統(tǒng)權(quán)限134.1.3 數(shù)據(jù)庫技術(shù)144.2 客戶端模塊154.2.1 登錄模塊154.2.2 注冊模塊164.2.3 主界面模塊174.3 服務(wù)器模塊184.3.1 登錄模塊184.3.2 用戶管理模塊194.3.3 遠程定位模塊204.3.4 軌跡回放模塊204.4 本章小結(jié)215 總結(jié)22參考文獻23致 謝241 緒論1.1 項目研究背景Android是一款基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于智能手機和平板

12、電腦等移動設(shè)備。谷歌公司和開放手機聯(lián)盟合作開發(fā)了Android,這個聯(lián)盟是由全球頂尖的手機制造商、軟件開發(fā)商、電信運營商和芯片制造商總共65家一同創(chuàng)組。Google公司在2007年11月5日第一次發(fā)表了Android操作系統(tǒng),Android本意指“機器人”,最初由Andy Rubin開發(fā)設(shè)計的。谷歌于2005年8月收購注資,開發(fā)運營Android操作系統(tǒng)。在Android發(fā)布不久后,就大受歡迎,它的市場增長速度是驚人的,總的來說導(dǎo)致Android系統(tǒng)風(fēng)靡的原因主要靠它的各方面的優(yōu)勢。Android是一個真正意義上的開放性移動設(shè)備綜合平臺。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序移動電話工作所需的全部

13、軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。谷歌與開放手機聯(lián)盟合作開發(fā)了 Android,這個聯(lián)盟由包括中國移動、摩托羅拉、高通、宏達和 T-Mobile 在內(nèi)的 30 多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成。通過與運營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,來建立標準化、開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式的生態(tài)系統(tǒng),這樣應(yīng)用之間的通用性和互聯(lián)性將在最大程度上得到保持。Android在國內(nèi)社區(qū)十分紅火,這些社區(qū)為Android在中國的普及做了很好的推廣作用,同時也為Android 相關(guān)產(chǎn)品的消費提供了市場。國內(nèi)廠商和運營商也紛紛加入了Android陣

14、營,包括中國移動,中國聯(lián)通,華為通訊,聯(lián)想等大企業(yè)。手機定位是指通過無線終端和無線網(wǎng)絡(luò)的配合,確定移動用戶的實際位置信息,經(jīng)緯度坐標數(shù)據(jù),包括三維數(shù)據(jù),通過短消息服務(wù)、多媒體消息、語音發(fā)給用戶或以此為基礎(chǔ)提供某種增值服務(wù)。手機定位類型:根據(jù)定位方法和定位過程的不同,手機定位主要有以下幾種類型,起源蜂窩定位 到達時間定位 到達角度定位 到達時間差定位手機定位基本原理:手機定位是利用GSM移動通信網(wǎng)的蜂窩技術(shù)來實現(xiàn)位置信息的查詢,GSM無線通信網(wǎng)是由許多像蜜蜂蜂窩一樣的小區(qū)構(gòu)建而成的,每個小區(qū)都有自己的編號,通過手機所在小區(qū)的識別號就可以知道手機所在區(qū)域。手機定位技術(shù)種類:GSM手機定位方式通???/p>

15、分為基于網(wǎng)絡(luò)方式和基于終端方式兩種。從技術(shù)上可分為到達時間、增強測量時間差和GPS輔助3種方式。利用手機平臺和web后臺結(jié)合,變可達到事半功倍的效果,使用戶節(jié)省時間、方便操作,增加效率。1.2 項目研究意義隨著我國經(jīng)濟的高速發(fā)展,人們的生活節(jié)奏越來越快,活動的范圍越來越大,人員和物品的流動率越來越高。實時了解遠程目標的情況,已經(jīng)成為人們的一項重要的管理或生活需求。利用遠程定位技術(shù),可以使人們獲取遠程目標實時反饋的定位信息,人們也能很方便地利用這些定位信息對管理或生活進行規(guī)劃調(diào)整近些年來,隨著城鎮(zhèn)化和現(xiàn)代化進程的推進,城市人口呈跳躍式增長,在城市中出現(xiàn)了大量的車輛。國內(nèi)很多城市的道路都處于不斷的

16、規(guī)劃調(diào)整過程中,這也使得交通狀況越復(fù)雜,因此對車輛管理已經(jīng)成為一個難題。在當(dāng)今這個信息時代,交通運輸對信息化的要求逐漸強烈起來,針對車輛的信息化服務(wù)越來越普及。車輛管理者希望對車輛的位置所了解,從而進行調(diào)度和管理。在物流行業(yè),利用遠程定位可以使物流企業(yè)管理這更有效地監(jiān)控貨物的運輸狀況,并根據(jù)具體的交通狀況對運輸進行調(diào)度,極大程度地避免了貨物遺失、被盜或寄送錯誤等情況,客戶也可以利用遠程定位查詢貨物的配送狀況。在駕校培訓(xùn)和出租車行業(yè)中,利用遠程定位 可以使管理者了解車輛的位置狀況。在公交公司的車輛上安裝GPS定位器,公交公司的管理者就可以實時的了解公交車輛的位置狀況,從而對公交系統(tǒng)的運行進行調(diào)度

17、,候車的乘客可以根據(jù)公交車輛的位置合理安排候車時間。此外,遠程定位還可以用于兒童和老人的行蹤掌控、公路巡檢、貴重貨物跟蹤、個人財務(wù)跟蹤、寵物跟蹤、野生動物追蹤、汽車防盜、銀行運鈔車監(jiān)管和公務(wù)車輛管理等。1.3 論文的組織結(jié)構(gòu)本論文分五個章節(jié),具體章節(jié)安排如下: 第1章 緒論,主要介紹項目研究的背景和意義,針對Android的遠程定位的背景分析以及論述了該應(yīng)用開發(fā)的實際意義。 第2章 需求分析,分析此項目究竟要做什么,要完成哪些功能,討論在實際使用中需要注意的問題。第3章 系統(tǒng)分析與設(shè)計,闡述了此項目的層次架構(gòu),各功能模塊之間的調(diào)用關(guān)系,具體分析功能的可行性和如何實現(xiàn)的問題。給出系統(tǒng)的流程圖和系

18、統(tǒng)功能模塊圖,明確設(shè)計了系統(tǒng)各個功能的實現(xiàn)方法。第4章 系統(tǒng)實現(xiàn),詳細講述了按照系統(tǒng)設(shè)計的功能,實現(xiàn)系統(tǒng)的各個模塊功能的過程,編寫了系統(tǒng)的所涉及到的大部分界面和最核心的代碼。第5章 總結(jié)與展望,對本項目進行一個全面的總結(jié),回顧整個項目的完成過程,并展望該項目的后期發(fā)展2 需求分析2.1 軟件目標本系統(tǒng)是GPS遠程定位及運行軌跡管理系統(tǒng)系統(tǒng)系統(tǒng)??梢苑奖阌脩羝綍r對GPS遠程定位及運行軌跡管理系統(tǒng)系統(tǒng)的統(tǒng)計。本系統(tǒng)應(yīng)達到以下目標: (1)軟件采用人機交互的方式,界面美觀友好,操作靈活、方便、富有個性化。(2)能夠?qū)PS遠程定位及運行軌跡管理系統(tǒng)系統(tǒng)的操作。(3)系統(tǒng)應(yīng)最大限度地實現(xiàn)易維護性和易操

19、作性。2.2 功能分析基于安卓的遠程定位系統(tǒng)作為第三方應(yīng)用程序開發(fā),對界面美觀程度,操作的友好性,良好的用戶體驗,功能是否明確,安全性等方面有著較高的要求。為此,軟件設(shè)計的原則考慮了以下四個方面:1. 易操作性:此軟件的操作設(shè)計要直白簡單,讓用戶能夠輕松的熟練掌握改軟件的操作,快速的掌握該軟件的使用。2. 友好性:軟件設(shè)計界面美觀簡潔,沒有太多冗余的元素來充斥界面;軟件對開啟和關(guān)閉遠程定位服務(wù)操作給予用戶友好的提示信息,讓用戶感覺操作便捷舒適。3. 實用性:軟件完成了基本定位功能,包擴軌跡回放,能像百度地圖等其它定位程序一樣正常投入使用,具有實際使用價值。4. 安全性:遠程定位的設(shè)計,著重考慮

20、了安全性,通過屏蔽HOME鍵、BACK鍵及狀態(tài)欄下拉,防止惡意程序越過鎖屏程序直接進入手機主頁,保證了系統(tǒng)的安全性。2.3 開發(fā)工具2.3.1 EclipseEclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。Eclipse只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具。Eclipse最初是由IBM公司開發(fā)的替代商業(yè)軟件Visual Age for Java的下一代IDE開發(fā)環(huán)境,2001年11月貢獻給開源社區(qū),現(xiàn)在它由非營利軟件供應(yīng)商聯(lián)

21、盟Eclipse基金會(Eclipse Foundation)管理,在2015年6月項目發(fā)布代號為Mars的4.5版。Eclipse主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成Eclipse Platform、JDT、CDT和PDE.JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具。Eclipse SDK(

22、軟件開發(fā)者包)是Eclipse Platform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產(chǎn)的軟件以 CPL發(fā)布,第三方組件有各自自身的許可協(xié)議。2.3.2 Android ADTADT是英文 Android Development Tools 的簡稱,即Android開發(fā)工具包。ADT是Eclipse中構(gòu)建Android應(yīng)用程序IDE插件,ADT擴

23、展了Eclipse的功能,讓您快速建立新的Android項目、創(chuàng)建應(yīng)用程序的用戶界面。ADT可以幫助Eclipse找到Android sdk,再加上Android框架的API組件調(diào)試使用Android SDK工具,以便APK分發(fā)給應(yīng)用程序。ADT大大減輕Android應(yīng)用程序的開發(fā)工作量,工具集成XML編輯器,將給開發(fā)人員一個令人難以置信的開發(fā)Android應(yīng)用環(huán)境。2.3.3 Android SDKAndroid SDK全名為Android software development kit,即Android軟件開發(fā)工具包,被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立

24、應(yīng)用軟件的開發(fā)工具的集合。其工具包中提供了Android開發(fā)的各類文檔資料以及Android提供的庫文件。Android SDK使用Java語言,在官方網(wǎng)站下載后不用安裝直接進行解壓,然后解壓后的壓縮包放到指定位置。2.3.4 GenymotionGenymotion是一套完整的工具,提供了Android虛擬環(huán)境,能夠支持 Windows、iOS、Linux等操作系統(tǒng)。Genymotion不是普通的模擬器,而是虛擬機,是目前用戶體驗最好,響應(yīng)速度最快的虛擬設(shè)備。2.4 數(shù)據(jù)存儲SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它是D.Richa

25、rdHipp建立的公有領(lǐng)域項目。它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。SQLite第一個Alpha版本誕生于2000年5月。 至2015年已經(jīng)有15個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。不像常見的客戶-服務(wù)器范例,SQLite引擎不是個程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分。所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數(shù)據(jù)庫(定義、表、索引和數(shù)據(jù)本身)都在宿主主機上存儲在一個單一的文件中。它的簡單

26、的設(shè)計是通過在開始一個事務(wù)的時候鎖定整個數(shù)據(jù)文件而完成的。MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下公司。MySQL 最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面MySQL是最好的 RDBMS,關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一。MySQL關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL 軟件采用了雙授權(quán)政策,它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站

27、的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。2.5 運行環(huán)境本程序的運行環(huán)境:設(shè)備:PC機一臺(CPU Intel奔騰2.9GHz;內(nèi)存 8GB;硬盤 100GB),Android手機軟件:Windows 7或Windows XP操作系統(tǒng),Android手機模擬器2.6 本章小結(jié)本章主要對項目進行需求分析,介紹了項目開發(fā)所需的開發(fā)工具Eclipseh、Android SDK、Android ADT、Genymotion、安卓中數(shù)據(jù)存儲SQLite、運行環(huán)境以及安卓遠程定位項目所需實現(xiàn)的功能。3 系統(tǒng)分析與設(shè)計3.1 可行性分析隨著各大移動終端生產(chǎn)商大力開發(fā)和生產(chǎn)基于安卓上的移動智能手機設(shè)備, A

28、ndroid飛速的得到了很多業(yè)界和使用者的認可,并很快成為整個手機這個產(chǎn)業(yè)的上的熱點話題,在Android這個強力的平臺的成為了大家的焦點。 而且 這個Android 是一個open的系統(tǒng),不管是企業(yè)還是個人都可以參與來表達自己的創(chuàng)意和想法。Google 發(fā)起了圍繞 Android 的組織開放手機聯(lián)盟, 其英文全稱為 “Open Handset Alliance”。 它采用了軟件堆層(software stack,又名以軟件疊層) 的架構(gòu),主要分為三部分。底層 Linux 內(nèi)核只提供基本功能;其他的應(yīng)用軟件則 由各公司自行開發(fā),部分程序以 Java 編寫。本系統(tǒng)采用Android框架,可以在e

29、clipse中安裝Android開發(fā)插件,使用Android模擬器也可以使用任意Android終端。模擬器和真正的Android手機沒有太大區(qū)別,人們對手機操作早已熟悉。安卓遠程定位系統(tǒng)運行在普通的Android系統(tǒng)的手機上,對用戶來說,操作簡單明了。所有的操作通過界面上的提示,用戶就能直接使用。因此,在操作上,是十分可行的,易于使用戶接受使用。由于安卓遠程定位系統(tǒng)是作為第三方軟件開發(fā)的,未對系統(tǒng)程序造成攻擊,也未抄襲他人勞動成果,程序本身也是按照正常的開發(fā)流程,所以不存在任何法律問題,在法律上是完全可行的。綜合以上該系統(tǒng)具有很高的開發(fā)可行性,無論是從技術(shù)上經(jīng)濟上還是操作上。3.2 系統(tǒng)設(shè)計原

30、理3.2.1 Android系統(tǒng)結(jié)構(gòu)在開發(fā)Android操作系統(tǒng)上的應(yīng)用程序過程中,許多問題需要先去理解才能想辦法解決,例如:程序的運行順序,這時候可能是由于對Android系統(tǒng)結(jié)構(gòu)不太了解,不清楚程序運行的流程,不了解Android的內(nèi)部運行的機制,所以學(xué)習(xí)Android系統(tǒng)結(jié)構(gòu)是非常有必要的。Android的系統(tǒng)架構(gòu)采用了分層架構(gòu)的思想,從上到下共包括四層,分別是應(yīng)用程序?qū)?、?yīng)用框架層、系統(tǒng)庫和Android運行時和Linux內(nèi)核。Android的系統(tǒng)架構(gòu)采用分層架構(gòu)的思想,架構(gòu)清晰,層次分明,各層之間協(xié)同工作。Android的系統(tǒng)層次架構(gòu)圖,如圖3.1所示。圖3. 1 安卓系統(tǒng)層次架構(gòu)在

31、Android操作系統(tǒng)的整個組織架構(gòu)圖中分了四個層次,其中第三層包含兩大塊,下面分別對其分析:第一層:Application,應(yīng)用程序?qū)?。?yīng)用程序?qū)覣pplication是程序員使用Android SDK開發(fā)出來的軟件。在本層,Android配備了最為核心和精簡的應(yīng)用程序設(shè)置,例如電子郵件客戶端、通訊錄、地圖、瀏覽器等,這些程序均用Java語言編寫。這里的應(yīng)用程序不同于手機操作系統(tǒng)內(nèi)固化在系統(tǒng)內(nèi)部的系統(tǒng)軟件,開發(fā)人員可以用其他應(yīng)用程序替換這些應(yīng)用程序,使其更加靈活和個性化。第二層:Application Framework,應(yīng)用程序框架層。通過開放平臺,Android為開發(fā)人員提供了豐富創(chuàng)新的

32、應(yīng)用。開發(fā)人員可以完全訪問同一框架應(yīng)用程序接口,它們會被應(yīng)用的內(nèi)核所調(diào)用。這種應(yīng)用程序結(jié)構(gòu)設(shè)計的目的是使組件的重用變得簡單,這樣的機制使得用戶可以自己編寫組件予以替代。第三層:Libraries、Android Runtime,庫文件、Android運行時。Android包括一套C/C+的庫文件,它們會被Android系統(tǒng)的各種組件所調(diào)用,這些所實現(xiàn)的功能通過Android的應(yīng)用框架可以被開發(fā)者所使用。Android Runtime,Android運行環(huán)境。Android包括一組核心庫,它們可以提供大多數(shù)可以在Java核心庫中可以用的函數(shù)。每個Android應(yīng)用都運行在它自己的進程中,憑借自己

33、的Dalvik虛擬機進行實例化。Android Runtime機制和Dalvik不同,在Dalvik下,應(yīng)用每次運行時,利用即時編譯器將字節(jié)碼裝換成機器碼,這樣嚴重的降低了系統(tǒng)運行的效率;應(yīng)用只會在第一次安裝時,就將字節(jié)碼預(yù)編譯成機器碼??梢猿蔀檎嬲谋镜貞?yīng)用。在Android Runtime環(huán)境下,。由于Dalvik是被寫入的,因而一個設(shè)備可以高效地打開多個虛擬機,Dalvik虛擬機執(zhí)行在.dex格式的文件中,這種文件已經(jīng)被最小內(nèi)存占用優(yōu)化過。虛擬機是基于寄存器的,并且用Java編譯器執(zhí)行類文件,這種類文件已經(jīng)被虛擬機轉(zhuǎn)化工具轉(zhuǎn)化為.dex的格式了,Dalvik虛擬機進行線程的操作和硬件級的

34、內(nèi)存管理是通過調(diào)用Linux的內(nèi)核來實現(xiàn)的。第四層:Linux Kernel,Linux內(nèi)核。Android操作系統(tǒng)中類似于安全機制,內(nèi)存管理,進程調(diào)度管理,網(wǎng)絡(luò)堆棧,硬件驅(qū)動等模塊都是基于Linux version2.6而開發(fā)的。Linux內(nèi)核中的“內(nèi)核”指的是一個系統(tǒng)軟件,這個系統(tǒng)軟件的功能是控制磁盤及文件系統(tǒng)、提供硬件抽象層、處理多任務(wù)等。Android操作系統(tǒng)上的Linux內(nèi)核是在硬件層和其它軟件堆棧層之間扮演著抽象層地角色。3.2.2 Broadcast工作原理Broadcast譯為Android中的廣播機制,在Android中,某些操作完成以后,會發(fā)送系統(tǒng)廣播,然后觸發(fā)相應(yīng)的操作。

35、Android遠程定位系統(tǒng)設(shè)計中需要監(jiān)聽屏幕開啟廣播和開機啟動廣播,由于有序廣播的優(yōu)先級問題,類似于屏幕開啟和關(guān)閉廣播在靜態(tài)注冊時,系統(tǒng)的優(yōu)先級大于普通的應(yīng)用,并且系統(tǒng)會阻止廣播的向下傳播,所以這類廣播必須在配置文件中靜態(tài)注冊。靜態(tài)注冊是當(dāng)程序關(guān)閉后,如果有廣播發(fā)過來,還能啟動程序動態(tài)注冊的生命周期跟程序的生命周期是一樣的,程序關(guān)閉后動態(tài)注冊的廣播是不能在接收到廣播的,而在開機啟動之前,程序肯定是關(guān)閉的,所以開機啟動廣播只能使用靜態(tài)注冊方式。Android廣播機制的三要素:1. 廣播(Broadcast):用于發(fā)送廣播,是一種廣泛應(yīng)用的在應(yīng)用間傳輸信息的機制,一般分為有序廣播(Ordered

36、Broadcasts)和普通廣播(Normal Broadcasts)。 2. 廣播接收器(BroadcastReceiver):用于接收廣播,是對發(fā)出來的Broadcast進行過濾接受并響應(yīng)的組件。3. 意圖內(nèi)容(Intent):用于保存廣播相關(guān)信息的媒介,實現(xiàn)組件之間的通信。3.3 系統(tǒng)組成模塊系統(tǒng)模塊在程序設(shè)計中,為完成某一功能所需的一段程序或子程序;或指能由編譯程序、裝配程序等處理的獨立程序單位;或指大型軟件系統(tǒng)的一部分。模塊,又稱構(gòu)件,是能夠單獨命名并獨立地完成一定功能的程序語句的集合。它具有兩個基本的特征:外部特征和內(nèi)部特征。外部特征是指模塊跟外部環(huán)境聯(lián)系的接口和模塊的功能;內(nèi)部特

37、征是指模塊的內(nèi)部環(huán)境具有的特點。為了將安卓遠程定位項目的編碼工作明確化,項目按照功能劃分了七個模塊。這六個模塊分別是:客戶端登錄、客戶端注冊、客戶端主界面、服務(wù)器端登錄、服務(wù)器端用戶管理、服務(wù)器端遠程定位、服務(wù)器端軌跡回放。其中客戶端主界面模塊包含定位和軌跡回放功能,以及更改刷新時間。根據(jù)每個模塊的功能進行代碼的編寫工作,按照需求自頂向下分析實現(xiàn)每一個功能模塊所要實現(xiàn)的功能,每一模塊只留出和外部之間傳遞消息的接口。采用模塊化的管理方式可以使軟件結(jié)構(gòu)更加清晰,方便之后的維護管理,容易理解和使用。每個模塊完成以后,根據(jù)總體框架將各個模塊結(jié)合起來,保證功能的完善性。對安卓遠程定位項目,按照系統(tǒng)所需完

38、成功能,我們將其劃分為以下七個模塊,如圖3.2所示。圖3.2 系統(tǒng)功能模塊3.4 系統(tǒng)流程圖System Flowchart又叫系統(tǒng)里的流程圖,是在計算機事務(wù)處理應(yīng)用進行系統(tǒng)分析時常用的一種描述方法(另一個是數(shù)據(jù)流圖),它描述了計算機事務(wù)處理中從數(shù)據(jù)輸入開始到獲得輸出為止,各個處理工序的邏輯過程。制作系統(tǒng)流程圖的過程是系統(tǒng)分析員全面了解系統(tǒng)業(yè)務(wù)處理概況的過程,它是系統(tǒng)分析員做進一步分析的依據(jù)。它的最根本的思想就是用圖形和符號以黑盒子方式去描繪該系統(tǒng)里面的所有部件,然后表達出相應(yīng)的信息在每個部件所流動的狀況,GPS遠程定位及運行軌跡管理系統(tǒng)的流程圖如圖3.3所示。圖3.3 系統(tǒng)流程圖3.5 系統(tǒng)

39、用列圖用例圖定義:由參與者(Actor)、用例(Use Case)以及它們一起的關(guān)系構(gòu)成的系統(tǒng)功能的所有的靜態(tài)視圖一起稱為系統(tǒng)用例圖。下面為系統(tǒng)用例圖。 圖3.4用戶用例圖 圖3.5管理員用例圖3.6 本章小結(jié)本章對安卓遠程定位做了系統(tǒng)的分析,介紹了系統(tǒng)設(shè)計原理、各個功能模塊、設(shè)計模塊的實現(xiàn)方法,繪制了系統(tǒng)的流程圖,為安卓遠程定位系統(tǒng)的實現(xiàn)提供了明確的設(shè)計流程和方法。4 系統(tǒng)編碼實現(xiàn)4.1 安卓的工程4.1.1 安卓工程程序結(jié)構(gòu)Android工程基本結(jié)構(gòu)目錄包括以下幾個:src目錄:該目錄中存放的是該項目的源代碼,本系統(tǒng)把源碼分成五個包。form包功能是客服端和服務(wù)器端進行數(shù)據(jù)傳輸,gap包是

40、MainActivity的界面和手機地圖以及定位功能,plugs包功能是客戶端鏈接到服務(wù)器,tool包獲取正在使用數(shù)據(jù)庫的路徑。util包字節(jié)輸入和輸出工具。gen目錄:該目錄下的文件全部都是ADT自動生成的,一般并不需要去修改,實際上該目錄下只定義了一個R.java文件,該文件相當(dāng)于項目的字典,為項目中用戶界面、字符串、圖片等資源都會在該類中創(chuàng)建其惟一的ID,當(dāng)項目中使用這些資源時,會通過該ID得到資源的引用。Res目錄:該目錄用于存放應(yīng)用程序中經(jīng)常使用的資源文件,其中包括圖片、聲音、布局文件以及參數(shù)描述文件等。assets目錄:資源路徑,不會在R文件注冊。該目錄用于存放項目相關(guān)的資源文件,

41、例如文本文件等,在程序中可以使用 “getResources.getAssets().open("text.txt")”得到資源文件的輸入流InputStream對象。bin目錄:二進制文件,包括class、資源文件、dex、apk等。res目錄:該目錄用于存放應(yīng)用程序中經(jīng)常使用的資源文件,其中包括圖片、聲音、布局文件以及參數(shù)描述文件等,遠程定位程序結(jié)構(gòu)如圖4.1所示。圖4.1遠程定位程序圖AndroidMainfes.xml 是四大組件的驅(qū)動配置文件,有它的存在,Android程序的四大組件才可以正常的跳轉(zhuǎn)。Android資源的類型和布局如表4.1所示表4.1資源的類型和

42、布局4.1.2 系統(tǒng)權(quán)限Android系統(tǒng)的任何一個程序啟動都需要AndroidManifest.xml來啟動程序,任何一個新建的工程目錄都會自動生成一個AndroidManifest.xml文件,此配置文件是整個程序能夠正常運行的核心,它里面包含了Android SDK的版本,程序運行的默認Activity,當(dāng)程序中的任何一個組件觸發(fā)事件后,系統(tǒng)都會自動的去AndroidManifest.xml中尋找標識來作出相應(yīng)的操作。 Android系統(tǒng)有一個編碼的規(guī)定,支持的編碼是"utf-8",當(dāng)程序中出現(xiàn)亂碼是,我們須將其編碼格式轉(zhuǎn)化為"utf-8".在 A

43、ndroidManifest.xml中會在第一行聲明一句:<?xml version="1.0" encoding="utf-8"?>。它是該系統(tǒng)支持的版本和編碼。xmlns(XML namespace)是一個命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構(gòu),每一個配置文件必須有這個xmlns,否則程序中的所使用的所有資源將無法找到。AndroidManifest.xml配置文件的根元素,必須包含一個元素并且指定xlmns:android和package屬性。xlmns:android指定了Android的命名空間,默認情況下是“為了保證

44、Android應(yīng)用的安全性,應(yīng)用框架制定了比較嚴格的權(quán)限系統(tǒng),一個應(yīng)用必須聲明了正確的權(quán)限才可以使用相應(yīng)的功能,例如我們需要讓應(yīng)用能夠訪問網(wǎng)絡(luò)就需要配置“android.permission.INTERNET”,而如果要使用設(shè)備的相機功能,則需要設(shè)置“android.permission.CAMERA”等?;诎沧康倪h程定位系統(tǒng)中所需要的一些權(quán)限如下表。表4.2系統(tǒng)權(quán)限表權(quán)限作用ACCESS_WIFI_STATE允許程序訪問Wi-Fi網(wǎng)絡(luò)狀態(tài)信息ACCESS_FINE_LOCATION通過GPS芯片接收衛(wèi)星的定位信息ACCESS_LOCATION_EXTRA_COMMANDS允許程序訪問額外的

45、定位提供者指令A(yù)CCESS_MOCK_LOCATION獲取模擬定位信息CHANGE_WIFI_STATE允許程序改變Wi-Fi連接狀態(tài)CHANGE_CONFIGURATION允許當(dāng)前應(yīng)用改變配置INTERNET訪問網(wǎng)絡(luò)連接READ_SYNC_STATS允許程序讀取同步狀態(tài)4.1.3 數(shù)據(jù)庫技術(shù)本系統(tǒng)采用mysql數(shù)據(jù)庫,下面為各個實現(xiàn)的表。表4.3經(jīng)緯度t_info表序號字段名稱字段類型大小允許為空最大長度備注1idInt4自增編號10 2imeiVarChar255是255 3phoneNmText16是255 4jingduVarChar50是255 5weiduVarChar50是255

46、 6imgVarChar50是255 7usernameVarChar8是23 表4.4用戶信息t_user表序號字段名稱字段類型大小允許為空最大長度備注1IDInt4自增編號10 2usernameVarChar50是255 3passwdVarChar50是255 4roletypeVarChar50是255 5roletypecnDateTime8是23 6telVarChar50是2554.2 客戶端模塊4.2.1 登錄模塊登錄界面使用<div>元素布局分為三個區(qū)域,分別是標題欄、表單區(qū)、button按鈕區(qū)。標題“請登錄”使用<h1>最大標題。中間使用的是表單&

47、lt;form>,表單中有用戶名和密碼使用的是label標簽,其對應(yīng)的輸入框的類型分別是text和password,其值都先設(shè)為空。管理員和普通用戶用的是select樣式默認選中管理員。第三塊區(qū)域使用的是兩個button按鈕,分別是登錄和注冊并且添加onclick事件,html界面設(shè)計如圖4.2,實際效果如圖4.3。 圖4.2 登錄模塊設(shè)計圖 圖4.3 登錄實際效果圖 4.2.2 注冊模塊注冊界面使用<div>元素布局也分為三個區(qū)域,分別是標題欄、表單區(qū)、button按鈕區(qū)。標題“用戶注冊”使用<h1>最大標題。中間使用的是表單<form>,表單中有用

48、戶名、密碼還有電話使用的是label標簽,用戶名和密碼輸入框的類型分別是text和password,電話的輸入框類型是number,其值都先設(shè)為空。第三塊區(qū)域使用了一個button按鈕,并且添加onclick事件,html界面設(shè)計如圖4.4,實際效果如圖4.5。圖4.4 注冊模塊設(shè)計圖4.5 注冊實際效果圖4.2.3 主界面模塊主界面分為標題欄和<div>元素區(qū),標題"定位"使用最大標題<h1>。使用屬性data-iconpos="left"把"選項"嵌入在標題欄的左邊,并且自定義一個超鏈接<a href

49、="#popupMenu">。同樣的把"我的位置"嵌入在標題欄右邊。div中使用有序列表<ul>每個列表項始于 <li> 標簽并且用listview設(shè)置樣式,把"查詢軌跡"、"我的軌跡"、"5秒刷新"、"10秒刷新"、"30秒刷新"、"退出"分別加入標簽中,并把每一個都自定義一個標簽,主界面設(shè)計如圖4.6,實際效果如圖4.8。 圖4.6 主界面模塊圖圖4.7 主界面4.3 服務(wù)器模塊4.3.1 登錄模塊在進

50、入后臺管理之前先要啟動電腦中的mysql數(shù)據(jù)庫和XMAPP中的apache服務(wù)器,后臺管理只能管理員登錄,用戶名和密碼正確就會提示登錄成功,非管理員登錄會提示用戶或密碼不正確用戶需要重新輸入再進行登錄。登錄成功會跳到用戶管理界面,點擊用戶列表會顯示所有的用戶信息。效果如下圖。圖4.8 后臺登錄圖圖4.9 用戶列表圖4.3.2 用戶管理模塊管理員可以對用戶進行增刪改查。增加需要輸入用戶名、電話、密碼還要設(shè)置權(quán)限,點擊保存成功后會提示操作成功。刪除之前先選中需要刪除的用戶然后在點擊刪除,系統(tǒng)會提示是否確認刪除點擊確定進行刪除。修改會彈出用戶的所有信息,進行修改后點擊保存即可。查詢輸入需要查詢的用戶

51、名點擊查詢,在用戶列表里只會顯示查詢的用戶。 圖4.10添加用戶圖圖4.11刪除用戶圖圖4.12修改用戶圖圖4.13查詢用戶圖4.3.3 遠程定位模塊用戶登錄客戶端后系統(tǒng)會記錄用戶的位置信息,客戶端系統(tǒng)把數(shù)據(jù)傳輸?shù)胶笈_服務(wù)器把數(shù)據(jù)添加到數(shù)據(jù)庫中,在位置信息中管理員可以查看用戶的經(jīng)緯度信息,地圖上可以顯示用戶的所在位置,定位效果如圖4.14所示。4.3.4 軌跡回放模塊客戶端每個一段時間就會在地圖上記錄一次用戶的位置信息,在地圖上打出不同的點把這些點連接起來就形成軌跡,定位刷新時間越短軌跡越精確。管理員在位置地圖信息中輸出需要查詢的用戶,點擊查詢軌跡即可查看用戶的軌跡,軌跡回放效果如圖4.15所

52、示。圖4.14定位圖圖4.15軌跡回放圖4.4 本章小結(jié)本章主要介紹了安卓遠程定位系統(tǒng)具體編碼實現(xiàn),將項目開發(fā)的環(huán)境配置,數(shù)據(jù)庫的實現(xiàn),手機端界面,后臺管理系統(tǒng)都進行了詳細的論述及代碼實現(xiàn),并展示了項目各個功能模塊的效果圖。5 總結(jié)在這幾個個月的時間里,我們已基本完成了畢業(yè)設(shè)計。在編程的過程中,我們學(xué)到了很多知識,不僅是編程開發(fā)方面的專業(yè)技能,更鍛煉了自己的毅力和耐性。 經(jīng)過一段時間的設(shè)計和開發(fā),安卓遠程定位系統(tǒng)基本開發(fā)完畢,系統(tǒng)功能基本符合遠程定位的需求,由于時間比較緊迫,該系統(tǒng)還有些不足之處,比如有些界面做的不夠漂亮,不夠人性化,有的操作有點繁瑣,這些都是后續(xù)工作可以更好完善的。因為對遠程

53、定位調(diào)研不夠精確,所以有些問題沒有考慮到,導(dǎo)致有些實現(xiàn)的功能不夠周全,還需要進一步的完善。對于一些復(fù)雜的代碼還需要進一步的修改,使之更加簡捷易懂。 在開發(fā)安卓遠程定位系統(tǒng)的過程中,出現(xiàn)了很多問題,如當(dāng)調(diào)試時,出現(xiàn),程序加載不進去,以前我們只知道單一的調(diào)試方法,即點擊調(diào)試按鈕,不知道代碼出錯信息在哪里,很難調(diào)試成功,后來經(jīng)過到網(wǎng)上搜索信息,以及請教老師和同學(xué),漸漸的懂得了如何調(diào)試程序,這需要在相應(yīng)的函數(shù)添加斷點,按F10,分段調(diào)試,一點一點調(diào)試,就能可找出錯誤出現(xiàn)在哪個地方,然后再不斷的調(diào)試。 在創(chuàng)建數(shù)據(jù)庫時,會出現(xiàn),主鍵和外鍵的先后創(chuàng)建問題,以及當(dāng)創(chuàng)建了表和字段的主外鍵和關(guān)系后,需要修改數(shù)據(jù)庫時,會出現(xiàn)主外鍵的問題,這時就要考慮修改數(shù)據(jù)表的先后問題了。在創(chuàng)建登錄界面的功能時,剛開始理解的有點錯誤,導(dǎo)致后來登錄界面沒有更實際的功能,經(jīng)過一段時間的修改,終于修改成功了,編程并不是最難的,修改程序,調(diào)試程序往往是最繁瑣,最耗時間的,但是通常,只

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論