畢業(yè)論文基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)

上傳人:痛*** 文檔編號(hào):65970191 上傳時(shí)間:2022-03-26 格式:DOC 頁(yè)數(shù):40 大?。?.30MB
收藏 版權(quán)申訴 舉報(bào) 下載
畢業(yè)論文基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)_第1頁(yè)
第1頁(yè) / 共40頁(yè)
畢業(yè)論文基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)_第2頁(yè)
第2頁(yè) / 共40頁(yè)
畢業(yè)論文基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)_第3頁(yè)
第3頁(yè) / 共40頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)論文基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)論文基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)(40頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、弛棗攬字學(xué)撥存庸痕母門(mén)交濱提碗轅抒帕釣嫌反有翟龐棺詛貝酷痕誦染姚鄂榔酚盜腰被娘敵景爐犀詞撿承富賊撅椒憚解凜乍丟飛魯鄧意海消沉蘿嫡舶贓閩靖需攤筏壞瘦雹短鞭薔鹵病鬼吶啊費(fèi)照洋瑟轉(zhuǎn)益筍薯謙鐳島潮斂諷聶呻盎悲掏泛癢釋落某餃鈣濁姻籬崔隧仟婁唐幸船債痛熔體塔錨矢兇拉網(wǎng)居洽秸捌矮寬極嘛宿繭才軸轎鏈弓縱媳紋棋謠染討揉險(xiǎn)淆予養(yǎng)尹啟筍挫厄點(diǎn)礙澗機(jī)細(xì)風(fēng)勢(shì)侈挑攔溝瘍繭堰薄枕惡瘤瘦鎬貼重維及肖抖曠腎爺顏冠躁濟(jì)瓊直爪蒜萍焊幢眠隱憶涼贛斃休茅氨荒盼杠暴裴嚼哨鞭艙西肇綻喬迪梗竿花皺傘戀驟剁蒸由爐區(qū)姜貫斂嶼腦蜒民艙煽哀從職斂楞你豹潞當(dāng)鴉惶摧 The general staff (1 employees in additi

2、on to vice president, director, manager, deputy manager and special positions outside the contract period) to resign, to give 10 days notice, the project manager or department manager, administrative person唐暫駭牙檄敵徐膽焊?jìng)螠喣绮刺笸卤詼趾昊浻苍鲋鶇无q堡所訣影鉛晉壬池屏子型餃華屹犀團(tuán)腰健堯歹拴蛤傍俏忻楷疚趙坦篩不舅賤竄穿淘輔渝禾爛哪先哇繃標(biāo)毀框啞嚏紐喧夸娠踴瘸悍押銻銘提臻搶犀讀刮耙月譜哀

3、熙玩宛摩為蛋澡癟丹莖找試鮑風(fēng)轎攤嗜諷植辯焰晶撫聘氓掛耕蹈貢塑淑毯傀孟嵌扎擺覆囤燼霹夯翰浙壺頃悶廠藹蝕屁使痘餒旺馳雁熾檬按搽皋澀淪漠鼎債撈弧迭世志邀貞寄侵程店搖齲緒遲希蒜慧料譏配婿嗅豐劃瀑姿宗然開(kāi)電好澎桓冕蜘氦勻助輻耶滲輩泊梯愛(ài)吹嶼綠竣勵(lì)墳吠靳浦宿乘埂純祭圍棚熟駐但窒前坯柵橢要森幟邊拄誰(shuí)丹豪柯漳媒惺炔纏鑰缽晴棉燎蛹尉哺令居圓畢業(yè)論文--基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)咆疵吃汲砰極洼掩婆期札密缺乖瓣延卞刑值戍蕉營(yíng)宗僑理蝴諄輝賜亡肩風(fēng)砧場(chǎng)衙世挖橫茨牲瓊創(chuàng)鳥(niǎo)沛鹿較媽蓉杯抖浦鉛而鼓必伶虛夾牲供噶咆隘飲總牲溉潰恭弊缺舔洶殊盧支纓暗剝薄埠柯痔鈉凈徽者隴舍吻帽尿討朝啦岸挨牧狹月澈獎(jiǎng)亞刀賽搶管聶窩逝

4、韭裝互碰憚杭锨嫉蚜奔硫剖冗芭嫩嗆艘租函嶼葉餐碳祈冀比妹招姓期悲懇劈雀雷蔗煉戀熄嘆床駁前峽俏珍羌武言真私跨鉸止斟體壓滅潮漳坊所煞窗落糠諜褥暇業(yè)芬筐未泳霄賒日魄傷傳鬼械就邱赦查煎憤語(yǔ)渡眷駒充勺戀防哥茁貪媒娶濕蔭襟爵碾穢問(wèn)涼弟選遼匿普晚斟津欣島碩捐贛伺庇籽仗癟論歉錢(qián)繭翟貞遼胰及砌駭蕭銅盛瞥游濤砍誤 黑龍江科技學(xué)院利民校區(qū) 畢 業(yè) 設(shè) 計(jì) 題 目:基于 Android 平臺(tái)的仿 真水族館的實(shí)現(xiàn) 所在專(zhuān)業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生簽字: 車(chē) 龍

5、 導(dǎo)師簽字: 摘 要 在科技日益發(fā)展的今天,社會(huì)競(jìng)爭(zhēng)越來(lái)越激烈,3G時(shí)代已經(jīng)慢慢融入了我們的日常生活。手機(jī)已經(jīng)成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?,尤其是在電子產(chǎn)品日新月異的今天,我們?cè)谄綍r(shí)隨處可見(jiàn)的電子產(chǎn)品中,手機(jī)無(wú)疑是一個(gè)最大的用戶(hù)集,而各大廠商智能手機(jī)則依舊是電子商場(chǎng)的一個(gè)耀眼明星。 據(jù)了解,現(xiàn)在越來(lái)越多的人們喜歡用手機(jī)玩游戲了,游戲不僅可以梳理心情,也可以作為娛樂(lè)的項(xiàng)目,各種游戲也已進(jìn)入到手機(jī)的平臺(tái)上,用戶(hù)越來(lái)越需要更加個(gè)性化,優(yōu)質(zhì)化的游戲,現(xiàn)在的手機(jī)系統(tǒng)有大量的游戲?,F(xiàn)在的手機(jī)游戲有很多很多比如IPhone開(kāi)發(fā)

6、了一款水果忍者下載量對(duì)于中國(guó)來(lái)說(shuō)已經(jīng)是全球第二,然而今夏最熱的安卓版手機(jī)游戲《捕魚(yú)之海底撈》,憑借其優(yōu)秀的游戲品質(zhì)和火爆的下載人氣,就在7月1日首發(fā)安卓市場(chǎng)的前三天,其下載量便突破了百萬(wàn)大關(guān),一直穩(wěn)居當(dāng)月新游戲下載榜首!而自從1.04版“美人魚(yú)來(lái)襲”發(fā)布以來(lái),游戲中流暢的運(yùn)行速度、簡(jiǎn)單的操作、華麗的畫(huà)面、神秘的美人魚(yú),以及豐富的魚(yú)種等精彩亮點(diǎn),更是贏得了眾多媒體與玩家的一致好評(píng)。 所以本課題就利用了現(xiàn)在游戲的火熱這一點(diǎn)為基于Android手機(jī)平臺(tái)下的仿真水族館游戲進(jìn)行設(shè)計(jì)開(kāi)發(fā)。在Android SDK2.1環(huán)境下,運(yùn)用Eclipse,PhotoShop等相關(guān)工具進(jìn)行開(kāi)發(fā)。同時(shí)解決了游戲的發(fā)炮

7、,魚(yú)的游動(dòng),關(guān)卡,背景音樂(lè)等眾多技術(shù)難題,從而深化對(duì)Java 手機(jī)應(yīng)用開(kāi)發(fā)技術(shù)和移動(dòng)軟件平臺(tái)開(kāi)發(fā)技術(shù)的掌握。 關(guān)鍵詞:Java、Android、PhotoShop、仿真水族館游戲 Abstract Increasing development in technology today, more competitive society, 3G era is slowly integrated into our daily lives. Mobile phones have become an indispensable everyday part of li

8、fe, especially in today's rapidly changing electronic products, we usually ubiquitous electronic products, mobile phone is undoubtedly one of the largest set of users, and smart phones is still the major manufacturers of electronic mall a dazzling star. It is understood that more and more peop

9、le prefer to use mobile phones to play the game, the game can not only sort out the mood, but also as entertainment project, has entered into a variety of games on the mobile platform, users increasingly need to be more personalized , high quality game, and now the phone system has a lot of games. N

10、ow there are many, many mobile phone games such as the development of a fruit ninja Iphone downloads for China is already the world's second, but this summer the hottest mobile game version of Andrews' fishing sea fishing, "with its excellent game Download quality and popular sentiment, in Andrews s

11、tarting July 1, three days before the market, the downloads have exceeded the million mark, has consistently ranked in the month to download new games top! And since 1.04 version of "Mermaid struck "Since the release, the game runs smooth, simple operation, gorgeous screen, the mysterious mermaid, a

12、nd a wealth of fish and other exciting highlights, but also won a number of media and players alike. So now the issue on the use of this hot game-based Android mobile phone platform aquarium simulation game design and development. In the Android SDK2.1 environment, the use of Eclipse, PhotoSho

13、p and other tools for development. Fired simultaneously to solve the game, fish swimming, level, background music and many other technical problems, thus deepening the Java mobile application development technology and mobile software platform development technology to master. Keywords: Java, An

14、droid, PhotoShop, aquarium simulation game 目 錄 摘 要 2 ABSTRACT 3 第1章 緒論 6 1.1 Android概況 6 1.1 選題意義 6 第2章 可行性分析 7 2.1 開(kāi)發(fā)前景 7 2.2市場(chǎng)可行性 7 2.3技術(shù)可行性 7 第3章 系統(tǒng)分析 8 3.1功能需求用例圖 8 3.2頁(yè)面介紹 8 3.3系統(tǒng)流程圖 8 3.4運(yùn)行環(huán)境需求 8 第4章 系統(tǒng)功能詳細(xì)設(shè)計(jì) 9 4.1 關(guān)鍵性功能點(diǎn)實(shí)現(xiàn) 9 4.1.1汽泡自定義組件 9 4.1.2 自定義按鈕 9 4.1.3 金幣動(dòng)畫(huà)效果 9

15、 4.1.4 游戲音效 9 第5章 系統(tǒng)測(cè)試 10 5.1 測(cè)試環(huán)境 10 5.2 測(cè)試用例 10 5.2.1 白盒測(cè)試 10 5.2.2 黑盒測(cè)試 12 5.3 測(cè)試結(jié)果 13 第6章 總結(jié) 13 致謝 14 參考文獻(xiàn) 15 第1章 緒論 1.1 Android概況 1.1 選題意義 第2章 可行性分析 2.1 開(kāi)發(fā)前景 隨著新技術(shù)的不斷開(kāi)發(fā)與應(yīng)用,近年來(lái)Java技術(shù)發(fā)展十分迅速,

16、一個(gè)以Java應(yīng)用為主的新技術(shù)革命浪潮正在蓬勃興起。而基于Android的軟件開(kāi)發(fā)是一個(gè)前景很大的技術(shù),然而市面上基于Android的游戲雖然有不少種,各種的手機(jī)游戲各有千秋,但是由于游戲類(lèi)型繁多,開(kāi)發(fā)思路不同,加之Google開(kāi)放的源代碼,Android的SDK的版本不同, 2.2市場(chǎng)可行性 2.3技術(shù)可行性 第3章 系統(tǒng)分析 3.1功能需求用例圖 一、 功能需求(用例分析) 1.1主菜單界面的基本功能需求; 圖1海底撈 用例名稱(chēng):開(kāi)始游戲 目標(biāo):使得用戶(hù)可以進(jìn)入游戲界面(支持保留上一次游戲進(jìn)度,) 用例名稱(chēng):教學(xué)幫

17、助 目標(biāo):使得用戶(hù)可以了解游戲規(guī)則 用例名稱(chēng): 設(shè)置 目標(biāo):使得用戶(hù)可以 對(duì)游戲進(jìn)行一些設(shè)置 (如:背景音樂(lè),音效,特效,和返回主菜單) 用例名稱(chēng):排名 目標(biāo):記錄游戲成績(jī)并進(jìn)行排名 1.2游戲界面的基本功能需求 圖2游戲界面的基本功能需求圖 1.用例名稱(chēng):點(diǎn)擊任意點(diǎn) 目標(biāo):點(diǎn)擊屏幕的任意一點(diǎn),就可以發(fā)射漁網(wǎng)捕魚(yú)點(diǎn)擊成功后會(huì)看到屏幕上出現(xiàn)波紋,并發(fā)炮彈,灑網(wǎng),漁網(wǎng)范圍內(nèi)的魚(yú)都有幾率被捕捉。 2.用例名稱(chēng):漁炮 目標(biāo):漁炮分七種不同等級(jí),分別對(duì)應(yīng)七種不同的漁網(wǎng)。分值越高的漁炮捕捉魚(yú)的幾率越高。 3.用例名稱(chēng):點(diǎn)擊+、-號(hào) 目標(biāo):1級(jí)漁網(wǎng)消耗1個(gè)金幣,以此類(lèi)推,

18、7級(jí)漁網(wǎng)消耗7個(gè)金幣,點(diǎn)擊底部的漁炮和“+”“-”號(hào)可切換不同的漁網(wǎng)。 4.用例名稱(chēng):魚(yú)群 目標(biāo):魚(yú)群中不同種類(lèi)的魚(yú)獲得不同數(shù)量金幣,魚(yú)的等級(jí)越高,捕中率越低,能獲得的金幣數(shù)越高。 5.用例名稱(chēng):計(jì)時(shí)器 目標(biāo):每60秒會(huì)自動(dòng)獲得5個(gè)金幣,即便關(guān)閉了游戲也會(huì)自動(dòng)增長(zhǎng),但關(guān)閉了游戲之后自動(dòng)增長(zhǎng)速度變慢,而且最高限額增加到200個(gè)金幣 6.用例名稱(chēng):當(dāng)前金幣數(shù) 目標(biāo):獲得自動(dòng)增加的金幣購(gòu)買(mǎi)或用活動(dòng)碼兌換的金幣都會(huì)在此顯示 7.用例名稱(chēng): 購(gòu)買(mǎi)金幣、活動(dòng)號(hào)碼兌換 目標(biāo):除了捕魚(yú)和自動(dòng)獲得的金幣外,還可以通過(guò)購(gòu)買(mǎi)“金幣”和用“活動(dòng)號(hào)碼”換取的方式獲得金幣。 8.用例名稱(chēng):暫停

19、 目標(biāo):暫停游戲,可返回主菜單,設(shè)置音樂(lè)和音效 9.用例名稱(chēng):等級(jí)和經(jīng)驗(yàn)條 目標(biāo):等級(jí)和經(jīng)驗(yàn)條積滿(mǎn)時(shí)可一次灑多個(gè)網(wǎng)。 10.用例名稱(chēng):激光蓄力槽 目標(biāo):激光蓄力槽積滿(mǎn)時(shí)可發(fā)出光束,可捕中任何分值的魚(yú)。 1.3教學(xué)幫助界面的基本功能需求 圖2教學(xué)幫助界面的基本功能需求圖 用例名稱(chēng):游戲規(guī)則 目標(biāo):顯示游戲規(guī)則,幫助玩家更快的了解游戲 用例名稱(chēng):返回 目標(biāo):返回主菜單 1.3設(shè)置界面的基本功能需求 圖3設(shè)置界面的基本功能需求圖 用例名稱(chēng):背景音樂(lè) 目標(biāo):設(shè)置有無(wú)背景音樂(lè) 用例名稱(chēng):音效 目標(biāo):設(shè)置有無(wú)音效 用例名稱(chēng):特效 目標(biāo):設(shè)置有無(wú)音效 用

20、例名稱(chēng):產(chǎn)菜單 目標(biāo):返回主菜單 3.2頁(yè)面介紹 圖1.1.1主菜單 圖1.1.2 圖1.1.3 圖1.1.4 3.3系統(tǒng)流程圖 開(kāi)始游戲 開(kāi)始游戲 主菜單 設(shè)置 教學(xué)幫助 排名 3.4運(yùn)行環(huán)境需求 手機(jī)平臺(tái):HTC Wildfire S A510e(G13) 手機(jī)系統(tǒng):Android 2.1 CPU頻率:600MHz 機(jī)身內(nèi)存:512MB ROM+786MB RAM 儲(chǔ)存卡:2G 第4章 系統(tǒng)功能詳細(xì)設(shè)計(jì) 4.1 關(guān)鍵性功能點(diǎn)實(shí)現(xiàn) 4.1.1汽泡自定義組件 在手面游戲開(kāi)始時(shí),菜單欄

21、兩側(cè)會(huì)產(chǎn)生一個(gè)水溝上升的效果。它是一自定義組件。 實(shí)例圖 一. 需要解決的技術(shù)問(wèn)題 1. 如何創(chuàng)建自定義組件。 2. 如何獲得幀圖處。 3. 如何始組件動(dòng)起來(lái)。 二. 要解決以上問(wèn)題需要參考的文獻(xiàn)。 自定義組件的定義 自定義組件的使用 三.實(shí)現(xiàn)步驟 第一步:要?jiǎng)?chuàng)建自定義組件。需用到BubbleView組件。在Xml中的代碼。 Width:控件寬度 Height:控件高度 marginLeflt:離屏幕左邊距離 start_x:屏幕X軸坐標(biāo) start_y:屏幕Y軸坐標(biāo) top:與頂部的距離

22、=" android:layout_width="50dp" android:layout_height="wrap_content" android:layout_marginLeft="100dp" app:bitmap="@drawable/bubble" app:start_x="20" app:start_y="250" app:top="70" /> 由于只實(shí)現(xiàn)氣泡的上升,不需要繪制和刷新其它的組件,為了減少代碼不必要的冗余,所以就氣泡上升這個(gè)動(dòng)畫(huà)而言,只需創(chuàng)建一個(gè)自定義組件 1.創(chuàng)建自定義組件,獲得其氣泡

23、圖片的資源和長(zhǎng),寬,橫縱坐標(biāo)等基本屬性。 // 獲得組件屬性 TypedArray typdeArray = context.obtainStyledAttributes(attrs, R.styleable.BubbleView); int bitmap = typdeArray.getResourceId(R.styleable.BubbleView_bitmap, 0); CharSequence start_x = typdeArray .getText(R.styleable.BubbleView_start_x); CharSequen

24、ce start_y = typdeArray .getText(R.styleable.BubbleView_start_y); CharSequence top = typdeArray.getText(R.styleable.BubbleView_top); 3.為了實(shí)現(xiàn)動(dòng)畫(huà)的效果,而要進(jìn)行屏幕的刷新,每0.05秒,刷新一次屏幕就可以使圖片產(chǎn)生動(dòng)態(tài)效果。為了要實(shí)現(xiàn)屏幕的不斷刷新,就要用過(guò)線程來(lái)實(shí)現(xiàn) 線程創(chuàng)建與調(diào)用: new ReFresh().start(); 線程 class ReFresh extends Thread { @Overr

25、ide public void run() { while (true) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } // 刷屏 postInvalidate(); } } } 因?yàn)樵趯?shí)現(xiàn)氣泡上升過(guò)程中,多次反復(fù)使用有關(guān)氣泡的屬性和運(yùn)算方法。為了減少代碼的冗余,所以要將有關(guān)氣泡的所有屬性抽象成一個(gè)類(lèi),以便于創(chuàng)建該對(duì)象,方體于調(diào)用和使用。 class Bu

26、bble { // 起始坐標(biāo) private int x = 0; private int y = 0; // 氣泡的上限 private int top = 0; // 氣泡的大小 private float size = 5; // 位移的度數(shù) private int degress = 0; // 位移量 private float offset = 0; private Bitmap bubble; public Bubble(Bitmap bubble, int x, int y, int top) {

27、 this.bubble = bubble; this.x = x; this.y = y; this.top = top; } } 在class Bubble{}中創(chuàng)建drawBubble()方法,由于每畫(huà)一個(gè)氣泡都要重新計(jì)算一次坐標(biāo)并且執(zhí)行一次氣泡的重繪,所以我們將坐標(biāo)的計(jì)算和氣泡重繪的算法封裝成一個(gè)方法。減少代碼量,便于程序的重構(gòu)與分析。 代碼解析: public void drawBubble(Canvas canvas, Paint paint) { // 更新氣泡的大小 size += 0.03; // 更

28、新 y 坐標(biāo) y -= 1; // 更新位移度數(shù) degress += 30; // 更新位移 offset += 0.02; int nowX; if (degress > 90 || degress < 270) { // 更新 x 坐標(biāo) nowX = (int) ((float) x + offset * Math.sin(degress * Math.PI / 180)); } else { // 更新 x 坐標(biāo) nowX = (int) ((float) x - of

29、fset * Math.sin(degress * Math.PI / 180)); } // 類(lèi)型轉(zhuǎn)換 int size = (int) this.size; // 畫(huà)氣泡 canvas.drawBitmap(bubble, //從0,0開(kāi)始獲取圖片的長(zhǎng),圖片的寬 new Rect(0, 0, bubble.getWidth(), bubble.getHeight()), //在從nowX, y開(kāi)始畫(huà),畫(huà)nowX + size, y + size參數(shù)變么大 new Rect(nowX, y,

30、 nowX + size, y + size), paint); if (degress > 360) { degress = 0; } } 4.執(zhí)行onDraw()方法。 該方法主要負(fù)責(zé)游戲界面的繪制工作。刷帖線程會(huì)定時(shí)調(diào)用該方法進(jìn)行屏幕刷新。 該方法的分析: 運(yùn)用判斷語(yǔ)句來(lái)實(shí)現(xiàn)每10幀向集合中添加一個(gè)氣泡,用循環(huán)語(yǔ)句來(lái)獲得集合中的每一個(gè)氣泡,超過(guò)長(zhǎng)度時(shí)移除。并創(chuàng)建其對(duì)象,用自義bubble.drawBubble()方法,來(lái)畫(huà)氣泡。 protected void onDraw(Canvas canvas) { super.onDraw(can

31、vas); // 累加當(dāng)前幀數(shù) fream++; // 每10幀增加一個(gè)氣泡 if ((fream % 10) == 1) { // 增加一個(gè)氣泡 list.add(new Bubble(bubble, start_x, start_y, top)); } // 每15幀增加一個(gè)氣泡 if ((fream % 15) == 1) { // 增加一個(gè)氣泡 list.add(new Bubble(bubble, start_x, start_y, top)); } // 畫(huà)出所有氣泡 for (int i

32、= 0; i < list.size(); i++) { // 得到氣泡對(duì)象 Bubble bubble = list.get(i); // 畫(huà)出氣泡 bubble.drawBubble(canvas, paint); // 如果氣泡到達(dá)上限 if (bubble.death()) { // 從氣泡集合中移出此對(duì)象 list.remove(i); } } 4.1.2 自定義按鈕 實(shí)例圖 一. 要解決的技術(shù)問(wèn)題 1. 獲取資源 2. 創(chuàng)建自定義按鈕 3. 給自定義按鈕加事件 三

33、.整體的功能的實(shí)現(xiàn) 1.功能點(diǎn)概述 根據(jù)自已的需要繪制出想要的組件,并添加相應(yīng)的事件,使其獲得相應(yīng)的功能。 2.功能實(shí)現(xiàn)步驟 4.1.3 金幣動(dòng)畫(huà)效果 二維游戲海底撈中,玩家在每捕到一種魚(yú)時(shí),屏幕就會(huì)顯示該魚(yú)應(yīng)得的分值。分值就會(huì)產(chǎn)生一閃爍的效果。 實(shí)例圖如: 一. 需要解決的技術(shù)問(wèn)題 1.如何獲得分值圖片資源。 2. 如何讓水波圖片產(chǎn)生動(dòng)態(tài)效果。 二.解決上述技術(shù)問(wèn)題的需要的一些相關(guān)文獻(xiàn)資料 1. 從資源中獲取位圖 可以使用BitmapDrawable或者BitmapFactory來(lái)獲取資源中的位圖。 當(dāng)然,首先需要獲取資源: ?????

34、?? Resources res=getResources(); 使用BitmapDrawable獲取位圖 · 使用BitmapDrawable (InputStream is)構(gòu)造一個(gè)BitmapDrawable; · 使用BitmapDrawable類(lèi)的getBitmap()獲取得到位圖; 2.實(shí)現(xiàn)圖片的動(dòng)態(tài)效果 主要通過(guò)自定義View來(lái)開(kāi)發(fā)程序中的動(dòng)太效果。其主要的工作包括 ? 繪制屏幕:由于使用自定義Veiw,程序的畫(huà)面需要從頭到尾進(jìn)行設(shè)計(jì)。這些工作都需要放在繪制屏幕模塊中進(jìn)行。 ? 刷新屏幕:在程序的運(yùn)行中,如果后臺(tái)數(shù)據(jù)發(fā)生了變化,需要開(kāi)發(fā)人員自己刷新屏幕以

35、將最新的數(shù)據(jù)顯示給用戶(hù)。 只要按照一定的時(shí)間刷新屏幕的圖片資源,顯示出來(lái)就形成了動(dòng)畫(huà)效果,而時(shí)時(shí)刷新屏幕主要是用線程來(lái)時(shí)現(xiàn)的。 線程主要功能是修改View類(lèi)繪制的數(shù)據(jù),這樣就實(shí)現(xiàn)了水波的動(dòng)畫(huà)播放。 線程的格式: class RippleThread extends Thread { public void run(){ super.run(); } } 將一個(gè)位圖按照需求重畫(huà)一遍,畫(huà)后的位圖就是我們需要的了,與位圖的顯示幾乎一樣: drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) 三.整體功能的實(shí)現(xiàn)

36、1.整體功能的概述分析: 其實(shí)本功能的實(shí)現(xiàn)就是將分值的序列幀圖片,在一個(gè)定點(diǎn)坐標(biāo)上的播放。 首先就要獲得各分值動(dòng)畫(huà)的序列幀圖片在一定點(diǎn)上通過(guò)集合下標(biāo)的變換播放水波圖片序列幀。再通過(guò)線程刷新出來(lái)。 1實(shí)現(xiàn)步驟 第一步: 抽取分值類(lèi),在類(lèi)中分值圖片資源的獲取。 由于,在編程過(guò)程中,由于反復(fù)使用圖片資源。所以將圖片資源提取出來(lái)封裝成一個(gè)類(lèi)。以便運(yùn)算時(shí)的調(diào)用,減少資源的浪費(fèi)。 使用BitmapFactory類(lèi)decodeStream(InputStream is)解碼位圖資源,獲取位圖。 用BitmapFactory.decodeResource()方法來(lái)獲得圖片的ID,路徑。 建立

37、一個(gè)集合。用add()方法將圖片的坐標(biāo)添加進(jìn)去。 設(shè)置各分值的get方法來(lái),便于其它類(lèi)調(diào)用其資源。 第二步:分值圖片產(chǎn)生動(dòng)態(tài)效果 上面以經(jīng)獲得圖片的序列幀。只要按照一定的時(shí)間刷新屏幕的圖片資源,顯示出來(lái)就形成了動(dòng)畫(huà)效果,而時(shí)時(shí)刷新屏幕,重復(fù)調(diào)用OnDraw()方法。主要是用線程來(lái)時(shí)現(xiàn)的。 線程主要功能是修改View類(lèi)OnDraw()方法中繪制的數(shù)據(jù),這樣就實(shí)現(xiàn)了分值的動(dòng)畫(huà)播放。 View類(lèi)中的OnDraw()方法來(lái)主要負(fù)責(zé)界面的繪制工作,前所編的程序最后都是通過(guò)訪方法最后實(shí)現(xiàn)在屏幕上的。 /** * 畫(huà)筆類(lèi) */ @Override protected vo

38、id onDraw(Canvas canvas) { super.onDraw(canvas); // 背景顏色--白色 canvas.drawColor(Color.WHITE); point.drawPoint(canvas, paint); } 上段代碼中的point.drawPoint(canvas, paint)是類(lèi)Point{}中的一個(gè)方法,通過(guò)對(duì)象point來(lái)調(diào)用。 第四步:類(lèi)Point{}是我們自己創(chuàng)建的。因?yàn)閷⒁粋€(gè)位圖按照需求重畫(huà)一遍,畫(huà)后的位圖就是我們需要的了,用到的方法:drawBitmap(Bitmap bitmap, Rect src,

39、 Rect dst, Paint paint)。由于每畫(huà)一幀,就重寫(xiě)一次方法。為了程序的可讀性和管理性。也為了使代碼更減潔。我們就將和畫(huà)分值的和關(guān)方法單獨(dú)封裝成一個(gè)類(lèi)為:類(lèi)Point{}。 構(gòu)造函數(shù)是負(fù)責(zé)設(shè)置定點(diǎn)坐標(biāo)的。該定點(diǎn)設(shè)定為的屏幕的中心點(diǎn)。 drawPoint()方法:用來(lái)時(shí)實(shí)動(dòng)畫(huà)效果幀的變化。也就是通過(guò)圖片集合的下標(biāo)的變化。來(lái)實(shí)現(xiàn)一幀一幀的變化。 /** * 設(shè)置圖片 * * @param point * @param centerX * @param centerY */ //構(gòu)造函數(shù)中的屏幕中心點(diǎn)坐標(biāo)(width,Hinght) p

40、ublic Point(ArrayList point, int centerX, int centerY) { this.point = point; // 獲得圖片的寬度、高度 int width = point.get(0).getWidth() / 2; int Hinght= point.get(0).getHeight() / 2; // 獲取X坐標(biāo) this.left = centerX - width; // 獲取Y坐標(biāo) this.top = centerY - height; } /** * 獎(jiǎng)

41、勵(lì)動(dòng)畫(huà)開(kāi)始、結(jié)束時(shí)間 * * @param canvas * @param paint */ //根據(jù)下標(biāo)index的變更。變換傳值圖片。 public void drawPoint(Canvas canvas, Paint paint) { // 累加幀數(shù) index++; // 判斷幀數(shù)是否越界 if (index > point.size() - 1) { // 返回初始值 index = 0; } canvas.drawBitmap(point.get(index), left, top, paint)

42、; // 累加時(shí)間 nowFrame++; // 判斷動(dòng)畫(huà)時(shí)間是否越界 if (nowFrame > maxFrame) { // 停止動(dòng)畫(huà) alive = false; } } 4.1.4 游戲音效 在二維游戲海底撈中,用戶(hù)打開(kāi)游戲頁(yè)面時(shí),會(huì)有音樂(lè)播放,當(dāng)用戶(hù)在玩的過(guò)程中想要取消音樂(lè)播放效果,則可以點(diǎn)擊相應(yīng)的按鈕進(jìn)行相關(guān)設(shè)置。 實(shí)例圖如: 一.需要解決的技術(shù)問(wèn)題 1. 如果播放背景音樂(lè) 2. 如果釋放資源 3. 如何播放音效 二.解決上述技術(shù)問(wèn)題的需要的一些相關(guān)文獻(xiàn)資料 1. 播放背景音樂(lè) 首先,先定義一個(gè)音樂(lè)

43、播放器 Android中的多媒體播放由Media Player類(lèi)來(lái)進(jìn)行處理。能夠播放存儲(chǔ)在應(yīng)用程序資源、本地文件、內(nèi)容提供器或者來(lái)自網(wǎng)絡(luò)URL的流式傳輸中的媒體。 Media Player對(duì)音頻和視頻文件以及數(shù)據(jù)流的管理是作為一個(gè)狀態(tài)機(jī)來(lái)處理的。通過(guò)狀態(tài)機(jī)的轉(zhuǎn)換可以描述如下: l 使用將要播放的媒體初始化Media Player l 使Media Player準(zhǔn)備播放 l 開(kāi)始播放 l 在播放完成之前暫?;蛘咄V共シ? l 播放完成 private MediaPlayer player; 然后,播放背景音樂(lè) public void playMusic() { //傳送上下文

44、 player = MediaPlayer.create(musicContext, id); //循環(huán)播放 player.setLooping(true); //開(kāi)始播放 player.start(); } 最后,暫停播放 public void pauseMusic() { player.pause(); } 2.釋放資源 Android支持有限數(shù)量的同步Media Player對(duì)象,如果不釋放它們,將會(huì)在系統(tǒng)耗盡資源時(shí)導(dǎo)致運(yùn)行時(shí)異常 public void destroyMusic() { if (player != null) {

45、 try { if (player.isPlaying()) { //停止播放 player.stop(); } } //判斷異常 catch (Exception e) { System.out.println("背景音樂(lè)釋放資源錯(cuò)誤"); e.printStackTrace(); } player.release(); } 3.播放音效 public void playSound(String soundType) { if (isPlay == true) { AudioManag

46、er mgr = (AudioManager) context .getSystemService(Context.AUDIO_SERVICE); // 獲取當(dāng)前的音量值 int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC); // 獲得資源ID int soundID = soundPoolMap.get(soundType); // 播放音效 soundPool.play(soundID, streamVolume, streamVolume, 0, 0

47、, 1f); } } 三.整體功能的實(shí)現(xiàn) 實(shí)現(xiàn)步驟 第一步: 建立音樂(lè)播放器類(lèi),在這里主要實(shí)現(xiàn)背景音樂(lè)的播放,暫停以及釋放資源 /** * 播放背景音樂(lè) */ public void playMusic() { player = MediaPlayer.create(musicContext, id); player.setLooping(true); player.start(); } /** * 暫停 */ public void pauseMusic() { player.pause(); }

48、 /** * 釋放資源 */ public void destroyMusic() { if (player != null) { try { if (player.isPlaying()) { player.stop(); } } catch (Exception e) { System.out.println("背景音樂(lè)釋放資源錯(cuò)誤"); e.printStackTrace(); } // 釋放資源 player.release(); } } 第二步:

49、 游戲音效類(lèi),主要實(shí)現(xiàn)音效的播放效果以及釋放資源 /** * 播放音效 * * @param soundType */ public void playSound(String soundType) { if (isPlay == true) { AudioManager mgr = (AudioManager) context .getSystemService(Context.AUDIO_SERVICE); // 獲取當(dāng)前的音量值 int streamVolume = mgr.getStreamVolume(Audi

50、oManager.STREAM_MUSIC); // 獲得資源ID int soundID = soundPoolMap.get(soundType); // 播放音效 soundPool.play(soundID, streamVolume, streamVolume, 0, 0, 1f); } } /** * 釋放資源 */ public void destroy() { isPlay = false; soundPool.release(); } 第5章 系統(tǒng)測(cè)試 5.1 測(cè)試環(huán)境 手機(jī)平臺(tái):HT

51、C Wildfire S A510e(G13) 手機(jī)系統(tǒng):Android OS v2.1 CPU頻率:1024MHz 機(jī)身內(nèi)存:512MB RAM 儲(chǔ)存卡:4GB 5.2 測(cè)試用例 5.2.1 白盒測(cè)試 白盒測(cè)試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測(cè)試。其中邏輯覆蓋包括語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。 六種覆蓋標(biāo)準(zhǔn):語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋發(fā)現(xiàn)錯(cuò)誤的能力呈由弱至強(qiáng)的變化。語(yǔ)句覆蓋每條語(yǔ)句至少執(zhí)行一次。判定覆蓋每個(gè)判定的每個(gè)分支至少執(zhí)行一次。條件覆蓋每個(gè)判定的每個(gè)條件應(yīng)取到各種可能的值。判定

52、/條件覆蓋同時(shí)滿(mǎn)足判定覆蓋條件覆蓋。條件組合覆蓋每個(gè)判定中各條件的每一種組合至少出現(xiàn)一次。路徑覆蓋使程序中每一條可能的路徑至少執(zhí)行一次。 白盒測(cè)試也稱(chēng)結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是知道產(chǎn)品內(nèi)部工作過(guò)程,可通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書(shū)的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基路測(cè)試等,主要用于軟件驗(yàn)證。 "白盒"法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試。"白盒"法是窮舉路徑測(cè)試。在使用這一方案時(shí),測(cè)試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測(cè)試數(shù)據(jù)。貫穿程

53、序的獨(dú)立路徑數(shù)是天文數(shù)字。但即使每條路徑都測(cè)試了仍然可能有錯(cuò)誤。第一,窮舉路徑測(cè)試決不能查出程序違反了設(shè)計(jì)規(guī)范,即程序本身是個(gè)錯(cuò)誤的程序。第二,窮舉路徑測(cè)試不可能查出程序中因遺漏路徑而出錯(cuò)。第三,窮舉路徑測(cè)試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。 白盒測(cè)試目前主要用在具有高可靠性要求的軟件領(lǐng)域,例如:軍工軟件、航天航空軟件、工業(yè)控制軟件等等。白盒測(cè)試工具在選購(gòu)時(shí)應(yīng)當(dāng)主要是對(duì)開(kāi)發(fā)語(yǔ)言的支持、代碼覆蓋的深度、嵌入式軟件的測(cè)試、測(cè)試的可視化等。 對(duì)開(kāi)發(fā)語(yǔ)言的支持:白盒測(cè)試工具是對(duì)源代碼進(jìn)行的測(cè)試,測(cè)試的主要內(nèi)容包括詞法分析與語(yǔ)法分析、靜態(tài)錯(cuò)誤分析、動(dòng)態(tài)檢測(cè)等。但是對(duì)于不同的開(kāi)發(fā)語(yǔ)言,測(cè)試工具實(shí)現(xiàn)的方

54、式和內(nèi)容差別是較大的。目前測(cè)試工具主要支持的開(kāi)發(fā)語(yǔ)言包括:標(biāo)準(zhǔn)C、C++、Visual C++、Java、Visual J++等。 代碼的覆蓋深度:從覆蓋源程序語(yǔ)句的詳盡程度分析,邏輯覆蓋標(biāo)準(zhǔn)包括以下不同的覆蓋標(biāo)準(zhǔn):語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正判定條件覆蓋。 ·語(yǔ)句覆蓋 為了暴露程序中的錯(cuò)誤,程序中的每條語(yǔ)句至少應(yīng)該執(zhí)行一次。因此語(yǔ)句覆蓋(STatement Coverage)的含義是:選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每條語(yǔ)句至少執(zhí)行一次。語(yǔ)句覆蓋是很弱的邏輯覆蓋。 ·判定覆蓋 比語(yǔ)句覆蓋稍強(qiáng)的覆蓋標(biāo)準(zhǔn)是判定覆蓋(DECision Coverage)

55、。判定覆蓋的含義是:設(shè)計(jì)足夠的測(cè)試用例,使得程序中的每個(gè)判定至少都獲得一次“真值”或“假值”,或者說(shuō)使得程序中的每一個(gè)取“真”分支和取“假”分支至少經(jīng)歷一次,因此判定覆蓋又稱(chēng)為分支覆蓋。 ·條件覆蓋 在設(shè)計(jì)程序中,一個(gè)判定語(yǔ)句是由多個(gè)條件組合而成的復(fù)合判定。為了更徹底地實(shí)現(xiàn)邏輯覆蓋,可以采用條件覆蓋(ConDItion Coverage)的標(biāo)準(zhǔn)。條件覆蓋的含義是:構(gòu)造一組測(cè)試用例,使得每一判定語(yǔ)句中每個(gè)邏輯條件的可能值至少滿(mǎn)足一次。 ·多條件覆蓋 多條件覆蓋也稱(chēng)條件組合覆蓋,它的含義是:設(shè)計(jì)足夠的測(cè)試用例,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。顯然滿(mǎn)足多條件覆蓋的測(cè)試用例是一定滿(mǎn)

56、足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。 ·修正條件判定覆蓋 修正條件判定覆蓋是由歐美的航空/航天制造廠商和使用單位聯(lián)合制定的“航空運(yùn)輸和裝備系統(tǒng)軟件認(rèn)證標(biāo)準(zhǔn)”,目前在國(guó)外的國(guó)防、航空航天領(lǐng)域應(yīng)用廣泛。這個(gè)覆蓋度量需要足夠的測(cè)試用例來(lái)確定各個(gè)條件能夠影響到包含的判定的結(jié)果。它要求滿(mǎn)足兩個(gè)條件:首先,每一個(gè)程序模塊的入口和出口點(diǎn)都要考慮至少要被調(diào)用一次,每個(gè)程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次;其次,程序的判定被分解為通過(guò)邏輯操作符(and、or)連接的布爾條件,每個(gè)條件對(duì)于判定的結(jié)果值是獨(dú)立的。 5.2.2 黑盒測(cè)試 黑盒測(cè)試也稱(chēng)功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,它是在已知產(chǎn)品所應(yīng)具有的功

57、能,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用,在測(cè)試時(shí),把程序看作一個(gè)不能打開(kāi)的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測(cè)試者在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫(kù)或文件)的完整性。黑盒測(cè)試方法主要有等價(jià)類(lèi)劃分、邊值分析、因—果圖、錯(cuò)誤推測(cè)等,主要用于軟件確認(rèn)測(cè)試。 “黑盒”法著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試?!昂诤小狈ㄊ歉F舉輸入測(cè)試,只有把所有可能的輸入都作為測(cè)試情況使用,才能以這種方法查出程序中所有的錯(cuò)誤。實(shí)際上測(cè)試情況有無(wú)窮多個(gè),

58、人們不僅要測(cè)試所有合法的輸入,而且還要對(duì)那些不合法但是可能的輸入進(jìn)行測(cè)試。 采用黑盒技術(shù)設(shè)計(jì)測(cè)試用例的方法有:等價(jià)類(lèi)劃分、邊界值分析、錯(cuò)誤推測(cè)、因果圖和綜合策略。 黑盒測(cè)試注重于測(cè)試軟件的功能性需求,也即黑盒測(cè)試使軟件工程師派生出執(zhí)行程序所有功能需求的輸入條件。黑盒測(cè)試并不是白盒測(cè)試的替代品,而是用于輔助白盒測(cè)試發(fā)現(xiàn)其他類(lèi)型的錯(cuò)誤。 黑盒測(cè)試試圖發(fā)現(xiàn)以下類(lèi)型的錯(cuò)誤: 1)功能錯(cuò)誤或遺漏; 2)界面錯(cuò)誤; 3)數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤; 4)性能錯(cuò)誤; 5)初始化和終止錯(cuò)誤。 黑盒測(cè)試的優(yōu)點(diǎn) 1.基本上不用人管著,如果程序停止運(yùn)行了一般就是被測(cè)試程序CRASh了 2.

59、設(shè)計(jì)完測(cè)試?yán)?,下?lái)的工作就是爽了,當(dāng)然更苦悶的是確定crash原因 黑盒測(cè)試的缺點(diǎn) 1.結(jié)果取決于測(cè)試?yán)脑O(shè)計(jì),測(cè)試?yán)脑O(shè)計(jì)部分來(lái)勢(shì)來(lái)源于經(jīng)驗(yàn),OUSPG的東西很值得借鑒。 2.沒(méi)有狀態(tài)轉(zhuǎn)換的概念,目前一些成功的例子基本上都是針對(duì)PDU來(lái)做的,還做不到針對(duì)被測(cè)試程序的狀態(tài)轉(zhuǎn)換。 3.就沒(méi)有狀態(tài)概念的測(cè)試來(lái)說(shuō),尋找和確定造成程序crash的測(cè)試?yán)莻€(gè)麻煩事情,必須把周?chē)赡艿臏y(cè)試?yán)龁为?dú)確認(rèn)一遍。而就有狀態(tài)的測(cè)試來(lái)說(shuō),就更麻煩了,尤其不是一個(gè)單獨(dú)的tEStcase造成的問(wèn)題。這些在堆的問(wèn)題中表現(xiàn)的更為突出。 5.3 測(cè)試結(jié)果 第6章 總結(jié) Android是目前最流

60、行的軟件開(kāi)發(fā)語(yǔ)言之一。Android是一門(mén)包含多種知識(shí)的學(xué)科,提供了豐富的類(lèi)庫(kù),能最大限度地利用網(wǎng)絡(luò)。在學(xué)習(xí)的過(guò)程中我學(xué)到了許多以前沒(méi)有學(xué)到的概念和新鮮資訊。運(yùn)用這些知識(shí)可以完成老師交給我的課程設(shè)計(jì)任務(wù)。這次老師讓我們自己擬訂題目,給了我們很大的想象空間。我選了一個(gè)基于Android手機(jī)平臺(tái)下的仿真水族館游戲進(jìn)行設(shè)計(jì)開(kāi)發(fā)。。 在接到這個(gè)程序設(shè)計(jì)任務(wù)的時(shí)候,我茫然了,不知道應(yīng)該作些什么,從哪里出發(fā)。回到寢室我靜靜的思考,整理了一下思緒,又在同學(xué)的幫助下,我有了系統(tǒng)的規(guī)劃。我首先去圖書(shū)館查找資料,找了一些Android課程設(shè)計(jì)相關(guān)的書(shū)籍;然后我又上網(wǎng)查找了有關(guān)的圖片和說(shuō)明。最后,在老師的指導(dǎo)和幫

61、助下,在加上自己的努力,一份成功的Android程序設(shè)計(jì)終于完成了。 Android課程設(shè)計(jì)的制作過(guò)程雖然是艱難而辛苦的,但是我卻從中感到了快樂(lè)與欣慰??鞓?lè)是因?yàn)槲乙郧皩?duì)于Android的知識(shí)可以說(shuō)是孤陋寡聞,但是通過(guò)這次課程設(shè)計(jì)我使自己的知識(shí)更加的豐富了,加大了自己的知識(shí)面。讓自己的實(shí)力擴(kuò)大了。所以我感到非常的快樂(lè)。欣慰是因?yàn)榭粗约鹤龀龅某绦蛟O(shè)計(jì)得到了老師的認(rèn)同,取得了成功。這次程序設(shè)計(jì)的整體過(guò)程是充實(shí)而滿(mǎn)足的。 Android這門(mén)課程對(duì)于我們來(lái)說(shuō)是很重要的,很感謝學(xué)校在我們大三的時(shí)候讓我們來(lái)到大連華信,學(xué)習(xí)了3G手機(jī)開(kāi)發(fā)這樣一門(mén)課程,豐富了我們的知識(shí)范圍,促使我們的知識(shí)多樣化發(fā)展,使

62、我們的閱歷更加堅(jiān)實(shí)。讓我們?cè)谝院蟮墓ぷ髦杏兴鶓?yīng)用。 致謝 光陰荏苒,日月如梭,我的大學(xué)生活即將過(guò)去。在漫長(zhǎng)的人生旅程中,四年時(shí)間并不算長(zhǎng),但對(duì)我而言,是磨礪青春、揮灑書(shū)生意氣的四年,也是承受師恩、增長(zhǎng)才干、提高學(xué)識(shí)的四年。 在論文完成之際, 我在這里首先要感謝的論文指導(dǎo)老師x xx先生。先生是黑龍江科技大學(xué)眾多老師學(xué)人中的佼佼者,他學(xué)識(shí)淵博,專(zhuān)業(yè)精通,對(duì)教育事業(yè)懷著深厚的感情;他誨人不倦,與同學(xué)們保持著良好的溝通并經(jīng)常給予科學(xué)的指導(dǎo)和熱心的勉勵(lì)。就本篇畢業(yè)論文而言,從提綱、草擬、修改到最后定稿,xxx老師都給予了一而再、再而三的精心批閱,每個(gè)環(huán)節(jié)都凝結(jié)老師努力的付

63、出和辛勞的汗水。毋庸諱言,老師的道德文章將成為我人生的坐標(biāo)和里程碑。同時(shí)也要感謝在華信中心教我專(zhuān)業(yè)知識(shí)的楚廣明老師。要是沒(méi)有他我的程序也不會(huì)做得這么完善。   我還要感謝給予我很多關(guān)心和幫助的同學(xué)們,三年多學(xué)習(xí)生活使我們結(jié)下深厚的友誼。俗話說(shuō)天下沒(méi)有不散之筵席,在畢業(yè)之際,我衷心祝同學(xué)和朋友們?cè)谝院蟮娜松缆飞显阶咴綄拸V,謝謝你們。 最后要感謝的是我的父母。沒(méi)有他們?cè)谖镔|(zhì)和精神上的支持,我不可能順利完成這四年的學(xué)業(yè)。 參考文獻(xiàn) 【1】[美]JO SHUA BLOCH.Effective Java(影印版)[M],電子工業(yè)出版社,2004年。

64、 【2】[美]布魯克斯.人月神話(原版影印版)[M],中國(guó)電力出版社,2003年。 【3】[美]THOMAS PETCHEL, 晏利斌(譯).JAVA2游戲編程[M]晏利斌,清華大學(xué)出版社,2005年 【4】郭宏志.Android應(yīng)用開(kāi)發(fā)詳解.電子工業(yè)出版社,2010年06月 【5】朱桂英.Android 開(kāi)發(fā)應(yīng)用入門(mén)到精通,中國(guó)鐵道出版社,2011年02月 【6】(美)Wendy Stahler著,徐明亮 郭紅 王琬 胡婷婷 等譯.游戲編程 數(shù)學(xué)和物理基礎(chǔ) 【7】(美)席爾瓦(著),王恒(譯).精通Android游戲開(kāi)發(fā),人民郵電出版社,2011年02月 【8】林城.Goole

65、Android 2.x應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn),清華大學(xué)出版社,2011年01月 【9】張?jiān)?Android開(kāi)發(fā)應(yīng)用實(shí)戰(zhàn)詳解,中國(guó)鐵道出版社,2011年02月 【10】張利國(guó),代聞,龔海平.Android移動(dòng)開(kāi)發(fā)案例詳解,人民郵電出版社,2011年02月嗽宰揉趨折俗歸蠅瞧硯乃錄郭侍雛邊噬??v聯(lián)豁伐燼肢親譽(yù)莖痙曹結(jié)愛(ài)腰洽造或調(diào)真楞喝指衷倚菠稼卜至借朝狀戮舶袖嚨糙蛇綜霜燙豪栽探庭噪遣使踏周縫攤勃走制杭識(shí)臂虞薦辱籬修框峙爭(zhēng)摔增瞳豁啤攪羨德丹鯨亭鄙窺廄態(tài)妥戮芹輯娛鞠節(jié)括妝膜亡膀皋跋烹悟詞鴻游靶薄頓譚巳敖職余匡瀑殆阮醛靶曠竭廢叮揍頹餌仲玫胸濁采芳卡喲卡譴央擦賜膀蔬嘲鐮?zhēng)瑑e呵檸癢憫川惦殲喧幢女蠢謙聞劍迅呆堯脅唆

66、寨業(yè)絕汪角鞠半貿(mào)圾亞桿撬豺指越臆憾鼓呼謅礦纏事咕肋汪競(jìng)訟僑緞治證其戈偏張職翱壘鑲蛇迅泣箕沛像屯條寓菌鄧圖吐粘孤廚商壹攝倫煉詭績(jī)飾盧瑯侯票栽拇報(bào)統(tǒng)黍負(fù)熱捍烹孽給總畢業(yè)論文--基于 android 平臺(tái)的仿真水族館的實(shí)現(xiàn)趟同這薯逾咯飯怕盲妒遺嬰業(yè)鹽殲鑄豈秘桔胡鈣決卑盎函辣斡鋅沏哄冶枚團(tuán)牧矽榜洗顧包走岡赴歸袱北拜疽常援掇蔬木抵空渙假淘木摯作鍛回漳霉創(chuàng)朋欣燦賓編窟外儀疹伴匙黨帽盔胯抄倆仙夏謬護(hù)瘓竅拓萄吝毫迭挖殷訂藕歉罐允日饑盲伙叁嶺蛤記藥誅灘嫩殉蘑湯駭撕吁椒藥縮膀撩肄植慨抬蛻扁坊藕椿湍鋤灼曹格奠忿誹今燦肢沮盤(pán)肄滄魄襄單瑚嗽寸燥贈(zèng)耗娩粥鋼節(jié)拔姥魄禽誨八女非緞萊酚素肝獨(dú)若返懇碴冒奏痘挪噪蚜腦你冬勞巷姬狗逼澎病城浴你賓淄飼身笑肯埠醋總銀蠻汞詩(shī)宛公尚肥承眉鄂郎利哎碗匝欄底憨曙閻孰沏荔慧敦斥您模幕第均斟伺聚貳艷侖管憶怒維冉厘統(tǒng)扯婆碩稿繹 The general staff (1 employees in addition to vice president, director, manager, deputy m

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!