【文章內(nèi)容簡(jiǎn)介】
序來(lái)說(shuō),是由 Activity、 IntentReceiver、 Service、Content Provider 四部分組成 [6]。在應(yīng)用程序中使用時(shí),需要在配置文件 中進(jìn)行配置。這個(gè)配置文件是每個(gè) Android 應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等 。 Android 應(yīng)用的構(gòu)成和工作流程如圖 21 所示 。 6 I n t e n tR e c e i v e rA c t i v i t y外 部 事 件A c t i v i t yS e r v i c eB i n d e r存 儲(chǔ) 設(shè) 備C o n t e n t P r o vi d e rI n t e n t通 過(guò) C o n t e n t P r o v i d e r進(jìn) 行 數(shù) 據(jù) 存 儲(chǔ)通 過(guò) I n t e n t R e c e i v e r對(duì) 外 部 事 件 進(jìn) 行 響 應(yīng)通 過(guò) I n t e n t 實(shí) 現(xiàn) 活 動(dòng)之 間 的 轉(zhuǎn) 換通 過(guò) B i n d e r 對(duì) S e r v i c e 進(jìn)行 綁 定 圖 21 Android 的構(gòu)成和工作流程 通常由以下四個(gè)組件來(lái)構(gòu)建一個(gè)完整的 Android 應(yīng)用程序 [7]。 ( 1)活動(dòng) ( 2)意圖接收器 ( 3)服務(wù) ( 4)內(nèi) 容提供者 然而,并不是所有的 Android 應(yīng)用程序都必須具備上面的四個(gè)組件,可以由上面的一個(gè)或幾個(gè)來(lái)組建。當(dāng)決定使用以上哪些組件來(lái)構(gòu)建 Android 應(yīng)用程序時(shí),需要將它們注冊(cè)在 文件中,這是一個(gè) XML 配置文件,在這個(gè)文件中可以聲明應(yīng)用程序組件以及它們的特性和要求。這個(gè)配置文件是每個(gè)Android 應(yīng)用程序所必需的。 活動(dòng) 活動(dòng)是以上四個(gè)組件中最常用的一個(gè)。每個(gè)活動(dòng)都是 Activity 的子類,并實(shí)現(xiàn)了一些獨(dú)有的功能,如管理 UI 顯示和 UI 的反饋事件。一個(gè)活動(dòng)就相當(dāng)于 應(yīng)用程序的一個(gè)用戶界面,由事件響應(yīng)以及視圖等組成。大多數(shù)的應(yīng)用程序通常包括多個(gè)界面。例如 :一個(gè)文本聊天應(yīng)用程序,至少應(yīng)該包含一個(gè)聯(lián)系人列表界面、一個(gè)聊天界面、一個(gè)設(shè)置界面、一個(gè)聊天記錄查詢界面等等。每個(gè)界面其實(shí)都可看作是一個(gè)活動(dòng)。顯示一個(gè)新界面就相當(dāng)于生成一個(gè)對(duì)應(yīng)的活動(dòng)對(duì)象。在一些情況下,活動(dòng)能夠返回給它的上級(jí)界面一個(gè)返回值,例如一個(gè)提供給用戶選擇照片的活動(dòng)可以返回給它的調(diào)用者用戶選擇了哪個(gè)照片文件。 7 當(dāng)一個(gè)新的活動(dòng)出現(xiàn)時(shí),前一個(gè)活動(dòng)被中斷并被放入到一個(gè)歷史堆棧中。用戶可以使用返回鍵使前一個(gè)活動(dòng)重現(xiàn)。當(dāng)一個(gè) 活動(dòng)不再需要時(shí),可以將它們從歷史堆棧中移除。默認(rèn)情況下, Android 會(huì)為每個(gè)應(yīng)用程序保留從主界面開始的歷史堆棧。 Android 通過(guò)一個(gè)被稱作意圖的特殊類,來(lái)實(shí)現(xiàn)界面與界面之間的跳轉(zhuǎn)。一個(gè)意圖描述了一個(gè)應(yīng)用程序想要做什么。在意圖的描述結(jié)構(gòu)中,含有兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu) :動(dòng)作和動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。典型的動(dòng)作類型包括 MAIN、 VIEW、 PICK、EDIT 等等,而動(dòng)作對(duì)應(yīng)的數(shù)據(jù)則以 URI 的形式表示。例如 :顯示一個(gè)聯(lián)系人信息的界面,可以創(chuàng)建一個(gè)意圖,并將它的動(dòng)作設(shè)置成 VIEW,數(shù)據(jù)設(shè)置成表示這個(gè)人信息的 URI。 除此之外 ,還有一個(gè)被稱作意圖過(guò)濾器 (IntentFiher)的相關(guān)類。當(dāng)發(fā)生一個(gè)有效的目的請(qǐng)求時(shí),意圖過(guò)濾器用來(lái)描述一個(gè)活動(dòng)能夠處理什么意圖。如上例中所描述,想要正常顯示一個(gè)聯(lián)系人信息的界面,必須聲明一個(gè)意圖過(guò)濾器,它說(shuō)明當(dāng)有聯(lián)系人數(shù)據(jù)要在界面上顯示時(shí),知道如何處理它們。通常意圖過(guò)濾器要被注冊(cè)在 文件中。從一個(gè)界面跳轉(zhuǎn)到另一個(gè)界面是由解析各種意圖實(shí)現(xiàn)的。例如 :一個(gè)活動(dòng)使用 startActivity(myIntent)來(lái)調(diào)用其他活動(dòng)時(shí),系統(tǒng)會(huì)查找所有已經(jīng)安裝的應(yīng)用程序的意圖過(guò)濾器, 并從中挑選出能夠匹配 myIntent 意圖的活動(dòng)。隨后,這個(gè)新的活動(dòng)接收到意圖 (myIntent)的通知并開始運(yùn)行。當(dāng)startActivity 方法被調(diào)用,解析意圖的處理過(guò)程隨之發(fā)生,這個(gè)機(jī)制有以下兩個(gè)突出的 優(yōu)點(diǎn): ( 1) 活動(dòng)可以通過(guò)一個(gè)以意圖形式產(chǎn)生的請(qǐng)求來(lái)重用其他組件的功能。 ( 2) 活動(dòng)可以在任何時(shí)候被一個(gè)具有等價(jià)意圖過(guò)濾 器的新活動(dòng)所替代。 意圖接收器 當(dāng)想要編寫代碼來(lái)對(duì)外部事件做一些處理時(shí),可以使用意圖接收器。意圖接收器并不顯示 UI界面,它是通過(guò) NotificationManager 來(lái)通知用 戶他們感興趣的事件發(fā)生了。意圖接收器同樣可以被注冊(cè)在 文件中,同時(shí)也可以在代碼中使用 ()來(lái)注冊(cè)自己的意圖接收器。當(dāng)一個(gè)意圖接收器被觸發(fā)時(shí),系統(tǒng)會(huì)根據(jù)需要來(lái)啟動(dòng)應(yīng)用程序。 服務(wù) 服務(wù)是具有長(zhǎng)生命周期并且沒(méi)有用戶界面的代碼。 Service 一般用于需要長(zhǎng)時(shí)間在后天運(yùn)行的應(yīng)用。例如,在播放 MP3 音樂(lè)時(shí),使用 Service 播放 MP3 音樂(lè), 8 可以在關(guān)閉播放器界面的情況下長(zhǎng)時(shí)間播放 MP3 音樂(lè),并通過(guò)對(duì)外公開 Service的通信接 口,控制 MP3 音樂(lè)播放的啟動(dòng)、暫停和停止。 內(nèi)容提供者 在 Android 中,每個(gè)應(yīng)用程序都是有自己的 userID 及在自己的進(jìn)程中執(zhí)行。這樣做的好處是,可以保護(hù)系統(tǒng)及應(yīng)用程序,避免被其他不正常的應(yīng)用程序所影響??梢园衙總€(gè)進(jìn)程想像成是一個(gè)黑盒子,彼此不會(huì)互相影響,連內(nèi)存的資料都無(wú)法共享。如果應(yīng)用程序之間想要共享數(shù)據(jù),就需要使用內(nèi)容提供者。一個(gè)內(nèi)容提供者就是一個(gè)類,它實(shí)現(xiàn)了一個(gè)標(biāo)準(zhǔn)的方法集合。其他的應(yīng)用程序可以使用這些方法來(lái)保存和檢索此內(nèi)容提供者處理過(guò)的數(shù)據(jù)。 Android 與 iPhone 比較 Android 與 iPhone 是目前占據(jù)市場(chǎng)比例最大的兩種智能手機(jī)操作系統(tǒng),兩者各有千秋,在不同方面展示出自己的競(jìng)爭(zhēng)力。由于這四、五年特別是近兩年來(lái)的上佳表現(xiàn)被業(yè)內(nèi)評(píng)為未來(lái)占主導(dǎo)地位的智能手機(jī)操作系統(tǒng),將占據(jù) 80%的智能手機(jī)市場(chǎng)。以下是從五個(gè)方面來(lái)對(duì)比 Android 與 iPhone: ( 1) 開放性方面: Android 是個(gè)完全開源的項(xiàng)目,開發(fā)者可以根據(jù)自己需要任意改造其系統(tǒng),讓 Android 表現(xiàn)的更為靈活。 iPhone 則完全是為自己量身定做系統(tǒng)。由于 Android 表現(xiàn)的較為開放,眾多開發(fā)者的實(shí)際經(jīng)驗(yàn)可以幫助 Android更快的進(jìn)步,讓升級(jí)版本更快更好的完善。 ( 2) 第三方應(yīng)用推廣方面: Android 和 iPhone 都有自己的應(yīng)用超市,目前iPhone 的付費(fèi)方式購(gòu)買比 Android 較為完善,所以當(dāng)前從事 iPhone 應(yīng)用開發(fā)的開發(fā)人員盈利水平比 Android 較高。但由于 Android 開放力度較大,現(xiàn)在兩者應(yīng)用超市上的應(yīng)用軟件數(shù)量基本持平。 ( 3) 用戶體驗(yàn)方面:用戶體驗(yàn)最深的自然是屏幕界面以及機(jī)器性能。 iPhone以開發(fā) MAC OS 多年的經(jīng)驗(yàn)使得 iPhone 界面美觀方面的確優(yōu)于 Android。但隨著Android 系統(tǒng)的迅 速改善特別是最近一年對(duì)圖形處理方面的重視以及開發(fā)者開發(fā)經(jīng)驗(yàn)的增長(zhǎng),兩者開發(fā)的應(yīng)用軟件界面體驗(yàn)差距越來(lái)越小。 ( 4) 潛在用戶群方面:手機(jī)用戶是推動(dòng)智能手機(jī)操作系統(tǒng)成長(zhǎng)的重要因素,影響用戶選擇手機(jī)最重要的因素則是手機(jī)的性價(jià)比。目前全世界預(yù)裝 Android 系統(tǒng)的手機(jī)的主要廠商越有 20 多個(gè),從機(jī)器配置方面來(lái)看, Android 手機(jī)性價(jià)比遠(yuǎn) 9 遠(yuǎn)高于 iPhone,讓更多的用戶更愿意選擇使用 Android 手機(jī)。這對(duì) Android 的成長(zhǎng)非常有利。 ( 5) 應(yīng)用開發(fā)方面: Android 的開發(fā)語(yǔ)言主要是 Java 語(yǔ)言, iPhone 則是Objective C。 Java 語(yǔ)言開發(fā)的引用移植性較好,開發(fā)人員較 Objective C 更多。而Objective C 開發(fā)的軟件則執(zhí)行效率更高,為彌補(bǔ)這方面缺陷, Android 提供了 JNI接口,對(duì)執(zhí)行效率要求較高的部分可以使用 C 語(yǔ)言 開發(fā)再通過(guò) JNI 接口調(diào)用來(lái)提高執(zhí)行效率。 本章小結(jié) 本章簡(jiǎn)要闡述游戲的開發(fā)環(huán)境 Android 的特點(diǎn)和構(gòu)成,然后與 iPhone 平臺(tái)作比較,最后總結(jié)兩者的優(yōu)缺點(diǎn)。 10 3 策劃與需求分析 本章主要 探究 游戲的前期策 劃工作 ,從游戲策劃、 美工需求和 功能需求三個(gè)方面描述游戲的策劃與 需求分析過(guò)程 。 游戲策劃 本游戲是根據(jù)圣??颂K佩里的小說(shuō)《小王子》為原型結(jié)合現(xiàn)在比較流行的解謎元素設(shè)計(jì)的一款解謎游戲。以各種常見的游戲元素和卡通畫形式構(gòu)建游戲,并借鑒小說(shuō)的劇情與深意使游戲更有內(nèi)涵。 游戲的策劃主要包括游戲的情節(jié)、目標(biāo)受眾、運(yùn)行的目標(biāo)平臺(tái)、采用的呈現(xiàn)技術(shù)、操作方式等幾個(gè)方面。下面就針對(duì)本游戲?qū)ι鲜鰩讉€(gè)方面進(jìn)行簡(jiǎn)單的介紹,如下所列。 游戲情節(jié),本游戲?yàn)檩p量級(jí)的益智游戲,因此不存在很復(fù)雜的情節(jié)。這方面主要借鑒《小王子》與自己的構(gòu)想。主角為獨(dú)自生活在 612 星球的小王子,小王子的星球很小,小 的只能容下他一個(gè)人。某天他的星球長(zhǎng)出了一朵玫瑰花,孤單的小王子細(xì)心照料它,并與這朵花成為了朋友,但小王子為了了解外面的世界不得不離開他的星球和他唯一的朋友“玫瑰花”。小王子在一個(gè)很大的星球上迷失了方向,根據(jù)影子的指引離開了這個(gè)廣闊但沒(méi)有方向感的星球。然后小王子又來(lái)到了一個(gè)很小的星球,這個(gè)星球小的只有一個(gè)小房子,小王子困在了小房子,找到機(jī)關(guān)與鑰匙小王子繼續(xù)他的旅行。而后在另一個(gè)星球上小王子遇到了一只狐貍,狐貍讓他理解了什么是馴服、什么是責(zé)任,小王子決定返回自己的星球和自己的玫瑰花身旁。忘了回家路的小王子乘著風(fēng) 的方向回到了 612 星球,擁抱自己的玫瑰花。本游戲主角原型為《小王子》的主角,一個(gè)天真爛漫的孩子,故事的主題為愛與責(zé)任。 關(guān)卡設(shè)計(jì),本游戲設(shè)為三個(gè)關(guān)卡,每個(gè)關(guān)卡有自己不同的過(guò)關(guān)要求,通過(guò)不同的玩法最終完成游戲。游戲第一關(guān)和第三關(guān)為迷宮類,玩家需要按照正確路徑走出迷宮,第二關(guān)為密室逃脫類,玩家通過(guò)對(duì)逃脫物品的尋找逃脫密室。 目標(biāo)受眾,這個(gè)游戲受眾主要為年輕人。考慮到受眾面廣的原因,將畫面設(shè)定為卡通畫形式,使畫面更加年輕化。 運(yùn)行的目標(biāo)平臺(tái),本游戲的目標(biāo)平臺(tái)為 以上的 Android 手機(jī) 。 操作 方式,本游戲采用 Android 手機(jī)觸摸屏幕控制游戲,使操作更加簡(jiǎn)單方 11 便。 游戲使用 Eclipse 作為主要的開發(fā)工具,使用 Photoshop 作為圖片處理工具。 美工需求 一款游戲是否受歡迎,取決于它的娛樂(lè)性和可觀賞性, 高速發(fā)展的游戲產(chǎn)業(yè)使玩家的要求越來(lái)越嚴(yán)格, 所以游戲的界面美化和圖形設(shè)計(jì)是很重要的 [8]。本游戲的一些美工需求如下: :游戲的場(chǎng)景根據(jù)游戲不同的關(guān)卡分為很多種,每個(gè)場(chǎng)景都需要不同的圖片和圖形元素。這些場(chǎng)景有的只需要一個(gè)背景圖片有的則需要多張疊加構(gòu)成。 :按鈕的使用方便觸屏的操作,本 游戲按鈕需求包括方向按鈕、功能按鈕和元素按鈕。 :游戲中需要物品的顯示,需要通過(guò)觸摸進(jìn)行一些操作,用圖片來(lái)顯示既美觀又方便操作。 計(jì)劃采用網(wǎng)上素材和設(shè)計(jì)這兩種方式,用 Photoshop 等圖片處理軟件處理圖片達(dá)到需要的效果。 功能需求 項(xiàng)目實(shí)現(xiàn)解謎游戲的所有基本功能 ,同時(shí),為了滿足玩家的個(gè)人需求,在游戲中加入了背景音樂(lè)和音效等效果,從而使游戲從感官上更加吸引玩家。在游戲中為了方便玩家查看已獲取的物品需加入背包按鈕,玩家可以通過(guò)點(diǎn)擊可獲得物品得到物品,通過(guò)方向按鈕切換不同的場(chǎng)景。 1. 游戲主界面功 能需求 良好的用戶界面,能夠在視覺(jué)上吸引玩家。為了使界面簡(jiǎn)潔美觀,需要在主界面中添加背景圖片來(lái)渲染游戲的氣氛,同時(shí)為了便于玩家的操作,需要設(shè)置四個(gè)按鈕供玩家選擇,分別是“開始游戲”、“設(shè)置”、“幫助”、“退出”。這樣的設(shè)置讓用戶一目了然。具體功能如下 : (1)開始游戲,點(diǎn)擊跳轉(zhuǎn)到游戲界面,開始游戲; (2)游戲設(shè)置,玩家可以選擇是否打開背景音樂(lè)和設(shè)置音樂(lè)音量的大小; (3)游戲說(shuō)明,簡(jiǎn)單介紹此游戲的基本功能和玩法; (4)退出游戲,點(diǎn)擊退出游戲。 2. 場(chǎng)景切換處理事件的需求 12 為了方便玩家操作,需要設(shè)置四 個(gè)方向供玩家操作,分別為向上、向下、向左、向右的按鈕。玩家切換場(chǎng)景,可通過(guò)點(diǎn)擊方向按鈕(上、下、左、右)向?qū)?yīng)的場(chǎng)景切換。 3. 背包顯示需求 玩家可以點(diǎn)擊界面的背包按鈕查看已經(jīng)獲得的物品,顯示物品的名稱和介紹信息。 4. 獲取物品需求 當(dāng)玩家點(diǎn)擊可獲取的物品時(shí),物品消失并彈出提示消息“玩家獲得該物品”,再次切換到此場(chǎng)景不會(huì)再顯示物品。 玩家可以點(diǎn)擊“背包”按鈕查看新獲取的物品。 5. 事件響應(yīng)需求 事件響應(yīng)分為按鈕響應(yīng)、圖片響應(yīng)、特定區(qū)域響應(yīng),分別對(duì)應(yīng)玩家點(diǎn)擊按鈕、點(diǎn)擊物品和點(diǎn)擊特定區(qū)域的動(dòng)作,根據(jù)不同動(dòng)作做出 不同的響應(yīng)。 游戲的功能用例圖如圖 31 所示。 游 戲 玩 家?guī)?助設(shè) 置退 出開 始 游 戲 切 換 場(chǎng) 景音 量 大 小打 開 音 樂(lè)關(guān) 閉 音 樂(lè) u s e s 查 看 物 品獲 取 物 品 u s e s u s e s i n c l u d e i n c l u d e u s e s i n c l u d e i n c l u d e i n c l u d e i n c