【正文】
解決問題的能力,加強(qiáng)我們分析市場(chǎng),并根據(jù)市場(chǎng)導(dǎo)向及時(shí)有效地制 定方案的洞察力,為我們不如社會(huì),走向工作崗位提供強(qiáng)有力的實(shí)踐基礎(chǔ)。 ( 2) 2020 年 11 月 5 日,以 Google 為首的 34 家公司宣布成立開放手機(jī)聯(lián)盟( Open Handset Alliance,簡(jiǎn)稱 OHA)。 下面,將用表格的形式來說明安卓不同版本的相關(guān)變化 。 圖 11 搭載 Android Froyo 的 Google Nexus One 基于 Android 系統(tǒng)的手機(jī)地圖應(yīng)用軟件開發(fā) 3 圖 12 搭載 Android Gingerbread 的 Google39。 下面,就這幾款軟件與 Android 作簡(jiǎn)要的對(duì)比: ( 1)塞班系統(tǒng): Symbian 系統(tǒng)是塞班公司為手機(jī)而設(shè)計(jì)的操作系統(tǒng),其優(yōu)點(diǎn)是在安卓出現(xiàn)之前,占有了市場(chǎng)份額的絕大部分,但由于缺乏新技術(shù)支持,駐足不前,導(dǎo)致陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 4 用戶量驟減。因此,它被淘汰成為必然。但是其缺點(diǎn)在于,無論從硬件還是軟件方面,蘋果公司對(duì)改操作系統(tǒng)進(jìn)行了絕對(duì)的保護(hù),完全封閉了 iOS。 由于 Android 和 iOS 十分相似,所以下面將用表格的形式対它們進(jìn)行比較。 ATamp。 它的開發(fā)語言是 C,有利于初學(xué)者學(xué)習(xí),但由于發(fā)布時(shí)間較晚,上市機(jī)型偏少等缺點(diǎn),使得其較 Android 和 iOS 更缺乏競(jìng)爭(zhēng)力。 第二章 詳細(xì) 地 介紹了安卓系統(tǒng),其中包括 SDK 的介紹,系統(tǒng)應(yīng)用程序的組成,系統(tǒng)應(yīng)用程序的體系結(jié)構(gòu),為以后章節(jié)的開發(fā)奠定了基礎(chǔ)。 第四章 首先介紹了手機(jī)地圖的開發(fā)方法和步驟,同時(shí)說明了開發(fā)的理念和本款軟件基于 Android 系統(tǒng)的手機(jī)地圖應(yīng)用軟件開發(fā) 5 的優(yōu)勢(shì)。最后,把軟件合理模塊化,將系統(tǒng)的程序流程圖繪制完成。 第六章 總結(jié)了本文的相關(guān)工作,指出了應(yīng)用軟件 的 很多 疏漏和需要改進(jìn)的地方,對(duì)安卓系統(tǒng)應(yīng)用以及本文軟件的前景作出了展望。這個(gè)開發(fā)包可以從相關(guān)網(wǎng)址經(jīng)行下載 ,其中,官方版網(wǎng)址為 Android SDK 管理器提供了 3 個(gè)平臺(tái)的版本: Windows、 Linux( i386)和 Mac OS X( Intel),下載時(shí)可以根據(jù)目標(biāo)平臺(tái)選擇相應(yīng)的 SDK 進(jìn)行下載。 圖 21 SDK 包含的文件 下面就這些 文件作簡(jiǎn)要的介紹 [1]: ( 1) docs 文件夾中包含的是完整的 Android SDK 參考文檔,包括 SDK 發(fā)布的歷史信息(主要包括該版本的亮點(diǎn)和與上一版本的 API 差異報(bào)告)、開發(fā)引導(dǎo)和 API 參考。 ( 3) platformtools 文件夾中存放的是與平臺(tái)有關(guān)的工具,如調(diào)試橋接工具、 Dalvik字節(jié)碼轉(zhuǎn)換工具、 Android 資源打包工具等。 Android API 核心包分析 從安裝系統(tǒng)平臺(tái)的最底層到最高層的基本核心 API 包有如下 [23]: 基于 Android 系統(tǒng)的手機(jī)地圖應(yīng)用軟件開發(fā) 7 (1):包含一些底層輔助類,例如,特定的容器類、 XML 輔助工具類等。 (3):作為核心渲染包,提供圖形渲染功能。 (5):包含底層 API 處理數(shù)據(jù)庫,方便操作數(shù)據(jù)庫表和數(shù)據(jù)。 (7):核心用戶界面框架。 (9):提供高層應(yīng)用程序模型,實(shí)現(xiàn)使用 Activity。 (11):提供 API 系統(tǒng)交互和手機(jī)設(shè)備的通話接口。 除了以上面介紹的這些核心包外, Android 還提供了一些可選的 API,如: GPS 的APILBS 定位服務(wù)( LocationBased Service),可以通過集成的 GPS 芯片來接收衛(wèi)星信號(hào),從而確定手機(jī)的位置;多媒體接口( Media APIs) Android 平臺(tái)集成了很多影音解碼器及相關(guān)的多媒體 API,通過這些可選的 API,開發(fā)者可以讓手機(jī)支持 MP MP高清晰視頻播放等;圖形處理 API, Android 平臺(tái)上的游戲娛樂功能,可以支持 3D 游戲;低級(jí)硬件訪問,這個(gè)功能主要用于控制手機(jī)的底層方面操作 [4]。 (1)Android 系統(tǒng)模擬器( Android Emulator):一個(gè)運(yùn)行在計(jì)算機(jī)上的虛擬移動(dòng)模擬器,可以使用模擬器在一個(gè)實(shí)際的 Android 運(yùn)行環(huán)境下設(shè)計(jì),調(diào)試和測(cè)試用戶的應(yīng)用程序。 (3) 調(diào)試系統(tǒng)監(jiān)視服務(wù):它集成在 Dalvik( Android 平臺(tái)的虛擬機(jī)) 中,用于管理運(yùn)行在模擬器或設(shè)備上的進(jìn)程,并協(xié)助進(jìn)行調(diào)試。 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 8 (4)Android 系統(tǒng)調(diào)試橋:它用于向模擬器或手機(jī)設(shè)備安裝應(yīng)用程序的 Apk 文件和從命令行訪問模擬器或手機(jī)設(shè)備。 安卓系統(tǒng)的應(yīng)用程序組成 開發(fā)安卓系統(tǒng)應(yīng)用程序之前,了解其組成是十分重要的,幾乎所有的應(yīng)用程序都包含如下幾個(gè)方面的內(nèi)容 : Activity、 Broadcast Intent Receive、 Service、 Content Provider。 Activity 首先,必須弄清楚 Activity 的具體含義。每個(gè) Activity 有序的組合、跳轉(zhuǎn)便構(gòu)成了一個(gè)應(yīng)用程序。 在 Android 系統(tǒng)中為了在各個(gè) Activity 之間進(jìn)行跳轉(zhuǎn)可以使用 Intent, Intent 中兩個(gè)最重要的部分是 Intent 的動(dòng)作 ( Action) 和動(dòng)作對(duì)應(yīng)的數(shù)據(jù) (data)[6]。 Broadcast Intent Receiver 顧名思義,這是一種事件響應(yīng)的機(jī)制,即對(duì)程序的某種指令做出響應(yīng),并通知其他應(yīng)用程序。這是一種很重要的響應(yīng)機(jī)制,它使得應(yīng)用程序有了動(dòng)態(tài)和廣播的特性。正如字面意思一樣,它類似于一個(gè)后臺(tái)服務(wù)者。 Content Provider Content Provider 是一個(gè)強(qiáng)大的獲取數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)的接口。用 Content Provider 的好處在于,外界可以基于 Android 系統(tǒng)的手機(jī)地圖應(yīng)用軟件開發(fā) 9 通過這個(gè)接口方便地對(duì)數(shù)據(jù)進(jìn)行增,刪,改,查操作。 ( 2) insert( Uri, ContentValues) :將一組數(shù)據(jù)插入到指定的地方。 ( 4) delete( Uri, String, String[]) :刪除數(shù)據(jù)。 圖 22 為Google 官 方 網(wǎng) 站 提供的一張安卓的體系結(jié)構(gòu)圖。 ( 2) 庫和運(yùn)行時(shí)環(huán)境:庫中包括一些程序包,大多數(shù)是用 C 或 C++編寫并封裝的;安卓的運(yùn)行時(shí)環(huán)境和 Java 的類似,包括了核心包、開發(fā)中常用的類庫(如 IO, Utility等類)、一個(gè)針對(duì)手機(jī)優(yōu)化過的虛擬機(jī)。 ( 4)應(yīng)用程序:程序員開發(fā)的程序便在這個(gè)層上 。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。 Eclipse 官方下載網(wǎng)站是: 圖 31 為其界面。因此,Eclipse 越來越受開發(fā)者的青睞。 下面簡(jiǎn)要介紹環(huán)境搭建的一般步驟: ( 1) JDK 的下載: 基于 Android 系統(tǒng)的手機(jī)地圖應(yīng)用軟件開發(fā) 11 官方網(wǎng)站 安裝好 JDK 后,有一個(gè)細(xì)節(jié)需要注意,那就是環(huán)境變量的更改。 ( 2)安裝 Eclipse。第一次開啟 Eclipse 最好設(shè)定一個(gè)統(tǒng)一的工作路徑,這樣有利于以后的開發(fā)工作。 下載網(wǎng)址為: 要特別注意,新版的 SDK已經(jīng)包括以下內(nèi)容: Eclipse + ADT plugin、 Android SDK Tools、Android Platformtools、 The latest Android platform、 The latest Android system image for the emulator。 ( 4)安裝 ADT。 ADT 有兩種安裝形式,一種是在 線安裝,另一種是先下載 ADT,在來安裝 ADT。 虛擬機(jī)簡(jiǎn)介 安卓系統(tǒng)虛擬設(shè)備( Android Virtual Device)簡(jiǎn)稱 AVD。 圖 32 AVD 界面 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 12 由于最新版的 Eclipse 是自帶 ADT 的,程序員的主要任務(wù)是設(shè)置虛擬機(jī)的相關(guān)參數(shù)。 每個(gè) AVD模擬了一套虛擬設(shè)備來運(yùn)行 Android 平臺(tái),這個(gè)平臺(tái)至少有自己的內(nèi)核,系統(tǒng)圖像和數(shù)據(jù)分區(qū),還可以有自己的 SD 卡和用戶數(shù)據(jù)以及外觀顯示等。所以,要求開發(fā)者的個(gè)人電腦滿足主頻至少在 以上的 CPU, 2G 以上的內(nèi)存空間。下面就具體分析安卓開發(fā)所應(yīng)具備的一般步驟 [9]: ( 1) 應(yīng)用程序功能:在應(yīng)用程序 編碼之前, 就應(yīng)充分考慮到 用戶的需求,明確 所要達(dá)到的目的,以及為了達(dá)到這些目的應(yīng)用程序應(yīng)具有的基本功能。 ( 2) 應(yīng)用程序 所 需要的界面以及界面之間跳轉(zhuǎn)的流程:在這個(gè)階段應(yīng)分析應(yīng)用程序?yàn)檫_(dá)到目的,在實(shí)現(xiàn)功能過程中的流程,以及所需要的界面和界面之間的跳轉(zhuǎn)流程。 ( 4) 應(yīng)用程序是否需要服務(wù)端支持:在這個(gè)階段需要考慮應(yīng)用程序在使用過程中是否需要服務(wù)器端的支持,如果需要應(yīng)該為其提供服務(wù)器端的支持。 ( 6) 應(yīng)用程序是否需要特殊的權(quán)限:在這個(gè)階段需要考慮應(yīng)用程序在使用過程中的各種場(chǎng)景,是否有特殊場(chǎng)景需要特殊的權(quán)限,如果需要應(yīng)該設(shè)計(jì)權(quán)限。 設(shè)計(jì)理念 在設(shè)計(jì)該應(yīng)用程序之初,就應(yīng)該分析設(shè)計(jì)該程序所能產(chǎn) 生的效應(yīng),即應(yīng)用軟件 所具備的優(yōu)勢(shì) 。這些軟件功能已經(jīng)十分強(qiáng)大,那么如果在功能上耗費(fèi)時(shí)間和精力是沒有成效和市場(chǎng)的。所以,該款軟件的優(yōu)勢(shì)應(yīng)該在 于 簡(jiǎn)易 靈巧 且功能完善,如果后期制作允許,還應(yīng)該致力于界面設(shè)計(jì),因?yàn)橐豢罱缑嬗押玫能浖鶗?huì)得到用戶的青睞。 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 14 功能模塊分析 本文將實(shí)現(xiàn) 一個(gè)功能比較完備的手機(jī)地圖軟件 ,該應(yīng)用程序 可以 如下功能。該功能主要為了方便用戶對(duì)地圖進(jìn)行合適角度的 ( 2) 實(shí)時(shí)定位功能:這是每款軟件的基礎(chǔ)功能,也是核心功能,它能讓用戶時(shí)刻知道自己身處的位置繪制 。這樣可以方用戶進(jìn)行范圍設(shè)定和相關(guān)幾何運(yùn)算 。 ( 5)地點(diǎn)搜索功能:該 應(yīng)用程序還具有 地點(diǎn)搜索 功能, 如果輸入某一關(guān)鍵字,地圖將在市區(qū)內(nèi)搜索帶有次關(guān)鍵字的所有地點(diǎn),這樣,用戶可以進(jìn)行相應(yīng)的選擇。 ( 7)離線地圖功能:為用戶提供某些城市的地圖下載,這樣,可以有效的節(jié)省用戶流量,能得到用戶的喜歡。另外,系統(tǒng)默認(rèn)把地圖旋轉(zhuǎn) 45 度,俯視角為 45 度,當(dāng)然用戶可以根據(jù)自己的喜好自行修改旋轉(zhuǎn)角度及俯視角度。 ( 3)繪制 圖形功能 模塊 : 內(nèi)包含六個(gè)按鈕,“繪制點(diǎn)”,“繪制線”,“繪制矩形”,“繪制圓”,“移除矩陣”以及“清除所有” 。重復(fù)點(diǎn)擊這些按鈕,所有種類的顏色都會(huì)加深。當(dāng)點(diǎn)擊“添加標(biāo)記”按鈕時(shí),地圖會(huì)出現(xiàn)一個(gè)“ A”字樣的紅色標(biāo)識(shí)氣泡,再次點(diǎn)擊可以得到一個(gè)“ B”字樣的紅色氣泡標(biāo)識(shí) ,以此類推 。點(diǎn)擊“清除所有”,所有標(biāo)識(shí)一次性清除。 基于 Android 系統(tǒng)的手機(jī)地圖應(yīng)用軟件開發(fā) 15 ( 6)公交查詢功能模塊: 系統(tǒng)默認(rèn)查詢“西安”市內(nèi)的“ 336”公交車,用戶也可以根據(jù)自己的需要 輸入其他城市進(jìn)行查詢。 ( 7)離線地圖功能模塊:為用戶提供某些城市的地圖下載,這樣,可以有效的節(jié)省用戶流量,能得到用戶的喜歡。 開 始主 界 面實(shí) 時(shí) 定 位 繪 制 圖 形 地 圖 標(biāo) 記 地 點(diǎn) 搜 索 公 交 查 詢 離 線 地 圖我 的 地 圖地 圖 縮 放街 道 顯 示衛(wèi) 星 顯 示地 圖 顯 示 圖 41 程序系統(tǒng)模塊 程序流程圖 開發(fā)人員都知道, Android 系統(tǒng)的應(yīng)用程序的頁面是基于 Activity 跳轉(zhuǎn)的, 當(dāng) 程序在不同的頁面之間轉(zhuǎn)換的時(shí)候, Activity 也在進(jìn)行著跳轉(zhuǎn),而 Activity 的跳轉(zhuǎn)則在代碼層帶動(dòng)程序功能的實(shí)現(xiàn),因此為了順利的完成程序,必須對(duì)程序的流程和程序的頁面和Activity 跳轉(zhuǎn)流程有清晰的了解。 結(jié)合之前的設(shè)計(jì),先用流程圖來分析整個(gè)程序的運(yùn)行過程,在弄清楚運(yùn)行過程之后,再用例圖來分析用戶與程序頁面的交互情況,從用例圖的交互分析來得到程序頁面的跳轉(zhuǎn)流程以及程序的 Activity 跳轉(zhuǎn)流程。程序的 大致框 圖如圖 42。 用 戶公 交 查 詢手 機(jī) 地 圖繪 制 圖 形地 圖 搜 索實(shí) 時(shí) 定 位地 點(diǎn) 標(biāo) 記離 線 地 圖我 的 地 圖 與 M y M a p A c t i v i t y 相 關(guān) 聯(lián)與 M y P o i A c t i v i t y 相 關(guān) 聯(lián)與 O f f l i n e A c t i v i t y 相 關(guān) 聯(lián)與 B u s l i n e A c t i v i t y 相 關(guān) 聯(lián)與 S e a r c h A c t i v i t y 相 關(guān) 聯(lián)與 M a r k P o i A c t i v i t y 相 關(guān) 聯(lián)與 I t e m i z e d A c t i v i t y 相 關(guān) 聯(lián)I n c l u d eI n c l u d e 圖 43 程序的用例分析 由上圖可知,在頁面的跳轉(zhuǎn)過程中,會(huì)有四個(gè) Activity 伴隨著頁面的跳轉(zhuǎn)而發(fā)生變化,分別是 MyMap、 MyPoi、 Itemized、 MarkPoi、 Search、 Busline、 Offline 七 個(gè) Activity,為此應(yīng)在程序中設(shè)置 Ac