【正文】
y mYTileCount。 } } Override public void onDraw(Canvas canvas) { (canvas)。amp。 public int y。(2)更改設(shè)置說(shuō)明tomcat服務(wù)器,直接使用Eclipse在服務(wù)器上使用。Ongtang,M.,McDaniel, Android Security[J]. Security amp。求學(xué)歷程是艱苦的,但又是快樂(lè)的。這是一個(gè)毅力的磨練,是對(duì)我實(shí)際能力的一個(gè)提升,相信對(duì)我未來(lái)的學(xué)習(xí)和工作都有很大的幫助。在老師細(xì)心的指導(dǎo)下,終于使我了解了應(yīng)該怎么樣利用學(xué)校圖書(shū)館的資料找到自己需要的Android方面的資料。寫(xiě)畢業(yè)論文不是一件容易的事情,需要不斷的進(jìn)行精心的修改,不斷的研究各方面的文獻(xiàn)。在遇到問(wèn)題時(shí)要學(xué)會(huì)如何去分析錯(cuò)誤,再要學(xué)會(huì)如何去解決問(wèn)題。按“是”退出游戲,按“否”繼續(xù)游戲。6. 結(jié)束后重新開(kāi)始功能測(cè)試當(dāng)前游戲結(jié)束后,如要重新開(kāi)始新的游戲,按上方向鍵2次,游戲會(huì)重新開(kāi)始。(2)移動(dòng)貪吃蛇,到一定長(zhǎng)度后,撞擊到自己。3. 貪吃蛇吃豆測(cè)試(1)貪吃蛇吃豆后,豆會(huì)消失,無(wú)異常。詳見(jiàn)附圖1。是對(duì)整個(gè)軟件進(jìn)行驗(yàn)收,根據(jù)系統(tǒng)分析說(shuō)明書(shū)來(lái)考察軟件是否滿足要求。用以發(fā)現(xiàn)與接口相聯(lián)系的問(wèn)題。(1)單元測(cè)試(unit testing)。這種方法按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按預(yù)訂要求正確工作。3. 測(cè)試方案任何產(chǎn)品的測(cè)試都有2種方法:黑盒測(cè)試和白盒測(cè)試。2. 軟件測(cè)試的目的測(cè)試的目的就是希望能以最少的人力和時(shí)間發(fā)現(xiàn)潛在的各種錯(cuò)誤和缺陷。目前,程序的正確性證明尚未得到根本的解決,因此軟件測(cè)試仍是發(fā)現(xiàn)軟件中錯(cuò)誤和缺陷的主要手段。 (mSnakeTrail, coordArrayListToArray(mSnakeTrail))。 (mDirection, (mDirection))。 rawArray[2 * index + 1] = 。 for (int index = 0。 mMoveDelay = 600。 (new Coordinate(2, 7))。 (new Coordinate(6, 7))。 loadTile(RED_STAR, ())。 initSnakeView()。 }}。 class RefreshHandler extends Handler { Override public void handleMessage(Message msg) { ()。3. 在隨機(jī)位置出現(xiàn)食物的方法通過(guò)隨機(jī)數(shù)在屏幕范圍內(nèi)隨機(jī)出現(xiàn)一個(gè)食物,但是不允許同一時(shí)刻有兩個(gè)食物存在。 } } } }} SnakeView類的詳細(xì)設(shè)計(jì)SnakeView是本游戲的業(yè)務(wù)邏輯類,該類中包含了游戲數(shù)據(jù)和一些處理數(shù)據(jù)的方法以及一些內(nèi)部類。 x mXTileCount。 y++) { setTile(0, x, y)。 } public void clearTiles() { for (int x = 0。 Canvas canvas = new Canvas(bitmap)。 mYOffset = ((h (mTileSize * mYTileCount)) / 2)。不必重寫(xiě)所有所有的方法,可以僅僅重寫(xiě)。因?yàn)榻缦抟残枰滑F(xiàn)實(shí)到屏幕上。 ()。 } } handler = new Handler() { public void handleMessage(Message msg) { switch () { case : ()。 if (savedInstanceState == null) { // We were just launched set up a new game ()。 (DOWN)。 (this)。 ((1, 1, 255, 1))。 ()。 left = (ImageButton)findViewById()。 play = (Button)findViewById()。 // No Title bar requestWindowFeature()。實(shí)現(xiàn)蛇身沿著蛇頭的軌跡移動(dòng)。初始化進(jìn)入事件等待狀態(tài)初始化失敗不正常退出開(kāi)始請(qǐng)求相關(guān)事件返回暫停請(qǐng)求退出正常退出圖15貪吃蛇程序主結(jié)構(gòu) 程序類圖該程序由以下五個(gè)類實(shí)現(xiàn),分別為T(mén)ileView,Snake,SnakeView。3. 在隨機(jī)位置出現(xiàn)食物的方法通過(guò)隨機(jī)數(shù)在屏幕范圍內(nèi)隨機(jī)出現(xiàn)一個(gè)食物,但是不允許同一時(shí)刻有兩個(gè)食物存在。 SnakeView類的設(shè)計(jì)SnakeView是本游戲的業(yè)務(wù)邏輯類,該類中包含了游戲數(shù)據(jù)和一些處理數(shù)據(jù)的方法以及一些內(nèi)部類。View會(huì)繪制一個(gè)包含Drawing是event事件的方形塊。3. 實(shí)現(xiàn)游戲恢復(fù)Activity生命周期的onResume()。因?yàn)楸居螒蛑胁辉试S蛇向與蛇頭相反的方向移動(dòng),所以當(dāng)用戶操作時(shí)需要判斷用戶操作的方向是不是跟規(guī)則沖突,若沖突則無(wú)視該操作,若不沖突則響應(yīng)該操作,所以需要用一個(gè)變量來(lái)記錄蛇頭的當(dāng)前方向。4. 實(shí)現(xiàn)蛇吃食物蛇移動(dòng)的過(guò)程中如果蛇頭的坐標(biāo)與食物出現(xiàn)的坐標(biāo)重合了,那么就在蛇頭的位置增加一個(gè)元素同時(shí)不刪除蛇尾的最后一個(gè)元素,這樣蛇每遲到一個(gè)食物 身體就會(huì)變長(zhǎng)一截。當(dāng)它再次為用戶可見(jiàn)的時(shí)候,它只能完全重新啟動(dòng)并恢復(fù)至以前的狀態(tài)。如果它完全被另一個(gè)activity覆蓋是,它處于停止?fàn)顟B(tài)。 當(dāng)它失去焦點(diǎn)但仍然對(duì)用戶可見(jiàn)時(shí),它處于暫停狀態(tài)。游戲控制模塊游戲的移動(dòng)速度功能能游戲的暫停功能游戲的重新開(kāi)始圖14 游戲控制模塊框架 模塊實(shí)現(xiàn)原理 游戲界面模塊實(shí)現(xiàn)1. 實(shí)現(xiàn)游戲背景本游戲采用Activity作為游戲背景的載體,在Android中一個(gè)Activity就相當(dāng)于windows中的一個(gè)窗口,Activity上可以放置許多類型的控件。游戲界面主框架的主要結(jié)構(gòu)圖如圖13所示。貪吃蛇詳細(xì)設(shè)計(jì) 程序流程設(shè)計(jì)本游戲的流程如下圖41所示。蛇能夠在屏幕上移動(dòng),屏幕上隨機(jī)位置出現(xiàn)食物,當(dāng)蛇吃到食物后蛇的身體會(huì)增長(zhǎng)一截同時(shí)移動(dòng)速度也會(huì)響應(yīng)加快。所以程序員必須提供給用戶便捷的操作接口來(lái)供用戶操作,靈活便捷的操作性直接影響了一款軟件的好壞。所以本項(xiàng)目必須擁有良好的交互界面,讓用戶安裝之后就能進(jìn)行游戲。開(kāi)始游戲操作游戲退出游戲player圖31用戶需求游戲開(kāi)發(fā)成功后,最終用戶為各個(gè)年齡段的人群,用戶范圍相當(dāng)廣泛。一個(gè)實(shí)時(shí)運(yùn)行的最終作品,每秒都會(huì)運(yùn)行成千上萬(wàn)行程序,繪圖事件、鍵盤(pán)事件都會(huì)以極高的頻率在后臺(tái)等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致程序在運(yùn)行不久后可能出現(xiàn)嚴(yán)重錯(cuò)誤,甚至死循環(huán)。 系統(tǒng)開(kāi)發(fā)目標(biāo)采用基于Android的程序設(shè)計(jì)技術(shù),以及用Eclipse開(kāi)發(fā)Android程序的相關(guān)技術(shù)開(kāi)發(fā)出具有良好用戶界面,操作簡(jiǎn)單易學(xué),游戲功能齊全且有益于智力開(kāi)發(fā)的貪吃蛇游戲。本系統(tǒng)需要滿足以下幾點(diǎn)要求。通過(guò)它可以全面了解整個(gè)系統(tǒng)的功能和性能方面的要求,為軟件設(shè)計(jì)打下堅(jiān)實(shí)的基礎(chǔ)。Android SDK的下載地址為。這些部分在一起提供了一個(gè)具有豐富特性的開(kāi)發(fā)環(huán)境,允許開(kāi)發(fā)者有效地建造可以無(wú)縫集成到Eclipse Platform中的工具。 Eclipse是一個(gè)開(kāi)放源代碼的軟件開(kāi)發(fā)項(xiàng)目,專注于為高度集成的工具開(kāi)發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。更難能可貴的是,Eclipse是一個(gè)開(kāi)放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開(kāi)發(fā)自己的功能插件。這樣的開(kāi)發(fā)過(guò)程符合人們認(rèn)識(shí)客觀世界解決復(fù)雜問(wèn)題時(shí)逐步深化的漸進(jìn)過(guò)程。對(duì)象類是對(duì)一組相似對(duì)象的抽象,類等級(jí)中上層的類是對(duì)下層類的抽象。人在認(rèn)識(shí)和解決復(fù)雜問(wèn)題時(shí)使用的最強(qiáng)有力的思維工具是抽象,也就是在處理復(fù)雜對(duì)象時(shí),為了達(dá)到某個(gè)分析目的集中研究對(duì)象的與此目的有關(guān)的實(shí)質(zhì),忽略該對(duì)象的那些與此目的無(wú)關(guān)的部分。面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程從始至終都圍繞著建立問(wèn)題領(lǐng)域的對(duì)象模型來(lái)進(jìn)行:對(duì)問(wèn)題領(lǐng)域進(jìn)行自然的分解,確定需要使用的對(duì)象和類,建立適當(dāng)?shù)念惖燃?jí),在對(duì)象之間傳遞消息實(shí)現(xiàn)必要的聯(lián)系,從而按照人們習(xí)慣的思維方式建立起問(wèn)題領(lǐng)域的模型,模擬客觀世界。對(duì)象之間通過(guò)傳遞消息互相聯(lián)系,以模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系。這種聲明式安全性有助于減少惡意應(yīng)用程序損害設(shè)備的可能性。以便將它適當(dāng)?shù)匕惭b到設(shè)備。View又可以分為View和ViewGroup。5. 視圖(View)View是Android中圖形用戶界面的基類,提供了可視化界面展示。內(nèi)容提供程序的任務(wù)是管理對(duì)持久數(shù)據(jù)的訪問(wèn),例如 SQLite數(shù)據(jù)庫(kù)。1. 活動(dòng)(Activity)具有可視 UI 的應(yīng)用程序是用活動(dòng)實(shí)現(xiàn)的。Android應(yīng)用程序是用Java 編程語(yǔ)言編寫(xiě)的,它們?cè)谝粋€(gè)虛擬機(jī)(VM)中運(yùn)行。(4) Android運(yùn)行庫(kù)包括一個(gè)核心庫(kù),提供java編程語(yǔ)言核心庫(kù)的大多數(shù)功能。(2) 開(kāi)發(fā)者完全可以訪問(wèn)核心應(yīng)用程序所使用的API框架。 Android平臺(tái)架構(gòu)如圖21所示的Android操作系統(tǒng)的體系結(jié)構(gòu)圖,我們可以看出Android操作系統(tǒng)結(jié)構(gòu)分為4層,由上到下一次是應(yīng)用程序、應(yīng)用程序框架、核心類庫(kù)和Linux內(nèi)核。(8) 藍(lán)牙、Wifi(無(wú)線網(wǎng)絡(luò))、EDGE(GSM到3G的過(guò)渡)。(4) 優(yōu)化的2D和3D圖形庫(kù)。意味著我們可以把系統(tǒng)中不喜歡的應(yīng)用程序換掉,安裝我們自己喜歡的程序。個(gè)人或者團(tuán)隊(duì)都可以按相應(yīng)時(shí)間完成基本功能。然后,作為經(jīng)濟(jì)工具,在交通或者信息不發(fā)達(dá)的情況下,幫助用戶找到最佳的市場(chǎng),獲得有價(jià)值的幫助信息,幫助用戶從事的經(jīng)濟(jì)活動(dòng)的收益率。其次,提供虛擬現(xiàn)實(shí)體驗(yàn),手機(jī)可以借助傳感器、周邊設(shè)備了解到您的身邊環(huán)境,并根據(jù)收集到的信息,智能的為您提供有用的信息,如在網(wǎng)絡(luò)世界養(yǎng)的寵物,可以借助音頻設(shè)備表達(dá)叫聲,借助馬達(dá)和位置傳感器等傳遞其跳、躍等行為信息;也可以在用戶購(gòu)物時(shí),提供相關(guān)的同類產(chǎn)品價(jià)格參考,提醒用戶附近的那個(gè)賣場(chǎng)更物美價(jià)廉;根據(jù)實(shí)際場(chǎng)景,為用戶及時(shí)提供正在操控的產(chǎn)品的使用方法提醒。各類傳統(tǒng)PC游戲廠商進(jìn)入手機(jī)領(lǐng)域。MSN,等即時(shí)通信類的應(yīng)用也已經(jīng)在各個(gè)主流手機(jī)平臺(tái)推出。例如國(guó)內(nèi)有名的社交網(wǎng)站人人網(wǎng)已經(jīng)針對(duì)Iphone,Android,塞班等手機(jī)平臺(tái)推出了手機(jī)客戶端。但國(guó)內(nèi)外對(duì)手機(jī)應(yīng)用的需求方向是大致相似的,主要集中在信息服務(wù),娛樂(lè),學(xué)習(xí)這些方面。在2009年8月,由中國(guó)移動(dòng)所主導(dǎo)開(kāi)發(fā)OPhone平臺(tái)面世。相對(duì)國(guó)外手機(jī)系統(tǒng)百花齊放的局面,國(guó)內(nèi)手機(jī)操作系統(tǒng)則處于剛起步的階段。PalmOS屬于Palm公司開(kāi)發(fā),是一種32位的嵌入式操作系統(tǒng),是一套專門(mén)為掌上電腦編寫(xiě)的操作系統(tǒng),是一種輕量級(jí)、比較開(kāi)放的操作系統(tǒng),占用的內(nèi)存非常小。IOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(the Core OS layer),核心服務(wù)層(the Core Services layer),媒體層(the Media layer),可輕觸層(the Cocoa Touch layer)。S60(第五版)為觸摸屏手機(jī)版本。下面簡(jiǎn)單介紹一下現(xiàn)主流手機(jī)操作系統(tǒng)。人們對(duì)手機(jī)的功能要求不再僅僅局限于接電話和打電話了,在這些基本功能的基礎(chǔ)上,手機(jī)更成了人們?nèi)粘I钪蟹浅V匾膴蕵?lè)和休閑工具。時(shí)隔四年,Android手機(jī)在手機(jī)市場(chǎng)中占的市場(chǎng)份額正以非常迅猛的速度上升:2010年市場(chǎng)份額:Symbian %、Android %、iPhone 、windows Mobile %、linux % 。它包括自動(dòng)校正、推薦、習(xí)慣文字的用戶詞典。在后臺(tái)運(yùn)行時(shí),應(yīng)用程序可以生成通知以引起注意。通過(guò)互聯(lián)網(wǎng),應(yīng)用程序可以聲明它們的功能可供其他應(yīng)用程序使用。 Android系統(tǒng)的特點(diǎn)Android系統(tǒng)具有如下4個(gè)特點(diǎn)。Android平臺(tái)的研發(fā)隊(duì)伍陣容強(qiáng)大,包括Google、HTC(宏達(dá)電)、TMobile、高通、摩托羅拉、三星、LG以及中國(guó)移動(dòng)在內(nèi)的30多家企業(yè)都將基于該平臺(tái)開(kāi)發(fā)手機(jī)的新型業(yè)務(wù),應(yīng)用之間的通用性和互聯(lián)性將在最大程度上得到保持。Android 作為谷歌移動(dòng)互聯(lián)網(wǎng)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)隨時(shí)隨地為每個(gè)人提供信息這一企業(yè)目標(biāo)的實(shí)現(xiàn)。貪食蛇是一款老牌的手機(jī)游戲,同時(shí)也是一款比較需要耐心的游戲,用游戲控制方向鍵上下左右控制蛇的方向,尋找吃的東西,每吃一口就能得到一定的積分,而且蛇的身子會(huì)越吃越長(zhǎng),身子越長(zhǎng)玩的難度就越大,不能碰墻,更不能咬自己的尾巴,當(dāng)蛇頭碰到墻或者自己的身體則游戲結(jié)束。Android是由Linux+Java構(gòu)成的開(kāi)源軟件,允許所有廠商和個(gè)人在其基礎(chǔ)上進(jìn)行開(kāi)發(fā)。隨著3G網(wǎng)絡(luò)的使用,移動(dòng)終端不再僅是通訊網(wǎng)絡(luò)的終端,還將成為互聯(lián)網(wǎng)的終端。s help, the independent development of this article first det