




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、南京曉莊學(xué)院2015屆本科畢業(yè)論文分類(lèi)號(hào):學(xué)校代碼:11460 學(xué) 號(hào):11130815南京曉莊學(xué)院本科生畢業(yè)設(shè)計(jì)基于Android平臺(tái)和百度地圖的應(yīng)用系統(tǒng)Application system based on Android baidu map所屬院(部):數(shù)學(xué)與信息技術(shù)學(xué)院學(xué)生姓名: 指導(dǎo)教師: 研究起止日期:二一五 年 三 月 至 二一五 年 五 月【摘要】在電子信息技術(shù)的帶動(dòng)下,移動(dòng)操作系統(tǒng)飛速發(fā)展,在手機(jī)、平板等移動(dòng)終端上的定位系統(tǒng)應(yīng)用更為普及,地圖導(dǎo)航的功能和應(yīng)用也得到不斷延伸和拓展,GPS功能在手機(jī)上的開(kāi)發(fā)應(yīng)用一度成為開(kāi)發(fā)的熱點(diǎn),能夠大量的減少人們尋找地點(diǎn)的時(shí)間成本,不斷滿(mǎn)足人們
2、快速生活節(jié)奏的客觀需求,因此終端上的地點(diǎn)定位的地圖的相關(guān)軟件的應(yīng)用能夠產(chǎn)生很大的實(shí)際效用,尤其是在手機(jī)Android系統(tǒng)上的地圖系統(tǒng)的開(kāi)發(fā),比如百度地圖就是在這樣的大背景下被開(kāi)發(fā)出來(lái)的。在本文中介紹了選題背景,介紹了關(guān)鍵技術(shù),對(duì)系統(tǒng)進(jìn)行了需求分析,對(duì)系統(tǒng)進(jìn)行了詳細(xì)設(shè)計(jì),系統(tǒng)的實(shí)現(xiàn)以及系統(tǒng)中的測(cè)試,對(duì)百度地圖應(yīng)用系統(tǒng)從分析到設(shè)計(jì)再到具體實(shí)現(xiàn),有了詳細(xì)的過(guò)程。百度地圖系統(tǒng)的開(kāi)發(fā)運(yùn)用了Java語(yǔ)言,主要針對(duì)Android和SDK系統(tǒng)的運(yùn)用進(jìn)行設(shè)計(jì),用戶(hù)可以通過(guò)在手機(jī)系統(tǒng)中,安裝軟件APP,然后快速的實(shí)現(xiàn)搜索地址的功能,使得用戶(hù)出門(mén)更加方便,不需要擔(dān)心迷路,使得用戶(hù)對(duì)出門(mén)變得方便。關(guān)鍵詞:地圖導(dǎo)航;
3、百度地圖; Java; Android; APIAbstractWith the rapid development of mobile platforms to extend the operating system and map navigation applications, expanding GPS function on cell phones has become a hot mobile application development. In order to find a place, people often need to spend a lot of energy,
4、so along with the accelerating pace of modern life, real-time location information is becoming one of the information it is looking for. Therefore, the design and optimization map location services applications with very practical value, Baidu Maps Android-based application system thus arises.In thi
5、s paper we introduce the background, the key technologies, the system needs analysis, detailed design of the system, implementation, and system test system for Baidu map application system from analysis to design to implementation , with the detailed process.The system uses the Java language, using
6、the Android platform and SDK, use Baidu Maps API in Android system will search for Baidu map application systems and route planning have been achieved, so that the user is more convenient to go out, do not worry about getting lost, so that the user It becomes easy to go out.KeyWords:map navigation;
7、Baidu map; Java,; Android; API 目錄第1章 緒論11.1 課題背景11.2 課題意義11.3 研究現(xiàn)狀21.4 研究?jī)?nèi)容2第2章 課題設(shè)計(jì)相關(guān)技術(shù)42.1 Java語(yǔ)言42.2 Android架構(gòu)42.3 Android SDK6第3章 系統(tǒng)需求分析73.1 可行性分析73.2 需求分析83.3 業(yè)務(wù)流程圖83.2 非功能性需求9第4章 百度key申請(qǐng)114.1 注冊(cè)百度賬號(hào)114.2 申請(qǐng)百度key114.3 百度密鑰應(yīng)用到程序13第5章 系統(tǒng)設(shè)計(jì)145.1系統(tǒng)功能結(jié)構(gòu)145.2權(quán)限設(shè)計(jì)145.3基本配置設(shè)計(jì)16第6章 系統(tǒng)實(shí)現(xiàn)176.1系統(tǒng)運(yùn)行環(huán)境和開(kāi)發(fā)平臺(tái)1
8、76.2系統(tǒng)實(shí)現(xiàn)176.2.1 系統(tǒng)主界面176.2.2 實(shí)時(shí)路況界面216.2.3 視角界面216.2.4 搜索界面226.2.5 路線界面256.2.6 導(dǎo)航界面286.2.7 數(shù)據(jù)的緩存30第7章 系統(tǒng)測(cè)試327.1測(cè)試內(nèi)容327.2測(cè)試預(yù)期結(jié)果327.3測(cè)試用例337.4測(cè)試結(jié)果33結(jié) 論35參考文獻(xiàn)36致 謝37第1章 緒論1.1 課題背景移動(dòng)互聯(lián)網(wǎng)時(shí)代的來(lái)臨,說(shuō)明是一個(gè)新的時(shí)代的開(kāi)始。移動(dòng)通信和互聯(lián)網(wǎng)合在一起就是所謂的移動(dòng)互聯(lián)網(wǎng),移動(dòng)設(shè)備(手機(jī)和上網(wǎng)本)可以隨時(shí)的訪問(wèn)互聯(lián)網(wǎng)的資源和查找的應(yīng)用。智能手機(jī)是互聯(lián)網(wǎng)時(shí)代有目的有標(biāo)志的客戶(hù)端工具,它就像一臺(tái)“小電腦”,有自己的獨(dú)立的操作系統(tǒng)
9、,可以自行安裝和卸載軟件,可以實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)的接入通過(guò)通信網(wǎng)絡(luò),有很大的存儲(chǔ)和計(jì)算的能力,這就是它和傳統(tǒng)手機(jī)的區(qū)別。在飛速發(fā)展的今天,對(duì)于移動(dòng)終端設(shè)備一個(gè)大的趨勢(shì)是傳統(tǒng)WEB上的應(yīng)用出現(xiàn)在手機(jī)終端。而基于Android的百度地圖應(yīng)用系統(tǒng),良好地體現(xiàn)了這一趨勢(shì),百度地圖應(yīng)用系統(tǒng)的開(kāi)發(fā),能很好的為用戶(hù)提供便捷的服務(wù),用戶(hù)通過(guò)運(yùn)用地圖,在地圖上輸入想去的地方的地址就能找到。通過(guò)Android的百度地圖應(yīng)用系統(tǒng),與傳統(tǒng)WEB應(yīng)用進(jìn)行良好的互補(bǔ)。在移動(dòng)手機(jī)大面積普及應(yīng)用的時(shí)代,為了滿(mǎn)足人們?cè)谕饷婵焖僬业较胍サ牡攸c(diǎn),很多軟件開(kāi)發(fā)員開(kāi)發(fā)了新的地圖導(dǎo)航系統(tǒng),其中最為成功和典型的一個(gè)就是手機(jī)的GPS功能,這能夠
10、大量的減少人們尋找地點(diǎn)的時(shí)間成本,不斷滿(mǎn)足人們快速生活節(jié)奏的客觀需求,因此終端上的地點(diǎn)定位的地圖的相關(guān)軟件的應(yīng)用能夠產(chǎn)生很大的實(shí)際效用,尤其是在手機(jī)Android系統(tǒng)上的地圖系統(tǒng)的開(kāi)發(fā)。1.2 課題意義在日益創(chuàng)新的網(wǎng)絡(luò)技術(shù)促進(jìn)下,我國(guó)的通訊技術(shù)已經(jīng)進(jìn)入第四代,4G時(shí)代的到來(lái),讓人們享受到了更快速的網(wǎng)絡(luò)傳輸速度和便捷的移動(dòng)通訊。在現(xiàn)在的社會(huì),手機(jī)已經(jīng)成為了人們?nèi)粘I钪胁豢扇鄙俚囊徊糠帧kS著現(xiàn)代科技的進(jìn)步和人們生活質(zhì)量的不斷地提高,普通只可以打電話發(fā)信息手機(jī)已經(jīng)無(wú)法滿(mǎn)足人們的要求,手機(jī)在時(shí)代的發(fā)展中不斷更新?lián)Q代,開(kāi)發(fā)者們使得手機(jī)變得更加人性化和智能化,于是產(chǎn)生了智能手機(jī)。從人們對(duì)智能手機(jī)的使用率
11、反復(fù)的調(diào)查研究來(lái)看,可以說(shuō)智能手機(jī)使用率在現(xiàn)代社會(huì)已經(jīng)達(dá)到了90%以上,智能手機(jī)的功能也被開(kāi)發(fā)得越來(lái)越人性化,人們可以通過(guò)手機(jī)完成很多的需求,可以說(shuō)人們的生活已經(jīng)離不開(kāi)智能手機(jī)了?,F(xiàn)在人們更多的使用Andriod平臺(tái)來(lái)幫助人們解決問(wèn)題,因此由這個(gè)課題擴(kuò)展開(kāi)來(lái),延伸并廣泛的使用在百度地圖API對(duì)Android系統(tǒng)的結(jié)合中,由于對(duì)地址查詢(xún)最原始方式是使用PC版的百度地圖,相比之下,顯得就很麻煩,人們不可能隨身攜帶電腦,并且不能保證電腦隨時(shí)隨地都能夠用有線或WIFI的方式上網(wǎng),但是在手機(jī)上,人們只需要在Andriod手機(jī)上下載這個(gè)系統(tǒng),就能選擇搜索想去的地址,使得出行找路變得更加方便快捷。1.3 研
12、究現(xiàn)狀從手機(jī)等移動(dòng)終端逐步為人們的生活帶來(lái)越來(lái)越多的便利,不斷涌現(xiàn)出來(lái)的手機(jī)地圖系統(tǒng)軟件為在外急需找到某個(gè)地點(diǎn)的人提供了途徑,節(jié)約了時(shí)間也提高了效率。因此手機(jī)地圖軟件的相關(guān)研究在學(xué)術(shù)研究中逐步顯現(xiàn),其中包括很多數(shù)據(jù)市場(chǎng)研究和應(yīng)用研究。在數(shù)據(jù)研究手機(jī)地圖系統(tǒng)軟件的報(bào)告中,中國(guó)IT研究中心的相關(guān)研究就對(duì)現(xiàn)在市場(chǎng)中市場(chǎng)份額排名前幾位的地圖軟件展開(kāi),它們通過(guò)市場(chǎng)調(diào)查,對(duì)前幾位的軟件進(jìn)行了排名,據(jù)結(jié)果顯示,現(xiàn)排名第一的是百度手機(jī)地圖,其市場(chǎng)份額高達(dá)55.2%,更多的人愿意用百度手機(jī)地圖來(lái)進(jìn)行地圖搜索,排名第二的是高德地圖,其市場(chǎng)份額是20.7%,排名第三的是搜狗地圖,市場(chǎng)份額為占了6.3%。研究者們還對(duì)
13、我國(guó)的智能手機(jī)使用情況進(jìn)行了分析論述,他們都認(rèn)為大量普及使用的職能手機(jī)作為手機(jī)地圖軟件的使用載體,普及率的高低將直接影響軟件的使用情況,據(jù)研究顯示,我國(guó)的智能手機(jī)用戶(hù)已經(jīng)接近人口的一半,達(dá)到7.15億人,這為手機(jī)地圖軟件的應(yīng)用推廣提供了基礎(chǔ)。1.4 研究?jī)?nèi)容1.地點(diǎn)搜索和位置定位在手機(jī)地圖軟件中,用戶(hù)可以隨意搜索想要去的地點(diǎn),手機(jī)軟件將會(huì)把用戶(hù)需要的街道、道路等內(nèi)容進(jìn)行詳細(xì)的顯示,用戶(hù)可以通過(guò)簡(jiǎn)單的GPRS定位,讓手機(jī)自動(dòng)顯示當(dāng)前所在位置,在根據(jù)當(dāng)前的位置規(guī)劃出最佳的路線,供用戶(hù)參考。2.路線規(guī)劃跟電腦地圖搜索查詢(xún)結(jié)果相同,手機(jī)地圖軟件的規(guī)劃結(jié)果,也將隨著用戶(hù)的選擇的不同而不同,用戶(hù)可選擇步行
14、、公交或駕車(chē)其中一種模式。3.公交線路查詢(xún)?cè)谑謾C(jī)地圖軟件的查詢(xún)結(jié)果中,用戶(hù)只需簡(jiǎn)單的輸入起點(diǎn)和終點(diǎn),在選擇公交模式,用戶(hù)將輕松的得到多條線路信息。4.GPS導(dǎo)航手機(jī)地圖軟件還可提供智能的導(dǎo)航功能,用戶(hù)在輸入終點(diǎn)和起點(diǎn)后,將進(jìn)入導(dǎo)航模式。第2章 課題設(shè)計(jì)相關(guān)技術(shù)2.1 Java語(yǔ)言作為被開(kāi)發(fā)人員常用的開(kāi)發(fā)語(yǔ)言之一的Java語(yǔ)言,是一種能夠?qū)崿F(xiàn)跨平臺(tái)應(yīng)用的設(shè)計(jì)語(yǔ)言,被廣泛應(yīng)用的Java語(yǔ)言,性能很好、穩(wěn)定性高、效率高,所以被很多開(kāi)發(fā)人員采用,現(xiàn)在我們用的很多的軟件都是用Java語(yǔ)言開(kāi)發(fā)出來(lái)的,移動(dòng)電話、個(gè)人電腦、平板電腦等終端上的很多軟件都是在Java開(kāi)發(fā)出來(lái)的。Java語(yǔ)言是Sun公司開(kāi)發(fā)出來(lái)的
15、,是一種能夠被開(kāi)放使用的技術(shù),Sun 公司對(duì) Java 編程語(yǔ)言的解釋是:Java語(yǔ)言是一種動(dòng)態(tài)的編程語(yǔ)言,具有很好的性能,安全性高,試用對(duì)象廣泛,編程方式簡(jiǎn)單,可進(jìn)行移植。2.2 Android架構(gòu)現(xiàn)在我們的智能手機(jī)主要采用的系統(tǒng)有3類(lèi),一是蘋(píng)果系統(tǒng),二是安卓系統(tǒng),三是塞班系統(tǒng),本文主要在這里解析安卓系統(tǒng)。Android是一種操作系統(tǒng),是給予自由開(kāi)放代碼的,常用于移動(dòng)終端中,比如智能手機(jī)等,它的開(kāi)發(fā)是由谷歌公司和開(kāi)放手機(jī)聯(lián)盟共同完成的,在中國(guó)雖然應(yīng)用很廣,但是卻還沒(méi)有對(duì)其有統(tǒng)一的稱(chēng)呼。Android的開(kāi)發(fā)者是Andy Rubin。在Android系統(tǒng)中,是形成了完整的系統(tǒng)架構(gòu)的,下面我們將對(duì)
16、其進(jìn)行詳細(xì)的分析。Linux Kernel:在Android系統(tǒng)的實(shí)際操作中,首先需要的是Linux Kernel的支持,有了Linux Kernel的支持才能基本保證Android系統(tǒng)的功能實(shí)現(xiàn),Linux Kernel由很多的驅(qū)動(dòng)程序組成,這些驅(qū)動(dòng)程序能夠完成對(duì)硬件的驅(qū)動(dòng)。Android Runtime:Android系統(tǒng)的運(yùn)行需要良好的運(yùn)行環(huán)境,這就是Android Runtime,這里Android Runtime里的Core Libraries就相當(dāng)于java的JDK,是運(yùn)行android應(yīng)用程序所需要的核心庫(kù),Dalvik Virtual Machine就相當(dāng)于JVM,這是Andr
17、oid系統(tǒng)運(yùn)行所需的特定的虛擬機(jī)。 Liberaries:Android系統(tǒng)的所有數(shù)據(jù)需要儲(chǔ)存在特別的地方,這就是Liberaries。Application Framework:這是Android系統(tǒng)的所有程序的框架,有了框架,系統(tǒng)中所有的程序才能夠被放到里面,才能保證系統(tǒng)程序的正常運(yùn)行。Application:這個(gè)就是我們開(kāi)發(fā)的Application了。圖2-1 系統(tǒng)架構(gòu)圖從Android系統(tǒng)被開(kāi)發(fā)以來(lái),不斷得到技術(shù)創(chuàng)新和系統(tǒng)優(yōu)化,谷歌公司已經(jīng)不斷進(jìn)行了新的版本,現(xiàn)在已經(jīng)可以更新到4.0.0版本了,已經(jīng)具備了很高的穩(wěn)定性,但是仍然有很多的開(kāi)發(fā)者更愿意在SDK2.2上進(jìn)行開(kāi)發(fā)工作。Andro
18、id應(yīng)用基于Java,支持SQL,由于底層是Linux所以底層支持C/C+。目前有兩種編程: 一是基于ADT的JAVA編程,官方推薦用JDK+ECLIPSE+ADT+ADK(WINDOWS開(kāi)發(fā)環(huán)境下,二是基于NDK的C編程APK是Android Package的縮寫(xiě),即Android安裝包(anapk)。APK是類(lèi)似Symbian Sis或Sisx的文件格式。在進(jìn)行安裝和執(zhí)行的過(guò)程中,主要是通過(guò)APK文件,然后直接傳輸?shù)紸ndroid模擬器中。在Android系統(tǒng)中,Android sdk編譯的安裝文件需要在apk中完成格式的轉(zhuǎn)換,是將zip格式的文件轉(zhuǎn)換成apk格式的文件,然后才能完成被un
19、zip解壓到Dex中,Dex是Dalvik VM executes的全稱(chēng),即Android Dalvik執(zhí)行程序,并非Java ME的字節(jié)碼而是Dalvik字節(jié)碼。 在Android系統(tǒng)的軟件開(kāi)發(fā)中,開(kāi)發(fā)人員可通過(guò)訪問(wèn)API框架來(lái)完成核心應(yīng)用程序的使用,在這個(gè)框架中,所有的應(yīng)用程序需要進(jìn)行簡(jiǎn)化后的組件重用,所有基于這個(gè)框架開(kāi)發(fā)出來(lái)的應(yīng)用程序都需要有一個(gè)功能塊,這個(gè)功能塊是可以不遵循框架的安全性限制的,Android系統(tǒng)的API框架,可以運(yùn)用可替換的程序,即實(shí)現(xiàn)程序的重用機(jī)制,并且在每一個(gè)程序的后面,都有一系列發(fā)揮服務(wù)功效的小系統(tǒng),下面將重點(diǎn)分析這些小系統(tǒng):1、用來(lái)搭建應(yīng)用程序的視圖(Views
20、),這種試圖是可實(shí)現(xiàn)豐富的可擴(kuò)展的功效,試圖又由一些基本的要素促成,包括表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web 瀏覽器。2、可以兼容應(yīng)用程序的內(nèi)容提供器(Content Providers),在這個(gè)系統(tǒng)中可以在訪問(wèn)一個(gè)程序的時(shí)候,再訪問(wèn)另一個(gè)程序。3、能夠?qū)崿F(xiàn)非代碼的資源訪問(wèn)的資源管理器(Resource Manager),主要由字符、圖形和布局文件( layout files )組成。4、通知管理器 (Notification Manager),在Android系統(tǒng)中通過(guò)這個(gè)小系統(tǒng)能夠?qū)崿F(xiàn)自定義的提示信息的顯示。5、
21、活動(dòng)管理器( Activity Manager),這個(gè)小系統(tǒng)是能夠完成導(dǎo)航功能的定退的,用來(lái)管理程序生命周期的。2.3 Android SDKSDK:(software development kit)軟件開(kāi)發(fā)工具包。在特定的軟件開(kāi)發(fā)過(guò)程中,軟件開(kāi)發(fā)師會(huì)用軟件開(kāi)發(fā)工具包進(jìn)行特定的開(kāi)發(fā)工作,比如在搭建軟件的框架或硬件的平臺(tái)的時(shí)候,都需要運(yùn)用。在安卓系統(tǒng)中,軟件開(kāi)發(fā)工具包就是Android SDK。在Android系統(tǒng)中,有一個(gè)SharedPreferences類(lèi)的平臺(tái),這個(gè)平臺(tái)能夠提供軟件配置參數(shù)的保存,使用SharedPreferences保存數(shù)據(jù),其背后是用xml文件存放數(shù)據(jù),文件存放在/d
22、ata/data/<package name>/shared_prefs目錄下。所謂的SharedPreferences,是特指在Android系統(tǒng)中,用來(lái)存儲(chǔ)信息的特定機(jī)制。最重要的是在Android系統(tǒng)中,開(kāi)放的服務(wù)是不需要收費(fèi)的,開(kāi)發(fā)者提供第三方平臺(tái)的更大的自由度,開(kāi)發(fā)人員不需要進(jìn)行較高費(fèi)用的支出,就可以進(jìn)行軟件的開(kāi)發(fā)。第3章 系統(tǒng)需求分析3.1 可行性分析系統(tǒng)開(kāi)發(fā)不光涉及到開(kāi)發(fā)過(guò)程在技術(shù)上是否可行的問(wèn)題,還需要進(jìn)行綜合全面的可行性分析,一個(gè)系統(tǒng)能夠被成功的開(kāi)發(fā)出來(lái),不僅需要有成熟的技術(shù),還需要有充足的開(kāi)發(fā)資金做保證,所以下面將從技術(shù)可行性、經(jīng)濟(jì)可行性和法律可行性進(jìn)行分析。1
23、技術(shù)可行性手機(jī)地圖軟件的開(kāi)發(fā)所需要的技術(shù)最主要的是開(kāi)發(fā)設(shè)計(jì)語(yǔ)言,這種設(shè)計(jì)語(yǔ)言需要在手機(jī)等移動(dòng)系統(tǒng)上安裝應(yīng)用,從現(xiàn)階段的開(kāi)發(fā)語(yǔ)言的技術(shù)來(lái)看,主要有Java語(yǔ)言、C語(yǔ)言等等,這些開(kāi)發(fā)語(yǔ)言都是長(zhǎng)時(shí)間打磨所得的,已經(jīng)較為成熟了。還需要的就是高速的網(wǎng)絡(luò)做保障,從我國(guó)的現(xiàn)狀來(lái)看,網(wǎng)速已經(jīng)在不斷的加快,足以滿(mǎn)足手機(jī)地圖軟件的需求。(1)硬件操作系統(tǒng):Windows XP 或者Windows 7Web 服務(wù)器:tomcat7.0及以上開(kāi)發(fā)工具:Eclipse 4.4,Macromedia Dreamweaver 8.0數(shù)據(jù)庫(kù):MySQL數(shù)據(jù)庫(kù)JDK開(kāi)發(fā)包:jdk 7 Update5 以上版本(2)系統(tǒng)軟件在百
24、度地圖軟件的設(shè)計(jì)過(guò)程中,需要能夠滿(mǎn)足在手機(jī)系統(tǒng)中運(yùn)行的要求,所以需要采用特定的開(kāi)發(fā)語(yǔ)言,其中Java語(yǔ)言因高穩(wěn)定性、通用性等優(yōu)點(diǎn),被開(kāi)發(fā)人員運(yùn)用到地圖軟件的開(kāi)發(fā)中,作為最主要的設(shè)計(jì)語(yǔ)言。2經(jīng)濟(jì)可行性所有開(kāi)發(fā)地圖軟件的工程師,最終的目的都是為了獲得經(jīng)濟(jì)上的收益,在實(shí)際的開(kāi)發(fā)過(guò)程中,也需要充分考慮是否有足夠的經(jīng)濟(jì)支持,從百度地圖的開(kāi)發(fā)成本來(lái)看,所需要的系統(tǒng)開(kāi)發(fā)人員不用很多,會(huì)涉及到的開(kāi)發(fā)費(fèi)用不高,投資者、開(kāi)發(fā)人員都不用投入大量的前期資本,所以從以上兩方面來(lái)看經(jīng)濟(jì)上是可行的。3法律可行性基于Android的百度地圖應(yīng)用系統(tǒng)是畢業(yè)設(shè)計(jì),僅僅只是作為畢業(yè)時(shí),進(jìn)行的設(shè)計(jì),該軟件并不作商業(yè)用途,因此在法律上
25、是沒(méi)有問(wèn)題的,在法律上是可行的。 4結(jié)論全文在可行性分析的過(guò)程中,進(jìn)行了經(jīng)濟(jì)、技術(shù)和法律層面的深度研究,通過(guò)研究得出之所以百度地圖能夠在所有的手機(jī)地圖軟件中占有第一名的市場(chǎng)份額,被大多數(shù)用戶(hù)選擇,就是百度地圖優(yōu)化的信息化方式,百度地圖的人性化服務(wù)方式。3.2 需求分析軟件工程建設(shè)的第一階段就是需求分析,它是十分重要的階段,因?yàn)?,科學(xué)并且合理的需求分析能在成本上得到節(jié)約,還能夠?qū)㈨?xiàng)目建設(shè)做到事半功倍的效果,反之,如果需求分析不合理,不實(shí)用,只會(huì)給項(xiàng)目建設(shè)帶來(lái)負(fù)擔(dān),不但會(huì)使建設(shè)成本大幅度上升,還會(huì)直接影響開(kāi)發(fā)建設(shè)的成功與否,因此在軟件工程的建設(shè)中,必須充分的考慮到用戶(hù)的需求,所有的在Android
26、系統(tǒng)手機(jī)上開(kāi)發(fā)的地圖軟件,都要體現(xiàn)用戶(hù)的最根本需求,對(duì)于百度地圖開(kāi)發(fā)來(lái)所更是如此。用戶(hù)能夠公交路線,周邊。用戶(hù)能夠查看實(shí)時(shí)路況以及使用不同模式查看地圖,包括,3D俯瞰圖,2D平面圖以及衛(wèi)星圖。用戶(hù)可以搜索附近地點(diǎn),比如公交站,銀行等。用戶(hù)能夠搜索路線,包括:駕車(chē),公交車(chē),走路。用戶(hù)可通過(guò)百度地圖在駕車(chē)過(guò)程中完成導(dǎo)航。3.3 業(yè)務(wù)流程圖工作過(guò)程。業(yè)務(wù)流程圖能夠反應(yīng)出工作運(yùn)行的具體的過(guò)程,按照規(guī)定要用指定的符合來(lái)表示,業(yè)務(wù)流程圖的繪制過(guò)程,是幫助分析員分析整理結(jié)果的重要過(guò)程,能夠幫助分析出其中可能存在的不合理的地方或問(wèn)題,也方便交流,如3-1所示:圖3-1 業(yè)務(wù)流程圖的基本符號(hào)圖3-2 業(yè)務(wù)流程圖
27、3.2 非功能性需求(1)系統(tǒng)的安全性安全性對(duì)于一個(gè)任意一個(gè)系統(tǒng)來(lái)說(shuō)是極為重要的,本系統(tǒng)設(shè)計(jì)時(shí)考慮了加密權(quán)限和必要的保密措施,以此保證系統(tǒng)安全可靠。要滿(mǎn)足數(shù)據(jù)保存的完整,在手機(jī)地圖軟件中,必須要有備份的功能,才能確保系統(tǒng)的整體性,同時(shí)要考慮到數(shù)據(jù)在遭受意外破壞時(shí)也能及時(shí)恢復(fù),系統(tǒng)必須滿(mǎn)足用戶(hù)運(yùn)營(yíng)方面的需求,能夠長(zhǎng)期運(yùn)行,需要額外的網(wǎng)絡(luò)安全防火墻,傳輸數(shù)據(jù)是加密的。當(dāng)然,設(shè)計(jì)者還應(yīng)當(dāng)對(duì)開(kāi)發(fā)系統(tǒng)中的硬件配置給予充分的注意和考慮。(2)系統(tǒng)的響應(yīng)時(shí)間本系統(tǒng)在線測(cè)試速度性能不超過(guò)10毫秒,根據(jù)用戶(hù)的需要可以進(jìn)一步提高,響應(yīng)時(shí)間是一個(gè)系統(tǒng)非功能部分中的一個(gè)重要性能,能夠保證系統(tǒng)的運(yùn)行,添加餐品,搜索信息
28、,操作完成立刻能夠返回信息,不能產(chǎn)生有等待的感覺(jué),這是用戶(hù)正常需要的性能。(3)系統(tǒng)的可擴(kuò)展性作為一個(gè)百度地圖應(yīng)用系統(tǒng)來(lái)說(shuō),系統(tǒng)應(yīng)充分考慮未來(lái)的可擴(kuò)展性,例如查詢(xún)的條件會(huì)不斷的增加和變化,這要求系統(tǒng)由足夠的條件進(jìn)行功能的完善和擴(kuò)展。,實(shí)現(xiàn)此應(yīng)通過(guò)系統(tǒng)的擴(kuò)展配置來(lái)完成,系統(tǒng)在設(shè)計(jì)時(shí)要符合一定的配置標(biāo)準(zhǔn),可以方便未來(lái)加入和減少系統(tǒng)的模塊,通過(guò)軟件的升級(jí)、 改善系統(tǒng)錯(cuò)誤和增加功能。第4章 百度key申請(qǐng)4.1 注冊(cè)百度賬號(hào)根據(jù)提示,填寫(xiě)注冊(cè)信息。如圖4-1圖4-1 注冊(cè)百度賬號(hào)4.2 申請(qǐng)百度key登陸百度賬號(hào),百度“百度地圖API”,點(diǎn)開(kāi)百度地圖API的官網(wǎng)。進(jìn)官網(wǎng),選擇Android開(kāi)發(fā)可以進(jìn)行
29、了解下百度地圖,點(diǎn)擊申請(qǐng)密鑰的按鈕進(jìn)去。如圖4-2圖4-2 百度API 在這里因?yàn)槭钦故続ndroid百度API的應(yīng)用,所以點(diǎn)擊創(chuàng)建應(yīng)用,如圖4-3圖4-3 創(chuàng)建應(yīng)用在應(yīng)用類(lèi)型窗口中選擇Android SDK,應(yīng)用名稱(chēng)可以隨便設(shè)置。關(guān)鍵安全碼設(shè)置:要求Android簽名證書(shū)的sha1值+“;”+packagename(即:數(shù)字簽名+分號(hào)+包名)Android簽名證書(shū)的sha1值:可以在eclipse中直接查看:windows->preferences->Android->build. 如圖4-5包名:Android應(yīng)用程序本身在AndroidManifest.xml上定義的,
30、如圖4-6在填寫(xiě)安全碼后,點(diǎn)擊“確定”完成應(yīng)用的配置工作,得到一個(gè)創(chuàng)建的key,如圖4-7圖4-4 創(chuàng)建應(yīng)用填表圖4-5 sha1值查找圖4-6 包名的查找圖4-7 百度key4.3 百度密鑰應(yīng)用到程序?qū)?chuàng)建的的key應(yīng)用到開(kāi)發(fā),在AndroidManifest.xml和MainActivity.java添加key如圖4-8,圖4-9圖4-8 AndroidManifest.xml上圖4-9 MainActivity.java上第5章 系統(tǒng)設(shè)計(jì)5.1系統(tǒng)功能結(jié)構(gòu)百度地圖應(yīng)用系統(tǒng)主要由前臺(tái)使用組成。前臺(tái)是用戶(hù)能夠進(jìn)行查詢(xún)路線操作,以及一些導(dǎo)航操作,由于該界面是針對(duì)用戶(hù),也考慮了用戶(hù)想要操作的簡(jiǎn)潔
31、和方便性,與此同時(shí)開(kāi)發(fā)者在應(yīng)用外觀設(shè)計(jì)上也進(jìn)行了精心的設(shè)計(jì),讓用戶(hù)看著賞心悅目。應(yīng)用從前臺(tái)方面進(jìn)功能設(shè)計(jì),主要功能包括搜索公交路線,周邊;查看實(shí)時(shí)路況以及使用不同模式查看地圖;查看附近的基本信息,包括:公交站,銀行等;搜索路線,包括:駕車(chē),公交車(chē),走路;使用該系統(tǒng)進(jìn)行導(dǎo)航等核心功能。圖4-1 系統(tǒng)功能結(jié)構(gòu)圖5.2權(quán)限設(shè)計(jì)<!- 使用網(wǎng)絡(luò)功能所需權(quán)限 -> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission>
32、<uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
33、; </uses-permission> <!- SDK離線地圖和cache功能需要讀寫(xiě)外部存儲(chǔ)器 -> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name="android.permission.WRITE_SETTINGS" > </uses-permission> <!- 獲取
34、設(shè)置信息和詳情頁(yè)直接撥打電話需要以下權(quán)限 -> <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> <uses-permission android:name="android.permission.CALL_PHONE" > </uses-permission> <!- 使用定位功能所需權(quán)限,demo已集成百度定位SDK,不使用定位功能可去掉以下6項(xiàng) -> <
35、;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" > </permission> <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE&
36、quot; > </uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" > </uses-permission> <uses-permission android:name
37、="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" /> <uses-permission android:name="android.permission.ACCE
38、SS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCES_MOCK_LOCATION" /> <uses-
39、permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="an
40、droid.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <!- SDK1.5需要android.permission.GET_TASKS權(quán)限判斷本程序是否為當(dāng)前運(yùn)行的應(yīng)用? -> <uses-permiss
41、ion android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permissio
42、n.WRITE_SETTINGS" /> 5.3基本配置設(shè)計(jì)<menu xmlns:android=" > <item android:id="+id/action_settings" android:orderInCategory="100" android:showAsAction="never" android:title="string/action_settings"/></menu>37第6章 系統(tǒng)實(shí)現(xiàn)6.1系統(tǒng)運(yùn)行環(huán)境和開(kāi)發(fā)平臺(tái)表6-1 系
43、統(tǒng)運(yùn)行環(huán)境和開(kāi)發(fā)平臺(tái)需求表需求名稱(chēng)詳細(xì)要求CPUCore I5、6GHz內(nèi)存6G硬盤(pán)500G顯示器分辨率1024×768像素以上網(wǎng)絡(luò)20M以上操作系統(tǒng)Windows xp或Windows 7或者Linux數(shù)據(jù)庫(kù)MySQL5.5以上開(kāi)發(fā)工具Eclipse4.4 軟件ADT 23.0.2,Andriod SDK 和ADT版本一致Web服務(wù)器Tomcat6.2系統(tǒng)實(shí)現(xiàn)6.2.1 系統(tǒng)主界面該界面是用戶(hù)登錄系統(tǒng)的界面,設(shè)計(jì)主界面簡(jiǎn)潔,用戶(hù)在該界面中能夠進(jìn)行搜索,路線查看,附近,以及導(dǎo)航。protected void onCreate(Bundle savedInstanceState) /調(diào)
44、用父類(lèi)的on Create構(gòu)造函數(shù),保存當(dāng)前Activity的狀態(tài)信息super.onCreate(savedInstanceState);MyApplication app = (MyApplication) this.getApplication(); /初始化bMapManagerbMapManager = app.bMapManager;if (bMapManager = null) bMapManager = new BMapManager(getApplicationContext();/* * 如果BMapManager沒(méi)有初始化則初始化BMapManager */bMapMan
45、ager.init(new MyApplication.MyGeneralListener(); /記住BMapManager的初始化要在setContentView之前完成,否則是會(huì)報(bào)錯(cuò)的setContentView(R.layout.activity_main);getBMapView();data = new LocationData();/ 定位功能mLocationClient = new LocationClient(getApplicationContext();/聲明LocationClient類(lèi)myOverlay = new LocationOverlay(getApplic
46、ationContext(), mMapView, data);initPopupOverLay();/ 創(chuàng)建 彈出泡泡圖層myOverlay.createPaopao();myOverlay.enableCompass();setLocationOption();/ 注冊(cè)位置監(jiān)聽(tīng)mLocationClient.registerLocationListener(locationListener);/ 發(fā)起定位請(qǐng)求if (mLocationClient != null && !mLocationClient.isStarted() mLocationClient.requestL
47、ocation();mLocationClient.start();/位置服務(wù),沒(méi)有則初始化 else Log.e("LocSDK3", "locClient is null or not started");popup = new PopupOverlay(mMapView, new PopupClickListener() private Object address_msg;Overridepublic void onClickedPopup(int index) switch (index) case 0:/ 單擊周邊搜索圖標(biāo)Intent int
48、ent = new Intent(MainActivity.this,PoiSearchActivity.class);intent.putExtra("MyLocation", true);startActivity(intent);Activity之間傳遞的消息break;case 1:/ 單擊我的位置圖標(biāo)if (address_msg = null) Toast.makeText(MainActivity.this, "定位服務(wù)進(jìn)行中.",Toast.LENGTH_SHORT).show(); else Toast.makeText(MainAct
49、ivity.this,"我的位置:" + address_msg, Toast.LENGTH_SHORT).show();break;case 2:/ 單擊線路查詢(xún)圖標(biāo)intent = new Intent(MainActivity.this,/生成Intent對(duì)象RoutePlanActivity.class);intent.putExtra("MyLocation", "" + address_msg);/ 將地址信息發(fā)給線路查詢(xún)界面startActivity(intent);/ popup.hidePop();break;);/
50、 初始化導(dǎo)航引擎BaiduNaviManager.getInstance().initEngine(this, getSdcardDir(),mNaviEngineInitListener, ACCESS_KEY, mKeyVerifyListener);private void setLocationOption() /設(shè)置相關(guān)參數(shù),設(shè)置條件LocationClientOption option = new LocationClientOption();option.setOpenGps(true);option.setLocationMode(LocationMode.Device_Sen
51、sors);/ 定位模式option.setAddrType("all"); option.setCoorType("bd09ll"); option.setScanSpan(1000);option.disableCache(true); option.setPoiNumber(5); option.setPoiDistance(1000); / poi查詢(xún)距離option.setPoiExtraInfo(true); mLocationClient.setLocOption(option);private void getBMapView() mMa
52、pView = (MapView) findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);MapController mMapController = mMapView.getController();/ 設(shè)置啟用內(nèi)置的縮放控件mMapController.setZoom(15);/ 設(shè)置地圖zoom級(jí)別findViewById(R.id.search).setOnClickListener(btnListener);findViewById(R.id.route).setOnClickListener(btnLi
53、stener);findViewById(R.id.nearby).setOnClickListener(btnListener);findViewById(R.id.navigation).setOnClickListener(btnListener);layer = (ImageButton) findViewById(R.id.maplayers);layer.setOnClickListener(btnListener);roadCondition = (ImageButton) findViewById(R.id.roadcondition);roadCondition.setOnC
54、lickListener(btnListener);6.2.2 實(shí)時(shí)路況界面這是百度地圖應(yīng)用系統(tǒng)的實(shí)時(shí)路況界面,能夠看到目前為止道路的狀況,綠色的線代表暢通。6.2.3 視角界面這是視圖模式界面,用戶(hù)可以使用三種方式查看地圖,衛(wèi)星圖,2D平面圖以及3D俯瞰圖。6.2.4 搜索界面這是百度地圖應(yīng)用系統(tǒng)的搜索界面,用戶(hù)能夠進(jìn)行搜索,包括:公交路線,KFC以及KTV,這樣的娛樂(lè)以及快餐的地方。這是KTV的界面,用戶(hù)能夠在地圖上表紅標(biāo)的地方進(jìn)行放大縮小。這是公交路線的界面,通過(guò)填寫(xiě)目的地城市以及公交車(chē)的路線,就能在地圖上進(jìn)行顯示,還能看到公交車(chē)的具體路線,公交車(chē)的首班車(chē)以及末班車(chē)時(shí)間。protecte
55、d void startSearch() city = cityEt.getText().toString().trim();busno = busnoEt.getText().toString().trim();if (TextUtils.isEmpty(city) city = address;if (TextUtils.isEmpty(busno) Toast.makeText(BusLineSearchActivity.this, "搜索內(nèi)容不能為空",Toast.LENGTH_SHORT).show();return;intent = new Intent(Bus
56、LineSearchActivity.this,ShowBusLineResult.class);bundle.putString(ConstantUtil.KEY_CITY, city);bundle.putString(ConstantUtil.KEY_BUSNO, busno);intent.putExtras(bundle);startActivity(intent);private void parseBundle() intent = this.getIntent();bundle = intent.getExtras();address = bundle.getString(ConstantUtil.KEY_LOCATION);Log.d(TAG, "地址:" + address);address = address.substring(0, address.indexOf("市");Log.d(TAG, "城市:" + address);6.2.5 路線界面這是路線的界面,用戶(hù)能夠選擇三種
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)行業(yè)的品牌工作計(jì)劃
- 優(yōu)化產(chǎn)品價(jià)格策略計(jì)劃
- 質(zhì)量管理中的人員培訓(xùn)與團(tuán)隊(duì)建設(shè)
- 銷(xiāo)售增長(zhǎng)計(jì)劃
- 足球訓(xùn)練中的心理輔導(dǎo)與激勵(lì)
- 部編版初中語(yǔ)文必讀名著書(shū)目(完整版)
- 浙江2025年01月浙江省岱山縣數(shù)據(jù)服務(wù)中心2025年公開(kāi)招考1名編外人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 北京2025年01月北京市昌平區(qū)委員會(huì)政法委員會(huì)2025年面向社會(huì)公開(kāi)招考1名鐵路護(hù)路聯(lián)防隊(duì)管理員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 高中語(yǔ)文情感美文創(chuàng)造宣言
- 科技引領(lǐng)下的西安教育行業(yè)虛擬現(xiàn)實(shí)應(yīng)用前景
- 欽針治療惡心嘔吐
- 第六章質(zhì)量和密度-基礎(chǔ)練(原卷版)
- 《稅收負(fù)擔(dān)對(duì)我國(guó)制造業(yè)資本金融化的影響研究》
- 中學(xué)美術(shù)《剪紙藝術(shù)》完整課件
- 現(xiàn)代家政導(dǎo)論-課件 5.1.3家庭管家
- 適用的法律法規(guī)和其他要求的符合性評(píng)價(jià)
- 中國(guó)古典園林史復(fù)習(xí)
- 東湖高新區(qū)調(diào)研報(bào)告
- 腎包膜下血腫護(hù)理
- 丁善德藝術(shù)歌曲《愛(ài)人送我向日葵》創(chuàng)作特征及演唱技巧研究
- 2024華中區(qū)域電力并網(wǎng)運(yùn)行管理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論