版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、煙幺布3號院YantaiNanshanUniversity本科畢業(yè)設(shè)計(論文)題目:基于Android系統(tǒng)的游戲APP設(shè)計院系:工學院電氣與電子工程系專業(yè):自動化班級:自動化班02姓名:王學松學號:201202022007指導教師:張俊超楊鵬煙臺南山學院教務(wù)處二0一六年六月煙臺南山學院畢業(yè)設(shè)計(論文)原創(chuàng)性聲明本人鄭重聲明:所呈交的學位論文,是本人在導師的指導下進行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的研究成果。對本文的研究做出重要貢獻的個人和集體,均已在論文中作了明確的說明并表示了謝意。本聲明的法律結(jié)果由本人承擔。論文作者簽名:年月日
2、煙臺南山學院關(guān)于畢業(yè)設(shè)計(論文)使用授權(quán)的說明本人完全了解煙臺南山學院有關(guān)保留、使用學士學位論文的規(guī)定,即:學校有權(quán)保留、送交論文的復印件,允許論文被查閱,學??梢怨颊撐牡娜炕虿糠謨?nèi)容,可以采用影印或其他復制手段保存論文。指導教師簽名:論文作者簽名:年M日年月煙臺南山學院本科畢業(yè)設(shè)計(論文)基于Android系統(tǒng)的游戲APP設(shè)計摘要隨著移動互聯(lián)網(wǎng)的不斷發(fā)展,我們的生活發(fā)生了巨大的改變,智能手機已經(jīng)成為我們?nèi)粘I钏夭豢缮俚囊粋€工具,而在整個手機操作系統(tǒng)中,Android以一種開放源碼操作系統(tǒng)為基礎(chǔ)的系統(tǒng)迅速霸占了手機操作系統(tǒng)市場,因而在Android系統(tǒng)的環(huán)境下開發(fā)極其重要。Androi
3、d系統(tǒng)是完全開放性的系統(tǒng)構(gòu)架,不僅開發(fā)和調(diào)試環(huán)境方便快捷,而且對于用戶來說,具有極強的擴展性,用戶可體驗各種豐富的組件、多媒體功能和各類瀏覽器。對于從事軟件開發(fā)工作的人,在Android平臺下開發(fā)軟件非常有吸引力。Android是以Java為基礎(chǔ)的一種語言,本文詳細介紹了如何在Android平臺上開發(fā)編寫程序,在分析軟件開發(fā)技術(shù)原理的基礎(chǔ)上,在Android平臺上為用戶開發(fā)了一款數(shù)獨游戲。而在對Android系統(tǒng)進行進一步需求分析時,明確了系統(tǒng)的各項性能要求,而且對于數(shù)獨游戲的啟動動畫、主界面設(shè)計、屏幕的繪制、時間的控制以及如何布局等進行了一系列的設(shè)計,最終為用戶實現(xiàn)了一個操作簡單、內(nèi)容豐富的
4、益智休閑游戲。關(guān)鍵詞Android數(shù)獨游戲智能機煙臺南山學院本科畢業(yè)設(shè)計(論文)第II頁TheDesignofGameAPPasedonAndroidABSTRACTWiththecontinuousdevelopmentofmobileInternet,greatchangeshavetakenplaceinourlives,smartphoneshavebecomeanindispensableatoolofourdailylives,andinthemobilephoneoperatingsystem,Androidisanopensourceoperatingsystembasedsy
5、stemquicklyoccupiedmobileoperatingsystemmarket,thusintheAndroidsystemundertheenvironmentofdevelopmentisextremelyimportant.TheAndroidsystemiscompletelyopensystemarchitecture,notonlyconvenientandquickdevelopmentanddebuggingenvironment,andforusers,haveextremelystrongextensibility,theusercanexperiencear
6、ichvarietyofcomponents,multimediacapabilities,andallkindsofbrowsers.Forpeoplewhoworkinthesoftwaredevelopment,developingsoftwareintheAndroidplatformisveryattractive.AndroidisbasedonJavalanguage,thispaperintroducesindetailhowtowriteaprogramontheAndroidplatformdevelopment,onthebasisofanalyzingtheprinci
7、pleofsoftwaredevelopmenttechnology,intheAndroidplatformforuserstodevelopasudokugame.AndinfurthertotheAndroidsystemrequirementsanalysis,clearalltheperformancerequirementsofthesystem,andtostarttheanimation,sudokumaininterfacedesignanddrawingofthescreen,timecontrolandhowtolayoutandsoonaseriesofdesign,f
8、inallyrealizesasimpleoperationfortheuser,contentrichpuzzlecasualgames.KeyWordsAndroidSudokuGameSmartphone煙臺南山學院本科畢業(yè)設(shè)計(論文)目錄第1章緒論11.1 選題背景及意義11.2 Android手機游戲APP的市場現(xiàn)狀21.3 本文主要內(nèi)容2第2章Android系統(tǒng)平臺概況32.1 Android操作系統(tǒng)32.2 Android操作系統(tǒng)特性32.3 Android操作系統(tǒng)框架結(jié)構(gòu)42.3.1 Application42.3.2 ApplicationFramework42.3.3 Li
9、brariesAndAndroidRunTime52.3.4 LinuxKernel52.4 Android應(yīng)用程序構(gòu)成52.4.1 Activity52.4.2 BroadcastReceiver62.4.3 Service62.4.4 ContentProvider62.5 Android應(yīng)用程序的生命周期62.6 系統(tǒng)的整體設(shè)計83.1 數(shù)獨游戲簡介83.2 游戲策劃93.2.1 歡迎界面的策劃93.2.2 游戲界面的策劃93.2.3 相關(guān)資源103.3 游戲的架構(gòu)103.3.1 各類的介紹103.3.2 游戲的框架簡介11煙臺南山學院本科畢業(yè)設(shè)計(論文)第4章軟件的實現(xiàn)134.1 歡迎
10、界面的實現(xiàn)134.1.1 KLSDActivity實現(xiàn)134.1.2 WelcomeView類的實現(xiàn)134.1.3 WelcomeViewDrawThread類和WelcomeViewGoThread類的實現(xiàn).144.1.4 HelpView類和AboutView類的實現(xiàn)164.2 游戲界面相關(guān)類的實現(xiàn)174.2.1 GameView的實現(xiàn)184.2.2 TimeThread的實現(xiàn)184.3 數(shù)獨算法類的實現(xiàn)194.3.1 數(shù)獨算法基本邏輯204.3.2 檢測填充結(jié)果214.4 游戲的測試和運行224.4.1 游戲測試概述224.4.2 測試環(huán)境234.4.3 游戲運行結(jié)果23結(jié)論27致謝28
11、參考文獻1煙臺南山學院本科畢業(yè)設(shè)計(論文)第1章緒論1.1 選題背景及意義2007年,Android手機操作系統(tǒng)橫空出世,并以開源的特點迅速占領(lǐng)手機操作系統(tǒng)的市場。據(jù)調(diào)查,在當今智能手機操作系統(tǒng)中,Android系統(tǒng)的智能手機所占的比例已經(jīng)高達到62%,越來越多的用戶選擇安卓手機。占據(jù)著如此巨大的市場份額,所帶來的利益也是極其誘人的,隨著移動互聯(lián)網(wǎng)的發(fā)展以及智能手機的普及,對于手機APP發(fā)展越來越快,其中,手機游戲APP的開發(fā)更加具有誘人的利益。手機游戲APP吸引用戶最大的特點就是因為方便,用戶可以隨時隨地使用,正因為這個特點,手機游戲APP已成為用戶最喜歡的移動應(yīng)用之一,不管在iPhone還
12、是在Android,發(fā)展速度都極其迅速1。常見手機游戲APP的特征可概括如下:(1)潛在用戶群巨大:據(jù)調(diào)查。目前全球有20億人使用移動電話,并且每天這個數(shù)字都在增加。甚至除了一些發(fā)達國家外,各國的手機用戶都遠遠超過計算機用戶。由此可以想象,手機游戲的潛在價值是十分巨大的。(2)移動性與便攜性:相比于傳統(tǒng)的控制臺游戲,手機游戲APP具有可以隨身攜帶,用戶可以隨時隨地進入游戲,去參加一些限時活動或者購買裝備等特點。因為這個特點使得手機游戲APP早已成為人們?nèi)粘I钪杏糜谙矔r間的選擇。用戶可以在等車、休息時進行游戲。調(diào)查顯示,適當?shù)耐嫱嬗螒蚩梢宰屓酸尫艍毫?,因而手機游戲APP已慢慢變成人們?nèi)粘I?/p>
13、中一種普遍的娛樂方式。(3)支持網(wǎng)絡(luò):手機是一種網(wǎng)絡(luò)設(shè)備,在某些時候可以讓多個用戶同時在線游戲。而隨著移動互聯(lián)網(wǎng)的發(fā)展,用戶越發(fā)渴望移動游戲,為了滿足用戶的這一要求,Android平臺游戲的開發(fā)將之運用在了實際中。本文以數(shù)獨游戲APP為例,詳細介紹了在Android系統(tǒng)平臺上開發(fā)的優(yōu)勢。數(shù)獨又被稱之為九宮格,來源于中國古代,但那時的規(guī)則更加復雜,那時的規(guī)則不是數(shù)字不能重復,而是要求每行、每列以及斜向上的各數(shù)字之和為15。易經(jīng)中的九宮圖也是由此而來。數(shù)獨真正被世人所了解是在2004年英國泰晤士報的封面上刊登了一個數(shù)獨的游戲。由此數(shù)獨游戲開始廣泛傳播。煙臺南山學院本科畢業(yè)設(shè)計(論文)數(shù)獨的游戲規(guī)則
14、十分簡單,用戶只需在空格處填上1-9的數(shù)字,并使該數(shù)字在每行、每列以及每個小的九宮格內(nèi)都只能出現(xiàn)一次,這種推理性的游戲操作極其簡單,不需要數(shù)字運算,而且有助于開發(fā)大腦,鍛煉思維,因而很受用戶喜愛。1.2 Android手機游戲APP的市場現(xiàn)狀Android是由Google開發(fā)的一種基于Linux平臺的開源操作系統(tǒng)。它包含移動手機工作的全部軟件,集操作系統(tǒng)、界面展現(xiàn)及軟件應(yīng)用程序于一體,并且解決了以往產(chǎn)業(yè)創(chuàng)新的專有權(quán)問題2。Google與30多家在技術(shù)和無線應(yīng)用方面的知名企業(yè)共同開發(fā)出了Android系統(tǒng)。并且通過與開發(fā)商、運營商以及制造商等合作伙伴建立良好的合作伙伴關(guān)系,共同建立一個開放式,標
15、準化的生態(tài)系統(tǒng)。在Android系統(tǒng)上開發(fā)的游戲軟件,無需進行市場劃分,更加不需要為用戶進行量身定制等需求。因為用戶的核心需求都是娛樂和打發(fā)時間,這樣的要求依附于社會發(fā)展層次,與地區(qū)限制等因素無關(guān),甚至可以打破文化的限制。考慮到這一因素,游戲在開發(fā)時都會考慮它的普遍性及其傳染性,如何讓推出的一款游戲點燃用戶周圍玩家的激情,從而占領(lǐng)整個市場,這是每個商家需要考慮的問題。而在當今社會,每一個使用Android手機的用戶都有可能是游戲需求的潛在用戶,而隨著移動時代的到來,Android手機的用戶量也是每日劇增,在這種利益的驅(qū)使下,Android手機的市場越發(fā)壯大,其所帶來的潛在影響就是游戲市場將得到
16、巨大的發(fā)展空間3o1.3 本文主要內(nèi)容本文由五個部分組成,各部分內(nèi)容如下:第一章緒論。詳細介紹了本文的選題背景及意義,以及Android手機游戲的市場現(xiàn)狀。第二章Android系統(tǒng)平臺概況。這一章主詳細介紹Android智能手機系統(tǒng)的市場現(xiàn)狀、功能特征、特點以及體系結(jié)構(gòu)等方面的內(nèi)容。第三章系統(tǒng)的整體設(shè)計。這一章主要介紹了對游戲APP的一系列策劃,所要實現(xiàn)的功能以及架構(gòu)的介紹。第四章軟件的實現(xiàn)。這一章對整個游戲APP的界面、游戲過程中可能會出現(xiàn)的問題的處理以及游戲的修改和整合做了詳細介紹??偨Y(jié)。對本文所描述的加以總結(jié)并表達對未來的期望。煙臺南山學院本科畢業(yè)設(shè)計(論文)第2章Android系統(tǒng)平臺
17、概況這一章將對Android開發(fā)平臺做出詳細的介紹,包括Android操作系統(tǒng)、特性、系統(tǒng)框架、程序的各個模塊以及系統(tǒng)的生命周期。2.1 Android操作系統(tǒng)Android手機操作系統(tǒng)是基于Linux平臺實現(xiàn)的一種開放源碼的手機操作系統(tǒng),由谷歌于2007年推出的,為了占據(jù)移動終端的頭把交椅,谷歌不惜花費巨力將Android打造成為真正意義上的開放源碼的移動平臺,在移動終端的基礎(chǔ)上,讓Android在擁有移動手機所需要的一系列軟件的基礎(chǔ)上,能夠更進一步加快移動互聯(lián)網(wǎng)的前進步伐,并且能夠在原有基礎(chǔ)上得到創(chuàng)新。由于Android的前景及其存在的巨大利益,谷歌為此可以說是花費了巨大的精力和成本。開發(fā)
18、Android系統(tǒng)初期,通過和全球30多家在手機應(yīng)用和移動開發(fā)項目上的領(lǐng)軍人物的合作,使得Android在一開始就有了一個良好的基礎(chǔ)。后期為了依靠Android系統(tǒng)的良好優(yōu)勢創(chuàng)建一個開放性、標準化的移動軟件平臺,谷歌更是與開發(fā)商、制造商以及運營商等形成了長期友好的合作伙伴關(guān)系。為了讓每一個Android系統(tǒng)的移動手機用戶可以在任何時間和地點都能夠被提供所需要的信息4,谷歌甚至將Android操作系統(tǒng)當做是公司企業(yè)戰(zhàn)略之一。2.2 Android操作系統(tǒng)特性Android操作系統(tǒng)特性如下所示:(1)框架及特性:Android操作系統(tǒng)有4大組件及各式的控件,用于軟件開發(fā),其有兩個主要的特性,分別是
19、復用性和替代性。(2)虛擬機Dalvik:在開發(fā)軟件過程中,免不了需要檢測軟件運行情況,而這就離不開虛擬機的作用,在Android操作系統(tǒng)中所使用的虛擬機是一種由谷歌開發(fā)的JavO§擬機,不同于市面上所推行的其他虛擬機,谷歌自主開發(fā)的虛擬機更加適用于Android系統(tǒng),而且運行效率較其他的更快,資源占用率更小。(3)SQLite數(shù)據(jù)庫:在移動設(shè)備中存在大量的數(shù)據(jù),如何管理這些數(shù)據(jù)是十分重要的一個環(huán)節(jié),而SQLite數(shù)據(jù)庫的出現(xiàn)有效解決了這一問題,SQLite可以進行層次化的存儲數(shù)據(jù)并且它的占用內(nèi)存少,處理速度快,此外SQLite還可以支持事務(wù)處理。煙臺南山學院本科畢業(yè)設(shè)計(論文)(4
20、)多媒體:支持各種格式的音視頻文件(5)全球移動通訊系統(tǒng):簡稱GSM為了實現(xiàn)全球標準化網(wǎng)絡(luò),使得一部移動設(shè)備不受區(qū)域限制而推出的第二代移動通信技術(shù)。(6)藍牙:藍牙是一種在短距離內(nèi)實現(xiàn)語音和數(shù)據(jù)傳輸?shù)臒o線連接技術(shù)。(7)全球定位系統(tǒng):簡稱GPS,是由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。(8)開發(fā)環(huán)境:以Eclipse®成開發(fā)環(huán)境為核心,調(diào)試工具,設(shè)備模擬器,內(nèi)存及性能檢測為輔。2.3 Android操作系統(tǒng)框架結(jié)構(gòu)Android系統(tǒng)操作平臺主要分為四個部分,依次為:Application>ApplicationFramework、LibrariesAndAndroidRunTi
21、me、LinuxKernel0如圖2.1所示。APPUCATSOHSHomeContactsPhoneBn>w3crAPPLlICATaONFRAMEWORKActM守ManagerRieka薩MinagerWindow植口*靜日叩honyCantcntR-urwManagerViowNotificationSy5cmManagc-r*而"XHPPServiceFlinagerLIBRARIESAndroidRuntimeSurfaceManagerSQUc®FrameworkConeLibrariesOpenGL|E$FreeTypiaWebKtEMachine3G
22、LSSLlitre'iE=LinuxKernelDnvtrGeeDriver由口rlwr口用Bmdtr(IPC)OrlverUSBDnverKeypadDriverWiftMmrAudioDrMrsPowerMahsgement圖2.1Android操作系統(tǒng)平臺的架構(gòu)模型2.3.1 Application與傳統(tǒng)的操作系統(tǒng)不同,谷歌為了用戶能夠更好地體驗Android系統(tǒng),對于一些傳統(tǒng)的應(yīng)用仍會保留。但與其特有的應(yīng)用一樣,所有應(yīng)用都將基于Java®言進行編寫。但這并不妨礙用戶的使用,因為所有應(yīng)用都可以通過網(wǎng)絡(luò)嵌入,在同等條件創(chuàng)建,可以并行運行5。2.3.2 Applicatio
23、nFrameworkAndroid移動設(shè)備上的每一個應(yīng)用程序都是各個組件組成,而Android系統(tǒng)主要有煙臺南山學院本科畢業(yè)設(shè)計(論文)4大組件,分別是Activity>BroadcastReceiver、Service以SContentProvider,這些組件通過ApplicationFramewor座!供的API組成了一個個應(yīng)用程序的框架。有了這樣一個大的框架,再加上一些控件的添加,就組成了一個個移動設(shè)備中所使用的應(yīng)用程序。2.3.3 LibrariesAndAndroidRunTimeAndroid之所以能被不同組件相互使用,主要是由于它有自己的一套核心庫,通過核心庫的內(nèi)容,程序
24、員在開發(fā)是可以省去不少麻煩。由于Android是基于Javalht開發(fā)的,因而在Android核心庫中包含了大部分Java®言核心庫的內(nèi)容。Android系統(tǒng)中所用到的虛擬機Dalvik就是以Linuxkernel為基礎(chǔ)實現(xiàn)的,Dalvik和JavaVM不同,Dalvik執(zhí)行的.dex格式的文件,而JavaVM執(zhí)行的是標準的字節(jié)碼。此外Dalvik是Register-base(6的虛擬機,可以最大限度的實現(xiàn)優(yōu)化,更加實用于移動設(shè)備,而JavaVM是Stack-base城擬機,遠不如Dalvik。2.3.4 LinuxKernel正如每個人都需要一個大腦一樣,每一個操作系統(tǒng)也需要一個核
25、心,對于Android操作系統(tǒng)而言使用Linux內(nèi)核來作為系統(tǒng)的核心處理事務(wù)。其中包括機制的安全、內(nèi)存及進程的管理以及網(wǎng)絡(luò)堆棧等。Android操作系統(tǒng)的運行離不開移動設(shè)備的驅(qū)動程序,其中主要的有DisplayDriver、FlashMemoryDriver>CameraDriver、AudioDriver>Wi-FiDriver>KeyBoardDriver>BluetoothDriver以及Android所特有的驅(qū)動BinderIPC驅(qū)動7等。2.4 Android應(yīng)用程序構(gòu)成與其他計算機開發(fā)平臺不同,在Android平臺上開發(fā)的程序都有一個唯一的入口啟動程序,正如
26、前面所說到的,程序的開發(fā)是由各個組件之間的相互組合而成,Android操作系統(tǒng)有四大組件,這些組件通過Inten俅傳遞數(shù)據(jù)。在一個程序中并不是都需要Activity、Service、BroadcastReceive環(huán)口ContentProvider等全部的組件,有時可能只需要幾種組件相互組合就可以了。另外,正如每個公司都需要在工商局注冊一樣,每一個組件的使用也需要在清單文件中注冊網(wǎng)。清單文件是一個xml文件,就如一個國家的法律一樣,清單文件是每個程序都不可或缺的。2.4.1 Activity作為四大組件之一的Activity應(yīng)該是程序員用的最多的一個組件,也是最好用的的一個組件。在一個程序中,
27、每一個Activity就是一個手機界面。而在這個界面中程序員可以添加很多視圖,如:Button、EditText、ListView等。通常情況下一個應(yīng)用程煙臺南山學院本科畢業(yè)設(shè)計(論文)序可能包含多個Activ讓y,而每一個ActMty之間也可以相互跳轉(zhuǎn)。當然Activ讓y之間的跳轉(zhuǎn)也是可以返回的,這種返回機制在多個Activity之間的跳轉(zhuǎn)是非常有效的。用戶可以通過這種機制繼續(xù)之前的操作。這些Activity之間的相互跳轉(zhuǎn)都離不開Intent的作用。Intent主要有兩個數(shù)據(jù)結(jié)構(gòu)組成,action及data。Action的種類很多,常見的有:main、view、edit等,而action所需
28、數(shù)據(jù)都是url的形式9。2.4.2 BroadcastReceiver當程序需要處理外部事件時,需要利用BroadcastReceiver來完成,用戶并不能看MBroadcastReceiver,用戶只能通過NotficationManager來了解發(fā)生了什么事件,BroadcastReceive也需要注冊才能使用,只不過這個注冊可以是在清單文件也可以在代碼中進行10。只要完成注冊,一旦事件發(fā)生,應(yīng)用程序可以直接啟動。2.4.3 ServiceServiced是程序的一種,它可以長時間運行,和BroadcastReceiveL/Service也沒有用戶界面,不僅沒法交互,而且不能自己運行。只有
29、通過Activity或Contexts寸象來調(diào)用11。比如說用戶在使用音樂播放器時,突然想要上網(wǎng),此時,用戶的手機雖然跳轉(zhuǎn)到了網(wǎng)頁界面,但是音樂播放器并沒有停止工作,而是等待用戶的喚醒繼續(xù)使用。而這正是由于Service在執(zhí)行。如果用戶有需要也可以強行停止Service的運行。2.4.4 ContentProvider不同于其他的操作系統(tǒng),Android操作系統(tǒng)在文件類型、數(shù)據(jù)庫類型以及其他類型等數(shù)據(jù)存儲方面是獨立的,這就有效的避免了某些病毒或不正常程序運行所帶來的影響。雖然數(shù)據(jù)存儲是獨立的,但是卻并不影響數(shù)據(jù)在程序之間的交換。為了方便數(shù)據(jù)的共享,Android系統(tǒng)提供了ContentProv
30、ider,一個程序如果想要獲得另一個程序的數(shù)據(jù),只需在該程序中實現(xiàn)ContentProvider®0,此時只要其他程序有訪問權(quán)限,就可以獲取該程序的數(shù)據(jù)并對其進行修改12。2.5 Android應(yīng)用程序的生命周期程序的運行是指從開始到結(jié)束的過程,每一個程序都有一個生命周期。不同于其他系統(tǒng),在Android平臺上開發(fā)的程序的生命周期與自身無關(guān),不受自身的約束,而是通過Android系統(tǒng)來決定的,一個程序的生命周期長短是由系統(tǒng)的負載和應(yīng)用程序來決定的。Android系統(tǒng)程序進程如圖2.2所示。煙臺南山學院本科畢業(yè)設(shè)計(論文)關(guān)鍵優(yōu)先級高優(yōu)先級低優(yōu)先級圖2.2Android應(yīng)用程序進程優(yōu)先
31、級(1)前臺進程:在程序運行過程中前臺進程是極其重要的,是與用戶進行交互所必不可少的。前臺進程主要有四種情況。正如上文提及到一樣,系統(tǒng)在運行過程中可能涉及多個進程同時運行的情況,這會導致系統(tǒng)內(nèi)存被極大的占用,此時如果設(shè)備的內(nèi)存不足,則會導致某些進程無法繼續(xù)運行,此時需要清除一些長時間未曾使用的進程以釋放內(nèi)存資源,保證其他進程的正常運行。(2)可見進程:可見進程顧名思義就是指用戶可以看見的頁面,但是卻不與用戶進行交互,對于程序的運行沒有任何影響。此外與該進程相關(guān)的其他進程如果正被可見進程調(diào)用,則該相關(guān)進程同樣被視為可見進程。Android系統(tǒng)正常情況下不會存在大量可見進程,但有時為了前臺進程的正
32、常運行,系統(tǒng)會清除一部分可見進程,釋放內(nèi)存,為前臺進程提供資源。(3)服務(wù)進程:服務(wù)進程就是指系統(tǒng)正在運行的程序。服務(wù)進程同樣是不可見的,一般情況下,服務(wù)進程會一直在后臺運行,但有時為了前臺進程和可見進程的正常運行,系統(tǒng)也會結(jié)束一些服務(wù)進程,釋放資源。(4)后臺進程:后臺進程是指所有已啟動的進程之外的進程,在Android系統(tǒng)的移動設(shè)備中存在大量的后臺進程,這些后臺進程會占據(jù)大多的內(nèi)存資源,所以優(yōu)勢為了保障其他進程的正常運行,系統(tǒng)會優(yōu)先考慮結(jié)束后臺進程。(5)空進程:空進程是一個沒有任何組件的進程,用戶同樣看不見,但在釋放資源時,空進程會第一個被清除,空進程與其他進程存儲地址不同,空進程儲存在
33、系統(tǒng)內(nèi)存中,設(shè)備被重新啟動時,空進程依然會運行。設(shè)備在運行過程中會涉及到釋放資源方面的問題,當系統(tǒng)資源緊張的時候,系統(tǒng)會優(yōu)先釋放優(yōu)先級低的進程,一個進程的優(yōu)先級取決于該進程中組件的優(yōu)先級最高的那個13o如果一個進程需要獲取另一個進程的數(shù)據(jù),那么這兩個進程會保持相同的優(yōu)先級。煙臺南山學院本科畢業(yè)設(shè)計(論文)第3章系統(tǒng)的整體設(shè)計3.1數(shù)獨游戲簡介數(shù)獨的游戲規(guī)則很簡單,用戶在運行游戲之后,設(shè)備的界面上會出現(xiàn)一個9X9的表格,總共81個格,其中有些格有數(shù)字,用戶只需在其他空格處填上1-9的數(shù)字,并且使得每個數(shù)字在每行、每列以及每個3M的格子中都只有一個。游戲框架如圖3.1所示。圖3.1游戲框架圖退出數(shù)
34、獨游戲是一款非常容易上手的游戲,下面我簡單介紹一下該游戲的運行步驟。(1)用戶在自己的移動設(shè)備上點擊游戲圖標,首先進入眼簾的便是游戲的歡迎界面,用戶可以點擊任意位置進入主菜單。(2)在菜單界面有四個選項,用戶可根據(jù)提示進行不同的操作。(3)在進入游戲時,用戶可以看見在下方有四個按鈕以及一個計時區(qū),用戶可以查看游戲運行時間,也可以通過點擊按鍵進入不同的操作。(4)當用戶將設(shè)備界面上所有的空格全部填滿時,系統(tǒng)會自動進行比對,如果全部正確,則會跳轉(zhuǎn)到勝利的界面,反之,彈出游戲失敗。(5)不管是勝利還是失敗,用戶都可以點擊任意位置返回歡迎界面煙臺南山學院本科畢業(yè)設(shè)計(論文)(6)在主界面點擊退出游戲即
35、可結(jié)束游戲。3.2游戲策劃3.2.1 歡迎界面的策劃用戶在運行游戲后,首先進入的是開機動畫界面,這一功能的實現(xiàn)主要是利用圖片的刷幀效果。用戶在開機動畫界面任意點擊即可進入游戲的主菜單界面,根據(jù)提示點擊相應(yīng)位置即可實現(xiàn)相應(yīng)的功能。如圖3.2所示。13518Qi2302BD330口日02如320nnn_1i開始游戲I空蟠幫助游戲圖3.2菜單界面I退出游戲I這里選取480刈20的手機屏幕分辨率,當y位于(135180)時,程序開始游戲;當y位于(180230)時,程序會進入防戲介紹界面;當y位于(230280)時,程序會跳轉(zhuǎn)到游戲幫助界面;當y位于(280330)時,程序直接退出。3.2.2 游戲界
36、面的策劃當用戶進入游戲時,在游戲界面下方會有四個功能鍵以及一個計時區(qū)。如圖3.3所示。游戲區(qū)計時區(qū)暫停換題提示退出圖3.3游戲主界面游戲主界面分為三個區(qū)域,游戲區(qū)域是用戶需要操作的區(qū)域,計時區(qū)是用于提示用戶游戲進行了多久,四個按鈕可以讓用戶實現(xiàn)相應(yīng)操作煙臺南山學院本科畢業(yè)設(shè)計(論文)第10頁3.2.3 相關(guān)資源程序自身并沒有音樂及圖片等資源文件,所需資源都需要程序員自行添加,程序所需資源如表3.1所示。表3.1所用圖片資源圖片名用途圖片名w用途a1-a9.png21X21輸入數(shù)字key_background.png100M00數(shù)字鍵盤b1-b9.png21X21默認數(shù)字change2.png5
37、0>30按下?lián)Q題icon.png150>80游戲圖標change1.png50>30未按下?lián)Q題fail.png150>80游戲失敗select.png24>24選中單元格win.png150>80恭喜過關(guān)drop1.png50>30未按卜放棄go_on.png150>80暫停中drop2.png50>30按卜放棄time0.png21X21實踐中的0help1.png50>30未按卜提不help2.png50X30按T提示stop1.png50>30未按卜暫停stop2.png50X30按卜暫停background.jpg320
38、>480背景heart.png25X25提示圖標small_background.png100M00背景方框time.png31X31時間冒號about.jpg320>480關(guān)于背景exit.png200>86退出提示help.jpg320>480幫助背景menu.jpg320>480菜單單元w1-w30.gif320>244歡迎動畫幀在Android操作系統(tǒng)中,非代碼類的文件存放于res文件夾下,圖片等資源則存放于drawable文件夾下。3.3游戲的架構(gòu)3.3.1 各類的介紹1 .共有類KLSDActivity類繼承父類Activity并重寫里面的方法,
39、是整個程序的核心和入口,通過與其他類的交互獲取消息,并通過對收到的消息的處理跳轉(zhuǎn)到其他界面140這是整個程序唯一的公共類。2 .歡迎界面相關(guān)類(1) WelcomeView類:游戲歡迎界面類,即用戶運行游戲所展現(xiàn)的界面。(2) WelcomeViewDrawThread類:該類是歡迎視頻界面的刷幀線程。煙臺南山學院本科畢業(yè)設(shè)計(論文)第11頁(3) WelcomeViewGoThread類:歡迎界面的服務(wù)線程。(4) AboutView類:游戲介紹界面的繪制。(5) HelpView類:游戲幫助界面。3 .游戲界面相關(guān)類(1) GameView類:介紹游戲的規(guī)則及模型,同時生成游戲過程中的各個
40、畫面及用戶的交互。(2) GameViewDrawThrea戰(zhàn):執(zhí)行刷幀操作。(3) TimeThrea戰(zhàn):刷新游戲運行時間。(4) DrawKeyThread類:改變鍵盤透明度,執(zhí)行漸變處理。(5) ShuDuSuanFOt:存放數(shù)字的二維數(shù)組。3.3.2游戲的框架簡介游戲框架圖如圖3.4所示。就迎界面相關(guān)類公共類W*kemeViewWekorneVkwGoThrcadAboutViewKLSDActivity游戲界面相關(guān)類G事ewVIowGameViewDrawThreadSfmDuSujnFaDrawKeyThreadTin忙Thread圖3.4游戲框架下面將通過對程序的使用分別詳細講述
41、每個類的作用,步驟如下。(1)用戶運行游戲后,在KLSDActivity中首先會初始化WelcomeView,之后設(shè)備將會跳轉(zhuǎn)到WelcomeView界面。然后通過WelcomeViewDrawThread與WelcomeViewGoThread來生成歡迎界面及刷新界面。(2)當用戶進入游戲首頁之后,通過點擊提示的幫助按鈕,系統(tǒng)會自動調(diào)用HelpView類來顯示幫助界面。同理,當用戶點擊關(guān)于按鈕時,系統(tǒng)會通過AboutView煙臺南山學院本科畢業(yè)設(shè)計(論文)第12頁類顯示關(guān)于界面。(3)當用戶開始游戲時,系統(tǒng)進入GameVew類,同時GameViewDrawThread被啟動并刷新界面。(4)
42、當用戶在游戲過程中可以通過點擊任意空白位置,系統(tǒng)會自動調(diào)用DrawKeyThread線程來生成數(shù)字鍵盤。(5)用戶在開始游戲時,系統(tǒng)會在自動啟動TimeThrea激程,來更新時間。(6)用戶在游戲開始前,系統(tǒng)會通過ShuDuSuanF聯(lián)生成數(shù)獨數(shù)組,生成的數(shù)組將作為評判用戶輸入數(shù)字是否準確的標準。煙臺南山學院本科畢業(yè)設(shè)計(論文)第13頁第4章軟件的實現(xiàn)4.1 歡迎界面的實現(xiàn)4.1.1 KLSDActivity實現(xiàn)本設(shè)計所有類之間的調(diào)度都是通過主類KLSDActivity進行的,KLSDActivity不僅作為整個程序的入口,而且也管理著整個程序中的類,其中包括WelcomeViewwelcom
43、eView、GameViewgameView、AboutViewaboutView、HelpViewhelpView以及HandlermyHandler。上述類都是View的子類,每個類都有著各自的作用,WelcomeView類用于生成歡迎界面,GameView類生成游戲界面,AboutView類生成引用界面,HelpView類生成幫助界面,HandlermyHandler類用于線程通信并更新控件15。除了所管理的每個類,KLSDActivity的每個成員函數(shù)也是不可或缺的一個因素,其中包括:onCreat():止匕方法是Activity類的“大門”,調(diào)用此方法可以將游戲模式切換成全屏模式并初
44、始化歡迎界面。initWelcomeView():此方法用于歡迎界面的切換。initGameView():切換游戲界面。initHelpView():初始化幫助界面。initAboutView():初試化關(guān)于界面。KLSDActivity類之所以能夠管理其他類,控制每個類之間的切換以及使設(shè)備顯示特定的界面,都是依賴于Handler來實現(xiàn)的。4.1.2 WelcomeView類的實現(xiàn)WelcomeView類是程序用于開機動畫界面的實現(xiàn),其流程圖如圖4.1所示:煙臺南山學院本科畢業(yè)設(shè)計(論文)第14頁圖4.1WelcomeView類功能流程圖WelcomeView類用于實現(xiàn)歡迎界面。該類是Surf
45、aceView類的子類,利用雙緩沖機制進行繪圖??梢愿鼮橛行У目刂平缑娴母袷?、大小以及在屏幕中的顯示位置,通過SurfaceHolder類中的getHolder方法獲取16。在繪制屏幕時必然會使用到畫布,而要想使用畫布必須先利用lockCanvaspJ法鎖定畫布,然后在畫布上進行操作,當所需界面在畫布上繪制完成時,利用unlockCanvasAndPos打法解鎖畫布,才可以將所繪制的界面展示在屏幕上。為了更加方便的管理和使用動畫界面所需的幀圖片,其ID存放于BitmapID數(shù)組中,在后續(xù)操作中只需對BitmapID數(shù)組進行增刪操作即可。作為WelcomeView類的構(gòu)造器,publicWelc
46、omeView(KLSDActivityactivity)??梢猿跏蓟瘓D片、動畫線程以及刷幀線程,其中界面的繪制依賴于onDraw()方法,屏幕的監(jiān)聽用onTouchEvent()方法,此方法以用戶點擊的坐標位置確定用戶點擊的是哪里,并將消息發(fā)送回Handler類。4.1.3 WelcomeViewDrawThread類和WelcomeViewGoThread類的實現(xiàn)程序員為了使游戲更加吸引用戶,在進入游戲時做了一段動畫歡迎界面,為了實現(xiàn)這一功能,新建了WelcomeViewDrawThread類,用于刷新動畫界面,而動畫界面的生成則是依賴于WelcomeViewGoThread類,這兩個類都
47、是Threa我的子類,因而都必須重寫父類的run()方法才能實現(xiàn)所需功能。煙臺南山學院本科畢業(yè)設(shè)計(論文)第15頁WelcomeViewDrawThread類的run()方法的代碼如圖4.2所示:publicvoid(/重寫的nm方法Canvas匚:/聲明里布while(this,flag)1循環(huán)c=null:try/鎖定整個畫布c-this,surfaceHoIder.lockCanvas(null);synchronised(this,surfaceFfoIder)/同步weLcomeView.onDraw(c):調(diào)用繪制方法firially用firELly保證一定被執(zhí)行if(cI-nul
48、l)"更新屏幕顯示內(nèi)容this,surfac©Holder.unlockCanvasAndF'ost(c);)try(Threa山日日印(塞如泉皴):睡眠指定室秒數(shù)catch(Exception已)/捕獲異常e.printStackTrace0打印異常信息1?WWS!V¥>WWWyWWWVW圖4.2WelcomeViewDrawThread類的run()方法WelcomeViewDrawThread類的run()方法主要控制c的值,當c為空時,通過調(diào)用WelcomeView類里的onDraw()方法,繪制完背景圖片后,cffl不為空,此時屏幕解鎖,畫
49、布被初始化,c值又為空,通過釋放和更新屏幕顯示的內(nèi)容,達到刷幀效果。WelcomeViewGoThread類中run()方法代碼如圖4.3所示:煙臺南山學院本科畢業(yè)設(shè)計(論文)第16頁publicvoidrunC)重寫的tun方法法while(flag)循環(huán)weLcomeView.dr卸工ndex+;/自加if(welcomeViewidrawlndeat>we1comeView.bitmapsIP.length-1)WWWWVVWWVWqrt.VWWWWWWWVWWWWWWWVVVW%weLcomeView.drswlndex=weIcomeVieuf.bitmapsID.length
50、-10;if(welcooneView»drwlndat%5=0),weLccmeVieur.drring=IwelcameView.drawStrnjig;tryThreai.TJpezJ(EleepSpan:/睡眠FAAAA«lXv*rt*a*vA<!catch(Exceptione)e*PrintStackTrC):打E|異常信息圖4.3WelcomeViewGoThread類中run()方法WelcomeViewGoThread類中的run()方法通過控制drawIndex的值,使drawIndex實現(xiàn)累加以此判斷是否達到數(shù)組的最大長度,如果到了,則判斷dra
51、wIndex的數(shù)值是否為5,如果等于5,則改變drawString的值,如果不等于5,則drawIndex減去10,再次進入循環(huán),以此達到閃動效果。4.1.4 HelpView類和AboutView類的實現(xiàn)游戲幫助和游戲說明的實現(xiàn)是通過HelpView類和AboutView類來實現(xiàn)的。這兩個類通過onDraw()方法來繪制界面且兩者十分相似,因而只對其中一個進行分析,這里選擇HelpView類,其代碼如圖4.4所示:煙臺南山學院本科畢業(yè)設(shè)計(論文)第17頁publicHelpVieur(KLSDAutivityactivity5superactivity);this,activity=acti
52、vity;/I導至"actiwity6J弓I用surfaceHoldsr=this.getHolder():/,1,1-j2217:iccH:IdergetHolder0.adcCallback(this);添加Callback接口的實現(xiàn)helpEitnap=BitnapFactory.Jeri?sciirr(£etResources(5?R.drawabl曰.用摩加):publicvoidonDraw(Canvascanvas/繪制方法-'WVWWVWcanvas.draiuColor(Colar.忸口®:/背景色canvas.dravBitJuapQw
53、lpBitiftaj0,0,null);"繪制圖片)publicbooleanonTouchEvEnt(MotianEventevent)/舞盤監(jiān)聽方法vhAAiVwAAAi%vAAAAvAAAZj>iAAi<i«ft<if(eventsgetActianO=MotionEuent.水工TO期ZO砌"屏瞽被按下doublex=evertt.getX():doubley=event.etYO;/得到坐標if(x>270虢x<310皮曲y>440自&yq48口)",點擊確定按鈕act1vitykmyHandler.
54、sendEmptyMesssfe(2):returnsuper.onTouchEventCevent);圖4.4HelpView類的onDraw()方法作為幫助界面的構(gòu)造器,publicHelpView(KLSDActivityactivity)需要先獲得surfaceHolde評口activity,然后加入Callback的實現(xiàn)類并初始化圖片資源。通過onDraw()方法,繪制幫助界面的背景。通過onTouchEvent()方法對鍵盤進行監(jiān)聽,系統(tǒng)通過用戶點擊屏幕的位置調(diào)用此方法來判斷是否返回并將消息發(fā)送給Handler行處理。4.2 游戲界面相關(guān)類的實現(xiàn)游戲界面向用戶展示了游戲區(qū),計時區(qū),
55、及功能區(qū),每個區(qū)域?qū)崿F(xiàn)一個功能,其流程圖如圖4.5所示:煙臺南山學院本科畢業(yè)設(shè)計(論文)第18頁圖4.5游戲界面流程圖4.2.1 GameView的實現(xiàn)GameView是用戶正式進行游戲的界面,GameView在初始化時候完成一系列資源的讀取,利用GameViewDrawThrea鍛程來進行對圖片的刷幀操作,TimeThrea鍛程對時間進行即時更新17。當用戶開始游戲時,系統(tǒng)會調(diào)用DrawKeyThread線程完成數(shù)字鍵盤的繪制。GameView作為SurfaceView的子類,同樣需要實現(xiàn)onDraw()方法,GameView類中的onDraw()用于游戲界面圖片的繪制、時間顯示、選題按鈕提
56、示以及數(shù)字框提示。當用戶點擊屏幕時,系統(tǒng)會調(diào)用DrawKey()方法來繪制數(shù)字鍵盤并且通過對surfaceCreated(和surfaceDestroyed()W個方法的調(diào)用來完成系歹!J相關(guān)線程的啟動及調(diào)用。4.2.2 TimeThread的實現(xiàn)TimeThread線程是用于記錄用戶進行游戲的時間長短,其代碼如圖4.6所示:煙臺南山學院本科畢業(yè)設(shè)計(論文)第19頁publicclassTimeThreadextendsThreadGameViev鬃期期肛聲明逛儂港我的引用booleanflag=true;循環(huán)標志位publicTime-Thread(GameViewgsjaeVlew)/構(gòu)造器*this.£3!16m62且葡%.何;薄到G31牝已通弓|用publicvoidrun。/重寫的run方法while(flag)ameView.tine+:時間自加tryThread,亢白物(10口。);/睡眠一秒種JcatchCEzceptiane)/捕獲異常已日盅蛉擔助融X);打印異常信息)圖4.6TimeThread線
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能窗簾控制系統(tǒng)研發(fā)與銷售合同7篇
- 二零二五年度藝術(shù)品抵押貸款合同模板7篇
- 二零二五年度新能源出口項目合同4篇
- 專業(yè)漁船租賃與船員技能培訓服務(wù)協(xié)議版
- 二零二五年度苗木苗圃定向種植與城鄉(xiāng)融合發(fā)展合同范本3篇
- 二零二五年度農(nóng)戶土地流轉(zhuǎn)與農(nóng)業(yè)產(chǎn)業(yè)園區(qū)共建合同樣本4篇
- 二零二四年度新能源車輛研發(fā)項目融資合同股東投資協(xié)議書2篇
- 二零二五版飯店跨界合作合同3篇
- 2025年中國痛風藥物行業(yè)市場深度分析及投資戰(zhàn)略規(guī)劃報告
- 二零二五年度新能源汽車動力電池回收利用協(xié)議3篇
- 2024年南京鐵道職業(yè)技術(shù)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 暴發(fā)性心肌炎查房
- 口腔醫(yī)學中的人工智能應(yīng)用培訓課件
- 工程質(zhì)保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習單位鑒定表(模板)
- 機械制造技術(shù)-成都工業(yè)學院中國大學mooc課后章節(jié)答案期末考試題庫2023年
- 數(shù)字媒體應(yīng)用技術(shù)專業(yè)調(diào)研方案
- 2023年常州市新課結(jié)束考試九年級數(shù)學試卷(含答案)
評論
0/150
提交評論