基于android的推箱子游戲設(shè)計畢業(yè)論文_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  畢業(yè)設(shè)計(論文)說明書</p><p>  題目: 基于Android的推箱子游戲設(shè)計</p><p><b>  摘 要</b></p><p>  推箱子游戲是一款古老的游戲,其設(shè)計目的是訓(xùn)練人的邏輯思維能力。隨著計算機(jī)游戲的發(fā)展,很多編程愛好者基于該游戲的思想開發(fā)出了各種版本、各種類型的推箱子游戲,這其中也包括

2、很多手機(jī)版本的實現(xiàn)。隨著Android手機(jī)的迅猛發(fā)展,Android應(yīng)用程序產(chǎn)生的手機(jī)增值服務(wù)逐漸體現(xiàn)出其影響力,對豐富人們的生活內(nèi)容、提供快捷的資訊起著不可忽視的作用。本論文著眼于Android平臺的應(yīng)用,開發(fā)一款可用的手機(jī)游戲程序——推箱子。</p><p>  本文首先介紹基于Android平臺應(yīng)用軟件開發(fā)的背景,闡述了Android系統(tǒng)的現(xiàn)狀與發(fā)展情況;接著介紹Android平臺的搭建;然后通過一個較完整

3、的軟件開發(fā)周期,采用Java語言及Eclipse開發(fā)工具,從需求分析到游戲設(shè)計、實現(xiàn)、調(diào)試,最終實現(xiàn)了推箱子游戲。并經(jīng)過嚴(yán)格的測試,可以在模擬器上正常使用。</p><p>  關(guān)鍵詞:Android;Java;推箱子游戲</p><p><b>  ABSTRACT</b></p><p>  Push Box Game is one of

4、the ancient games, the design objective of the game is to train people's logical thinking ability. Along with the development of computer games, a lot of programming enthusiasts based on the idea of the game develope

5、d a variety of versions, all types of Push Box Game, which also include many mobile phone version's realization. With the implementation of Android technology on mobile equipment, increment of capital on communicatio

6、n service exhibits its force on people’s eve</p><p>  At first, This paper will introduce background of application development which base on Android platform, and describe the status and development of Andr

7、oid system; then introduce the way how to set up the environment of Android, and then via a more complete software development cycle, using the language of Java and the eclipse development tools, from demand analysis to

8、the game design, implementation, commissioning, eventually achieve a Push Box Game. The game has been tested rigorously, so it </p><p>  Key words:Android;Java;Push Box Game</p><p><b>  目

9、 錄</b></p><p><b>  第一章 緒論1</b></p><p>  1.1 課題研究背景1</p><p>  1.2 課題來源及意義1</p><p>  1.3 國內(nèi)外發(fā)展現(xiàn)狀1</p><p>  1.4 本文研究主要內(nèi)容2</p>

10、<p>  1.5 本文章節(jié)安排2</p><p>  第二章 Android平臺搭建3</p><p>  2.1 工具介紹3</p><p>  2.1.1 Android簡介3</p><p>  2.1.2 Java簡介4</p><p>  2.2 開發(fā)環(huán)境5</p>

11、<p>  2.3 開發(fā)環(huán)境變量配置5</p><p>  2.3.1 JDK配置5</p><p>  2.3.2 SDK配置7</p><p>  2.3.3 Eclipse配置8</p><p>  2.4 應(yīng)用環(huán)境8</p><p>  第三章 游戲設(shè)計9</p><

12、p>  3.1 游戲需求分析9</p><p>  3.2 游戲設(shè)計9</p><p>  3.2.1 系統(tǒng)設(shè)計思想9</p><p>  3.2.2 游戲總體設(shè)計9</p><p>  3.2.3 系統(tǒng)功能模塊設(shè)計10</p><p>  3.2.4 游戲的類框架設(shè)計10</p>&l

13、t;p>  3.2.5 算法的設(shè)計10</p><p>  第四章 游戲的實現(xiàn)12</p><p>  4.1 歡迎界面的實現(xiàn)12</p><p>  4.2 菜單界面的實現(xiàn)13</p><p>  4.2.1 開始游戲13</p><p>  4.2.2 聲音控制14</p><

14、;p>  4.2.3 游戲說明14</p><p>  4.2.4 退出游戲15</p><p>  4.3 游戲界面的實現(xiàn)15</p><p>  4.3.1 地圖類的實現(xiàn)16</p><p>  4.3.2 角色類的實現(xiàn)17</p><p>  4.3.3 鍵盤監(jiān)聽線程的實現(xiàn)18</p>

15、;<p>  4.3.4 角色移動線程的實現(xiàn)18</p><p>  第五章 軟件測試19</p><p>  5.1 測試方案及其執(zhí)行19</p><p>  5.2 測試步驟19</p><p>  5.3 本章小結(jié)20</p><p>  第六章 總結(jié)21</p>&l

16、t;p><b>  參考文獻(xiàn)22</b></p><p><b>  外文資料</b></p><p><b>  中文譯文</b></p><p><b>  致謝</b></p><p><b>  第一章 緒論</b&g

17、t;</p><p>  1.1 課題研究背景</p><p>  在我們的生活中有許多的游戲,但是游戲不同,它也會給玩家?guī)聿煌母惺芎蜕罾砟睢S螒蚴俏覀內(nèi)粘I畹囊粋€必不可少的娛樂項目,也帶動了游戲相關(guān)產(chǎn)業(yè)市場的發(fā)展。游戲平臺經(jīng)過從游戲機(jī)到電視游戲,然后又到pc游戲,手機(jī)游戲,中間經(jīng)歷了很多的技術(shù)更新和變革。但隨著新技術(shù)的發(fā)展和我們生活水平的提高,手機(jī)開始逐漸普及,因為手機(jī)是非常小

18、巧便捷,所以它成為我們?nèi)粘I钪斜貍渫ㄓ嵐ぞ??;谑謾C(jī)平臺的游戲也就擁有了巨大的市場空間,隨著3G的開通和應(yīng)用,手機(jī)游戲必然會迎來新的一輪游戲熱潮[1]!</p><p>  1.2 課題來源及意義</p><p>  推箱子游戲是一款古老的游戲,其設(shè)計目的是訓(xùn)練人的邏輯思維能力。游戲場景一般是設(shè)定在空間狹小的倉庫中,要求把箱子擺放到指定位置,稍不小心就會出現(xiàn)箱子無法移動或者通道被堵住的

19、情況,所以需要巧妙的利用有限的空間和通道,合理安排移動的次序和位置,才能順利的完成任務(wù)。隨著計算機(jī)游戲的發(fā)展,很多編程愛好者基于該游戲的思想開發(fā)出了各種版本、各種類型的推箱子游戲。這其中也包括很多手機(jī)版本的實現(xiàn),隨著Android手機(jī)終端的逐漸熱銷,Android也引起眾多手機(jī)應(yīng)用程序開發(fā)商的關(guān)注,由于Android基于Linux內(nèi)核且具有開源、免費(fèi)的特性,它迅速得到廣大愛好者以及許多廠商的支持,基于Android所開發(fā)的手機(jī)游戲擁有巨

20、大的潛力已成為行業(yè)共識。本文主要研究在Android手機(jī)上開發(fā)一款推箱子游戲[2]。</p><p>  1.3 國內(nèi)外發(fā)展現(xiàn)狀</p><p>  Android是由Google為首的OHA(Open Handset Alliance)推出的一款開放的嵌入式操作系統(tǒng)平臺。從2008年推出到現(xiàn)在Android正以前所未有的速度聚集著來自世界各地的開發(fā)者,越來越多的創(chuàng)意被應(yīng)用到Androi

21、d應(yīng)用程序的開發(fā)中,大有席卷整個手機(jī)產(chǎn)業(yè)的趨勢。</p><p>  Android系統(tǒng),是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。</p><p>  Android 的核心系統(tǒng)服務(wù)依賴于 Linux內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧

22、和驅(qū)動模型。由于Android帶有相當(dāng)濃郁的Linux血統(tǒng)這也就意味著他擁有開源Linux的眾多優(yōu)點:安全、運(yùn)算速度快、易于開發(fā)等等[3]。正因為Android具有上述的優(yōu)點,所以它在國內(nèi)具有相當(dāng)強(qiáng)勁的競爭優(yōu)勢。青年網(wǎng)絡(luò)的主要負(fù)責(zé)人潘長華先生說到:Android作為一款十分優(yōu)秀的移動開發(fā)平臺十分適合國內(nèi)的開發(fā)環(huán)境。尤其是中小企業(yè)開發(fā)團(tuán)隊低成本以及源代碼的分享可以為企業(yè)節(jié)省大量資金,這對于中小企業(yè)來說無疑是最大的誘惑。</p>

23、<p>  同時一個資深的Android開發(fā)愛好者曾說過:如果你是個人開發(fā)愛好者,那么Android就是Google為你量身打造的,開源才是王道,Android才是未來的主宰[4]。</p><p>  伴隨著Google Android操作系統(tǒng)的盛行,國內(nèi)外的開發(fā)團(tuán)隊也逐漸的壯大起來了,基于Android SDK的系統(tǒng)開發(fā),基于Android應(yīng)用的開發(fā)等已逐漸倍受大家關(guān)注,而手機(jī)游戲開發(fā)歷來是移動

24、開發(fā)中分量最重的部分,面對如此火爆的Android市場自然也不甘示弱,由于Android的應(yīng)用層開發(fā)是基于Java的開發(fā),所以必有其可以快速移植J2ME開發(fā)的游戲的優(yōu)勢,但是移植的游戲必定也不能發(fā)揮Android操作系統(tǒng)獨(dú)特的特性。所以目前基于Android游戲開發(fā)的市場還是不夠成熟的,面對這種情況,在了解Android SDK基礎(chǔ)上,本課題開發(fā)的就是一款完全適應(yīng)于Android操作系統(tǒng)的推箱子益智游戲。</p><

25、p>  1.4 本文研究主要內(nèi)容</p><p>  本游戲分三個模塊設(shè)計與實現(xiàn):歡迎動畫界面的設(shè)計與實現(xiàn),菜單界面的設(shè)計與實現(xiàn),游戲界面的設(shè)計與實現(xiàn)。游戲運(yùn)行后首先進(jìn)入歡迎動畫界面,動畫結(jié)束后,進(jìn)入菜單界面,在菜單界面上有四種菜單供用戶選擇。游戲的過程中需要在適當(dāng)?shù)牡胤教砑由弦粜?,并且可以對音效進(jìn)行開與關(guān)的設(shè)置。還需要為游戲添加說明界面,簡單介紹游戲的基本功能及玩法。游戲需要設(shè)計適當(dāng)?shù)碾y度,使玩家能夠經(jīng)

26、過努力完成游戲。</p><p>  1.5 本文章節(jié)安排</p><p>  第一章是緒論,闡述了本論文的選題背景、來源和意義,以及國內(nèi)外發(fā)展現(xiàn)狀,并對本文研究的主要內(nèi)容進(jìn)行簡述。</p><p>  第二章介紹Android平臺的搭建。</p><p>  第三章介紹開發(fā)此項目所做的需求分析和游戲設(shè)計。</p><p

27、>  第四章介紹游戲?qū)崿F(xiàn)的功能。</p><p>  第五章介紹游戲的測試。</p><p>  第六章對本次畢業(yè)設(shè)計的總結(jié)。</p><p>  第二章 Android平臺搭建</p><p>  本章主要介紹項目需要的開發(fā)工具,及如何構(gòu)建Android開發(fā)環(huán)境,包括JDK、Android SDK、Eclipse的配置。<

28、/p><p><b>  2.1 工具介紹</b></p><p>  2.1.1 Android簡介</p><p>  Android是基于Linux內(nèi)核的操作系統(tǒng),Android系統(tǒng)具有開放性、應(yīng)用程序無界限、應(yīng)用程序是在平等的條件創(chuàng)建的、應(yīng)用程序可以輕松地嵌入網(wǎng)絡(luò)和應(yīng)用程序可以并行運(yùn)行等特點。Android的系統(tǒng)架構(gòu)共分為4層,由高到低

29、分別是應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行庫層和linux內(nèi)核層。</p><p>  Android應(yīng)用程序是由四個模塊構(gòu)造:Activity,Intent,Content Provider,Service[5]。當(dāng)然也不是每個Android應(yīng)用程序都必須由這四部分組成,可以根據(jù)開發(fā)者的需求進(jìn)行組合。但任何一個應(yīng)用程序模塊都必須在AndroidMainfest.xml文件中聲明使用到的這些模塊。</p>

30、<p>  Activity是最基本的模塊。我們稱之為“活動”。簡單理解,Activity代表一個用戶所能看到的屏幕,主要用于處理應(yīng)用程序的整體性工作,例如,監(jiān)聽系統(tǒng)事件(按鍵事件、觸摸屏事件等),為用戶顯示指定的View,啟動其他Activity等。所有應(yīng)用的Activity都繼承于Android.app.Activity類,該類是Android提供的基層類,其他的Activity繼承該父類后,通過父類的方法來實現(xiàn)各種功能,

31、這種設(shè)計在其他領(lǐng)域也較為常見。</p><p>  Android用Intent這個特殊類實現(xiàn)在Activity與Activity之間的切換。Intent類用于描述應(yīng)用的功能。在Intent的描述結(jié)構(gòu)中,有兩個最重要的部分:動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型有:MAIN、VIEW、PICK、EDIT等,而動作對應(yīng)的數(shù)據(jù)則以URI的形式表示[6]。</p><p>  數(shù)據(jù)是應(yīng)用的核心。在

32、Android中,默認(rèn)使用SQLite作為系統(tǒng)數(shù)據(jù)庫。但是在Android中,使用方法有點小小的不一樣。在Android中,每一個應(yīng)用都運(yùn)行在各自的進(jìn)程中,當(dāng)一個應(yīng)用需要訪問其他應(yīng)用的數(shù)據(jù)時,也就是數(shù)據(jù)需要在不同的虛擬機(jī)之間傳遞,這樣的情況操作起來可能有些困難(正常情況下,你不能讀取其他應(yīng)用的db文件),ContentProvider正是用來解決在不同的應(yīng)用包之間共享數(shù)據(jù)的工具[7]。</p><p>  Ser

33、vice即“服務(wù)”的意思,既然是服務(wù),那么Service將是一個生命周期長而且沒有用戶界面的程序。如一個正在從播放列表中播放歌曲的媒體播放器,在這個媒體播放器應(yīng)用中,應(yīng)該會有多個activity,讓使用者可以選擇歌曲并播放歌曲。然而,音樂重放這個功能并沒有對應(yīng)的activity,因為使用者會認(rèn)為在導(dǎo)航到其他屏幕時音樂應(yīng)該還在播放。在這個例子中,媒體播放器這個activity會使用Context.startService( )來啟動一個s

34、ervice,從而可以在后臺保持音樂的播放。同時,系統(tǒng)也將保持這個service一直執(zhí)行,直到這個service運(yùn)行結(jié)束。另外,我們還可以通過使用Context.bindService( )方法連接到一個service上(如果這個service當(dāng)前還沒有處于啟動狀態(tài),則將啟動它)。當(dāng)連接到一個service之后,還可用service提供的接口與它進(jìn)行通訊。以媒體播放器為例,我們還可以執(zhí)行暫停、重播等操作[8]。</p>&

35、lt;p>  2.1.2 Java簡介</p><p>  Java是一種簡單的、面向?qū)ο蟮?、分布式的、安全的、可移植的、性能?yōu)異的多線程語言。它以其強(qiáng)安全性、平臺無關(guān)性、硬件結(jié)構(gòu)無關(guān)性、語言簡潔、面向?qū)ο蟮奶攸c,在網(wǎng)絡(luò)編程語言中占據(jù)了無可比擬的優(yōu)勢,成為實現(xiàn)電子商務(wù)系統(tǒng)的首選語言[9]。</p><p>  Java具有如下特點:</p><p><

36、b>  簡單性</b></p><p>  Java語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的任務(wù),開發(fā)者只需知道一些概念就能夠編出一些應(yīng)用程序。Java程序相對較小,其代碼能夠在小機(jī)器,例如手機(jī)上運(yùn)行,這應(yīng)該是大家經(jīng)??梢钥吹降?。</p><p><b>  面向?qū)ο笳Z言</b></p><p>  Jav

37、a的設(shè)計集中于對象及其接口,它提供了簡單的類機(jī)制以及動態(tài)的接口模型。對象中封裝了它的狀態(tài)變量和相應(yīng)的方法,實現(xiàn)了模塊化和信息的隱藏;而類則是提供了對象的原型,并且通過繼承的機(jī)制,子類可以使用父類所提供的方法,以實現(xiàn)代碼的復(fù)用。</p><p><b>  健壯性</b></p><p>  Java語言被病毒感染和破壞得最少。大部分病毒程序常用的方法就是通過巧妙地運(yùn)用

38、地址變量如指針來獲取計算機(jī)的資源,而Java正好放棄了難學(xué)和危險的指針功能,從而使Java更安全。</p><p><b>  多線程</b></p><p>  設(shè)計Java的目標(biāo)之一,就是為了滿足人們對創(chuàng)建交互式網(wǎng)上程序的需要。多線程就是為實現(xiàn)這個目標(biāo)而設(shè)計出來的,它使用Java編寫出來的應(yīng)用程序可以同時執(zhí)行多個任務(wù)。多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制

39、保證了對共享數(shù)據(jù)的正確操作。</p><p><b>  自動內(nèi)存管理</b></p><p>  可以說自動內(nèi)存管理是Java健壯性的體現(xiàn),內(nèi)存管理是很多種應(yīng)用程序內(nèi)的關(guān)鍵因素。在網(wǎng)絡(luò)上的其他地方讀取大量的數(shù)據(jù),之后把該數(shù)據(jù)寫入硬盤上的數(shù)據(jù)庫內(nèi),一般的設(shè)計就是把數(shù)據(jù)讀入內(nèi)存中的某種集合內(nèi),對這些數(shù)據(jù)執(zhí)行某些操作,之后把數(shù)據(jù)寫入數(shù)據(jù)庫。在數(shù)據(jù)寫入數(shù)據(jù)庫后,在下一批處理

40、之前,臨時存儲數(shù)據(jù)的集合必須清空舊數(shù)據(jù),或者被刪除后再建。這種操作可能執(zhí)行很多次,在像C++這些不提供自動垃圾搜集的語言中,手工清空或刪除集合數(shù)據(jù)結(jié)構(gòu)邏輯上的一點點缺陷就可能導(dǎo)致大量的內(nèi)存被錯誤地收回或丟失。Java的自動內(nèi)存管理正好解決這一點,它使程序員不用再為內(nèi)存管理寫大量的代碼[10]。</p><p><b>  2.2 開發(fā)環(huán)境</b></p><p>&

41、lt;b>  JDK1.6</b></p><p>  Eclipse3.5</p><p>  AndroidSDK10.0</p><p>  Eclipse插件ADT10.0</p><p>  2.3 開發(fā)環(huán)境變量配置</p><p>  2.3.1 JDK配置</p>&l

42、t;p>  右鍵點擊計算機(jī)->屬性->高級系統(tǒng)設(shè)置,點擊下面的環(huán)境變量,在下面的“系統(tǒng)變量”處選擇新建在變量名處輸入JAVA_HOME,并將JDK所在地址填入變量值中,確定即可,如圖2-1所示。</p><p>  圖2-1 JDK配置1</p><p>  確定后就會返回環(huán)境變量界面,再新建一個系統(tǒng)變量名為classpath,變量值為%JAVA_HOME%/lib

43、/rt.jar;%JAVA_HOME%/lib/tools.jar,確定即可,如圖2-2所示。</p><p>  圖2-2 JDK配置2</p><p>  確定后仍會返回環(huán)境變量界面,然后再找到Path的變量,雙擊或者點擊編輯,在變量名最前面加上%JAVA_HOME%/bin,確定即可,如圖2-3所示。</p><p>  圖2-3 JDK配置3&l

44、t;/p><p>  然后開始—運(yùn)行cmd,輸入java或者javac看看有沒有效果,如果出現(xiàn)一大堆其它的東西,那就好了,如果出現(xiàn)類似xxx不是內(nèi)部或者外部命令之類的,那就說明你的設(shè)置有問題,看看哪里出現(xiàn)問題然后加以改正。</p><p>  2.3.2 SDK配置</p><p>  新建一個系統(tǒng)變量Android,并將SDK文件夾中的platform-tools和

45、tools的地址填入變量值中,以分號來隔開,確定即可,如圖2-4所示。</p><p>  圖2-4 SDK配置1</p><p>  然后找到Path,在Path最后加上;%Android%,如圖2-5所示。</p><p>  圖2-5 SDK配置2</p><p>  然后測試環(huán)境變量是否配置成功,在cmd中輸入adb出現(xiàn)一

46、堆東西,說明環(huán)境變量配置成功。</p><p>  2.3.3 Eclipse配置</p><p>  首先需要添加Eclipse插件ADT,在打開Eclipse后,點擊菜單欄的Help—>Install New Software...然后點擊Add會出來一個Add Site的窗口,這里Name輸入ADT,Location中輸入ADT在電腦中的地址,然后就等待連接了,連接上將Dev

47、eloper Tools全都選中accept,finish就可以了,完成后會提示重啟Eclipse來加載插件,重啟,就可以用了。</p><p>  還需要將Android SDK插入到Eclipse中,打開Eclipse后,點擊菜單欄的Window—>Preferences然后點擊Android,在SDK Location輸入SDK存放的位置,點擊Apply則會顯示現(xiàn)有的Android的模擬器版本,如圖2

48、-6所示。</p><p>  圖2-6 Eclipse配置</p><p><b>  2.4 應(yīng)用環(huán)境</b></p><p>  基于Android的推箱子游戲適用于Android2.1及以上版本。</p><p>  第三章 游戲設(shè)計</p><p>  3.1 游戲需求分

49、析</p><p>  玩家是通過對小人的移動操作來控制推動箱子的,并且玩家需要避過障礙物以及死角,才能將其推放到指定位置從而達(dá)到過關(guān)的目的。如果玩家將箱子推入死角導(dǎo)致箱子無法移動或不能移動到指定位置則闖關(guān)失敗,可以通過退出操作進(jìn)入菜單界面來重新挑戰(zhàn)游戲。</p><p>  游戲功能需求如下所示:</p><p>  游戲界面需求:簡潔美觀的用戶界面,可以帶給用戶

50、自然清晰的畫面。</p><p>  游戲情節(jié)需求:本游戲為輕量級的益智游戲,因此不存在很復(fù)雜的情節(jié)。這方面主要要做的工作是設(shè)計游戲各關(guān)倉庫的形狀、大小、可通過區(qū)域,以及各關(guān)中箱子的初始位置與目的地,移動中的箱子與終點上的箱子要所有區(qū)別,因此需要兩不同的圖片以示區(qū)別。</p><p>  鍵盤處理事件:控制小人與箱子的移動,通過鍵盤方向鍵(上、下、左、右鍵)對小人進(jìn)行上、下、左、右的移動,

51、并且能夠推動箱子。</p><p>  顯示需求:當(dāng)所有箱子都到達(dá)指定位置后即可過關(guān),若進(jìn)入死角則無法通過過關(guān)卡,需要進(jìn)行退出操作從菜單界面來重新挑戰(zhàn)游戲。</p><p>  3.2 游戲設(shè)計 </p><p>  3.2.1 系統(tǒng)設(shè)計思想</p><p>  本次設(shè)計主要是設(shè)計一個能夠在Android手機(jī)上運(yùn)行的推箱子游戲。根據(jù)一般玩

52、手機(jī)游戲的流程,玩家一般是先進(jìn)入一個歡迎動畫界面,等待動畫結(jié)束或者直接點擊畫面后進(jìn)入游戲的菜單界面,在菜單界面,玩家可以進(jìn)行開始游戲、聲音開關(guān)、游戲說明、退出游戲操作,從菜單界面點擊開始游戲進(jìn)入游戲界面開始游戲,在游戲界面里,玩家還可以退到菜單界面,本游戲軟件也將遵循該流程。</p><p>  3.2.2 游戲總體設(shè)計</p><p>  圖3-1 游戲總體設(shè)計</p>

53、;<p>  3.2.3 系統(tǒng)功能模塊設(shè)計</p><p>  本程序包括5個模塊,分別是初始化模塊、畫圖模塊、移動箱子模塊、移動小人模塊和音樂模塊,各個模塊的功能描述如下:</p><p>  初始化模塊。該模塊包括屏幕初始化和游戲第一關(guān)的初始化。屏幕初始化用于顯示歡迎動畫,游戲第一關(guān)的初始化是構(gòu)建每一關(guān)的關(guān)卡。</p><p>  畫圖模塊。該模

54、塊主要是被其他模塊調(diào)用,用于畫墻、在空地畫箱子、在目的地畫箱子、畫小人和畫目的地。</p><p>  移動箱子模塊。該模塊用于移動箱子,包括目的地之間、空地之間和目的地與空地之間的箱子移動。</p><p>  移動小人模塊。該模塊用于控制小人的移動,從而推動箱子到達(dá)目的地。</p><p>  音樂模塊。該模塊為游戲提供背景音樂、小人推箱子的聲音和游戲勝利的聲音

55、。</p><p>  3.2.4 游戲的類框架設(shè)計</p><p>  表3-1 游戲的類框架</p><p>  3.2.5 算法的設(shè)計</p><p>  該游戲沒有涉及到復(fù)雜的算法設(shè)計,關(guān)鍵在于對地圖矩陣的操作。游戲中用一個MapList類操作地圖,其中有兩個三維數(shù)組記錄游戲地圖信息,一個三維數(shù)組表示第一層地圖即地板層,另一

56、個三維數(shù)組表示第二層地圖即建筑層,三維矩陣便于管理,如果要加入新關(guān)卡,只需要在三維矩陣中加入二維矩陣就可以了[11]。</p><p>  游戲過程中,最為主要的地方在于對地圖矩陣,以及小人狀態(tài)信息(包括位置、行走狀態(tài)等)的維護(hù),小人每行走一步,就更新一次地圖信息和小人狀態(tài)信息。另外一個比較重要的地方是游戲狀態(tài)的保存方面[12]。為保存小人信息,特別開設(shè)了一個MySprite類,該類主要作用就是保存玩家每一步的游

57、戲狀態(tài),便于撤銷。</p><p>  邏輯判斷過程中,需要對地圖進(jìn)行維護(hù),主要是通過小人的移動位置進(jìn)行更新的。</p><p>  小人每次移動時,四周的物體如下圖:</p><p>  圖3-2 主角四周物體</p><p>  當(dāng)小人是在移動箱子時,箱子四周有以下幾種物體:</p><p>  圖3-3

58、 箱子四周物體</p><p>  第四章 游戲的實現(xiàn)</p><p>  4.1 歡迎界面的實現(xiàn)</p><p>  當(dāng)玩家運(yùn)行游戲時,首先看到歡迎界面,歡迎界面是整個游戲的門面。本游戲的歡迎動畫首先是木門打開如圖4-1,接著是鐵門打開如圖4-2,最后是墻打開如圖4-3,所有門打開后就會顯示一個有山有水的圖片如圖4-4。歡迎動畫界面是通過改變動畫線程中圖

59、片的變量值來改變圖片的位置。</p><p>  圖4-1 木門 圖4-2 鐵門</p><p>  圖4-3 墻 圖4-4 山水圖</p><p>  4.2 菜單界面的實現(xiàn)</p><p>  玩家在歡迎動畫界面需等待30秒方能進(jìn)

60、入菜單界面,也可直接點擊屏幕進(jìn)入菜單界面。菜單界面是由滾動的背景圖片、不動的背景圖片,和開始游戲、聲音開、聲音關(guān)、游戲說明、退出游戲圖片組成,如圖4-5所示。</p><p>  圖4-5 菜單界面</p><p>  4.2.1 開始游戲</p><p>  當(dāng)玩家點擊開始游戲圖片即可進(jìn)入游戲界面開始游戲,如圖4-6所示。</p><p

61、>  圖4-6 開始游戲</p><p>  4.2.2 聲音控制</p><p>  玩家進(jìn)入菜單界面時背景聲音是開即顯示的是聲音開圖片,菜單界面的背景音樂會滾動播放,如果玩家想要關(guān)閉聲音,只需點擊聲音開圖片就會關(guān)閉聲音同時顯示聲音關(guān)圖片,如圖4-7所示。聲音狀態(tài)圖片是根據(jù)PushBoxActivity中的聲音狀態(tài)值進(jìn)行繪制。</p><p>  圖

62、4-7 聲音控制</p><p>  4.2.3 游戲說明</p><p>  當(dāng)玩家點擊游戲說明按鈕時玩家會進(jìn)入游戲說明界面,如圖4-8所示,游戲說明界面是由一張說明圖片組成,背景設(shè)置為白色,玩家如果想要離開此界面只需點擊屏幕即可回到菜單界面。</p><p>  圖4-8 游戲說明</p><p>  4.2.4 退出游戲

63、</p><p>  當(dāng)玩家點擊退出圖片時,會直接離開游戲到模擬器的主界面,如圖4-9所示。</p><p>  圖4-9 退出游戲</p><p>  4.3 游戲界面的實現(xiàn)</p><p>  游戲界面實現(xiàn)包括地圖類的實現(xiàn),角色類的實現(xiàn),鍵盤監(jiān)聽線程的實現(xiàn),角色移動線程的實現(xiàn)。</p><p>  當(dāng)玩家將

64、箱子都推到指定的位置后本關(guān)游戲勝利,出現(xiàn)恭喜過關(guān)的圖片,點擊圖片進(jìn)入下一關(guān)卡,如圖4-10所示。</p><p>  圖4-10 勝利進(jìn)行下一關(guān)</p><p>  4.3.1 地圖類的實現(xiàn)</p><p>  該類中包含了兩個三維數(shù)組,一個三維數(shù)組表示第一層地圖即地板層,另一個三維數(shù)組表示第二層地圖即建筑層。三維數(shù)組中存儲著每個關(guān)卡的地圖,三維矩陣便于管理

65、,如果要加入新關(guān)卡,只需要在三維矩陣中加入一個二維矩陣就可以了。本游戲設(shè)計了兩個關(guān)卡。主要代碼是:</p><p>  public static int map1[ ][ ][ ] = </p><p>  {//第一層地圖,即地板層</p><p><b>  {</b></p><p>  {-1,-1,-1,1,

66、 0, 1, 0, 1,-1,-1,-1,-1,-1,-1},</p><p>  {-1,-1,-1,0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,

67、0, 1, 0},</p><p>  {0, 1, 0, 1, 0, 3, 0, 1, 0, 1, 0, 1, 0, 1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 3, 0, 1, 0, 1, 0, 1},</p>&

68、lt;p>  {1, 0, 3, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},</p><p>  {1, 0, 3, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 0},</p><p>  {0, 1, 0, 1,

69、 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,-1,-1,-1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,-

70、1,-1,-1}</p><p><b>  },</b></p><p><b>  {</b></p><p>  {-1,-1,-1,1, 0, 1, 0, 1,-1,-1,-1,-1,-1,-1},</p><p>  {-1,-1,-1,0, 1, 0, 1, 0, 1, 0, 1, 0,

71、 1, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 1, 0, 1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},</p><p>  {0, 1, 2, 3, 0, 1, 0, 1, 2, 1, 0, 1, 0, 1},</p><

72、;p>  {1, 0, 1, 2, 1, 0, 1, 0, 3, 0, 1, 0, 1, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},</p><p>  {0, 1, 0, 1, 0

73、, 1, 0, 1, 0, 1, 0, 1, 0, 1},</p><p>  {1, 0, 3, 0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 2, 1, 0, 1, 0,

74、 1, 0},</p><p>  {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,-1,-1,-1},</p><p>  {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,-1,-1,-1}</p><p><b>  }</b></p><p><b>  };<

75、;/b></p><p>  public static int map2[ ][ ][ ] = </p><p><b>  {//第二層地圖</b></p><p><b>  {</b></p><p>  {-1,-1,-1,2, 2, 2, 2, 2,-1,-1,-1,-1,-1

76、,-1},</p><p>  {-1,-1,-1,2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2},</p><p>  {2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2},</p><p>  {2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2},</p><p

77、>  {2, 0, 0, 0, 1, 0, 2, 0, 0, 2, 0, 0, 0, 2},</p><p>  {2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 2},</p><p>  {2, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 1, 0, 2},</p><p>  {2, 0, 0, 0, 1,

78、2, 2, 0, 0, 0, 1, 0, 0, 2},</p><p>  {2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 0, 2},</p><p>  {2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2},</p><p>  {2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0

79、, 2},</p><p>  {2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2},</p><p>  {2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2,-1,-1,-1},</p><p>  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-1,-1,-1}</p><p&

80、gt;<b>  },</b></p><p><b>  {</b></p><p>  {-1,-1,-1,2, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1},</p><p>  {-1,-1,-1,2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2},</p><p&g

81、t;  {2, 2, 2, 2, 0, 2, 0, 1, 0, 0, 0, 0, 0, 2},</p><p>  {2, 0, 0, 0, 1, 0, 0, 0, 0, 2, 2, 2, 0, 2},</p><p>  {2, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 2, 0, 2},</p><p>  {2, 0, 0, 0, 0, 0,

82、 0, 1, 0, 0, 0, 2, 1, 2},</p><p>  {2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2},</p><p>  {2, 0, 0, 0, 1, 2, 2, 2, 0, 0, 0, 0, 0, 2},</p><p>  {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,

83、2},</p><p>  {2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2},</p><p>  {2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2},</p><p>  {2, 0, 1, 0, 0, 1, 2, 0, 0, 0, 2, 2, 2, 2},</p><p&g

84、t;  {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,-1,-1,-1},</p><p>  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-1,-1,-1}</p><p><b>  }</b></p><p><b>  };</b></p><p>

85、  4.3.2 角色類的實現(xiàn)</p><p>  角色類對小人進(jìn)行了封裝,記錄小人當(dāng)前的位置、圖片和坐標(biāo)以及狀態(tài)。將小人向上走路、向下走路、向左走路、向右走路、向上推箱子、向下推箱子、向左推箱子、向右推箱子的圖片ID放到數(shù)組中進(jìn)行管理在構(gòu)造器中根據(jù)小人當(dāng)前的位置換算出當(dāng)前實際坐標(biāo),設(shè)置自己封裝的繪制方法,根據(jù)小人的狀態(tài)進(jìn)行繪制,若小人正在移動,直接繪制圖片,若小人靜止時,需要進(jìn)行坐標(biāo)修正然后再繪制圖片[13]。

86、主要代碼是:</p><p>  public void drawMySelf(Canvas canvas, Paint paint){//繪制方法</p><p>  if(this.isRun){</p><p>  canvas.drawBitmap(man, X, Y, paint);</p><p><b>  }<

87、/b></p><p><b>  else{</b></p><p>  X = pushBoxActivity.gameView.initX+36*j-15*i + 2;</p><p>  Y = pushBoxActivity.gameView.initY+10*j+25*i - 25;</p><p>

88、  canvas.drawBitmap(man, X, Y, paint);</p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3.3 鍵盤監(jiān)聽線程的實現(xiàn)</p><p>  鍵盤監(jiān)聽線程會定時檢測鍵盤的狀態(tài),然后根據(jù)狀態(tài)調(diào)用相應(yīng)的處理。每次循

89、環(huán)需要休眠時間為150毫秒,當(dāng)需要鍵盤監(jiān)聽時,判斷是推箱子還是走路,然后得到當(dāng)前鍵盤狀態(tài)碼賦到action中,再對action進(jìn)行處理判斷上、下、左、右鍵是否被按下。當(dāng)上鍵被按下時,需要先判斷是否到界面的最上方,若到最上方將不會再往上,若沒到最上方時,會檢測上方是否有箱子,當(dāng)箱子上方為空地時才可以移動箱子,再判斷是否為目的地,如果是目的地需要把箱子設(shè)為綠色,如果不是目的地直接移動即可[14]。在箱子移動時需要啟動箱子的移動線程,進(jìn)行箱子

90、的移動,同時在移動過程中將鍵盤的監(jiān)聽標(biāo)志位設(shè)為false,此時失去屏幕監(jiān)聽。下鍵、左鍵、右鍵同理。</p><p>  4.3.4 角色移動線程的實現(xiàn)</p><p>  角色移動線程給定初始位置和結(jié)束位置的行列,自動計算成實際坐標(biāo),然后分兩步移動,當(dāng)距邊界較近時自動滾屏。當(dāng)向上移動時需要先判斷是否可以向上走,如果可以移動小人,需要循環(huán)移動實際坐標(biāo),之后將是否移動標(biāo)志位設(shè)置為false,

91、表示已經(jīng)移動完成[15]。向下移動、向左移動、向右移動同理。</p><p>  第五章 軟件測試</p><p>  軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試是軟件開發(fā)過程的重要組成部分,是用來確認(rèn)一個程序的品質(zhì)或性能是否符合開發(fā)之前所提出的一些要求。軟件測試就是在軟件投入運(yùn)行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。在開發(fā)軟件系統(tǒng)的過程中

92、,需要面對錯綜復(fù)雜的問題,因此,在軟件生存周期的每個階段都不可避免地會產(chǎn)生錯誤。</p><p>  本系統(tǒng)的測試階段信息流程圖如圖5-1所示。</p><p>  圖5-1 測試階段流程圖</p><p>  5.1 測試方案及其執(zhí)行</p><p>  黑盒測試不是基于內(nèi)部設(shè)計和代碼的任何知識,而是基于需求和功能性的測試,黑盒測試

93、又叫“功能測試”,它是已經(jīng)知道產(chǎn)品應(yīng)該具有的功能,通過測試來檢驗是否每個功能都能正常使用。</p><p>  白盒測試是指基于一個應(yīng)用代碼的內(nèi)部邏輯知識,即基于覆蓋全部代碼、分支、路徑、條件的測試,又叫“結(jié)構(gòu)測試”,它知道產(chǎn)品的內(nèi)部工作過程,可以通過來檢驗產(chǎn)品內(nèi)部動作是否按照說明書的規(guī)定正常進(jìn)行。</p><p>  本設(shè)計中,為了測試系統(tǒng)的功能是否都按要求實現(xiàn)了,采用黑盒測試方法。&l

94、t;/p><p><b>  5.2 測試步驟</b></p><p>  集成測試過程按4個步驟進(jìn)行,即單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。</p><p>  單元測試:開始是單元測試,集中對源代碼中實現(xiàn)的每一個程序單元進(jìn)行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能。</p><p>  集成測試:集成測試把

95、已測試過的模塊組裝起來,主要對與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測試。</p><p>  確認(rèn)測試:確認(rèn)測試則是要檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。</p><p>  系統(tǒng)測試:系統(tǒng)測試是把已經(jīng)經(jīng)過確認(rèn)的軟件納入實際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測試。 </p><p>  表5-1 系統(tǒng)測試記

96、錄</p><p><b>  5.3 本章小結(jié)</b></p><p>  本章主要介紹了軟件測試的知識和對系統(tǒng)進(jìn)行測試的信息。隨著系統(tǒng)的開發(fā),分別系統(tǒng)進(jìn)行了單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。通過表格展示了系統(tǒng)的測試過程和實現(xiàn)的功能。還對測試過程中出現(xiàn)的問題進(jìn)行了分析解決。</p><p><b>  第六章 總結(jié)&l

97、t;/b></p><p>  通過編寫本次畢業(yè)設(shè)計程序,我完成了基于Android的推箱子游戲的軟件開發(fā)任務(wù)。在些其間,我遇到了許多問題,如地圖文件的制作與讀取、游戲界面過大或者過小、游戲圖形的大小問題、小人與箱子的移動等等。不過,最終我都一一解決了相關(guān)問題,對其中比較主要的幾點體會總結(jié)如下:</p><p>  第一,為了熟悉推箱子游戲的相關(guān)運(yùn)作,我經(jīng)常在電腦游戲上運(yùn)用推箱子游戲

98、,一步步地發(fā)現(xiàn)它擁有的功能,然后再思考與查閱資料進(jìn)行分析,最后經(jīng)過逐步的設(shè)計與反復(fù)的修改論證,才完成了整個游戲的開發(fā)。</p><p>  第二,完成了從“小到全”,從“全到精”的轉(zhuǎn)變。在設(shè)計的過程中,我經(jīng)常會遇到一些困難,我也借此機(jī)會學(xué)會如何通過反復(fù)思考和測試找出自己的錯誤并加以改正,再進(jìn)行下一個步驟的設(shè)計。本程序就是這樣一點一點的完成的,在這之后再來優(yōu)化整個程序。</p><p>  

99、第三,本次設(shè)計也讓我得到一個不斷學(xué)習(xí)新鮮事物的機(jī)會,從設(shè)計初的諸多不懂到最后能夠順利完成,期間我體會到在實踐中學(xué)習(xí)的重要性,這對于將來我走上工作崗位具有重要意義。</p><p>  第四,通過畢業(yè)設(shè)計使我對Android加深了解,也對我今后的就業(yè)之路奠定了一定的基礎(chǔ)。</p><p>  經(jīng)過這些日子的不斷努力,本次的畢業(yè)設(shè)計程序基本上完成了?;仡櫿麄€設(shè)計過程,我學(xué)到了許多書本上沒有學(xué)到

100、的知識。通過這次自己制作的軟件,豐富了自己的實踐技能,擴(kuò)展了本專業(yè)的知識面,不僅使我受益匪淺,同時也體驗到了開發(fā)軟件開發(fā)的難度與不斷更新自己的重要性。由于我是初次涉及這類開發(fā)軟件,因此這其中或許還有很多的不足之處,在游戲界面不可以控制聲音開關(guān),也不能重新開始游戲,玩家不能選擇關(guān)卡保存游戲等等。這也是我今后所要充實之處,在這里也懇請各位老師能夠?qū)ξ业淖髌分该鞑蛔悴⒓右愿恼?lt;/p><p>  總體來說,這次畢業(yè)設(shè)

101、計收獲是頗豐的,這也是我在大學(xué)四年來完成的一個比較全面的實際例子。在這次設(shè)計的過程,我也查閱了大量的資料,對Android有了更加全面的認(rèn)識,對于軟件工程這些輔助性的教材也鞏固了不少,也為我這次的畢業(yè)設(shè)計提供了很大的幫助,同時鍛煉并且增強(qiáng)了我這方面的能力。在今后的生活和工作中我會更好的發(fā)揮自己的優(yōu)勢,學(xué)好自己選擇的這項專業(yè)技術(shù),讓自己在這條路上的明天會更好。</p><p><b>  參考文獻(xiàn)<

102、/b></p><p>  [1]黨李成.基于Google Android智能手機(jī)平臺的研究與應(yīng)用[D].安徽:安徽大學(xué),2011.</p><p>  [2]熊剛.基于Android的智能手機(jī)的設(shè)計與實現(xiàn)[D].武漢:武漢理工大學(xué),2010.</p><p>  [3]楊豐盛.Android應(yīng)用開發(fā)解密[M].北京:機(jī)械工業(yè)出版社,2010,2-109.&l

103、t;/p><p>  [4]馬越.Android的架構(gòu)與應(yīng)用[D].北京:中國地質(zhì)大學(xué),2008.</p><p>  [5]靳巖,姚尚朗.Android開發(fā)入門與實戰(zhàn)[M].北京:人民郵電出版社,2009,200—230.</p><p>  [6]Lauren Darcey,Schane Conder.Android移動開發(fā)一本就夠[Z].北京:人民郵電出版社,

104、 2011.</p><p>  [7]E2ECloud工作室.深入淺出Google Android[Z].北京:人民郵電出版社,2009.</p><p>  [8]百度百科.Ophone百科[EB/OL].http://baike.baidu.com/view/2410021.htm,2011-12-29.</p><p>

105、  [9]劉寶林.Java程序設(shè)計與案例[M].北京:高等教育出版社,2004,20—200.</p><p>  [10]冀振燕,程虎.Java編譯程序技術(shù)與Java性能[J].軟件學(xué)報,2000,25(17):12-15.</p><p>  [11]畢廣吉.Java程序設(shè)計實例教程[M].北京:水利水電出版社,2007,192—216.</p><p>  [

106、12]郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010,405—425.</p><p>  [13]李艷麗.Android時間處理過程剖析[J].長春理工大學(xué)學(xué)報,2010,33(3):45-52.</p><p>  [14]張利國,代聞,龔海平.Android移動開放案例詳解[Z].北京:人民郵電出版社,2010.</p><p>  

107、[15]余志龍,鄭名杰,陳小鳳等.Google Android SDK開發(fā)案例大全[M].北京:人民郵電出版社,2010,180-240.</p><p><b>  中文譯文</b></p><p>  面向Android手機(jī)的嵌入式代理模型</p><p><b>  摘 要</b></p><p

108、>  本文提出了一種“專門”為新的谷歌Android SDK設(shè)計的代理模型,在此模型下Android手機(jī)可以視為一種軟件代理。由于使用了能在不同系統(tǒng)上實施的抽象概念,這種代理模型具有比理論更實用的方法。Android是一個基于Linux的開放式系統(tǒng),它的出現(xiàn)已經(jīng)為代理的實現(xiàn)創(chuàng)建了新的期望。這是一種在普適計算環(huán)境中實現(xiàn)嵌入式智能代理的有效方法,這種方法使代理可能運(yùn)行在不同的硬件平臺上。這一設(shè)想可以被認(rèn)為是一個真正的智能環(huán)境。<

109、/p><p>  關(guān)鍵詞:代理模型;嵌入式代理;谷歌Android</p><p><b>  引言</b></p><p>  技術(shù)在我們的生活環(huán)境中幾乎是無形的,因為它已經(jīng)被安插在環(huán)境與提高人民生活質(zhì)量的目標(biāo)之間,用以創(chuàng)造一個智能環(huán)境,普適計算或者普及計算[9]就是這樣的范例[5]。在普適計算中,感知已成為我們社會的習(xí)慣性特征,通過網(wǎng)絡(luò)使所有的

110、固定或移動對象的類(嵌入式系統(tǒng))相互連接從而出現(xiàn)的電子設(shè)備。計算機(jī)技術(shù)已成為幾乎看不見的一個典范,它作為一個嵌入式計算機(jī)偽影的結(jié)果進(jìn)入我們的日常生活中[6]。</p><p>  實現(xiàn)普適計算的方法之一就是嵌入智能代理。一個智能代理是擁有以下屬性:自治性,社會性,反應(yīng)性和自發(fā)性的硬件或(更常見)基于軟件的計算機(jī)系統(tǒng)[12]。嵌入式計算機(jī)含有的這些代理通常被稱為嵌入式代理[11]。每個嵌入式代理是一個獨(dú)立的實體,這

111、樣的嵌入式代理通常允許他們作為多重嵌入代理系統(tǒng)的一部分通過網(wǎng)絡(luò)連接和其他的嵌入式代理溝通和合作。 然而,由于嵌入式計算硬件有限的處理能力和記憶能力,嵌入式應(yīng)用的發(fā)展缺乏工具和標(biāo)準(zhǔn)化,所以我們面臨的挑戰(zhàn)是如何管理和實施這種嵌入式代理所使用的智能機(jī)制。通過這些挑戰(zhàn)和發(fā)現(xiàn)的其他問題[8],已檢測到在概念代理模式和實現(xiàn)或預(yù)期代理之間的顯著差異。</p><p>  今天,谷歌AndroidSDK的出現(xiàn)作為一個嵌入

112、式應(yīng)用的開發(fā)平臺為手機(jī)創(chuàng)建了一個實施嵌入式智能代理的新方法。Android是一個開源的平臺,Android應(yīng)用程序的開發(fā)是由一個新的Java庫(Java的Android庫)制作的,這個庫與個人電腦的Java密切相關(guān)(J2SE)[1]。此外,還存在這樣的可能性,Android Linux內(nèi)核可以遷移到其他平臺或電子設(shè)備上,并允許這些代理在各種設(shè)備上執(zhí)行。</p><p>  總結(jié),其基本思路是提出一種由組件或抽象概

溫馨提示

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

評論

0/150

提交評論