漫寵系統(tǒng)的設計與實現(xiàn)-初稿_第1頁
漫寵系統(tǒng)的設計與實現(xiàn)-初稿_第2頁
漫寵系統(tǒng)的設計與實現(xiàn)-初稿_第3頁
漫寵系統(tǒng)的設計與實現(xiàn)-初稿_第4頁
漫寵系統(tǒng)的設計與實現(xiàn)-初稿_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、漫寵系統(tǒng)的設計與實現(xiàn)摘要 隨著智能手機及平板電腦等高端電子產(chǎn)品的普及以及3G網(wǎng)絡的普遍覆蓋,手機已經(jīng)從單純的通訊工具轉(zhuǎn)變?yōu)榧瘖蕵?、學習、通訊為一體的高端電子產(chǎn)品。各種Android手機游戲受到廣大用戶的關(guān)注與喜愛,Android手機游戲擁有巨大的潛力,它也將主宰著手機游戲的未來。本次畢業(yè)設計順應時代發(fā)展潮流,依托現(xiàn)有硬件上的優(yōu)勢,以Android操作系統(tǒng)為平臺設計和開發(fā)了一款名為“漫寵”的寵物休閑類游戲。本文基于Android平臺介紹了漫寵系統(tǒng)的研究背景、目的、意義、系統(tǒng)開發(fā)的概述等內(nèi)容,全文重點介紹了實現(xiàn)漫寵系統(tǒng)的相關(guān)理論基礎、運行平臺、實現(xiàn)技術(shù)和部分功能實現(xiàn)過程。關(guān)鍵字 漫寵 Androi

2、d 設計 實現(xiàn) 1目錄第一章 引言11.1 論文研究背景與意義11.2 本課題研究內(nèi)容與目標1第二章 開發(fā)環(huán)境及相關(guān)架構(gòu)介紹32.1 Android系統(tǒng)概述32.1.1 Android系統(tǒng)介紹32.1.2 Android架構(gòu)介紹32.2 開發(fā)環(huán)境搭建62.2.1 用Eclipse創(chuàng)建Android工程62.2.2 用Eclipse創(chuàng)建Android模擬器6第三章 Android手機漫寵應用及相關(guān)技術(shù)研究83.1 漫寵應用概述83.1.1漫寵主題創(chuàng)意83.1.2漫寵運行機制概述83.2 漫寵應用相關(guān)技術(shù)93.2.1 Activity93.2.2 Service113.2.3 Intent Rec

3、eiver113.2.4 Content Provide113.3 養(yǎng)成模塊123.3.1 Fragment123.3.3 WebView13第四章 漫寵應用的實現(xiàn)144.1 漫寵應用的開發(fā)工作144.2 軟件功能結(jié)構(gòu)圖144.3 寵物養(yǎng)成的實現(xiàn)164.3.1 商品購買164.3.2 儲藏室174.3.3 寵物窩174.4 每日簽到的實現(xiàn)184.5 寵物動畫播放的實現(xiàn)184.6 版本檢查更新的實現(xiàn)19第五章 系統(tǒng)測試205.1 測試環(huán)境205.2 應用預測功能測試205.2.1 漫寵喂養(yǎng)測試205.2.2 漫寵領(lǐng)養(yǎng)測試215.2.3 每日簽到測試215.2.4 版本檢查更新測試22第六章 總結(jié)

4、和展望236.1全文工作總結(jié)236.2未來工作展望23致謝語24參考文獻2523第一章 引言1.1 論文研究背景與意義手機從2G到3G網(wǎng)絡的全面覆蓋,移動設備硬件條件的快速提升以及智能手機的普及,人們對手機游戲的關(guān)注與喜愛也日漸火熱起來。目前,國內(nèi)主流的兩大智能手機操作系統(tǒng)有Android和iOS。其中,Android系統(tǒng)用戶數(shù)量規(guī)模大大超過iOS用戶數(shù)量。截止2013第一季度Android系統(tǒng)用戶全球占有率就已經(jīng)達到75%。Android系統(tǒng)的快速發(fā)展需要的是應用和開發(fā)的跟進。首先介紹一下Android系統(tǒng)。Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),其SDK已經(jīng)非常完善

5、,主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領(lǐng)導及開發(fā)。據(jù)騰訊公司官網(wǎng)顯示,2014年4月11日晚間,騰訊QQ同時在線用戶數(shù)突破2億,其中騰訊QQ手機用戶群貢獻良多。并且當前的App市場還不存在集娛樂性與實用性于一體的寵物領(lǐng)養(yǎng)的應用。因此,通過Android平臺實現(xiàn)漫寵應用的開發(fā)與實現(xiàn)模仿QQ寵物,為每個用戶的手機實現(xiàn)能夠領(lǐng)養(yǎng)屬于自己的寵物的應用,將具有廣闊的發(fā)展前景。希望通過老師的指導及對這篇論文的研究,能夠?qū)β檻玫幕竟δ苓M行比較透徹的分析。并且充分的展示自己在校期間的學習與研究成果,為大學四年的學習成果交上一份滿意的答卷。1.2 本課題研究內(nèi)容與目標本

6、課題研究了Android SDK開發(fā)環(huán)境12以及此環(huán)境下Fragment應用、異步請求框架、斷點續(xù)傳下載、Json數(shù)據(jù)解析等手機應用開發(fā)相關(guān)技術(shù)。在本游戲中首先利用網(wǎng)絡請求將手機號碼發(fā)送到服務器注冊,服務器產(chǎn)生一個UserToken并返回一條動態(tài)密碼短信,用戶可以根據(jù)該密碼進行登錄。其次利用Http協(xié)議獲取服務器返回的數(shù)據(jù),運用Json數(shù)據(jù)解析實現(xiàn)用戶登錄和相關(guān)狀態(tài)的判斷。同時,根據(jù)服務器返回的數(shù)據(jù)判斷,運用斷點續(xù)傳下載實現(xiàn)應用的版本更新下載。最后,運用Fragment技術(shù)實現(xiàn)養(yǎng)成模塊的主要內(nèi)容,給用戶提供更加直觀的視覺體驗。由于漫寵應用涉及到寵物自身的動畫播放及用戶視覺體驗。本論文重點研究體

7、現(xiàn)漫寵應用“萌”的兩種重要技術(shù)。第一種方式是利用Android內(nèi)置空間WebView加載Javascript播放動畫。第二種方式是利用Fragment技術(shù)實現(xiàn)養(yǎng)成模塊中的商品、儲藏室、寵物窩等相關(guān)功能的分類。此應用的最大特色是模仿QQ寵物實現(xiàn)以一種的“萌”的方式展示于用戶。將娛樂與實用性集中于寵物,真正的給用戶的生活帶來歡樂與實用。為了對該系統(tǒng)的整體介紹,本論文還簡要的介紹了關(guān)于QQ寵物的相關(guān)功能,實現(xiàn)漫寵與QQ寵物的相關(guān)特性的相結(jié)合。第2章 開發(fā)環(huán)境及相關(guān)架構(gòu)介紹2.1 Android系統(tǒng)概述2.1.1 Android系統(tǒng)介紹Android系統(tǒng)是工作于智能手機之上的操作系統(tǒng)3,其系統(tǒng)特性與手

8、機的硬件息息相關(guān)。由于手機硬件的配置與手機操作系統(tǒng)有著緊密的關(guān)系跟PC機操作系統(tǒng)有著很大差異性。因此,只有充分了解了Android系統(tǒng)的特性才能夠開發(fā)出真正適合手機的軟件。以下是Android SDK2.2的主要特性: 1)應用程序框架支持組件的重用與替換 2)Dalvik虛擬機專門為移動設備進行了優(yōu)化 3)內(nèi)部的瀏覽器是基于開源的Webkit引擎 4)優(yōu)化的圖形庫包括2D和3D圖形庫,3D圖形庫基于OpenGL ES 1.0 5)SQLite用作結(jié)構(gòu)化的數(shù)據(jù)存儲 6)多媒體支持包括常見的音頻、視頻和靜態(tài)印象文件格式 7)GSM電話(依賴于硬件) 8)藍牙(Bluetooth)、EDGE、3G

9、、WiFi(依賴于硬件) 9)照相機、GPS、指南針和加速度計(依賴于硬件) 10)富的開發(fā)環(huán)境包括設備模擬器、調(diào)試工具、內(nèi)存及性能分析圖表和Eclipse集成的開發(fā)環(huán)境插件2.1.2 Android架構(gòu)介紹 在了解了Android的基礎特性,我們再深入的學習與分析Android的架構(gòu)才能更好的利用Android系統(tǒng)提供的相關(guān)的API,更有效的整合Android資源,從而開發(fā)出強大且穩(wěn)定性好的手機應用。Android的系統(tǒng)架構(gòu)與其他的操作系統(tǒng)一樣,采用了分層的架構(gòu)。Android平臺4大致分為四層,從底層到用戶體驗層分別是linux核心層、系統(tǒng)運行庫層、應用程序框架層和應用程序?qū)印?圖2-1為

10、Android系統(tǒng)軟件層架構(gòu)圖,Android系統(tǒng)軟件層從上到下分為四層,即應用程序?qū)?、應用程序框架層、系統(tǒng)運行庫、操作系統(tǒng):圖2-1 Android架構(gòu) 1、應用程序?qū)?Application)是與用戶交互的層次,用戶都能看得見這些程序的應用。應用程序的開發(fā)在Android SDK開發(fā)環(huán)境下使用java作為編程語言來開發(fā)應用程序。但是,通過不同的軟件開發(fā)包使用的編程語言也是不同的。Android為用戶自帶了很多基本應用程序,比如:瀏覽器、撥打電話、短息、聯(lián)系人等。所以開發(fā)人員可以利用Android提供的API編寫出需要的應用程序,然后提供給廣大應用軟件消費者使用。 2、應用程序框架層2(Ap

11、plicationFramework)為開發(fā)人員提供編寫應用程序時所需要用到的API,開發(fā)人員在開發(fā)應用程序時可以重復的利用這些組件和服務。目前所有的應用程序主要包含以下組件和服務: (1)豐富而又可擴展的視圖(View):可以用來構(gòu)建應用程序,它包括列表(List)、網(wǎng)格(Grid)、文本框(Text Box)、按鈕(Button),以及可嵌入的Web瀏覽器。 (2)內(nèi)容提供器(Content Providers):它可以讓一個應用訪問另一個應用的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫), 或共享它們自己的數(shù)據(jù)。 (3)資源管理器(Resource Manager):提供非代碼資源的訪問,如本地字符串、圖形和

12、布局文件(Layout file)。 (4)通知管理器(Notification Manager):應用可以在狀態(tài)欄中顯示自定義的提示信息。 (5)活動管理器(Activity Manager):用來管理應用程序生命周期并提供常用的導航退回功能。 (6)窗口管理器(Window Manager):管理所有的窗口程序。 (7)包管理器(Package Manager):Android 系統(tǒng)內(nèi)的程序管理。 3、庫(Libraries)及運行時類庫(RunTime)此層大多數(shù)涉及底層。如果對此層進行系統(tǒng)學習將有效的開發(fā)出受系統(tǒng)限制較少、權(quán)限更高的應用程序。該層主要包含八大核心庫: (1)系統(tǒng)C庫-

13、一個從BSD 繼承來的標準C 系統(tǒng)函數(shù)庫(libc),它是專門為基于embedded linux的設備定制的。 (2)媒體庫- 基于PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。 (3)SurfaceManager - 對顯示子系統(tǒng)的管理,并且為多個應用程序提供了2D和3D 圖層的無縫融合。 (4)LibWebCore - 一個最新的web 瀏覽器引擎用,支持Android 瀏覽器和一個可嵌入的web 視圖。 (5)SGL - 底層的2D圖形引

14、擎 (6)3D libraries - 基于OpenGL ES 1.0 APIs 實現(xiàn);該庫可以使用硬件3D 加速(如果可用)或者使用高度優(yōu)化的3D 軟加速。 (7)FreeType -位圖(bitmap)和矢量(vector)字體顯示。 (8)SQLite - 一個對于所有應用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎。 (9)核心庫為應用程序開發(fā)提供了標準的java核心庫類 (10)Dalvik VM是Android平臺下的一個虛擬機 4、Linux內(nèi)核。Android系統(tǒng)平臺是基于優(yōu)化了的Linux內(nèi)核,是其系統(tǒng)平臺的核心。它提供諸如內(nèi)存管理、進程管理、設備驅(qū)動等服務,同時也是作為硬件與軟

15、件棧之間的抽象層,用來做相互溝通的工作。2.2 開發(fā)環(huán)境搭建由于漫寵是在Windows操作系統(tǒng)下,使用Eclipse開發(fā)的Android項目,運行在Android模擬器上,所以需要對Eclipse中的開發(fā)環(huán)境和Android模擬器的創(chuàng)建進行配置。2.2.1用Eclipse創(chuàng)建Android工程直接new一個Android Application project2.2.2 用Eclipse創(chuàng)建Android模擬器1、點擊菜單欄的Android Virtual Device Manager2、 點擊New按鈕創(chuàng)建一個新的模擬器 3、創(chuàng)建完模擬器后,點擊OK按鈕 第三章 Android手機漫寵應用及

16、相關(guān)技術(shù)研究3.1 漫寵應用概述3.1.1漫寵主題創(chuàng)意漫寵手機應用屬于寵物養(yǎng)成類游戲,與QQ寵物類似用戶可以在寵物窩選擇一只或多只自己滿意的寵物??梢噪S身攜帶在手機上不定時對寵物進行喂養(yǎng),在人們閑暇的時候可以讓寵物講笑話或者命令該寵物做某些操作來愉悅?cè)藗兊男那?。此應用還提供了一些實用的具有特色的小工具,包括鬧鐘、備忘錄、天氣預報等。在這些小工具中我們加入了以寵物為主題的動畫來顯示,讓人們對自己的寵物愛不釋手。 同時,人們可以在養(yǎng)成里面利用漫豆購買商品來喂養(yǎng)自己的寵物,購買成功的商品將在自己的儲藏室看見商品的數(shù)目。我們還提供了豐富的游戲應用,在娛樂模塊里面提供了三種游戲進行選擇,我們可以帶著我們

17、自己的寵物進行游戲等操作。漫寵應用為用戶提供著豐富的操作,在主界面上會有顯示寵物的等級、體力、寵物名稱等寵物的基本信息。應用還加入了人性化的每日簽到功能,連續(xù)簽到的天數(shù)越多獎勵的漫豆數(shù)目越多。另外,為了有效的對應用的維護與升級,應用加入了版本更新檢查。當版本更新時利用Notification11和斷點續(xù)傳下載在通知欄顯示下載進度,給用戶一個良好的體驗感覺。3.1.2 漫寵運行機制概述漫寵應用是在Android SDK 2.2的框架環(huán)境上開發(fā)的。圖3-1為漫寵應用的基本架構(gòu),主要有五大功能模塊,分別是以Fragment應用為主網(wǎng)絡請求為輔實現(xiàn)商品購買、儲藏室、游戲道具購買、寵物領(lǐng)養(yǎng)等功能的養(yǎng)成模

18、塊;使用第三方軟件“訊飛”語音軟件解析語音輸入和Intent調(diào)用相關(guān)Activity的語音模塊;充分調(diào)用和重寫Android系統(tǒng)自身自帶的API實現(xiàn)自定義動畫插入實現(xiàn)鬧鐘、備忘錄、天氣預報等功能的服務模塊;cocos2d及相關(guān)游戲開發(fā)語言相結(jié)合的娛樂模塊;由GridView刷新和網(wǎng)絡請求實現(xiàn)的每日簽到模塊。主界面是展示寵物的基本信息及體現(xiàn)本應用的特點的核心。當?shù)谝淮伟惭b本應用時經(jīng)過Http協(xié)議登錄服務器會先默認領(lǐng)養(yǎng)一直寵物并下載相關(guān)的資源包以及與之相關(guān)的基本信息的Json數(shù)據(jù),通過對Json數(shù)組的解析獲得的寵物的基本信息,在主界面利用相關(guān)控件進行展示,以及通過WebView加載JavaScri

19、pt控制寵物動畫的播放。當用戶觸擊屏幕時寵物會轉(zhuǎn)換不同狀態(tài),給用戶帶來意想不到的變化。 圖3-1漫寵系統(tǒng)的架構(gòu) 3.2 漫寵應用相關(guān)技術(shù) 寵物主界面是整個應用的核心,貫穿于正個漫寵應用。主要任務是展示用戶寵物的基本信息,并響應不同屏幕間的切換,同時,實現(xiàn)不同功能模塊間Activity的通訊。另外是協(xié)調(diào)系統(tǒng)各個功能模塊的工作。 一個Android應用程序主要由Activity、Service、Intent Receiver、Content Provider四個構(gòu)造塊中的若干塊組成,當確定要需要哪些塊后需要在AndroidManifest.xml中進行配置。3.2.1 Activity Activ

20、ity 5是一個有生命周期的對象。在應用中各個Activity之間是緊密聯(lián)系在一起的,每個Activity都被實現(xiàn)成一個類且每個類都繼承于Activity這個基類。在應用中一個Activity通常就是一個屏幕,Activity通過setContentView(View)為用戶展示在Res/Layout中自定義的UI界面,并可提取UI元素進行操作。一個應用中不同的功能模塊用不同的Activity進行展示,因此就會有多個Activity。Activity之間的可以利用Intent進行切換和數(shù)據(jù)間的傳遞。同時Android系統(tǒng)中是通過Activity棧來管理Activity的,在應用啟動時不同Act

21、ivity就會經(jīng)歷不同的生命周期。如圖3-2所示Activity的生命周期本質(zhì)分為4種狀態(tài):(1) 當前展示的Activity時,則此Activity在棧頂。當前的運行狀態(tài)為running或active狀態(tài)。(2) 當Activity被Dialog或者透明的Activity覆蓋時,這時Activity的狀態(tài)是Paused狀態(tài)。一個Paused狀態(tài)的activity完全是alive的。它維護自己所有的狀態(tài)和成員信息,而且仍然在window manager的管理中,但當系統(tǒng)內(nèi)存極度貧乏時也會將其殺死。(3) 一個Activity被另外一個Activity覆蓋(不可見),則這個Activity將進入

22、stopped狀態(tài)。它依然保存著所有成員的信息,但是它被隱藏不再可見。當系統(tǒng)內(nèi)存不足需要用到它時,Stopped狀態(tài)會被當前系統(tǒng)Kill釋放內(nèi)存。(4) 當Activity處于Stopped或者Paused狀態(tài)時,如果系統(tǒng)內(nèi)存不足可以從內(nèi)存中刪除它。Android系統(tǒng)提供兩種刪除Activity的方式,一種是直接退出當前的應用,另一種是Kill掉處于Stopped或者Paused狀態(tài)的Activity。圖3-2 Activity的狀態(tài)轉(zhuǎn)換3.2.2 ServiceService6是一種運行于后臺沒有界面的程序,通常為Activity服務。Service的啟動方式有兩種context.start

23、Service()和 context.bindService()。啟動后的Service可以跟其他組件進行綁定,并通過遠程調(diào)用的方法來調(diào)用它的方法。漫寵應用在檢查更新進行后臺下載時綁定一個Service,實現(xiàn)版本的下載。Service的生命周期不一定與前臺的Activity同步,因此可以調(diào)用stopService來結(jié)束服務從而回收服務線程占用的內(nèi)存資源。3.2.3 Intent ReceiverIntent5主要負責android應用程序中各個組件的間的通訊。在通訊過程中Intent起到了媒介的作用,提供組件互相調(diào)用的相關(guān)信息,為調(diào)用者與被調(diào)用者解耦。在不同應用程序交互時,Intent負責對應

24、用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進行描述,Android則根據(jù)此Intent的描述,負責找到對應的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。在本應用中不同Activity就是通過Intent來交換數(shù)據(jù)的。3.2.4 Content Provide 圖3-3 ContentProvider工作原理ContentProvider7這個抽象接口是實現(xiàn)應用程序間共享數(shù)據(jù)的唯一方法。這個接口的主要功能就讓是應用程序?qū)⒆约旱臄?shù)據(jù)充分暴露出去給其他應用程序共享,無論應用程序的數(shù)據(jù)是以什么樣的方式存儲的,如數(shù)據(jù)庫、本地文件、網(wǎng)絡文件等,都會以類似于訪問數(shù)據(jù)庫的方式提供給其他程序。例如

25、電話本中聯(lián)系人信息,電話本程序可以將自己有哪些信息共享、以及如何共享等寫入AndroidManifest.xml配置文件,其他程序可以通過ContentResolver來獲取這些信息。圖3-3描述了以上所述ContentProvider的工作機制。這個機制可以將Activity1的UI界面數(shù)據(jù)映射給Activity2使用。3.3 養(yǎng)成模塊3.3.1 Fragment 在Android版本3.0中引入了Fragment的概念,主要目的是為了在屏幕更大的平板電腦上顯示,支持更加靈活和動態(tài)的設計。平板電腦的屏幕更大,可以放置多種不同UI組件,并且這些UI組件之間會有互相交互和通訊。Fragment9

26、就是這種設計,不需要你來管理相關(guān)UI組件的復雜變化。 Fragment是Activity界面的一部分或者一種行為。漫寵的養(yǎng)成模塊就是將多個Fragment整合在一起。同時,一個Fragment也可以重復被別的Activity調(diào)用,它的生命周期受Activity的控制。你也可以認為Fragment是一個模塊化的Activity,具有自己的生命周期,接收和管理自己的事件,并可以在運行的Activity刪除或添加。如圖3-4所示為Fragment的應用示例。 圖3-4 Fragment應用示例3.3.2 Json Json8的全名是JavaScript Object Notation,是一種輕量級的

27、數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫的特性。因此,Json與XML具有相同的特性,但Json的數(shù)據(jù)傳輸能力比較高。在漫寵應用向網(wǎng)絡請求返回數(shù)據(jù)時返回的都是Json數(shù)據(jù)。所以,我們必須知道在Android應用中解析Json數(shù)據(jù)時,應該用到的那些類庫。 在Android中Json解析部分都在org.json下,主要包括的類有JSONObject可以看作是一個Json對象,是系統(tǒng)中有關(guān)Json定義的單元;JSONStringer是一個Json文本構(gòu)建類,可以快速和便捷的創(chuàng)建Json文本;JSONArray代表著一組有序的數(shù)值;JSONTokener是一個Json解析類;JSONExceptio

28、n是Json拋出的異常類等。3.3.3 WebView WebView10在Android中我們視其為一個瀏覽器,能加載和顯示網(wǎng)頁。它使用WebKit渲染引擎實現(xiàn)顯示網(wǎng)頁且能夠加載Javascript進行動畫播放。實現(xiàn)WebView加載JavaScript首先通過調(diào)用addJavascriptInterface(xxx,xxx)其中第一個參數(shù)為當前調(diào)用的類名,第二個參數(shù)則是我們自己定義的一個對象。其次,調(diào)用loadUrl(xxx)參數(shù)為調(diào)用HTML中JavaScript函數(shù)來播放寵物動畫。 3.4 QQ寵物相關(guān)介紹QQ寵物是騰訊公司推出的一款虛擬社區(qū)的喂養(yǎng)游戲,寵物有其自身的成長過程。貫穿于寵

29、物的成長全過程中,包括寵物養(yǎng)成、游戲、清潔、做任務和結(jié)婚。QQ寵物模擬顯示寵物,虛擬社區(qū)與好友盡心互動。同時,在寵物的成長過程中可以帶著寵物去玩游戲,消耗體力的同時賺取經(jīng)驗值。QQ寵物的局限于每個號碼只能領(lǐng)養(yǎng)一只寵物,而不能領(lǐng)養(yǎng)多只寵物。第四章 漫寵應用的實現(xiàn)4.1 漫寵應用的開發(fā)工作漫寵應用的開發(fā)工作主要分為應用界面設計、系統(tǒng)代碼編寫以及系統(tǒng)測試三大部分:(一)應用界面的設計主要的任務為應用設計出優(yōu)美的界面,并將界面的按鈕、文字等控件的元素提取出來以備構(gòu)建應用的UI。另外一個重要任務是寵物動畫的制作,并轉(zhuǎn)換成Android應用程序可以利用的格式以備做動畫渲染。(二)系統(tǒng)代碼編寫是在上一章的研

30、究基礎上,通過應用界面的設計將界面實現(xiàn)在手機界面布局。開發(fā)出系統(tǒng)的登錄注冊模塊,搭建出系統(tǒng)主界面、養(yǎng)成模塊、服務模塊、語音模塊、娛樂模塊及每日簽到模塊等界面。運用上一章講述的相關(guān)技術(shù)進一步實現(xiàn)上述功能模塊的功能。(三)系統(tǒng)測試是在整個系統(tǒng)代碼編寫完畢后,通過運行的方式來測試系統(tǒng)運行是否順利、功能是否正常、性能是否良好等。由于Android平臺的特性,我還進行了一些特別情況的場景,如系統(tǒng)運行時接電話、收發(fā)短信等意外情況來測試用戶的相關(guān)數(shù)據(jù)是否正常。由于應用界面設計與系統(tǒng)代碼編寫的工作相對獨立,我們將這兩項工作同步進行來減少創(chuàng)作周期。在代碼編寫完畢后,再進行系統(tǒng)測試。4.2 軟件功能結(jié)構(gòu)圖漫寵系統(tǒng)

31、客戶端主要為用戶提供養(yǎng)成模塊、娛樂模塊、服務模塊、語音模塊、廣場、每日簽到、設置模塊等七項功能。 4-1 漫寵系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)的主要功能概述:(1) 養(yǎng)成模塊包括寵物領(lǐng)養(yǎng)、商品購買和儲藏室等功能。首次登錄的用戶可以在寵物窩里面選擇一只自己喜歡的寵物并領(lǐng)養(yǎng),當領(lǐng)養(yǎng)成功后會下載該只寵物的相關(guān)資源包并在主界面顯示寵物的基本信息和動畫。商品購買功能是用戶可以在商品列表選擇自己需要的商品食物,利用漫豆購買成功后會在儲藏室看到自己已經(jīng)購買的商品且可以選擇商品對寵物進行喂養(yǎng)。(2) 娛樂模塊包括頂皮球、飛機大戰(zhàn)和俄羅斯轉(zhuǎn)盤等三個小游戲。用戶可以自行下載關(guān)于這些游戲的APK文件并安裝。寵物在游戲中充當著主角

32、的角色,游戲過程中會有一定的漫豆獎勵。(3) 服務模塊包括備忘錄、鬧鐘和天氣預報等功能。用戶可以利用這些小功能,設置自己的備忘錄或者鬧鐘。天氣預報是根據(jù)網(wǎng)上提供的天氣數(shù)據(jù),然后進行解析并顯示在該系統(tǒng)上,在此可以查看全國熱門城市的天氣預報。(4) 語音模塊是利用到第三方軟件“訊飛”語音軟件對用戶輸入的語音進行辨析,根據(jù)用戶錄入的語音做出相應的操作。(5) 廣場是顯示用戶的好友列表,當點擊某個好友時,將進入好友的主界面。在此可以瀏覽該好友的基本信息,并且可以與該好友互動。(6) 每日簽到是與用戶互動的一種方式。當用戶每天連續(xù)簽到時,將獲得相應的漫豆獎勵,天數(shù)越多獎勵的漫豆數(shù)越多。(7) 設置主要包

33、含版本檢查更新、系統(tǒng)介紹、注銷登錄等操作。版本更新操作主要是根據(jù)服務返回的數(shù)據(jù),如果是正常升級的話,可以后臺升級或者忽略。如果是強制升級的話,整個系統(tǒng)不能運行只能到升級完才可以繼續(xù)操作。 4.3寵物養(yǎng)成的實現(xiàn)寵物養(yǎng)成模塊包括的功能有商品購買、寵物窩和儲藏室。養(yǎng)成模塊利用Fragment將上述的功能合并在養(yǎng)成的MallActivity中,結(jié)合ViewPager將整個養(yǎng)成模塊展示于用戶,給用戶的視覺及操作帶來良好的體驗效果。如圖4-2為養(yǎng)成模塊的效果圖,以下將逐一介紹各個功能的具體實現(xiàn)。圖4-2 養(yǎng)成模塊效果圖4.3.1 商品購買 商品購買主要分為食物和游戲道具的購買,其中食物是喂養(yǎng)寵物增加寵物的

34、體力值,游戲道具則是用在娛樂模塊里面的游戲中。如圖4-3購買流程圖所示,當用戶請求購買商品時程序通過Http協(xié)議請求服務器,通過解析服務器返回的Json數(shù)據(jù),購買成功則客戶端提示是否現(xiàn)在喂養(yǎng)寵物,失敗則本次購買程序執(zhí)行結(jié)束。如果用戶馬上喂養(yǎng)寵物程序會再次向服務器請求喂養(yǎng),成功則播放寵物吃食動畫,失敗或者取消現(xiàn)在喂養(yǎng)則在儲藏室添加相應的物品,本次購買程序結(jié)束。 圖 4-3 商品購買流程圖4.3.2 儲藏室儲藏室是在FragmentStorage這個類里面實現(xiàn)的。根據(jù)用戶信息利用GridView展示用戶當前已購買的相關(guān)物品的種類及數(shù)量。用戶可以在儲藏室選擇要給寵物喂養(yǎng)的食物,喂養(yǎng)的下一步程序與商品

35、購買功能里面的喂養(yǎng)階段一樣。主要的區(qū)別在于喂養(yǎng)失敗,寵物的商品數(shù)量不會減少。4.3.3 寵物窩寵物窩為用戶提供了多只擁有不同技能的寵物供用戶選擇,當用戶選擇領(lǐng)養(yǎng)某只寵物時,程序向服務器請求返回數(shù)據(jù)。如果領(lǐng)養(yǎng)成功則進入下載相關(guān)寵物資源的界面提示信息,下載成功后解壓寵物資源包替換當前的寵物,不成功則此次寵物領(lǐng)養(yǎng)失敗。圖 4-4 寵物領(lǐng)養(yǎng)流程圖4.4 每日簽到的實現(xiàn)每日簽到是一種與用戶互動方式,當用戶連續(xù)簽到的天數(shù)越多時,系統(tǒng)獎勵給用戶的漫豆數(shù)就越多。簽到分為三種狀態(tài):已簽到、未簽到、可以簽到。當用戶進入簽到界面時,系統(tǒng)根據(jù)用戶的UserToken返回用戶簽到基本信息:isSign和isSignIn

36、兩種狀態(tài)來確定用戶繼續(xù)哪天簽到。當用戶簽到成功時,系統(tǒng)調(diào)用notifyDataSetChanged方法。4.5 寵物動畫播放的實現(xiàn)寵物動畫播放是本系統(tǒng)的核心,用戶可以在喂養(yǎng)寵物時看到自己心愛的寵物飲食的動畫,也可以在主界面看到自己的寵物做著不同的可愛的動畫。寵物動畫的播放主要是通過向服務器下載相關(guān)寵物的flash動畫文件,利用WebView加載JavaScript實現(xiàn)對相關(guān)動畫的播放。以下是WebView播放動畫的主要代碼: webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); webView.load

37、Url("javascript:setMovieAlign('bottom')");if (PhoneUtil.isUpAndroid4_0() webView.loadUrl("javascript:setBackgroundColor('img','./home_bg.jpg')");webView.loadUrl("javascript:setLayout('" + width + "','"+ height + "')

38、");webView.loadUrl("javascript:setPaddingTop('"+ Global.SWF_PADDINGTOP + "')"); webView.loadUrl("javascript:loadSWF('" + swfPath + "','"+ width + "','" + swfHeight + "')");webView.loadUrl("javascrip

39、t:play()");4.6 版本檢查更新的實現(xiàn)版本檢查更新為了有效的對應用的維護與升級。當服務器端有新版本的漫寵應用時,用戶進入主界面就會提示是否更新對話框,點擊跳過此版本系統(tǒng)利用SharedPreferences7將狀態(tài)緩存為本地數(shù)據(jù)。如果下次再次進入本系統(tǒng)時,將不會彈出更新對話框。 系統(tǒng)升級是在主界面MainPetActivity中啟動UpdateService,其中在UpdateService類里面初始化Notification使下載的進度能夠在消息欄顯示。為了防止用戶在下載過程中出現(xiàn)下載中斷而導致下次進入下載時還要重新下載,本次下載采用的是斷點續(xù)傳下載以下是斷點續(xù)傳下載的主

40、要代碼:if (fileSize != 0 && fileSize = size) return 1; Header header_size = new BasicHeader("Range", "bytes=" + size + "-" + fileSize); request.addHeader(header_size); response = client.execute(request); InputStream is = response.getEntity().getContent(); if (is =

41、null) throw new RuntimeException("stream is null"); File myTempFile = new File(Environment.getExternalStorageDirectory(), filename); RandomAccessFile fos = new RandomAccessFile(myTempFile, "rw"); fos.seek(size);安裝包下載完成后,停止UpdateService服務執(zhí)行安裝已下載的安裝包,以下為安裝安裝包的主要代碼: Intent intent =

42、new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive"); context.startActivity(intent);第五章 系統(tǒng)測試5.1 測試環(huán)境硬件:帶有USB2.0接口的宏碁 4738ZG筆記

43、本一臺、裝有Android 4.2系統(tǒng)的紅米手機一部、USB線一根,手機USB接口與筆記本的USB HOST接口通過USB保持線相連并處于同步狀態(tài)。軟件:Eclipse4.2、Android ADT 0.96集成開發(fā)環(huán)境、Android 2.2 SDK、紅米手機驅(qū)動。在電腦系統(tǒng)中安裝Eclipse開發(fā)環(huán)境和紅米手機驅(qū)動,設置手機處于調(diào)試狀態(tài),可以使電腦與紅米手機連接后保持同步。通過Eclipse中DDMS的Device可以對系統(tǒng)的運行畫面截屏,通過集成環(huán)境的LogCat可以對系統(tǒng)的運行情況進行分析。5.2 應用預測功能測試漫寵的功能測試需要測試漫寵的功能是否完整、各項功能是否與預期相符,包括漫寵喂養(yǎng)測試、漫寵領(lǐng)養(yǎng)測試、每日簽到功能測試、版本檢查更新測試。5.2.1 漫寵喂養(yǎng)測試漫寵喂養(yǎng)功能包括選擇食物、漫寵飲食動畫播放效果和喂養(yǎng)后體力增

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論