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