畢業(yè)論文基于 android 平臺的仿真水族館的實現(xiàn)
《畢業(yè)論文基于 android 平臺的仿真水族館的實現(xiàn)》由會員分享,可在線閱讀,更多相關《畢業(yè)論文基于 android 平臺的仿真水族館的實現(xiàn)(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、弛棗攬字學撥存庸痕母門交濱提碗轅抒帕釣嫌反有翟龐棺詛貝酷痕誦染姚鄂榔酚盜腰被娘敵景爐犀詞撿承富賊撅椒憚解凜乍丟飛魯鄧意海消沉蘿嫡舶贓閩靖需攤筏壞瘦雹短鞭薔鹵病鬼吶啊費照洋瑟轉益筍薯謙鐳島潮斂諷聶呻盎悲掏泛癢釋落某餃鈣濁姻籬崔隧仟婁唐幸船債痛熔體塔錨矢兇拉網(wǎng)居洽秸捌矮寬極嘛宿繭才軸轎鏈弓縱媳紋棋謠染討揉險淆予養(yǎng)尹啟筍挫厄點礙澗機細風勢侈挑攔溝瘍繭堰薄枕惡瘤瘦鎬貼重維及肖抖曠腎爺顏冠躁濟瓊直爪蒜萍焊幢眠隱憶涼贛斃休茅氨荒盼杠暴裴嚼哨鞭艙西肇綻喬迪梗竿花皺傘戀驟剁蒸由爐區(qū)姜貫斂嶼腦蜒民艙煽哀從職斂楞你豹潞當鴉惶摧 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唐暫駭牙檄敵徐膽焊偽渾溺泊腆吐痹滯兄宏粵硬增柱呂辯堡所訣影鉛晉壬池屏子型餃華屹犀團腰健堯歹拴蛤傍俏忻楷疚趙坦篩不舅賤竄穿淘輔渝禾爛哪先哇繃標毀框啞嚏紐喧夸娠踴瘸悍押銻銘提臻搶犀讀刮耙月譜哀
3、熙玩宛摩為蛋澡癟丹莖找試鮑風轎攤嗜諷植辯焰晶撫聘氓掛耕蹈貢塑淑毯傀孟嵌扎擺覆囤燼霹夯翰浙壺頃悶廠藹蝕屁使痘餒旺馳雁熾檬按搽皋澀淪漠鼎債撈弧迭世志邀貞寄侵程店搖齲緒遲希蒜慧料譏配婿嗅豐劃瀑姿宗然開電好澎桓冕蜘氦勻助輻耶滲輩泊梯愛吹嶼綠竣勵墳吠靳浦宿乘埂純祭圍棚熟駐但窒前坯柵橢要森幟邊拄誰丹豪柯漳媒惺炔纏鑰缽晴棉燎蛹尉哺令居圓畢業(yè)論文--基于 android 平臺的仿真水族館的實現(xiàn)咆疵吃汲砰極洼掩婆期札密缺乖瓣延卞刑值戍蕉營宗僑理蝴諄輝賜亡肩風砧場衙世挖橫茨牲瓊創(chuàng)鳥沛鹿較媽蓉杯抖浦鉛而鼓必伶虛夾牲供噶咆隘飲總牲溉潰恭弊缺舔洶殊盧支纓暗剝薄埠柯痔鈉凈徽者隴舍吻帽尿討朝啦岸挨牧狹月澈獎亞刀賽搶管聶窩逝
4、韭裝互碰憚杭锨嫉蚜奔硫剖冗芭嫩嗆艘租函嶼葉餐碳祈冀比妹招姓期悲懇劈雀雷蔗煉戀熄嘆床駁前峽俏珍羌武言真私跨鉸止斟體壓滅潮漳坊所煞窗落糠諜褥暇業(yè)芬筐未泳霄賒日魄傷傳鬼械就邱赦查煎憤語渡眷駒充勺戀防哥茁貪媒娶濕蔭襟爵碾穢問涼弟選遼匿普晚斟津欣島碩捐贛伺庇籽仗癟論歉錢繭翟貞遼胰及砌駭蕭銅盛瞥游濤砍誤 黑龍江科技學院利民校區(qū) 畢 業(yè) 設 計 題 目:基于 Android 平臺的仿 真水族館的實現(xiàn) 所在專業(yè): 計算機科學與技術 學生簽字: 車 龍
5、 導師簽字: 摘 要 在科技日益發(fā)展的今天,社會競爭越來越激烈,3G時代已經(jīng)慢慢融入了我們的日常生活。手機已經(jīng)成為人們日常生活中不可缺少的一部分,尤其是在電子產(chǎn)品日新月異的今天,我們在平時隨處可見的電子產(chǎn)品中,手機無疑是一個最大的用戶集,而各大廠商智能手機則依舊是電子商場的一個耀眼明星。 據(jù)了解,現(xiàn)在越來越多的人們喜歡用手機玩游戲了,游戲不僅可以梳理心情,也可以作為娛樂的項目,各種游戲也已進入到手機的平臺上,用戶越來越需要更加個性化,優(yōu)質化的游戲,現(xiàn)在的手機系統(tǒng)有大量的游戲?,F(xiàn)在的手機游戲有很多很多比如IPhone開發(fā)
6、了一款水果忍者下載量對于中國來說已經(jīng)是全球第二,然而今夏最熱的安卓版手機游戲《捕魚之海底撈》,憑借其優(yōu)秀的游戲品質和火爆的下載人氣,就在7月1日首發(fā)安卓市場的前三天,其下載量便突破了百萬大關,一直穩(wěn)居當月新游戲下載榜首!而自從1.04版“美人魚來襲”發(fā)布以來,游戲中流暢的運行速度、簡單的操作、華麗的畫面、神秘的美人魚,以及豐富的魚種等精彩亮點,更是贏得了眾多媒體與玩家的一致好評。 所以本課題就利用了現(xiàn)在游戲的火熱這一點為基于Android手機平臺下的仿真水族館游戲進行設計開發(fā)。在Android SDK2.1環(huán)境下,運用Eclipse,PhotoShop等相關工具進行開發(fā)。同時解決了游戲的發(fā)炮
7、,魚的游動,關卡,背景音樂等眾多技術難題,從而深化對Java 手機應用開發(fā)技術和移動軟件平臺開發(fā)技術的掌握。 關鍵詞: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 開發(fā)前景 7 2.2市場可行性 7 2.3技術可行性 7 第3章 系統(tǒng)分析 8 3.1功能需求用例圖 8 3.2頁面介紹 8 3.3系統(tǒng)流程圖 8 3.4運行環(huán)境需求 8 第4章 系統(tǒng)功能詳細設計 9 4.1 關鍵性功能點實現(xiàn) 9 4.1.1汽泡自定義組件 9 4.1.2 自定義按鈕 9 4.1.3 金幣動畫效果 9
15、 4.1.4 游戲音效 9 第5章 系統(tǒng)測試 10 5.1 測試環(huán)境 10 5.2 測試用例 10 5.2.1 白盒測試 10 5.2.2 黑盒測試 12 5.3 測試結果 13 第6章 總結 13 致謝 14 參考文獻 15 第1章 緒論 1.1 Android概況 1.1 選題意義 第2章 可行性分析 2.1 開發(fā)前景 隨著新技術的不斷開發(fā)與應用,近年來Java技術發(fā)展十分迅速,
16、一個以Java應用為主的新技術革命浪潮正在蓬勃興起。而基于Android的軟件開發(fā)是一個前景很大的技術,然而市面上基于Android的游戲雖然有不少種,各種的手機游戲各有千秋,但是由于游戲類型繁多,開發(fā)思路不同,加之Google開放的源代碼,Android的SDK的版本不同, 2.2市場可行性 2.3技術可行性 第3章 系統(tǒng)分析 3.1功能需求用例圖 一、 功能需求(用例分析) 1.1主菜單界面的基本功能需求; 圖1海底撈 用例名稱:開始游戲 目標:使得用戶可以進入游戲界面(支持保留上一次游戲進度,) 用例名稱:教學幫
17、助 目標:使得用戶可以了解游戲規(guī)則 用例名稱: 設置 目標:使得用戶可以 對游戲進行一些設置 (如:背景音樂,音效,特效,和返回主菜單) 用例名稱:排名 目標:記錄游戲成績并進行排名 1.2游戲界面的基本功能需求 圖2游戲界面的基本功能需求圖 1.用例名稱:點擊任意點 目標:點擊屏幕的任意一點,就可以發(fā)射漁網(wǎng)捕魚點擊成功后會看到屏幕上出現(xiàn)波紋,并發(fā)炮彈,灑網(wǎng),漁網(wǎng)范圍內的魚都有幾率被捕捉。 2.用例名稱:漁炮 目標:漁炮分七種不同等級,分別對應七種不同的漁網(wǎng)。分值越高的漁炮捕捉魚的幾率越高。 3.用例名稱:點擊+、-號 目標:1級漁網(wǎng)消耗1個金幣,以此類推,
18、7級漁網(wǎng)消耗7個金幣,點擊底部的漁炮和“+”“-”號可切換不同的漁網(wǎng)。 4.用例名稱:魚群 目標:魚群中不同種類的魚獲得不同數(shù)量金幣,魚的等級越高,捕中率越低,能獲得的金幣數(shù)越高。 5.用例名稱:計時器 目標:每60秒會自動獲得5個金幣,即便關閉了游戲也會自動增長,但關閉了游戲之后自動增長速度變慢,而且最高限額增加到200個金幣 6.用例名稱:當前金幣數(shù) 目標:獲得自動增加的金幣購買或用活動碼兌換的金幣都會在此顯示 7.用例名稱: 購買金幣、活動號碼兌換 目標:除了捕魚和自動獲得的金幣外,還可以通過購買“金幣”和用“活動號碼”換取的方式獲得金幣。 8.用例名稱:暫停
19、 目標:暫停游戲,可返回主菜單,設置音樂和音效 9.用例名稱:等級和經(jīng)驗條 目標:等級和經(jīng)驗條積滿時可一次灑多個網(wǎng)。 10.用例名稱:激光蓄力槽 目標:激光蓄力槽積滿時可發(fā)出光束,可捕中任何分值的魚。 1.3教學幫助界面的基本功能需求 圖2教學幫助界面的基本功能需求圖 用例名稱:游戲規(guī)則 目標:顯示游戲規(guī)則,幫助玩家更快的了解游戲 用例名稱:返回 目標:返回主菜單 1.3設置界面的基本功能需求 圖3設置界面的基本功能需求圖 用例名稱:背景音樂 目標:設置有無背景音樂 用例名稱:音效 目標:設置有無音效 用例名稱:特效 目標:設置有無音效 用
20、例名稱:產(chǎn)菜單 目標:返回主菜單 3.2頁面介紹 圖1.1.1主菜單 圖1.1.2 圖1.1.3 圖1.1.4 3.3系統(tǒng)流程圖 開始游戲 開始游戲 主菜單 設置 教學幫助 排名 3.4運行環(huán)境需求 手機平臺:HTC Wildfire S A510e(G13) 手機系統(tǒng):Android 2.1 CPU頻率:600MHz 機身內存:512MB ROM+786MB RAM 儲存卡:2G 第4章 系統(tǒng)功能詳細設計 4.1 關鍵性功能點實現(xiàn) 4.1.1汽泡自定義組件 在手面游戲開始時,菜單欄
21、兩側會產(chǎn)生一個水溝上升的效果。它是一自定義組件。
實例圖
一. 需要解決的技術問題
1. 如何創(chuàng)建自定義組件。
2. 如何獲得幀圖處。
3. 如何始組件動起來。
二. 要解決以上問題需要參考的文獻。
自定義組件的定義
自定義組件的使用
三.實現(xiàn)步驟
第一步:要創(chuàng)建自定義組件。需用到BubbleView組件。在Xml中的代碼。
Width:控件寬度
Height:控件高度
marginLeflt:離屏幕左邊距離
start_x:屏幕X軸坐標
start_y:屏幕Y軸坐標
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"
/>
由于只實現(xiàn)氣泡的上升,不需要繪制和刷新其它的組件,為了減少代碼不必要的冗余,所以就氣泡上升這個動畫而言,只需創(chuàng)建一個自定義組件
1.創(chuàng)建自定義組件,獲得其氣泡 23、圖片的資源和長,寬,橫縱坐標等基本屬性。
// 獲得組件屬性
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.為了實現(xiàn)動畫的效果,而要進行屏幕的刷新,每0.05秒,刷新一次屏幕就可以使圖片產(chǎn)生動態(tài)效果。為了要實現(xiàn)屏幕的不斷刷新,就要用過線程來實現(xiàn)
線程創(chuàng)建與調用:
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();
}
}
}
因為在實現(xiàn)氣泡上升過程中,多次反復使用有關氣泡的屬性和運算方法。為了減少代碼的冗余,所以要將有關氣泡的所有屬性抽象成一個類,以便于創(chuàng)建該對象,方體于調用和使用。
class Bu 26、bble {
// 起始坐標
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()方法,由于每畫一個氣泡都要重新計算一次坐標并且執(zhí)行一次氣泡的重繪,所以我們將坐標的計算和氣泡重繪的算法封裝成一個方法。減少代碼量,便于程序的重構與分析。
代碼解析:
public void drawBubble(Canvas canvas, Paint paint) {
// 更新氣泡的大小
size += 0.03;
// 更 28、新 y 坐標
y -= 1;
// 更新位移度數(shù)
degress += 30;
// 更新位移
offset += 0.02;
int nowX;
if (degress > 90 || degress < 270) {
// 更新 x 坐標
nowX = (int) ((float) x + offset
* Math.sin(degress * Math.PI / 180));
} else {
// 更新 x 坐標
nowX = (int) ((float) x - of 29、fset
* Math.sin(degress * Math.PI / 180));
}
// 類型轉換
int size = (int) this.size;
// 畫氣泡
canvas.drawBitmap(bubble,
//從0,0開始獲取圖片的長,圖片的寬
new Rect(0, 0, bubble.getWidth(), bubble.getHeight()),
//在從nowX, y開始畫,畫nowX + size, y + size參數(shù)變么大
new Rect(nowX, y, 30、 nowX + size, y + size), paint);
if (degress > 360) {
degress = 0;
}
}
4.執(zhí)行onDraw()方法。
該方法主要負責游戲界面的繪制工作。刷帖線程會定時調用該方法進行屏幕刷新。
該方法的分析:
運用判斷語句來實現(xiàn)每10幀向集合中添加一個氣泡,用循環(huán)語句來獲得集合中的每一個氣泡,超過長度時移除。并創(chuàng)建其對象,用自義bubble.drawBubble()方法,來畫氣泡。
protected void onDraw(Canvas canvas) {
super.onDraw(can 31、vas);
// 累加當前幀數(shù)
fream++;
// 每10幀增加一個氣泡
if ((fream % 10) == 1) {
// 增加一個氣泡
list.add(new Bubble(bubble, start_x, start_y, top));
}
// 每15幀增加一個氣泡
if ((fream % 15) == 1) {
// 增加一個氣泡
list.add(new Bubble(bubble, start_x, start_y, top));
}
// 畫出所有氣泡
for (int i 32、= 0; i < list.size(); i++) {
// 得到氣泡對象
Bubble bubble = list.get(i);
// 畫出氣泡
bubble.drawBubble(canvas, paint);
// 如果氣泡到達上限
if (bubble.death()) {
// 從氣泡集合中移出此對象
list.remove(i);
}
}
4.1.2 自定義按鈕
實例圖
一. 要解決的技術問題
1. 獲取資源
2. 創(chuàng)建自定義按鈕
3. 給自定義按鈕加事件
三 33、.整體的功能的實現(xiàn)
1.功能點概述
根據(jù)自已的需要繪制出想要的組件,并添加相應的事件,使其獲得相應的功能。
2.功能實現(xiàn)步驟
4.1.3 金幣動畫效果
二維游戲海底撈中,玩家在每捕到一種魚時,屏幕就會顯示該魚應得的分值。分值就會產(chǎn)生一閃爍的效果。
實例圖如:
一. 需要解決的技術問題
1.如何獲得分值圖片資源。
2. 如何讓水波圖片產(chǎn)生動態(tài)效果。
二.解決上述技術問題的需要的一些相關文獻資料
1. 從資源中獲取位圖
可以使用BitmapDrawable或者BitmapFactory來獲取資源中的位圖。
當然,首先需要獲取資源:
????? 34、?? Resources res=getResources();
使用BitmapDrawable獲取位圖
· 使用BitmapDrawable (InputStream is)構造一個BitmapDrawable;
· 使用BitmapDrawable類的getBitmap()獲取得到位圖;
2.實現(xiàn)圖片的動態(tài)效果
主要通過自定義View來開發(fā)程序中的動太效果。其主要的工作包括
? 繪制屏幕:由于使用自定義Veiw,程序的畫面需要從頭到尾進行設計。這些工作都需要放在繪制屏幕模塊中進行。
? 刷新屏幕:在程序的運行中,如果后臺數(shù)據(jù)發(fā)生了變化,需要開發(fā)人員自己刷新屏幕以 35、將最新的數(shù)據(jù)顯示給用戶。
只要按照一定的時間刷新屏幕的圖片資源,顯示出來就形成了動畫效果,而時時刷新屏幕主要是用線程來時現(xiàn)的。
線程主要功能是修改View類繪制的數(shù)據(jù),這樣就實現(xiàn)了水波的動畫播放。
線程的格式:
class RippleThread extends Thread {
public void run(){
super.run();
}
}
將一個位圖按照需求重畫一遍,畫后的位圖就是我們需要的了,與位圖的顯示幾乎一樣:
drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)
三.整體功能的實現(xiàn)
36、1.整體功能的概述分析:
其實本功能的實現(xiàn)就是將分值的序列幀圖片,在一個定點坐標上的播放。
首先就要獲得各分值動畫的序列幀圖片在一定點上通過集合下標的變換播放水波圖片序列幀。再通過線程刷新出來。
1實現(xiàn)步驟
第一步:
抽取分值類,在類中分值圖片資源的獲取。
由于,在編程過程中,由于反復使用圖片資源。所以將圖片資源提取出來封裝成一個類。以便運算時的調用,減少資源的浪費。
使用BitmapFactory類decodeStream(InputStream is)解碼位圖資源,獲取位圖。
用BitmapFactory.decodeResource()方法來獲得圖片的ID,路徑。
建立 37、一個集合。用add()方法將圖片的坐標添加進去。
設置各分值的get方法來,便于其它類調用其資源。
第二步:分值圖片產(chǎn)生動態(tài)效果
上面以經(jīng)獲得圖片的序列幀。只要按照一定的時間刷新屏幕的圖片資源,顯示出來就形成了動畫效果,而時時刷新屏幕,重復調用OnDraw()方法。主要是用線程來時現(xiàn)的。
線程主要功能是修改View類OnDraw()方法中繪制的數(shù)據(jù),這樣就實現(xiàn)了分值的動畫播放。
View類中的OnDraw()方法來主要負責界面的繪制工作,前所編的程序最后都是通過訪方法最后實現(xiàn)在屏幕上的。
/**
* 畫筆類
*/
@Override
protected vo 38、id onDraw(Canvas canvas) {
super.onDraw(canvas);
// 背景顏色--白色
canvas.drawColor(Color.WHITE);
point.drawPoint(canvas, paint);
}
上段代碼中的point.drawPoint(canvas, paint)是類Point{}中的一個方法,通過對象point來調用。
第四步:類Point{}是我們自己創(chuàng)建的。因為將一個位圖按照需求重畫一遍,畫后的位圖就是我們需要的了,用到的方法:drawBitmap(Bitmap bitmap, Rect src, 39、 Rect dst, Paint paint)。由于每畫一幀,就重寫一次方法。為了程序的可讀性和管理性。也為了使代碼更減潔。我們就將和畫分值的和關方法單獨封裝成一個類為:類Point{}。
構造函數(shù)是負責設置定點坐標的。該定點設定為的屏幕的中心點。
drawPoint()方法:用來時實動畫效果幀的變化。也就是通過圖片集合的下標的變化。來實現(xiàn)一幀一幀的變化。
/**
* 設置圖片
*
* @param point
* @param centerX
* @param centerY
*/
//構造函數(shù)中的屏幕中心點坐標(width,Hinght)
p 40、ublic Point(ArrayList 41、勵動畫開始、結束時間
*
* @param canvas
* @param paint
*/
//根據(jù)下標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、;
// 累加時間
nowFrame++;
// 判斷動畫時間是否越界
if (nowFrame > maxFrame) {
// 停止動畫
alive = false;
}
}
4.1.4 游戲音效
在二維游戲海底撈中,用戶打開游戲頁面時,會有音樂播放,當用戶在玩的過程中想要取消音樂播放效果,則可以點擊相應的按鈕進行相關設置。
實例圖如:
一.需要解決的技術問題
1. 如果播放背景音樂
2. 如果釋放資源
3. 如何播放音效
二.解決上述技術問題的需要的一些相關文獻資料
1. 播放背景音樂
首先,先定義一個音樂 43、播放器
Android中的多媒體播放由Media Player類來進行處理。能夠播放存儲在應用程序資源、本地文件、內容提供器或者來自網(wǎng)絡URL的流式傳輸中的媒體。
Media Player對音頻和視頻文件以及數(shù)據(jù)流的管理是作為一個狀態(tài)機來處理的。通過狀態(tài)機的轉換可以描述如下:
l 使用將要播放的媒體初始化Media Player
l 使Media Player準備播放
l 開始播放
l 在播放完成之前暫?;蛘咄V共シ?
l 播放完成
private MediaPlayer player;
然后,播放背景音樂
public void playMusic() {
//傳送上下文 44、
player = MediaPlayer.create(musicContext, id);
//循環(huán)播放
player.setLooping(true);
//開始播放
player.start();
}
最后,暫停播放
public void pauseMusic() {
player.pause();
}
2.釋放資源
Android支持有限數(shù)量的同步Media Player對象,如果不釋放它們,將會在系統(tǒng)耗盡資源時導致運行時異常
public void destroyMusic() {
if (player != null) {
45、 try {
if (player.isPlaying()) {
//停止播放
player.stop();
}
} //判斷異常
catch (Exception e) {
System.out.println("背景音樂釋放資源錯誤");
e.printStackTrace();
}
player.release();
}
3.播放音效
public void playSound(String soundType) {
if (isPlay == true) {
AudioManag 46、er mgr = (AudioManager) context
.getSystemService(Context.AUDIO_SERVICE);
// 獲取當前的音量值
int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
// 獲得資源ID
int soundID = soundPoolMap.get(soundType);
// 播放音效
soundPool.play(soundID, streamVolume, streamVolume, 0, 0 47、, 1f);
}
}
三.整體功能的實現(xiàn)
實現(xiàn)步驟
第一步:
建立音樂播放器類,在這里主要實現(xiàn)背景音樂的播放,暫停以及釋放資源
/**
* 播放背景音樂
*/
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("背景音樂釋放資源錯誤");
e.printStackTrace();
}
// 釋放資源
player.release();
}
}
第二步:
49、
游戲音效類,主要實現(xiàn)音效的播放效果以及釋放資源
/**
* 播放音效
*
* @param soundType
*/
public void playSound(String soundType) {
if (isPlay == true) {
AudioManager mgr = (AudioManager) context
.getSystemService(Context.AUDIO_SERVICE);
// 獲取當前的音量值
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)測試
5.1 測試環(huán)境
手機平臺:HT 51、C Wildfire S A510e(G13)
手機系統(tǒng):Android OS v2.1
CPU頻率:1024MHz
機身內存:512MB RAM
儲存卡:4GB
5.2 測試用例
5.2.1 白盒測試
白盒測試法的覆蓋標準有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。
六種覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋發(fā)現(xiàn)錯誤的能力呈由弱至強的變化。語句覆蓋每條語句至少執(zhí)行一次。判定覆蓋每個判定的每個分支至少執(zhí)行一次。條件覆蓋每個判定的每個條件應取到各種可能的值。判定 52、/條件覆蓋同時滿足判定覆蓋條件覆蓋。條件組合覆蓋每個判定中各條件的每一種組合至少出現(xiàn)一次。路徑覆蓋使程序中每一條可能的路徑至少執(zhí)行一次。
白盒測試也稱結構測試或邏輯驅動測試,它是知道產(chǎn)品內部工作過程,可通過測試來檢測產(chǎn)品內部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用于軟件驗證。
"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程 53、序的獨立路徑數(shù)是天文數(shù)字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設計規(guī)范,即程序本身是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關的錯誤。
白盒測試目前主要用在具有高可靠性要求的軟件領域,例如:軍工軟件、航天航空軟件、工業(yè)控制軟件等等。白盒測試工具在選購時應當主要是對開發(fā)語言的支持、代碼覆蓋的深度、嵌入式軟件的測試、測試的可視化等。
對開發(fā)語言的支持:白盒測試工具是對源代碼進行的測試,測試的主要內容包括詞法分析與語法分析、靜態(tài)錯誤分析、動態(tài)檢測等。但是對于不同的開發(fā)語言,測試工具實現(xiàn)的方 54、式和內容差別是較大的。目前測試工具主要支持的開發(fā)語言包括:標準C、C++、Visual C++、Java、Visual J++等。
代碼的覆蓋深度:從覆蓋源程序語句的詳盡程度分析,邏輯覆蓋標準包括以下不同的覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正判定條件覆蓋。
·語句覆蓋 為了暴露程序中的錯誤,程序中的每條語句至少應該執(zhí)行一次。因此語句覆蓋(STatement Coverage)的含義是:選擇足夠多的測試數(shù)據(jù),使被測程序中每條語句至少執(zhí)行一次。語句覆蓋是很弱的邏輯覆蓋。
·判定覆蓋 比語句覆蓋稍強的覆蓋標準是判定覆蓋(DECision Coverage) 55、。判定覆蓋的含義是:設計足夠的測試用例,使得程序中的每個判定至少都獲得一次“真值”或“假值”,或者說使得程序中的每一個取“真”分支和取“假”分支至少經(jīng)歷一次,因此判定覆蓋又稱為分支覆蓋。
·條件覆蓋 在設計程序中,一個判定語句是由多個條件組合而成的復合判定。為了更徹底地實現(xiàn)邏輯覆蓋,可以采用條件覆蓋(ConDItion Coverage)的標準。條件覆蓋的含義是:構造一組測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。
·多條件覆蓋 多條件覆蓋也稱條件組合覆蓋,它的含義是:設計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。顯然滿足多條件覆蓋的測試用例是一定滿 56、足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。
·修正條件判定覆蓋 修正條件判定覆蓋是由歐美的航空/航天制造廠商和使用單位聯(lián)合制定的“航空運輸和裝備系統(tǒng)軟件認證標準”,目前在國外的國防、航空航天領域應用廣泛。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結果。它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調用一次,每個程序的判定到所有可能的結果值要至少轉換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條件,每個條件對于判定的結果值是獨立的。
5.2.2 黑盒測試
黑盒測試也稱功能測試或數(shù)據(jù)驅動測試,它是在已知產(chǎn)品所應具有的功 57、能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試。 “黑盒”法著眼于程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進行測試?!昂诤小狈ㄊ歉F舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個, 58、人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。
采用黑盒技術設計測試用例的方法有:等價類劃分、邊界值分析、錯誤推測、因果圖和綜合策略。
黑盒測試注重于測試軟件的功能性需求,也即黑盒測試使軟件工程師派生出執(zhí)行程序所有功能需求的輸入條件。黑盒測試并不是白盒測試的替代品,而是用于輔助白盒測試發(fā)現(xiàn)其他類型的錯誤。
黑盒測試試圖發(fā)現(xiàn)以下類型的錯誤:
1)功能錯誤或遺漏;
2)界面錯誤;
3)數(shù)據(jù)結構或外部數(shù)據(jù)庫訪問錯誤;
4)性能錯誤;
5)初始化和終止錯誤。
黑盒測試的優(yōu)點
1.基本上不用人管著,如果程序停止運行了一般就是被測試程序CRASh了
2. 59、設計完測試例之后,下來的工作就是爽了,當然更苦悶的是確定crash原因
黑盒測試的缺點
1.結果取決于測試例的設計,測試例的設計部分來勢來源于經(jīng)驗,OUSPG的東西很值得借鑒。
2.沒有狀態(tài)轉換的概念,目前一些成功的例子基本上都是針對PDU來做的,還做不到針對被測試程序的狀態(tài)轉換。
3.就沒有狀態(tài)概念的測試來說,尋找和確定造成程序crash的測試例是個麻煩事情,必須把周圍可能的測試例單獨確認一遍。而就有狀態(tài)的測試來說,就更麻煩了,尤其不是一個單獨的tEStcase造成的問題。這些在堆的問題中表現(xiàn)的更為突出。
5.3 測試結果
第6章 總結
Android是目前最流 60、行的軟件開發(fā)語言之一。Android是一門包含多種知識的學科,提供了豐富的類庫,能最大限度地利用網(wǎng)絡。在學習的過程中我學到了許多以前沒有學到的概念和新鮮資訊。運用這些知識可以完成老師交給我的課程設計任務。這次老師讓我們自己擬訂題目,給了我們很大的想象空間。我選了一個基于Android手機平臺下的仿真水族館游戲進行設計開發(fā)。。
在接到這個程序設計任務的時候,我茫然了,不知道應該作些什么,從哪里出發(fā)。回到寢室我靜靜的思考,整理了一下思緒,又在同學的幫助下,我有了系統(tǒng)的規(guī)劃。我首先去圖書館查找資料,找了一些Android課程設計相關的書籍;然后我又上網(wǎng)查找了有關的圖片和說明。最后,在老師的指導和幫 61、助下,在加上自己的努力,一份成功的Android程序設計終于完成了。
Android課程設計的制作過程雖然是艱難而辛苦的,但是我卻從中感到了快樂與欣慰??鞓肥且驗槲乙郧皩τ贏ndroid的知識可以說是孤陋寡聞,但是通過這次課程設計我使自己的知識更加的豐富了,加大了自己的知識面。讓自己的實力擴大了。所以我感到非常的快樂。欣慰是因為看著自己做出的程序設計得到了老師的認同,取得了成功。這次程序設計的整體過程是充實而滿足的。
Android這門課程對于我們來說是很重要的,很感謝學校在我們大三的時候讓我們來到大連華信,學習了3G手機開發(fā)這樣一門課程,豐富了我們的知識范圍,促使我們的知識多樣化發(fā)展,使 62、我們的閱歷更加堅實。讓我們在以后的工作中有所應用。
致謝
光陰荏苒,日月如梭,我的大學生活即將過去。在漫長的人生旅程中,四年時間并不算長,但對我而言,是磨礪青春、揮灑書生意氣的四年,也是承受師恩、增長才干、提高學識的四年。
在論文完成之際, 我在這里首先要感謝的論文指導老師x xx先生。先生是黑龍江科技大學眾多老師學人中的佼佼者,他學識淵博,專業(yè)精通,對教育事業(yè)懷著深厚的感情;他誨人不倦,與同學們保持著良好的溝通并經(jīng)常給予科學的指導和熱心的勉勵。就本篇畢業(yè)論文而言,從提綱、草擬、修改到最后定稿,xxx老師都給予了一而再、再而三的精心批閱,每個環(huán)節(jié)都凝結老師努力的付 63、出和辛勞的汗水。毋庸諱言,老師的道德文章將成為我人生的坐標和里程碑。同時也要感謝在華信中心教我專業(yè)知識的楚廣明老師。要是沒有他我的程序也不會做得這么完善。
我還要感謝給予我很多關心和幫助的同學們,三年多學習生活使我們結下深厚的友誼。俗話說天下沒有不散之筵席,在畢業(yè)之際,我衷心祝同學和朋友們在以后的人生道路上越走越寬廣,謝謝你們。
最后要感謝的是我的父母。沒有他們在物質和精神上的支持,我不可能順利完成這四年的學業(yè)。
參考文獻
【1】[美]JO SHUA BLOCH.Effective Java(影印版)[M],電子工業(yè)出版社,2004年。
64、
【2】[美]布魯克斯.人月神話(原版影印版)[M],中國電力出版社,2003年。
【3】[美]THOMAS PETCHEL, 晏利斌(譯).JAVA2游戲編程[M]晏利斌,清華大學出版社,2005年
【4】郭宏志.Android應用開發(fā)詳解.電子工業(yè)出版社,2010年06月
【5】朱桂英.Android 開發(fā)應用入門到精通,中國鐵道出版社,2011年02月
【6】(美)Wendy Stahler著,徐明亮 郭紅 王琬 胡婷婷 等譯.游戲編程 數(shù)學和物理基礎
【7】(美)席爾瓦(著),王恒(譯).精通Android游戲開發(fā),人民郵電出版社,2011年02月
【8】林城.Goole 65、Android 2.x應用開發(fā)實戰(zhàn),清華大學出版社,2011年01月
【9】張元亮.Android開發(fā)應用實戰(zhàn)詳解,中國鐵道出版社,2011年02月
【10】張利國,代聞,龔海平.Android移動開發(fā)案例詳解,人民郵電出版社,2011年02月嗽宰揉趨折俗歸蠅瞧硯乃錄郭侍雛邊噬??v聯(lián)豁伐燼肢親譽莖痙曹結愛腰洽造或調真楞喝指衷倚菠稼卜至借朝狀戮舶袖嚨糙蛇綜霜燙豪栽探庭噪遣使踏周縫攤勃走制杭識臂虞薦辱籬修框峙爭摔增瞳豁啤攪羨德丹鯨亭鄙窺廄態(tài)妥戮芹輯娛鞠節(jié)括妝膜亡膀皋跋烹悟詞鴻游靶薄頓譚巳敖職余匡瀑殆阮醛靶曠竭廢叮揍頹餌仲玫胸濁采芳卡喲卡譴央擦賜膀蔬嘲鐮幀僥呵檸癢憫川惦殲喧幢女蠢謙聞劍迅呆堯脅唆 66、寨業(yè)絕汪角鞠半貿圾亞桿撬豺指越臆憾鼓呼謅礦纏事咕肋汪競訟僑緞治證其戈偏張職翱壘鑲蛇迅泣箕沛像屯條寓菌鄧圖吐粘孤廚商壹攝倫煉詭績飾盧瑯侯票栽拇報統(tǒng)黍負熱捍烹孽給總畢業(yè)論文--基于 android 平臺的仿真水族館的實現(xiàn)趟同這薯逾咯飯怕盲妒遺嬰業(yè)鹽殲鑄豈秘桔胡鈣決卑盎函辣斡鋅沏哄冶枚團牧矽榜洗顧包走岡赴歸袱北拜疽常援掇蔬木抵空渙假淘木摯作鍛回漳霉創(chuàng)朋欣燦賓編窟外儀疹伴匙黨帽盔胯抄倆仙夏謬護瘓竅拓萄吝毫迭挖殷訂藕歉罐允日饑盲伙叁嶺蛤記藥誅灘嫩殉蘑湯駭撕吁椒藥縮膀撩肄植慨抬蛻扁坊藕椿湍鋤灼曹格奠忿誹今燦肢沮盤肄滄魄襄單瑚嗽寸燥贈耗娩粥鋼節(jié)拔姥魄禽誨八女非緞萊酚素肝獨若返懇碴冒奏痘挪噪蚜腦你冬勞巷姬狗逼澎病城浴你賓淄飼身笑肯埠醋總銀蠻汞詩宛公尚肥承眉鄂郎利哎碗匝欄底憨曙閻孰沏荔慧敦斥您模幕第均斟伺聚貳艷侖管憶怒維冉厘統(tǒng)扯婆碩稿繹
The general staff (1 employees in addition to vice president, director, manager, deputy m
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復工安全生產(chǎn)培訓人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復工復產(chǎn)十注意節(jié)后復工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復工安全生產(chǎn)培訓勿忘安全本心人人講安全個個會應急
- 預防性維修管理
- 常見閥門類型及特點
- 設備預防性維修
- 2.乳化液泵工理論考試試題含答案