基于Android智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng)設(shè)計(jì)說明書_第1頁
基于Android智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng)設(shè)計(jì)說明書_第2頁
基于Android智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng)設(shè)計(jì)說明書_第3頁
基于Android智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng)設(shè)計(jì)說明書_第4頁
基于Android智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng)設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、LANZHOU UNIVERSITY OF TECHNOLOGY 畢業(yè)設(shè)計(jì) 題 目 基于Android智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng) 學(xué)生姓名 * 學(xué) 號 * 專業(yè)班級 軟件工程三班 指導(dǎo)教師 * 學(xué) 院 軟件 學(xué)院 答辯日期 2015.6.14 第 頁 基于 Android 智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng) The System of Based on The Android Smartphone Vehicle Monitoring and Trajectory Playback 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 摘摘 要要 本文主要介紹了基于 Android 智能手機(jī)平臺和 GPS 相關(guān)開發(fā)技術(shù),

2、結(jié)合高德地圖 API 以 及第三方云端服務(wù)器 Bmob,設(shè)計(jì)并實(shí)現(xiàn)的一個(gè)車輛實(shí)時(shí)監(jiān)控和軌跡回放系統(tǒng)。同時(shí),本文從 定位系統(tǒng)的功能完整性出發(fā),將服務(wù)器端和手機(jī)客戶端的開發(fā)作為研究對象,完成了基于 Bmob 云端服務(wù)器的后臺搭建;通過對整個(gè)系統(tǒng)的各個(gè)主要功能模塊詳細(xì)的分析與研究,該系 統(tǒng)可以穩(wěn)定地運(yùn)行,保證了數(shù)據(jù)記錄的準(zhǔn)確性,基本上能滿足用戶相關(guān)的記錄服務(wù),管理等需求。 另一方面,該系統(tǒng)對界面也進(jìn)行了優(yōu)化設(shè)計(jì),體現(xiàn)出更加人性化的用戶體驗(yàn)。 關(guān)鍵字關(guān)鍵字:Android;GPS; Bmob;車輛監(jiān)控;軌跡回放 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) I ABSTRACT The paper mainly illust

3、rated that an Android-based GPS track recurrence system for Mobile phone was designed and implemented by using Android smartphone platform and the characteristics of GPS,and combining with High German Map. In this paper, starting from the integrity of the positioning system, the server and the mobil

4、e client development as the research object, to realize the background based on Bmob server setup. By analyzing and studying the major function modules of the system carefully and testing them rigorously,the system can not only run smoothly and well , but ensure the accuracy of the data records, it

5、can meet mobile users demand for record service in the main. Under the premise of meeting the requirement for service, an optimized design to the UI of the system was carried out. key words:Android;GPS ;Bmob;Vehicle monitoring;Track back 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 目目 錄錄 摘摘 要要.I ABSTRACT .II 第第 1 1 章章 緒緒 論論.1 1.1 項(xiàng)目

6、背景.1 1.2 實(shí)際意義.1 1.3 ANDROID 系統(tǒng)簡介.1 1.4 BMOB 服務(wù)器.1 1.5 設(shè)計(jì)說明書的內(nèi)容.2 第第 2 2 章章 可行性研究可行性研究.4 2.1 系統(tǒng)目標(biāo).4 2.2 系統(tǒng)數(shù)據(jù)流分析.4 2.3 數(shù)據(jù)字典.4 2.4 可行性分析.5 2.4.1 經(jīng)濟(jì)可行性 .5 2.4.2 技術(shù)可行性 .5 2.4.3 應(yīng)用可行性 .5 第第 3 3 章章 需求分析需求分析.7 3.1 問題描述:.7 3.2 系統(tǒng)功能描述:.7 3.2.1 實(shí)時(shí)位置監(jiān)控功能:.7 3.2.2 軌跡回放功能:.7 3.2.3 我的位置功能:.7 3.2.4 GPS 參數(shù)設(shè)置功能: .7 3

7、.2.5 用戶信息設(shè)置功能:.7 3.3 系統(tǒng)流程圖:.8 3.4 數(shù)據(jù)流程圖:.8 3.4 系統(tǒng) E-R 圖描述:.10 第第 4 4 章章 總體設(shè)計(jì)總體設(shè)計(jì).12 4.1 系統(tǒng)特點(diǎn).12 4.2 系統(tǒng)結(jié)構(gòu).12 4.2.1 系統(tǒng)整體先進(jìn)性.12 4.2.2 系統(tǒng)的結(jié)構(gòu)設(shè)計(jì).12 4.3 系統(tǒng)的總體設(shè)計(jì)方案.13 4.4 編程環(huán)境的選擇.13 4.4.1 編程語言JAVA .13 4.4.2 開發(fā)工具ECLIPSE .14 4.5 系統(tǒng)運(yùn)行環(huán)境配置.15 4.6 系統(tǒng)功能模塊設(shè)計(jì).15 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) i 第第 5 章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì).18 5.1 管理模塊詳細(xì)設(shè)計(jì).18 5.1.

8、1 登陸模塊設(shè)計(jì) .18 5.1.2 我的位置模塊設(shè)計(jì) .18 5.1.3 軌跡監(jiān)控模塊設(shè)計(jì).19 5.1.4 軌跡回放模塊設(shè)計(jì) .19 5.1.5 GPS 參數(shù)設(shè)置模塊設(shè)計(jì).20 5.1.6 用戶信息設(shè)置模塊設(shè)計(jì).20 5.2 數(shù)據(jù)庫設(shè)計(jì).21 5.2.1 系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì) .21 5.2.2 表設(shè)計(jì) .21 5.2.3 表之間的關(guān)聯(lián)設(shè)計(jì).23 第第 6 章章 編碼編碼.24 6.1 編碼描述.24 6.2 核心代碼:.24 第第 7 7 章章 軟件測試軟件測試.29 7.1 軟件測試的目的.29 7.2 軟件測試的原則.29 7.3 測試的研究和選擇.30 7.4 測試的過程及組織.30

9、7.5 測試用例及結(jié)果.30 7.5.1 登錄模塊測試.30 7.5.2 我的位置模塊 .30 7.5.3 軌跡監(jiān)控模塊 .31 7.5.4 軌跡回放模塊 .31 7.5.5 GPS 參數(shù)設(shè)置模塊 .32 7.5.6 用戶信息管理模塊 .32 第第 8 章章 軟件使用說明書軟件使用說明書.34 8.1 登錄注冊系統(tǒng).34 8.2 我的位置部分操作.35 8.3 軌跡監(jiān)控部分操作.35 8.4 軌跡回放部分操作.37 8.5 GPS 參數(shù)設(shè)置部分操作.39 8.6 用戶信息管理部分操作.39 設(shè)計(jì)總結(jié)設(shè)計(jì)總結(jié).42 參考文獻(xiàn)參考文獻(xiàn).43 外文原文外文原文.44 外文譯文外文譯文.52 致致 謝

10、謝.59 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 0 第第 1 1 章章 緒緒 論論 1.1 項(xiàng)目背景項(xiàng)目背景 在移動 4G 網(wǎng)絡(luò)飛速發(fā)展的今天,智能手機(jī)的廣泛使用,已經(jīng)使其成為了信息化世界的主 流掌上移動設(shè)備.在各種五花八門的智能手機(jī)平臺中,Android 系統(tǒng)通過其強(qiáng)大的開源性及平臺 移植性,已躍居成為世界上使用最廣泛的手機(jī)平臺之一.同時(shí),在眾多的 Android 應(yīng)用中,各類車 輛監(jiān)控軟件也逐漸走向成熟,更多的功能需求也隨之而來. 1.2 實(shí)際意義實(shí)際意義 通過高德地圖官方提供的 API,開發(fā)一款基于 Android 平臺的車輛信息管理軟件,以實(shí)現(xiàn) 對車輛軌跡的實(shí)時(shí)定位和重現(xiàn).用戶交互方面,通過簡單清新的

11、界面設(shè)計(jì),實(shí)現(xiàn)更加人性化的用 戶體驗(yàn). 1.3 Android 系統(tǒng)簡介系統(tǒng)簡介 Android 是一種以 Linux 為基礎(chǔ)的開放性的源代碼操作系統(tǒng),主要使用于移動便攜設(shè)備。 2012 年 2 月數(shù)據(jù)顯示,Android 操作系統(tǒng)占據(jù)全球智能手機(jī)市場 52.5%的巨大份額,中國市場 占有率約為 68.4%。Android 系統(tǒng)通過其強(qiáng)大的開源性及平臺移植性,已躍居成為世界上使用 最廣泛的手機(jī)平臺之一同時(shí),本系統(tǒng)就是基于 Android 平臺實(shí)現(xiàn)的。 1.4 Bmob 服務(wù)器服務(wù)器 Bmob 是一個(gè)在線的第三方云端服務(wù)器,可提供數(shù)據(jù)服務(wù),文件服務(wù),推送服務(wù),擴(kuò)展服務(wù)等. Android 客戶端

12、可以通過該云服務(wù)器上傳或者下載查詢數(shù)據(jù),使用起來更加簡單方便. Bmob 有如下幾點(diǎn)的功能和優(yōu)勢:(在數(shù)據(jù)服務(wù)方面) (1)具有豐富的數(shù)據(jù)類型,使用更加自由; Bmob 無模式(schema-free)對象存儲,Bmob 提供了豐富的數(shù)據(jù)類型,包括 String (字符串)、Number(數(shù)值,包括整數(shù)和浮點(diǎn)數(shù))、Boolean(布爾值)、Date(日期)、 File(文件)、Geopoint(地理位置)、Array(數(shù)組)、Object(對象)等。 (2)數(shù)據(jù)操作更加簡單方便; Bmob 提供了一體化的可視化后臺服務(wù),使數(shù)據(jù)操作起來簡單快捷,增刪改查可以實(shí)現(xiàn) 云端同步。同時(shí),也可以進(jìn)行離線下

13、數(shù)據(jù)操作,足以靈活應(yīng)對各種用戶網(wǎng)絡(luò)不穩(wěn)定的情況, 另外,Bmob 還支持多表關(guān)聯(lián)處理,實(shí)現(xiàn)數(shù)據(jù)的批量處理,同時(shí)還可以實(shí)現(xiàn)本地化數(shù)據(jù)緩存 操作,使數(shù)據(jù)存取更簡潔。 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 1 (3)采用云端代碼,實(shí)現(xiàn)更加靈活; 對于一些比較復(fù)雜的軟件應(yīng)用,開發(fā)者更希望自己可以對業(yè)務(wù)邏輯的實(shí)現(xiàn)有一定的掌 控,這一方面,Bmob 云端代碼考慮到了這種靈活性,提供另外讓代碼直接在 Bmob 云上運(yùn)行 的功能效果,如果在云端更新了部分代碼,其他的移動應(yīng)用將會立即自動更新,這使得新功 能的上線發(fā)布變得更加便捷。 (4)無條件配合定時(shí)任務(wù),操作更方便; 有了云端代碼的黃金搭檔,Bmob 能在給定時(shí)間點(diǎn)或給定時(shí)

14、間間隔的基礎(chǔ)上,自動執(zhí)行 云端代碼。通過這樣的功能我們可以實(shí)現(xiàn)類似于定時(shí)任務(wù)計(jì)算排行榜的效果,以及定時(shí)開 通某個(gè)用戶某項(xiàng)權(quán)限等需求,這使得操作簡單方便。 (5)無線的個(gè)性化定制,更有愛; Bmob 的公有云用戶可以任意享受的數(shù)據(jù)存儲空間和 API 請求次數(shù),這使得中小型的 開發(fā)者可以更加放心使用該技術(shù)。此外,一旦有新的需求,專屬的私有云服務(wù)足夠滿足用 戶個(gè)性化需求,同時(shí)還有更多的特級服務(wù)隨時(shí)享用。 (6)獲得平臺 SDK 的支持,更省事 Bmob 提供全平臺的 SDK 支持,僅僅需要一個(gè)云端數(shù)據(jù)庫,便可輕松實(shí)現(xiàn)多平臺數(shù)據(jù) 共享,云端實(shí)時(shí)更新,各實(shí)時(shí)同步。 1.5 設(shè)計(jì)說明書的內(nèi)容設(shè)計(jì)說明書的內(nèi)

15、容 本系統(tǒng)對基于 Android 智能手機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng)進(jìn)行設(shè)計(jì)和開發(fā),以實(shí)現(xiàn)對車 輛軌跡信息的實(shí)時(shí)監(jiān)控和分析。本軟件的難點(diǎn)在于應(yīng)用高德地圖的 API,第三方服務(wù)器 Bmob 的數(shù)據(jù)服務(wù)和用戶管理的操作以及 GPS 的相關(guān)技術(shù),同時(shí)忽略硬件接口,模擬數(shù)據(jù)文件實(shí)現(xiàn)實(shí) 時(shí)位置和軌跡。 該設(shè)計(jì)說明書包括共包含 8 章:第 1 章,緒論,即該章節(jié),主要介紹了基于 Android 智能手 機(jī)的車輛監(jiān)控和軌跡回放系統(tǒng)的開發(fā)背景,實(shí)際意義,相關(guān)技術(shù)的介紹以及其該系統(tǒng)的設(shè)計(jì)原 則;第 2 章,可行性研究,主要介紹了對該系統(tǒng)的可行性進(jìn)行了分析,主要包括系統(tǒng)的規(guī)模和目 標(biāo),目前正在使用的系統(tǒng),分析系統(tǒng)數(shù)

16、據(jù)流,數(shù)據(jù)字典,可行性分析總結(jié)等;第 3 章,需求分析,主 要描述了系統(tǒng)進(jìn)行需求分析中所得到的總體結(jié)論,包括系統(tǒng)的需求分析、系統(tǒng)的功能性描述、 系統(tǒng)運(yùn)行流程分析、E-R 圖等等;第 4 章,總體設(shè)計(jì),主要描述了系統(tǒng)軟件結(jié)構(gòu)、硬件配置方 面的規(guī)劃,分析系統(tǒng)的總體設(shè)計(jì)方案,系統(tǒng)的特點(diǎn),對系統(tǒng)功能模塊的設(shè)計(jì),系統(tǒng)功能的描述,以 及對編程環(huán)境的配置和選擇;第 5 章,詳細(xì)設(shè)計(jì),本章包括對數(shù)據(jù)庫的具體設(shè)計(jì)以及對各個(gè)模 塊的詳細(xì)設(shè)計(jì);第 6 章,編碼,介紹了編碼方面的相關(guān)知識;第 7 章,軟件測試,本章主要對本系 統(tǒng)的功能進(jìn)行測試,包括軟件測試的原則、測試過程的注意事項(xiàng)以及組織、測試用例的過程 蘭州理工大

17、學(xué)畢業(yè)設(shè)計(jì) 2 及測試結(jié)果等;第 8 章,軟件使用說明書,本章介紹了如何使用本軟件,以及如何使用戶能更好、 更快捷地使用該系統(tǒng)。此外,還包括設(shè)計(jì)總結(jié),參考文獻(xiàn)和致謝等內(nèi)容。 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 3 第第 2 2 章章 可行性研究可行性研究 2.1 系統(tǒng)目標(biāo)系統(tǒng)目標(biāo) 系統(tǒng)基本目標(biāo)有以下幾個(gè): (1)對每一個(gè)車輛的當(dāng)前位置實(shí)現(xiàn)準(zhǔn)確定位; (2)對車輛的軌跡信息進(jìn)行實(shí)時(shí)的定位和回放; (3)對登陸車輛的 GPS 信息進(jìn)行任意設(shè)置; (4)對車輛的登陸密碼等基本信息進(jìn)行管理。 2.2 系統(tǒng)數(shù)據(jù)流分析系統(tǒng)數(shù)據(jù)流分析 在經(jīng)過仔細(xì)調(diào)查多方用戶需求的基礎(chǔ)上,得到該系統(tǒng)的數(shù)據(jù)流程圖。如下圖 2-1 所示。 圖

18、 2-1 系統(tǒng)數(shù)據(jù)流程圖 2.3 數(shù)據(jù)字典數(shù)據(jù)字典 通過對本系統(tǒng)的數(shù)據(jù)流程的仔細(xì)分析,設(shè)計(jì)了數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:(系統(tǒng)采用第三方 服務(wù)器 Bmob 進(jìn)行數(shù)據(jù)存儲管理) (1)用戶(車輛)基本信息(一個(gè)用戶即一輛車,一輛車一個(gè) GPS 的 ID) 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 4 記錄 id 描述=objectId,STRING 型,主鍵(第三方提供) 當(dāng)前車輛名稱(登錄名稱)描述=車輛名稱 username,STRING 型 當(dāng)前車輛名稱(密碼)描述=車輛登陸密碼 password,STRING 型 當(dāng)前位置描述=車輛位置信息,currentGeoPoint,BmobGeoPoint 型, (2)當(dāng)

19、前位置信息 記錄 id 描述=objectId,STRING 型,主鍵(第三方提供) 車輛 id 描述=parentId,用來標(biāo)示車輛的唯一性,STRING 型,外鍵 當(dāng)前位置描述=車輛當(dāng)前位置信息 bmobGeoPoint,BmobGeoPoint 型 創(chuàng)建時(shí)間=創(chuàng)建時(shí)間,createAt,Date 型 更新時(shí)間=更新時(shí)間,updateAt,Date 型 (3)車輛軌跡信息 記錄 id 描述=objectId,STRING 型,主鍵(第三方提供) 所有行程軌跡點(diǎn)描述=車輛的軌跡信息.latLngs,ArrayList 型 車輛 id 描述=parentId,用來標(biāo)示車輛的唯一性,STRING

20、 型,外鍵 創(chuàng)建時(shí)間=創(chuàng)建時(shí)間,createAt,Date 型 更新時(shí)間=更新時(shí)間,updateAt,Date 型 2.4 可行性分析可行性分析 2.4.1 經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性 對于一個(gè)完全免費(fèi)平臺的軟件,開發(fā)周期和開發(fā)成本都不會太高,況且是面向個(gè)人,更不會 產(chǎn)生企業(yè)級應(yīng)用的成本預(yù)算,所以,在開發(fā)的過程中,充分的考慮到該課題的特性,我們需要擁有 一臺可以使用 GPS 定位,并且是具有穩(wěn)定的 Android 系統(tǒng)的網(wǎng)絡(luò)連接正常的智能手機(jī),在硬件 方面,本人已經(jīng)擁有一部可用的手機(jī),在其它方面,應(yīng)該不會產(chǎn)生太多硬件設(shè)備的費(fèi)用。 2.4.2 技術(shù)可行性技術(shù)可行性 該系統(tǒng)用到了目前市場上比較流行的手機(jī)

21、操作系統(tǒng)-Android,以及高德地圖。由于本人 并沒有 Android 開發(fā)方面的經(jīng)驗(yàn),更沒有系統(tǒng)地學(xué)習(xí)過相關(guān)方面的知識,所以要完成本系統(tǒng)就 需要從零開始學(xué)習(xí) Android,不過比較安慰的是,在掌握了豐富的 JAVA 知識的基礎(chǔ)上,學(xué)習(xí) Android 的過程中并沒有想象中的那么恐怖,因?yàn)?Google 提供了在 eclipse 上面的 ADK 插件, 在一步步完善課題的同時(shí),同時(shí)參照到了高德地圖提供的詳細(xì)的開發(fā)說明文檔,一點(diǎn)一點(diǎn)攻克, 慢慢完善課題也就沒有那么困難,所以,在理論上是可行的。 2.4.3 應(yīng)用可行性應(yīng)用可行性 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 5 首先分析這個(gè)系統(tǒng)的用戶,主要是在車輛軌

22、跡管理方面有一定需求的用戶。系統(tǒng)的以 APP 的形式展示,界面友好簡單;用戶可直接通過聯(lián)網(wǎng)下載安裝后使用該系統(tǒng)即可,其使用方式 是用戶得心應(yīng)手的。所以在操作上來說基本可行。 結(jié)論意見:綜上分析上可以看到,對于個(gè)人開發(fā)該小型系統(tǒng)具有很好的經(jīng)濟(jì)、技術(shù)、應(yīng) 用性。同時(shí)通過該系統(tǒng)的開發(fā)可以鍛煉我的專業(yè)能力,也使我的 Java 理論知識得到質(zhì)的升華。 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 6 第第 3 3 章章 需求分析需求分析 3.1 問題描述:問題描述: (1)本系統(tǒng)需設(shè)計(jì)一款可以應(yīng)用于 Android 智能手機(jī)的車輛實(shí)時(shí)監(jiān)控和軌跡回放的應(yīng)用 程序。所以,硬件上需要一臺具有 Android 系統(tǒng)的手持設(shè)備。 (2)

23、系統(tǒng)要求在運(yùn)行中能實(shí)時(shí)記錄車輛行駛過程中的 GPS 經(jīng)緯點(diǎn)信息,同時(shí)可以實(shí)現(xiàn)任意 時(shí)刻軌跡的回放和相關(guān) GPS 信息的設(shè)置。在用戶信息方面,系統(tǒng)要求實(shí)現(xiàn)對進(jìn)本信息進(jìn)行修 改。 (3)最后,為了提高程序的可用性,在 UI 設(shè)計(jì)方面需要提高軟件的交互性,體現(xiàn)出更加人性 化的用戶體驗(yàn)。 3.2 系統(tǒng)功能描述:系統(tǒng)功能描述: 3.2.1 實(shí)時(shí)位置監(jiān)控功能實(shí)時(shí)位置監(jiān)控功能: (1)記錄實(shí)時(shí)的 GPS 經(jīng)緯點(diǎn)數(shù)據(jù); (2)軌跡點(diǎn)連線,形成軌跡; (3)存儲軌跡信息; 3.2.2 軌跡回放功能軌跡回放功能: (1)車輛軌跡選擇性回放; (2)導(dǎo)出車輛軌跡圖片; (3)車輛軌跡選擇性刪除; 3.2.3 我的位

24、置功能我的位置功能: (1)登陸成功即定位; (2)手動定位當(dāng)前位置; 3.2.4 GPS 參數(shù)設(shè)置功能參數(shù)設(shè)置功能: (1)軌跡播放模式的設(shè)置; (2)定位顯示信息的設(shè)置; 3.2.5 用戶信息設(shè)置功能用戶信息設(shè)置功能: (1) 修改用戶登陸密碼; (2) 修改用戶基本登陸頭像; 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 7 3.3 系統(tǒng)流程圖系統(tǒng)流程圖: 進(jìn)入系統(tǒng)之后用戶可以進(jìn)行車輛軌跡監(jiān)控管理,車輛軌跡回放管理,GPS 參數(shù)設(shè)置管理,我 的位置(當(dāng)前位置)管理,用戶信息管理.該系統(tǒng)的流程圖如圖 3-1 所示。 圖 3-1 系統(tǒng)流程圖 3.4 數(shù)據(jù)流程圖數(shù)據(jù)流程圖: 在仔細(xì)研究系統(tǒng)數(shù)據(jù)流程的基礎(chǔ)上,得到系統(tǒng)所

25、要處理數(shù)據(jù)的流程。數(shù)據(jù)流程圖如圖 3-2 所示: 圖 3-2 系統(tǒng)數(shù)據(jù)流程圖 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 8 在對如上數(shù)據(jù)流程圖進(jìn)一步細(xì)化后,得到各個(gè)子模塊的數(shù)據(jù)流程圖如下所示。 登錄模塊和我的位置模塊,如圖 3-3 所示: 圖 3-3 登錄模塊和我的位置模塊數(shù)據(jù)流程圖 軌跡監(jiān)控模塊,如圖 3-4 所示: 圖 3-4 軌跡監(jiān)控模塊數(shù)據(jù)流程圖 軌跡回放模塊,如圖 3-5 所示: 圖 3-5 軌跡回放模塊數(shù)據(jù)流程圖 用戶信息修改模塊,如圖 3-6 所示: 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 9 圖 3-6 用戶信息修改模塊數(shù)據(jù)流程圖 3.4 系統(tǒng)系統(tǒng) E-R 圖描述圖描述: 系統(tǒng)實(shí)體及其屬性如下圖所示。 圖 3-7

26、用戶實(shí)體及屬性 圖 3-8 位置實(shí)體及屬性 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 10 圖 3-9 軌跡實(shí)體及屬性 圖 3-10 各實(shí)體關(guān)系 ER 圖 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 11 第第 4 4 章章 總體設(shè)計(jì)總體設(shè)計(jì) 4.1 系統(tǒng)特點(diǎn)系統(tǒng)特點(diǎn) (1)本系統(tǒng)通過對 UI 的巧妙設(shè)計(jì),具備人性化的用戶體驗(yàn);通過 MD5 算法對用戶密碼加以 處理,一定程度上提高了系統(tǒng)的安全性。 (2)可以完全通過移動設(shè)備客戶端登錄系統(tǒng),支持多平臺運(yùn)行,維護(hù)起來更加方便。 (3)各功能模塊獨(dú)立性強(qiáng),可以根據(jù)需要任意組合。 (4)支持所有的 Android 操作系統(tǒng)。 4.2 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu) 4.2.1 系統(tǒng)整體先進(jìn)性系統(tǒng)整體先進(jìn)性

27、 對于 Android 系統(tǒng)的軟件的優(yōu)劣,國內(nèi)市場基本達(dá)成一定的共識,表現(xiàn)為如下幾點(diǎn): (1)開放性開放性 談到優(yōu)勢方面,首談 Android 平臺的開放性,開放的操作平臺允許任何任意異動終端廠商 隨時(shí)加入到 Android 的大家庭中來。 (2)實(shí)施獨(dú)立性實(shí)施獨(dú)立性 在曾經(jīng)的一段時(shí)間,尤其是在歐美等地區(qū),各類手機(jī)應(yīng)用都受到運(yùn)營商的各種制約,使用的 功能,接入的網(wǎng)絡(luò),無時(shí)無刻不受到運(yùn)營商的肆意控制。自從 iPhone 系列上市,用戶便可以更加 方便地連接網(wǎng)絡(luò),”霸道的”運(yùn)營商的制約瞬間減少。 (3)豐富的硬件選擇豐富的硬件選擇 這方面依舊與 Android 平臺的開放性息息相關(guān),由于 Andr

28、oid 平臺的開放性,更多的相關(guān) 廠商會推出五花八門,功能各異的多種產(chǎn)品。盡管功能上存在各種差異,但依舊不會影響到數(shù) 據(jù)同步、甚至于軟件的兼容方面的特性。 4.2.2 系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)采用傳統(tǒng)的 C/S 結(jié)構(gòu),即客戶機(jī)和服務(wù)器端結(jié)構(gòu),其核心的工作流程是將復(fù)雜的計(jì) 算機(jī)應(yīng)用任務(wù)巧妙的分解成多個(gè)子任務(wù),由多臺計(jì)算機(jī)分工協(xié)同完成,即采用”功能分布式”原 則,客戶端在完成數(shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能的同時(shí),服務(wù)器端也要完成數(shù)據(jù)庫管理 系統(tǒng)的核心任務(wù); C/S 結(jié)構(gòu)的優(yōu)點(diǎn):能全方位發(fā)揮客戶端 PC 機(jī)的處理能力,很多復(fù)雜的工作可以在客戶端簡 單處理以后再轉(zhuǎn)交給服務(wù)器處理,即客戶

29、端響應(yīng)速度相對來說比較快,具體表現(xiàn)為以下兩點(diǎn): 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 12 (1)應(yīng)用服務(wù)器所要運(yùn)行數(shù)據(jù)負(fù)荷相對較輕; (2)數(shù)據(jù)的存儲管理功能會更加透明. 但是傳統(tǒng)的 C/S 體系結(jié)構(gòu)存在一定的缺陷:用戶在使用前需要下載并安裝好相應(yīng)的客戶 端程序才能訪問到服務(wù)器,這樣的話,不但給用戶造成了相應(yīng)的不便,而且容易導(dǎo)致客戶端負(fù)載 過重,影響整個(gè)系統(tǒng)的性能,得不償失! 系統(tǒng)結(jié)構(gòu)圖如圖 4-1 所示: API,數(shù)據(jù)庫操作 數(shù)據(jù)采集 APP. Service Service 監(jiān)控終端 Client 圖 4-1 系統(tǒng)結(jié)構(gòu)圖 4.3 系統(tǒng)的總體設(shè)計(jì)方案系統(tǒng)的總體設(shè)計(jì)方案 本系統(tǒng)針對每個(gè)登陸該系統(tǒng)的車輛的軌跡

30、信息進(jìn)行有效管理,在提高用戶體驗(yàn)度的同時(shí), 可以有效地提供更全方位的服務(wù): (1)登陸注冊模塊: 在用戶首次登陸系統(tǒng)后,如果沒有退出當(dāng)前賬號,在用戶下次進(jìn)入系統(tǒng)的同時(shí),提供了自 動登陸的功能,方便用戶操作,同時(shí),在密碼的安全性方面,使用的 MD5 加密算法,一定程度上提 高了系統(tǒng)的安全性. (2)我的位置模塊: 在用戶成功登陸系統(tǒng)后,進(jìn)入主頁面的同時(shí),顯示當(dāng)前登陸車輛的位置信息, 方便用戶 的后續(xù)操作. (3)軌跡回放模塊: 在用戶進(jìn)行軌跡回放操作完成后,增加了導(dǎo)出軌跡圖片的功能,以當(dāng)前時(shí)間信息命名圖 片,為用戶后續(xù)查看軌跡信息提供了相當(dāng)大的方便. (4)用戶信息管理模塊: 本系統(tǒng)提供了更換用

31、戶登陸頭像的功能,大大增加了系統(tǒng)的靈活度和用戶體驗(yàn)度. 4.4 編程環(huán)境的選擇編程環(huán)境的選擇 4.4.1 編程語言編程語言JAVA JAVA的開發(fā)環(huán)境有不同的版本,如 sun 公司的 JAVA Developers Kit, 簡稱 JDK。后來微 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 13 軟公司推出了支持 JAVA 規(guī)范的 Microsoft Visual J+ JAVA 開發(fā)環(huán)境,簡稱 VJ+。 JAVA 的特點(diǎn) (1)平臺無關(guān)性 平臺無關(guān)性是指 JAVA 能運(yùn)行于不同的平臺。JAVA 引進(jìn)虛擬機(jī)原理,并運(yùn)行于虛擬機(jī), 實(shí)現(xiàn)不同平臺的 JAVA 接口之間。使用 JAVA 編寫的程序能在世界范圍內(nèi)共享。JA

32、VA 的數(shù) 據(jù)類型與機(jī)器無關(guān),JAVA 虛擬機(jī)(JAVA Virtual Machine)是建立在硬件和操作系統(tǒng)之上,實(shí) 現(xiàn) JAVA 二進(jìn)制代碼的解釋執(zhí)行功能,提供于不同平臺的接口的。 (2)安全性 JAVA 的編程類似 C+,學(xué)習(xí)過 C+的讀者將很快掌握 JAVA 的精髓。JAVA 舍棄了 C+ 的指針對存儲器地址的直接操作,程序運(yùn)行時(shí),內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指 針侵入系統(tǒng)。JAVA 對程序提供了安全管理器,防止程序的非法訪問。 (3)面向?qū)ο?JAVA 吸取了 C+面向?qū)ο蟮母拍?將數(shù)據(jù)封裝于類中,利用類的優(yōu)點(diǎn),實(shí)現(xiàn)了程序的簡潔 性和便于維護(hù)性。在 JAVA 中,類的繼

33、承關(guān)系是單一的非多重的,一個(gè)子類只有一個(gè)父類,子 類的父類又有一個(gè)父類。JAVA 提供的 Object 類及其子類的繼承關(guān)系如同一棵倒立的樹形, 根類為 Object 類, Object 類功能強(qiáng)大,經(jīng)常會使用到它及其它派生的子類。 (4)分布式 JAVA 建立在擴(kuò)展 TCP/IP 網(wǎng)絡(luò)平臺上。庫函數(shù)提供了用 HTTP 和 FTP 協(xié)議傳送和接受 信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機(jī)文件一樣容易。 (5)鍵壯性 JAVA 致力于檢查程序在編譯和運(yùn)行時(shí)的錯誤。JAVA 自已操縱內(nèi)存減少了內(nèi)存出錯的 可能性。JAVA 還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。JAVA 提供:Null 指

34、針檢測、數(shù)組 邊界檢測、異常出口、Byte code 校驗(yàn)。 JAVA 去掉了以下幾個(gè) C 和 C+功能: 指針運(yùn)算; 結(jié)構(gòu); typedefs; #define; 需要釋放內(nèi)存; 這將減少了平常出錯的 50%,而且,JAVA 很小,整個(gè)解釋器只需 215K 的 RAM。 面向?qū)ο?JAVA 實(shí)現(xiàn)了 C+的基本面向?qū)ο蠹夹g(shù)并有一些增強(qiáng),(為了語言簡單,刪除了 一些功能)。JAVA 處理數(shù)據(jù)方式和用對象接口處理對象數(shù)據(jù)方式一樣。 4.4.2 開發(fā)工具開發(fā)工具Eclipse Eclipse 是一款可擴(kuò)展的開放性源代碼集成開發(fā)環(huán)境。IDE 經(jīng)常將其應(yīng)用范圍限定在“開 發(fā)、構(gòu)建和調(diào)試”的周期之中。Ec

35、lipse 允許在同一集成開發(fā)環(huán)境中集成來自不同的供應(yīng)商 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 14 的工具,同時(shí)實(shí)現(xiàn)工具之間的互操作性,從而明顯改變項(xiàng)目的工作流程,使開發(fā)者可以更加專注 在實(shí)際的嵌入式醒目的目標(biāo)上。 Eclipse 開發(fā)框架的這種靈活性來源于其豐富的擴(kuò)展點(diǎn)。它們是在 XML 中定義了已知的 接口,并以此充當(dāng)插件的耦合點(diǎn)。同時(shí)該擴(kuò)展點(diǎn)的范圍從常規(guī)表述過濾器中的簡單字符串,到 每一個(gè)可能的 JAVA 類的描述。任意的 Eclipse 插件定義的擴(kuò)展點(diǎn)都可以被其它的插件使用, 反之,任意的 Eclipse 插件也可以根據(jù)其它插件定義的擴(kuò)展點(diǎn)的規(guī)則。除了了解接口外,插件不 知道它們通過擴(kuò)展點(diǎn)提供的服

36、務(wù)將如何被使用。 利用 Eclipse,我們可以將高級設(shè)計(jì)與低級開發(fā)工具巧妙的結(jié)合在一起。事實(shí)上,由于 Eclipse 并不了解開發(fā)語言,所以無論 JAVA 語言調(diào)試器、C/C+調(diào)試器還是匯編調(diào)試器都是 有效的,并可以在相同的框架內(nèi)同時(shí)瞄準(zhǔn)不同的進(jìn)程或節(jié)點(diǎn)。 Eclipse 的最大特點(diǎn)是它能接受由 JAVA 開發(fā)者自己編寫的開放源代碼插件,這類似于微 軟公司的 Visual Studio 和 Sun 微系統(tǒng)公司的 NetBeans 平臺。Eclipse 為工具開發(fā)商提供了更 好的靈活性,使他們能更好地控制自己的軟件技術(shù)。 4.5 系統(tǒng)運(yùn)行環(huán)境配置系統(tǒng)運(yùn)行環(huán)境配置 操作系統(tǒng):Android 操作

37、系統(tǒng); 服務(wù)器:Bmob 服務(wù)器; 網(wǎng)絡(luò)環(huán)境:具有較好的網(wǎng)絡(luò)連接; 硬件配置:具有 Android 操作系統(tǒng)的智能手機(jī)。 4.6 系統(tǒng)功能模塊設(shè)計(jì)系統(tǒng)功能模塊設(shè)計(jì) 本系統(tǒng)可劃分為五大個(gè)功能模塊:我的位置模塊,軌跡監(jiān)控模塊,軌跡回放模塊,GPS 參數(shù) 設(shè)置模塊,用戶信息管理模塊。 整個(gè)系統(tǒng)的功能模塊,如圖 4-2 所示: 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 15 圖 4-2 系統(tǒng)功能模塊圖 我的位置模塊:顯示當(dāng)前用戶的位置信息,同時(shí)也可以實(shí)現(xiàn)手動定位。 軌跡監(jiān)控模塊:對每個(gè)車輛的行程進(jìn)行監(jiān)控并記錄(模擬實(shí)現(xiàn))。 軌跡回放模塊:用于查看某個(gè)車輛的某個(gè)時(shí)間段的軌跡信息,包括途經(jīng)信息,同時(shí)可以實(shí) 現(xiàn)對車輛軌跡路線進(jìn)

38、行截圖保存。 GPS 參數(shù)設(shè)置模塊:根據(jù)用戶需求,對車輛的的軌跡播放模式和位置信息模式進(jìn)行設(shè)置。 用戶信息管理模塊:根據(jù)用戶需求,對用戶的登錄密碼和登陸頭像進(jìn)行設(shè)置。 在系統(tǒng)功能分析的基礎(chǔ)上,得到以下的功能模塊圖: 我的位置模塊:顯示當(dāng)前用戶的位置信息,同時(shí)也可以實(shí)現(xiàn)手動定位。 圖 4-3 我的位置模塊圖 軌跡監(jiān)控模塊:對每個(gè)車輛的行程進(jìn)行監(jiān)控并記錄,實(shí)現(xiàn)軌跡數(shù)據(jù)的增加功能(模擬實(shí)現(xiàn))。 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 16 圖 4-4 軌跡監(jiān)控模塊圖 軌跡回放模塊:用于查看某個(gè)車輛的某個(gè)時(shí)間段的軌跡信息,包括途經(jīng)信息,同時(shí)可以實(shí) 現(xiàn)對車輛軌跡路線進(jìn)行截圖保存,也可以選擇刪除軌跡信息。 圖 4-5 軌跡

39、回放模塊圖 GPS 參數(shù)設(shè)置模塊:根據(jù)用戶需求,對車輛的的軌跡播放模式和位置信息模式進(jìn)行設(shè)置。 圖 4-6 GPS 參數(shù)設(shè)置模塊圖 用戶信息管理模塊:根據(jù)用戶需求,對用戶的登錄密碼和登陸頭像進(jìn)行修改設(shè)置。 圖 4-7 用戶信息管理模塊圖 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 17 第第 5 章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 5.1 管理模塊詳細(xì)設(shè)計(jì)管理模塊詳細(xì)設(shè)計(jì) 5.1.1 登陸模塊設(shè)計(jì)登陸模塊設(shè)計(jì) 用戶正確登陸系統(tǒng)后進(jìn)行操作。 程序流程圖如圖 5-1 所示。 圖 5-1 登陸模塊程序流程圖 5.1.2 我的位置模塊設(shè)計(jì)我的位置模塊設(shè)計(jì) 用戶登錄系統(tǒng)后: (1)顯示當(dāng)前位置信息; (2)手動定位當(dāng)前位置并顯示位置信息

40、; 程序流程圖如圖 5-2 所示。 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 18 圖 5-2 我的位置模塊程序流程圖 5.1.3 軌跡監(jiān)控模塊設(shè)計(jì)軌跡監(jiān)控模塊設(shè)計(jì) 用戶正常登錄后: 對登陸車輛軌跡進(jìn)行監(jiān)控(模擬),上傳軌跡信息到數(shù)據(jù)庫; 程序流程圖如圖 5-3 所示。 圖 5-3 軌跡監(jiān)控模塊程序流程圖 5.1.4 軌跡回放模塊設(shè)計(jì)軌跡回放模塊設(shè)計(jì) 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 19 用戶正常登錄后: (1)對該登陸用戶的軌跡信息進(jìn)行選擇性回放; (2)導(dǎo)出軌跡圖片; 程序流程圖如圖 5-4 所示。 圖 5-4 軌跡回放模塊程序流程圖 5.1.5 GPS 參數(shù)設(shè)置模塊設(shè)計(jì)參數(shù)設(shè)置模塊設(shè)計(jì) 對登陸用戶的軌跡播放模式和位置

41、信息進(jìn)行設(shè)置,程序流程圖如圖 5-5 所示。 圖 5-5 GPS 參數(shù)設(shè)置模塊程序流程圖 5.1.6 用戶信息設(shè)置模塊設(shè)計(jì)用戶信息設(shè)置模塊設(shè)計(jì) (1)修改登錄用戶的密碼; 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 20 (2)修改登陸用戶的頭像. 程序流程圖如圖 5-6 所示。 圖 5-6 用戶信息修改模塊程序流程圖 5.2 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì) 5.2.1 系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì)系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì) 根據(jù)該系統(tǒng)所需額硬件設(shè)備和數(shù)據(jù)庫平臺系統(tǒng)的需求,需要對數(shù)據(jù)庫系統(tǒng)的物理存儲的 結(jié)構(gòu)進(jìn)行有效的規(guī)劃,完成估計(jì)數(shù)據(jù)庫的大小,各主要部分的訪問頻度。同時(shí),需要確定數(shù)據(jù)文 件的命名規(guī)則,日志文件的命名規(guī)則。數(shù)據(jù)文件和日志文件的物理存

42、放位置的設(shè)置,如果需要 多個(gè)存儲設(shè)備,則需要規(guī)劃數(shù)據(jù)文件的組織方式。 系統(tǒng)內(nèi)存使用配置,一般來說,數(shù)據(jù)庫系統(tǒng)會自動維護(hù)系統(tǒng)內(nèi)存,但有時(shí)為了某些性能問題, 可以根據(jù)需要對數(shù)據(jù)庫的內(nèi)存管理進(jìn)行另行配置。 5.2.2 表設(shè)計(jì)表設(shè)計(jì) 根據(jù)前面的數(shù)據(jù)字典的設(shè)計(jì),細(xì)化的數(shù)據(jù)庫表的設(shè)計(jì)。表的設(shè)計(jì)包括以下內(nèi)容: 表名(中英文); 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 21 字段名; 字段數(shù)據(jù)類型; 字段是否為空; 字段的長度; 備注,對字段的解釋性說明:主鍵、外鍵、是否自動增一、是否為索引、是否唯一、是 否進(jìn)行數(shù)據(jù)檢查等。 用戶(車輛)信息表: 表 5-7 用戶(車輛)信息表 字段名數(shù)據(jù)類型是否為空長度備注 objectId

43、STRING否主鍵,唯一 usernameSTRING否8 passwordSTRING否18 currentGeoPointBmobGeoPoint否 當(dāng)前位置信息表: 表 5-8 當(dāng)前位置信息表 字段名數(shù)據(jù)類型是否為空長度備注 objectIdSTRING否主鍵,唯一 parentIdSTRING否外鍵 bmobGeoPointBmobGeoPoint否 createAtDate否 updateAtDate否 軌跡信息表: 表 5-9 軌跡信息表 字段名數(shù)據(jù)類型是否為空長度備注 objectIdSTRING否主鍵,唯一 parentIdSTRING否外鍵 latLngsArrayList否

44、 createAtDate否 updateAtDate否 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 22 5.2.3 表之間的關(guān)聯(lián)設(shè)計(jì)表之間的關(guān)聯(lián)設(shè)計(jì) 為了保證數(shù)據(jù)的完整性,需要對表之間相互的數(shù)據(jù)進(jìn)行約束,主要是通過外鍵來實(shí)現(xiàn)數(shù)據(jù) 增刪時(shí)的數(shù)據(jù)完備。關(guān)系圖如圖 5-10 所示。 圖 5-10 表之間的關(guān)系圖 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 23 第第 6 章章 編碼編碼 6.1 編碼描述編碼描述 編碼,顧名思義是將信息從一種表現(xiàn)形式轉(zhuǎn)換為另一種表現(xiàn)形式的過程,也將之稱為計(jì)算 機(jī)編程語言的代碼簡稱編碼,編碼過程中,可以用預(yù)先規(guī)定好的方法將文字、數(shù)字等對象編成 與之對應(yīng)的數(shù)碼格式,或者將信息、數(shù)據(jù)等對象按照一定的規(guī)則轉(zhuǎn)換成與之

45、對應(yīng)的電脈沖信 號。另一方方面,編碼在電子計(jì)算機(jī)、遙控和通訊設(shè)備等方面也得到廣泛的使用。總之,編碼 是信息從一種形式或格式轉(zhuǎn)換為另一種形式的過程。解碼,是編碼的逆過程。 在計(jì)算機(jī)硬件領(lǐng)域中,編碼(coding)的定義是指用一定的代碼來表示各組需求的數(shù)據(jù)資 料,使之成為具有一定價(jià)值意義的計(jì)算機(jī)可以進(jìn)行處理和分析的信息。同時(shí)代碼可以用來作 為事物的記號,它的表現(xiàn)形式有很多種,其中它可以用數(shù)字、特殊的符號、字母、或之間的任 意組合來表示。 將數(shù)據(jù)轉(zhuǎn)換為與之對應(yīng)的代碼或編碼字符表現(xiàn),并能將之譯為原數(shù)據(jù)形式的過程,是計(jì)算 機(jī)形成具體指令的過程,也是我們程序設(shè)計(jì)中的不可或缺的一部分。例如,我們平常在地圖自

46、 動制圖中,按一定的規(guī)則將某些數(shù)字與一定的字母表示我們想要展現(xiàn)的地圖內(nèi)容的過程中,后 期通過編碼,使計(jì)算機(jī)能識別地圖的各地理要素,這便是一個(gè)形象的編碼過程。 6.2 核心代碼核心代碼: 本系統(tǒng)部分核心代碼如下: 用戶登陸模塊: public void onSuccess() / 獲取當(dāng)前的用戶 GlobalValue.vehicleEntity =BmobUser.getCurrentUser(LoginActivity.this,VehicleEntity.class); / 做一個(gè)本地密碼的存放 SharePreferenceUtilsharePreferenceUtil =SharePr

47、eferenceUtil.newInstance(LoginActivity.this); sharePreferenceUtil.putString(GlobalValue.vehicleEntity.getObjectId() + password, MD5.makeKeyByMD5(passwordValue); / 登錄成功以后 上傳一個(gè)坐標(biāo)表示當(dāng)前的坐標(biāo) uploadCurrentPosition(); 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 24 當(dāng)前位置模塊當(dāng)前位置模塊: / 請求數(shù)據(jù) BmobQuery bmobQuery = new BmobQuery(); bmobQuery.addWher

48、eEqualTo(parentId, GlobalValue.vehicleEntity.getObjectId(); bmobQuery.findObjects(this, new FindListener() Override public void onSuccess(List list) GlobalValue.vehicleEntity.setCurrentGeoPoint(list.get(0).getBmobGeoPoint(); / 獲取定位坐標(biāo) LatLng latLng = new LatLng(GlobalValue.vehicleEntity.getCurrentGeo

49、Point().getLatitude(), GlobalValue.vehicleEntity.getCurrentGeoPoint().getLongitude(); / 移動當(dāng)前的點(diǎn)到屏幕中央 CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(new CameraPosition(latLng, 16, 0, 0); aMap.moveCamera(cameraUpdate); / 反編地理編碼 GeocodeSearch geocodeSearch = new GeocodeSearch(MyActivi

50、ty.this); geocodeSearch.setOnGeocodeSearchListener(MyActivity.this); RegeocodeQuery regeocodeQuery = new RegeocodeQuery(new LatLonPoint( latLng.latitude, latLng.longitude), 300, GeocodeSearch.AMAP); geocodeSearch.getFromLocationAsyn(regeocodeQuery); public void onError(int i, String s) showToast(定位失

51、敗); / 取消進(jìn)度條 dismissProgress(); ); 軌跡實(shí)時(shí)定位模塊軌跡實(shí)時(shí)定位模塊: / 生成軌跡并上傳到服務(wù)器 private void createLocusAndUpdate() DLog.e(createLocusAndUpdate); 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 25 DialogUtil.dismissDialog(locusTipDialog); locus = new LocusEntity(); locus.setParentId(GlobalValue.vehicleEntity.getObjectId(); ArrayList latLngs = new Ar

52、rayList(); / 填充數(shù)據(jù) Random random = new Random(); LatLng baseLatlng = simulationBaseLatlng(random.nextInt(10); LatLng temp = null; for (int i = 0; i 10; i+) int mRand = random.nextInt(3); / 0 1 2 隨機(jī)數(shù) 0 表示 x 加 1 表示 y 加 2 表示 x,y 加 double xRand = random.nextDouble() / 100; / nextDouble 產(chǎn)生一個(gè) 0.0 - 1.0 的浮點(diǎn)

53、數(shù) if (NullUtil.isEmpty(baseLatlng) showToast(軌跡數(shù)據(jù)上傳失敗); return; switch (mRand) case 0: temp = new LatLng(baseLatlng.latitude + xRand, baseLatlng.longitude); break; case 1: temp = new LatLng(baseLatlng.latitude, baseLatlng.longitude + xRand); break; case 2: temp = new LatLng(baseLatlng.latitude + xRa

54、nd, baseLatlng.longitude + xRand); break; if (GlobalValue.bounds.contains(temp) latLngs.add(temp); baseLatlng = temp; 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 26 locus.setLatLngs(latLngs); showProgress(請稍等.); locus.save(this, new SaveListener() public void onSuccess() dismissProgress(); showToast(軌跡數(shù)據(jù)上傳成功!); / 畫軌跡的生成過程 drawLocus

55、Line(); public void onFailure(int statusCode, String errorMessage) dismissProgress(); switch (statusCode) case 9016: showToast(無網(wǎng)絡(luò)連接,請檢查您的手機(jī)網(wǎng)絡(luò)。); break; case 9010: showToast(網(wǎng)絡(luò)超時(shí)。); break; default: DLog.e( + statusCode + + errorMessage); showToast(軌跡數(shù)據(jù)上傳失敗!); ); / 畫軌跡線 private void drawLocusLine() 蘭

56、州理工大學(xué)畢業(yè)設(shè)計(jì) 27 / 清除地圖上面的當(dāng)前數(shù)據(jù)信息 aMap.clear(); / 隱藏菜單 menu.toggle(); / 實(shí)現(xiàn)軌跡的追蹤效果 final Timer timer = new Timer(); timer.schedule(new TimerTask() public void run() if (index locus.getLatLngs().size() - 1) / 采樣 latLngs = lineEquation(locus.getLatLngs().get(index), locus.getLatLngs().get(index + 1); / 發(fā)送通知

57、 Message msg = handler.obtainMessage(1); handler.sendMessage(msg); else timer.cancel(); , 0, 66); 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 28 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 29 第第 7 7 章章 軟件測試軟件測試 軟件測試,顧名思義,一種用來全面檢測軟件四大性質(zhì)的過程,即正確性,完整性,安全性,質(zhì) 量。簡而言之,軟件測試就是一種實(shí)際結(jié)果與期待結(jié)果之間的一種比較過程。軟件測試最經(jīng) 典定義如下:在既定的規(guī)則下對目標(biāo)程序進(jìn)行一系列的操作,以發(fā)現(xiàn)程序存在的各種錯誤,以 此來作為衡量軟件質(zhì)量的標(biāo)準(zhǔn),并對該軟件是否能滿足設(shè)計(jì)需求而

58、進(jìn)行評估的過程。在軟件 開發(fā)整體完成過程中以及開發(fā)完成后,要對目標(biāo)系統(tǒng)進(jìn)行充分的調(diào)試,這不僅關(guān)系到系統(tǒng)的完 整性,更與系統(tǒng)的應(yīng)用前景息息相關(guān)。另一方面,軟件測試所花費(fèi)的時(shí)間和精力并不少于開發(fā), 當(dāng)然,這也是不能用來比較的.從咱們的最終目的出發(fā),這一切都是為了保證系統(tǒng)在今后的運(yùn)行 過程中能少出錯,樂觀點(diǎn)就可以持續(xù)、穩(wěn)定的運(yùn)行。系統(tǒng)測試是將已經(jīng)完成的軟件、硬件以 及其它外部設(shè)備全部集成起來,進(jìn)行的系統(tǒng)綜合測試。 7.1 軟件測試的目的軟件測試的目的 嚴(yán)格意義上講,軟件測試的終極目標(biāo)是可以盡可能地保證軟件產(chǎn)品的質(zhì)量,在整個(gè)軟件開 發(fā)的周期內(nèi),每個(gè)環(huán)節(jié)都要對軟件產(chǎn)品的質(zhì)量進(jìn)行相當(dāng)嚴(yán)格的控制。軟件質(zhì)量是

59、由幾個(gè)方面 來衡量的:一是在正確的時(shí)間用正確的方法把一個(gè)工作做正確。二是符合一些應(yīng)用標(biāo)準(zhǔn)的要 求,比如不同國家的用戶不同的操作習(xí)慣和要求,項(xiàng)目工程中的可維護(hù)性、可測試性等要求。 三是質(zhì)量本身就是軟件達(dá)到了最開始所設(shè)定的要求,而代碼的優(yōu)美或精巧的技巧并不代表軟 件的高質(zhì)量。四是質(zhì)量也代表著它符合客戶的需要。作為軟件測試,最重要的一件事就是從 客戶的需求出發(fā),從客戶的角度去看產(chǎn)品,客戶會怎么去使用這個(gè)產(chǎn)品,使用過程中會遇到什么 樣的問題,只有這些問題都解決了,軟件產(chǎn)品的質(zhì)量才可以說是上去了。 7.2 軟件測試的原則軟件測試的原則 軟件測試從不同的角度出發(fā)會派生出兩種不同的測試原則:從用戶的角度出發(fā)

60、,就是希 望通過軟件測試能充分暴露軟件中存在的問題和缺陷,從而考慮是否可以接受該產(chǎn)品;從開 發(fā)者的角度出發(fā),就是希望測試能表明軟件產(chǎn)品不存在錯誤,已經(jīng)正確地實(shí)現(xiàn)了用戶的需求,確 立人們對軟件質(zhì)量的信心。為了達(dá)到上述的原則,那么需要注意以下幾點(diǎn): (1)測試應(yīng)該盡早進(jìn)行,最好在需求階段就開始介入,因?yàn)樽顕?yán)重的錯誤不外乎是系統(tǒng)不能 滿足用戶的需求。 (2)程序員應(yīng)該避免檢查自己的程序,軟件測試應(yīng)該由第三方來負(fù)責(zé)。 (3)設(shè)計(jì)測試用例時(shí)應(yīng)考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下 要制造極端狀態(tài)和意外狀態(tài),如網(wǎng)絡(luò)異常中斷、電源斷電等。 蘭州理工大學(xué)畢業(yè)設(shè)計(jì) 30 (4)應(yīng)該充分注意測

溫馨提示

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

最新文檔

評論

0/150

提交評論