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