基于Android掃雷游戲的設(shè)計實現(xiàn)分析_第1頁
基于Android掃雷游戲的設(shè)計實現(xiàn)分析_第2頁
基于Android掃雷游戲的設(shè)計實現(xiàn)分析_第3頁
基于Android掃雷游戲的設(shè)計實現(xiàn)分析_第4頁
基于Android掃雷游戲的設(shè)計實現(xiàn)分析_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-PAGE . z.- . -可修編- .遠(yuǎn)程與繼續(xù)教育學(xué)院本科畢業(yè)論文設(shè)計題目:基于Android掃雷游戲的設(shè)計與實現(xiàn)學(xué)習(xí)中心: * 學(xué) 號: * 姓 名: * 專 業(yè): 計算機科學(xué)與技術(shù) 指導(dǎo)教師: * 2015 年 8 月 14 日中國地質(zhì)大學(xué)遠(yuǎn)程與繼續(xù)教育學(xué)院本科畢業(yè)論文設(shè)計指導(dǎo)教師指導(dǎo)意見表學(xué)生: * *: * 專業(yè): 計算機科學(xué)與技術(shù) 畢業(yè)設(shè)計論文題目: 基于Android掃雷游戲的設(shè)計與實現(xiàn) 指導(dǎo)教師意見:請對論文的學(xué)術(shù)水平做出簡要評述。包括選題意義;文獻資料的掌握;所用資料、實驗結(jié)果和計算數(shù)據(jù)的可靠性;寫作規(guī)和邏輯性;文獻引用的規(guī)性等。還須明確指出論文中存在的問題和缺乏之處。論

2、文容比擬完整,經(jīng)過修改,論文構(gòu)造合理,到達(dá)本科論文要求。論文能結(jié)合現(xiàn)在的實際社會需求選題,具有一定的實用性。論文合格。指導(dǎo)教師結(jié)論: 合格 合格、不合格指導(dǎo)教師*所在單位*學(xué)院指導(dǎo)時間中國地質(zhì)大學(xué)遠(yuǎn)程與繼續(xù)教育學(xué)院 本科畢業(yè)設(shè)計論文評閱教師評閱意見表學(xué)生: * *: * 專業(yè): 計算機科學(xué)與技術(shù) 畢業(yè)設(shè)計論文題目: 基于Android掃雷游戲的設(shè)計與實現(xiàn) 評閱意見:請對論文的學(xué)術(shù)水平做出簡要評述。包括選題意義;文獻資料的掌握;所用資料、實驗結(jié)果和計算數(shù)據(jù)的可靠性;寫作規(guī)和邏輯性;文獻引用的規(guī)性等。還須明確指出論文中存在的問題和缺乏之處。論文設(shè)計實現(xiàn)了基于Android平臺的掃雷游戲。首先論述了

3、Android系統(tǒng)的背景和研究現(xiàn)狀、android的技術(shù)及對Android分析,并介紹了Android應(yīng)用程序的構(gòu)造。在程序開發(fā)中,采用了先設(shè)計好游戲的類框架,然后按照各個類的實現(xiàn)進展代碼的編寫與實現(xiàn)功能。所完成工作到達(dá)了我校本科畢業(yè)設(shè)計的要求,同意參加辯論。修改意見:針對上面提出的問題和缺乏之處提出具體修改意見。評閱成績合格,并可不用修改直接參加辯論的不必填此意見。畢業(yè)設(shè)計論文評閱成績 百分制:75評閱結(jié)論:同意辯論同意辯論、不同意辯論、修改后辯論評閱人*所在單位計算機學(xué)院評閱時間2015-10-11論文原創(chuàng)性聲明本人重聲明:本人所呈交的本科畢業(yè)論文基于Android掃雷游戲的設(shè)計與實現(xiàn),是

4、本人在導(dǎo)師的指導(dǎo)下獨立進展研究工作所取得的成果。論文中引用他人的文獻、資料均已明確注出,論文中的結(jié)論和結(jié)果為本人獨立完成,不包含他人成果及使用過的材料。對論文的完成提供過幫助的有關(guān)人員已在文中說明并致以意。本人所呈交的本科畢業(yè)論文沒有違反學(xué)術(shù)道德和學(xué)術(shù)規(guī),沒有侵權(quán)行為,并愿意承當(dāng)由此而產(chǎn)生的法律責(zé)任和法律后果。 論文作者簽字:*日期:2015年8月14日-. z.摘 要隨著技術(shù)通信不斷進步,移動通信終端設(shè)備的功能也在不斷地增長,朝著智能化的方向開展。手機已經(jīng)不再是個單一的通信設(shè)備,而是逐漸融合了個人信息管理,無線上網(wǎng),移動辦公,影音娛樂等功能,成為筆記本電腦之外的另一種更便攜,更易用的辦公平臺

5、。因此,手機的娛樂應(yīng)用效勞將會有很大的開展空間,游戲也是其中之一。本系統(tǒng)主要是實現(xiàn)基于Android平臺的掃雷游戲,掃雷是一款古老的益智游戲,其設(shè)計目的是訓(xùn)練人的邏輯思維能力。本文首先論述了Android系統(tǒng)的背景和研究現(xiàn)狀,接著簡要的介紹了android的技術(shù)及對Android分析,并且介紹了Android應(yīng)用程序的構(gòu)造。在程序開發(fā)中,采用了先設(shè)計好游戲的類框架,然后按照各個類的實現(xiàn)進展代碼的編寫與實現(xiàn)功能。關(guān)鍵詞: 1、智能化 2、 Android 3、掃雷目 錄 TOC o 1-3 u 一、緒論 PAGEREF _Toc10867 7一 Android概述 PAGEREF _Toc475

6、 7二系統(tǒng)開發(fā)背景 PAGEREF _Toc23320 7二 、系統(tǒng)技術(shù)分析 PAGEREF _Toc1589 9一 Eclipse集成開發(fā)環(huán)境 PAGEREF _Toc8399 9二 JDK PAGEREF _Toc31712 11三 Android SDK PAGEREF _Toc11772 12四 ADT PAGEREF _Toc16874 12三、Android應(yīng)用程序構(gòu)造剖析 PAGEREF _Toc27338 14一 Android系統(tǒng)架構(gòu)研究 PAGEREF _Toc22493 14二 Android的API PAGEREF _Toc22651 14三Android應(yīng)用程序構(gòu)造解

7、析 PAGEREF _Toc16973 15四 Intent的詳細(xì)解析 PAGEREF _Toc23419 17五 Android活動的生命周期 PAGEREF _Toc12941 19四、系統(tǒng)設(shè)計與實現(xiàn) PAGEREF _Toc9883 23一游戲的籌劃 PAGEREF _Toc15382 23二游戲根本功能描述 PAGEREF _Toc16687 23三系統(tǒng)詳細(xì)設(shè)計 PAGEREF _Toc13050 24五、結(jié)論 PAGEREF _Toc19654 28致 PAGEREF _Toc9404 29參考文獻 PAGEREF _Toc8874 30-. z.一、緒論一 Android概述智能手

8、機(Smartphone),具有獨立的操作系統(tǒng),像個人電腦一樣支持用戶自行安裝軟件、游戲等第三方效勞商提供的程序,并通過此類程序不斷對手機的功能進展擴大,同時可通過移動通訊網(wǎng)絡(luò)來實現(xiàn)無線網(wǎng)絡(luò)接入。目前,全球多數(shù)手機廠商都有智能手機產(chǎn)品,而芬蘭諾基亞、美國蘋果、加拿大RIM黑莓、美國摩托羅拉、中國宏達(dá)htc更是智能機中的佼佼者。智能手機具有五大特點:1. 具備了無線接入互聯(lián)網(wǎng)的能力,即要有GSM的支持網(wǎng)絡(luò)下的GPRS或者是CDMA網(wǎng)絡(luò)支持下的CDMA 1*或3G網(wǎng)絡(luò)。2. 人性化,可以根據(jù)個人需要擴展機器的功能。3. 它是具有開放性的操作系統(tǒng),還可以安裝非常多的應(yīng)用程序,使得智能手機的功能可以得

9、到無限的擴展。4. 具有PDA功能,其中包括個人信息管理、日程記事、任務(wù)安排、多媒體應(yīng)用、瀏覽網(wǎng)頁。5.強大的功能,擴展性能強,第三方軟件支持多。在二零零五年七月,Google收購了 Android,這么一個小規(guī)模收購行動還是立刻引起了移動業(yè)界的興趣,它們疑心這是 Google 進入移動市場的的標(biāo)志。盡管如此,這個當(dāng)時只是一個小規(guī)模的移動軟件開發(fā)公司正是由 Andy Rubin、Rich Miner、Nick Sears 以及 Chris White 四個人共同創(chuàng)立的。現(xiàn)在看來,他們的疑心是正確的。差不多兩年半以后,在 二零零七 年 十一 月 五 日,Google發(fā)布了Android,它這個的

10、發(fā)布給移動業(yè)界帶來了一場可怕的風(fēng)暴,基于 Linu*的全新移動操作系統(tǒng)。這不單單是一個全新的移動系統(tǒng),非常重要的是:它是開源的。從 Android 的開展旅途中,我們看到 2003 年 Andy他是一個有遠(yuǎn)見的人,看到了 2005 年的起步和被 Google 的收購,也看到了系統(tǒng)的進步以及新的機型的快速發(fā)布。所有這一切都讓我們相信,Android 將會走向世界第一移動操作系統(tǒng)寶座的步伐是勢不可擋的。Android 平板電腦也在今年的夏天開場發(fā)布以及 Google TV 發(fā)布以后(也許還有 Google Music?),Android 可能真的會將繼續(xù)帶著我們走向移動設(shè)備夢想的此岸。二系統(tǒng)開發(fā)背

11、景在我們的生活中有許多的游戲,但是游戲不同,它也會給玩家?guī)聿煌母惺芎蜕罾砟?。游戲是我們?nèi)粘I畹囊粋€必不可少的娛樂工程,也帶動了游戲相關(guān)產(chǎn)業(yè)市場的開展。游戲平臺是經(jīng)過從游戲機到電視游戲,然后從到pc游戲,到手機游戲,中間經(jīng)歷了很多的技術(shù)的更新和變革。但隨著新技術(shù)的開展和我們生活水平質(zhì)量的提高,手機開場逐漸變?yōu)槠占?,因為手機是非常小巧便捷的,而且方便的特性成為我們?nèi)粘I钪斜貍渫ㄓ嵐ぞ?。而基于手機平臺的游戲也就擁有的市場空間是巨大的,也因隨著3g的開通和應(yīng)用,手機游戲必然會迎來新的一輪游戲熱潮!掃雷最原始的版本可以追溯到1973年一款名為方塊的游戲。久之后,方塊被改寫成了游戲Rlogic。

12、在Rlogic里,玩家的任務(wù)是作為美國海軍陸戰(zhàn)隊隊員,為指揮中心探出一條沒有地雷的平安路線,如果路全被地雷堵死就算輸。兩年后,湯姆安德森在Rlogic的根底上又編寫出了游戲地雷,由此奠定了現(xiàn)代掃雷游戲的雛形。1981年, 微軟公司的羅伯特杜爾 和卡特約翰遜兩位工程師在Windows 3.1系統(tǒng)上加載了該游戲,掃雷游戲才正式在全世界推廣開來。這款游戲的玩法是在一個9*9(初級),16*16(中級),16*30(高級),或自定義大小的方塊矩陣中隨機布置一定量的地雷(初級為10個,中級為40個,高級為99個)。由玩家逐個翻開方塊,以找出所有地雷為最終游戲目標(biāo)。如果玩家翻開的方塊有地雷,則游戲完畢。掃

13、雷游戲的目標(biāo)是盡快找到雷區(qū)中的所有不是地雷的方塊,而不許踩到地雷。點開的數(shù)字是幾,則說明該數(shù)字旁邊的8個位置中有幾個雷,如果挖開的是地雷,則會輸?shù)粲螒?。掃雷游戲是一款益智類游戲,目前基于Android平臺的掃雷游戲還比擬少,本系統(tǒng)的開發(fā)主要面向Android平臺,以滿足廣闊手機用戶的需要。二 、系統(tǒng)技術(shù)分析一 Eclipse集成開發(fā)環(huán)境Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境IDE。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比方C+和Python的開發(fā)工具。以下圖2-1是進入Eclipse里的界面:圖2-1 進入Eclipse里的編輯界面Eclipse的本

14、身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse最初是由IBM公司開發(fā)的替代商業(yè)軟件Visual Age for Java的下一代IDE開發(fā)環(huán)境,2001年11月奉獻給開源社區(qū),現(xiàn)在它由非營利軟件供給商聯(lián)盟Eclipse基金會Eclipse Foundation管理。 2003年,Eclipse 3.0選擇OSGi效勞平臺規(guī)為運行時架構(gòu)。 2007年6月,穩(wěn)定版3.3發(fā)布。2008年6月發(fā)布代號為Ganymede的3.4版。Eclipse的根底是富客戶機平臺Rich C

15、lient Platform, 即RCP。RCP包括以下組件:核心平臺(啟動Eclipse,運行插件OSGi標(biāo)準(zhǔn)集束框架SWT可移植構(gòu)件工具包JFace文件緩沖,文本處理,文本編輯器Eclipse工作臺即Workbench ,包含視圖views、編輯器editors、視角perspectives、和向?qū)izardsEclipse采用的技術(shù)是IBM公司開發(fā)的SWT,這是一種基于Java的窗口組件,類似Java本身提供的AWT和Swing窗口組件;不過IBM聲稱SWT比其他Java窗口組件更有效率。Eclipse的用戶界面還使用了GUI中間層JFace,從而簡化了基于SWT的應(yīng)用程序的構(gòu)建。Ec

16、lipse的插件機制是輕型軟件組件化架構(gòu)。在富客戶機平臺上,Eclipse使用插件來提供所有的附加功能,例如支持Java以外的其他語 言。 已有的別離的插件已經(jīng)能夠支持C/C+CDT、Perl、Ruby,Python、telnet和數(shù)據(jù)庫開發(fā)。插件架構(gòu)能夠支持將任意的擴展參加到 現(xiàn)有環(huán)境中,例如配置管理,而決不僅僅限于支持各種編程語言。Eclipse的設(shè)計思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse根本核包括:圖形API (SWT/Jface), Java開發(fā)環(huán)境插件(JDT ),插件開發(fā)環(huán)境(PDE)等。Eclipse由各

17、種不同的方案組成。以以下出了局部方案。Eclipse方案:本身包括Eclipse平臺,Eclipse富客戶端平臺RCP和Java開發(fā)工具JDT。Eclipse測試和性能工具平臺TPTP:提供一個允許軟件開發(fā)者構(gòu)建諸如測試調(diào)試、概況分析、基準(zhǔn)評測等測試和性能工具的平臺。Eclipse Web工具平臺方案WTP:用Java企業(yè)版Web應(yīng)用程序開發(fā)工具來擴展Eclipse平臺。它由以下局部組成:HTML、JavaScript、CSS、JSP、SQL、*ML、DTD、*SD和WSDL的 源代碼編輯器;*SD和WSDL的圖形界面編輯器;Java企業(yè)版的工程性質(zhì)project nature、建構(gòu)器buil

18、der和模型model,與一個Java企業(yè)版的導(dǎo)航navigator;一個Web效勞Web service向?qū)Ш蜑g覽器,還有一個WS-I測試工具;最后是數(shù)據(jù)庫訪問查詢的工具與模型。Eclipse商業(yè)智能和報表工具方案BIRT:提供Web應(yīng)用程序特別是基于Java企業(yè)版的的報表開發(fā)工具。Eclipse可視化界面編輯器方案VEP:一個Eclipse下創(chuàng)立圖形用戶界面代碼生成器的框架。Eclipse建??蚣蹺MF:依據(jù)使用*MI描述的建模規(guī)格,生成構(gòu)造化數(shù)據(jù)模型的工具和其他應(yīng)用程序的代碼。圖形化編輯器框架GEF:能讓開發(fā)者采用一個現(xiàn)成的應(yīng)用程序模型來輕松地創(chuàng)立富圖形化編輯器。UML2:Eclipse

19、平臺下的一個UML 2.0元模型的實現(xiàn),用以支持建模工具的開發(fā)。AspectJ:一種針對Java的面向側(cè)面語言擴展。Eclipse通訊框架ECF:專注于在Eclipse平臺上創(chuàng)立通訊應(yīng)用程序的工作。Eclipse數(shù)據(jù)工具平臺方案DTPEclipse設(shè)備驅(qū)動軟件開發(fā)方案DSDPC/C+開發(fā)工具方案CDT:努力為Eclipse平臺提供一個全功能C和C+的集成開發(fā)環(huán)境IDE,它使用GCC作為編譯器。Eclipse平臺COBOL集成開發(fā)環(huán)境子方案COBOL:將構(gòu)建一個Eclipse平臺上的全功能COBOL集成開發(fā)環(huán)境。并行工具平臺PTP:將開發(fā)一個對并行計算機架構(gòu)下的一組工具進展集成的平行工具平臺,而

20、且這個平臺是可移植的,可伸縮的并基于標(biāo)準(zhǔn)的。嵌入式富客戶端平臺eRCP:方案將Eclipse富客戶端平臺擴展到嵌入式設(shè)備上。這個平臺主要是一個富客戶端平臺RCP組件子集的集合。它能讓桌面環(huán)境下的應(yīng)用程序模型能夠大致同樣地能運用在嵌入式設(shè)備上。二 JDKJDKJava Development Kit是Sun Microsystems針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個Java的核心,包括了Java運行環(huán)境、Java工具和Java根底類庫。JDK是學(xué)好Java的第一步。而專門運行在*86平臺的Jrocket在效勞端運行效率也要比

21、Sun JDK好很多。從SUN的JDK5.0開場,提供了泛型等非常實用的功能,其版本也不斷更新,運行效率得到了非常大的提高。JDK包含的根本組件包括:javac 編譯器,將源程序轉(zhuǎn)成字節(jié)碼jar 打包工具,將相關(guān)的類文件打包成一個文件javadoc 文檔生成器,從源碼注釋中提取文檔jdb debugger,查錯工具java 運行編譯后的java程序.class后綴的appletviewer:小程序瀏覽器,一種執(zhí)行HTML文件上的Java小程序的Java瀏覽器。Javah:產(chǎn)生可以調(diào)用Java過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。Javap:Java反匯編器,顯示編譯類文件中

22、的可訪問功能和數(shù)據(jù),同時顯示字節(jié)代碼含義。Jconsole: Java進展系統(tǒng)調(diào)試和監(jiān)控的工具三 Android SDKSDK:software development kit軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。因此,Android SDK 指的既是Android專屬的軟件開發(fā)工具包。其最震撼人心之處在于Android手機系統(tǒng)的開放性和效勞免費。Android是一個對第三方軟件完全開放的平臺,開發(fā)者在為其開發(fā)程序時 擁有更大的自由度,突破了iPhone等只能添加為數(shù)不多的固定軟件的枷鎖。四 ADT抽象數(shù)據(jù)類型Abstr

23、act Data Type)是指一個數(shù)學(xué)模型以及定義在該模型上的一組操作。ADT包括數(shù)據(jù)數(shù)據(jù)元素,數(shù)據(jù)關(guān)系以及相關(guān)的操作。即ADT數(shù)據(jù)對象:數(shù)據(jù)元素集合數(shù)據(jù)關(guān)系:數(shù)據(jù)關(guān)系二元組結(jié)合根本操作:操作函數(shù)的羅列抽象數(shù)據(jù)類型ADT的一個實現(xiàn)包括儲存數(shù)據(jù)元素的存儲構(gòu)造以及實現(xiàn)根本操作的算法。在這個數(shù)據(jù)抽象思想中,數(shù)據(jù)類型的定義和它的實現(xiàn)是分開的,這在軟件設(shè)計中是一個重要的概念。這使得只研究和使用它的構(gòu)造而不用考慮它的實現(xiàn)細(xì)節(jié)成為可能。在面向?qū)ο缶幊陶Z言中,像C+、Java都能較好的支持ADT,如類的機制。而在C語言中缺少了對相關(guān)方法的支持。抽象數(shù)據(jù)類型需要通過固有數(shù)據(jù)類型(高級編程語言中已實現(xiàn)的數(shù)據(jù)類型

24、)來實現(xiàn)。抽象數(shù)據(jù)類型是與表示無關(guān)的數(shù)據(jù)類型,是一個數(shù)據(jù)模型及定義在該模型上的一組運算。對一個抽象數(shù)據(jù)類型進展定義時,必須給出它的名字及各運算的運算符名,即函數(shù)名,并且規(guī)定這些函數(shù)的參數(shù)性質(zhì)。一旦定義了一個抽象數(shù)據(jù)類型及具體實現(xiàn),程序設(shè)計中就可以像使用根本數(shù)據(jù)類型那樣,十分方便地使用抽象數(shù)據(jù)類型。三、Android應(yīng)用程序構(gòu)造剖析一 Android系統(tǒng)架構(gòu)研究Android是一個包含操作系統(tǒng)、中介架構(gòu)層及應(yīng)用程序所產(chǎn)生出來的軟件堆棧架構(gòu)。由下而上,其核心為嵌入式Linu*2.6作業(yè)系統(tǒng),向上搭配Google為Android開發(fā)的類庫及Android運行時,再配合應(yīng)用程序架構(gòu),來開發(fā)各種不同的應(yīng)

25、用程序。Android體系構(gòu)造如下所示:圖3-1 Android體系構(gòu)造二 Android的APIAndroid API主要包含了以下幾個局部:(1)AndroidManifest.*mlAndroidManifest.*ml是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)立的所有應(yīng)用組件(尤其是活動(Activity),效勞(Service),意圖接收器(Intent Receiver)和容提供者(Content Provider)。舉例來說,控制文件就是把活動和要接收的意圖(Intents)連接在一起的膠水。(2)活動活動就是一個有生命周期的對象。一個活動就是完成*些工作的代碼塊,這局部工作還可能

26、包括對用戶UI界面的顯示。不過這不是必須的,有些活動從不顯示UI界面。(3)視圖視圖可以將其自身繪制到屏幕上。Android的用戶界面由一系列的視圖樹構(gòu)成。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)立一個新的視圖的方法來使用自定義的圖形處理技術(shù)(比方開發(fā)游戲,或者是使用了不常用的用戶圖形窗口界面)。(4)意圖意圖是一個簡單的消息對象,它表示程序想做*事的意圖。比方應(yīng)用程序想要顯示一個網(wǎng)頁,則它可以通過創(chuàng)立一個Intent實例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個URI。系統(tǒng)將定位到能處理這一Intent的代碼(在當(dāng)前情況下就是瀏覽器),并運行之。意圖也可以用于播送系統(tǒng)圍的有效事件(

27、例如通知事件)。(5)效勞效勞是運行在后臺的一段代碼。它可以運行在它自己的進程,也可以運行在其他應(yīng)用程序的進程里,這取決于自身的需要.。其它的組件可以綁定到一個效勞上來,通過遠(yuǎn)程過程調(diào)用(RPC)來調(diào)用這個方法。例如媒體播放器的效勞,當(dāng)用戶退出媒體選擇的界面時,仍然希望音樂依然可以繼續(xù)播放,這時就可用效勞來保證當(dāng)用戶界面關(guān)閉時音樂還繼續(xù)播放著。 (6)通知通知將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互來接收消息。最常見的通知包括短信息、通話記錄和語音,但是應(yīng)用程序也可以創(chuàng)立它們自己的通知事件。(7)容提供者容提供者是用來提供對設(shè)備上數(shù)據(jù)進展訪問。典型的例子就是使用容提供者來訪問聯(lián)系人

28、列表。應(yīng)用程序也可以使用其它程序通過容提供者提供的數(shù)據(jù),同時也可以定義自己的容提供者來向其它應(yīng)用提供數(shù)據(jù)訪問效勞。三Android應(yīng)用程序構(gòu)造解析通常由以下四個組件來構(gòu)建一個完整的Android應(yīng)用程序。活動意圖接收器效勞容提供者然而,并不是所有的Android應(yīng)用程序都必須具備上面的四個組件,可以由上面的一個或幾個來組建。當(dāng)決定使用以上哪些組件來構(gòu)建Android應(yīng)用程序時,需要將它們注冊在AndroidManifest.*ml文件中,這是一個*ML配置文件,在這個文件中可以聲明應(yīng)用程序組件以及它們的特性和要求。這個配置文件是每個Android應(yīng)用程序所必需的。1、活動活動是以上四個組件中最

29、常用的一個。每個活動都是Activity的子類,并實現(xiàn)了一些獨有的功能,如管理UI顯示和UI的反應(yīng)事件。一個活動就相當(dāng)于應(yīng)用程序的一個用戶界面,由事件響應(yīng)以及視圖等組成。大多數(shù)的應(yīng)用程序通常包括多個界面。例如:一個文本聊天應(yīng)用程序,至少應(yīng)該包含一個聯(lián)系人列表界面、一個聊天界面、一個設(shè)置界面、一個聊天記錄查詢界面等等。每個界面其實都可看作是一個活動。顯示一個新界面就相當(dāng)于生成一個對應(yīng)的活動對象。在一些情況下,活動能夠返回給它的上級界面一個返回值,例如一個提供給用戶選擇照片的活動可以返回給它的調(diào)用者用戶選擇了哪個照片文件。當(dāng)一個新的活動出現(xiàn)時,前一個活動被中斷并被放入到一個歷史堆棧中。用戶可以使用

30、返回鍵使前一個活動重現(xiàn)。當(dāng)一個活動不再需要時,可以將它們從歷史堆棧中移除。默認(rèn)情況下,Android會為每個應(yīng)用程序保存從主界面開場的歷史堆棧。Android通過一個被稱作意圖的特殊類,來實現(xiàn)界面與界面之間的跳轉(zhuǎn)。一個意圖描述了一個應(yīng)用程序想要做什么。在意圖的描述構(gòu)造中,含有兩個重要的數(shù)據(jù)構(gòu)造:動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型包括MAIN、VIEW、PICK、EDIT等等,而動作對應(yīng)的數(shù)據(jù)則以URI的形式表示。例如:顯示一個聯(lián)系人信息的界面,可以創(chuàng)立一個意圖,并將它的動作設(shè)置成VIEW,數(shù)據(jù)設(shè)置成表示這個人信息的URI。除此之外,還有一個被稱作意圖過濾器(IntentFiher)的相關(guān)類。

31、當(dāng)發(fā)生一個有效的目的請求時,意圖過濾器用來描述一個活動能夠處理什么意圖。如上例中所描述,想要正常顯示一個聯(lián)系人信息的界面,必須聲明一個意圖過濾器,它說明當(dāng)有聯(lián)系人數(shù)據(jù)要被在界面上顯示時,知道如何處理它們。通常意圖過濾器要被注冊在AndroidManifest.*ml文件中。從一個界面跳轉(zhuǎn)到另一個界面是由解析各種意圖實現(xiàn)的。例如:一個活動使用startActivity(myIntent)來調(diào)用其他活動時,系統(tǒng)會查找所有已經(jīng)安裝的應(yīng)用程序的意圖過濾器,并從中挑選出能夠匹配myIntent意圖的活動。隨后,這個新的活動接收到意圖(myIntent)的通知并開場運行。當(dāng)startActivity方法被

32、調(diào)用,解析意圖的處理過程隨之發(fā)生,這個機制有以下兩個突出的優(yōu)點:活動可以通過一個以意圖形式產(chǎn)生的請求來重用其他組件的功能?;顒涌梢栽谌魏螘r候被一個具有等價意圖過濾器的新活動所替代。2、意圖接收器當(dāng)想要編寫代碼來對外部事件做一些處理時,可以使用意圖接收器。意圖接收器并不顯示UI界面,它是通過NotificationManager來通知用戶他們感興趣的事件發(fā)生了。意圖接收器同樣可以被注冊在AndroidManifest.*ml文件中,同時也可以在代碼中使用Conte*t.registerReceiver()來注冊自己的意圖接收器。當(dāng)一個意圖接收器被觸發(fā)時,系統(tǒng)會根據(jù)需要來啟動應(yīng)用程序。3、效勞效勞

33、是具有長生命周期并且沒有用戶界面的代碼。4、容提供者在Android中,每個應(yīng)用程序都是有自己的userID及在自己的進程中執(zhí)行。這樣做的好處是,可以保護系統(tǒng)及應(yīng)用程序,防止被其他不正常的應(yīng)用程序所影響??梢园衙總€進程想像成是一個黑盒子,彼此不會互相影響,連存的資料都無法共享。如果應(yīng)用程序之間想要共享數(shù)據(jù),就需要使用用容提供者。一個容提供者就是一個類,它實現(xiàn)了一個標(biāo)準(zhǔn)的方法集合。其他的應(yīng)用程序可以使用這些方法來保存和檢索此容提供者處理過的數(shù)據(jù)。四 Intent的詳細(xì)解析在一個Android應(yīng)用中,主要是由四種組件組成的,這四種組件可參考上一節(jié)的容。而這四種組件是獨立的,它們之間可以互相調(diào)用,協(xié)

34、調(diào)工作,最終組成一個真正的Android應(yīng)用。在這些組件之間的通訊中,主要是由意圖協(xié)助完成的。意圖負(fù)責(zé)對應(yīng)用中一次操作的動作、動作對應(yīng)的數(shù)據(jù)、附加數(shù)據(jù)進展描述,Android則根據(jù)此意圖的描述,負(fù)責(zé)找到相應(yīng)的組件,將意圖傳遞給它,并完成組件的調(diào)用。因此,意圖在這里起著一個媒體中介的作用,專門提供組件之間互相調(diào)用的相關(guān)信息,實現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。例如,在一個聯(lián)系人維護的應(yīng)用中,當(dāng)在一個聯(lián)系人列表屏幕(假設(shè)對應(yīng)的Activity為listActivity)上,點擊*個聯(lián)系人后,希望能夠調(diào)出此聯(lián)系人的詳細(xì)信息,為了實現(xiàn)這個目的,listActivity需要構(gòu)造一個Intent,這個Inte

35、nt用于告訴系統(tǒng),要做查看動作,此動作對應(yīng)的查看對象是*聯(lián)系人,然后調(diào)用startActivity(intent intent),將構(gòu)造的Intent傳入,系統(tǒng)會根據(jù)此intent中的描述,到AndroidManifest.*ml中找到滿足此Intent要求的Activity。系統(tǒng)會調(diào)用找到的Activity,即為detailActivity,最終傳入Intent,detailActivitv則會根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。1、Intent的抽象描述在Android參考文檔中,對意圖的定義是執(zhí)行*操作的一個抽象描述。該抽象描述的具體容如下:首先,它是要執(zhí)行的動作的一個簡要描述,

36、如查看、修改等,Android定義了一套標(biāo)準(zhǔn)動作。此外,還可以根據(jù)應(yīng)用的需要,定義自己的動作,并可定義相應(yīng)的活動來處理自定義的動作。其次,是執(zhí)行動作要操作的數(shù)據(jù),Android采用指向數(shù)據(jù)的一個URI方式來實現(xiàn)。另外,除了動作和數(shù)據(jù)這兩個重要屬性外,還有一些附加屬性:類別:被執(zhí)行動作的附加信息。例如LAUNCHER_CATEGORY表示意圖的承受者應(yīng)該在Launcher中作為頂級應(yīng)用出現(xiàn);而ALTERNATIVECATEGORY表示當(dāng)前的意圖是一系列的可選動作中的一個,這些動作可以在同一個數(shù)據(jù)上執(zhí)行。數(shù)據(jù)類型:顯式指定意圖的數(shù)據(jù)類型。一般意圖的數(shù)據(jù)類型能夠根據(jù)數(shù)據(jù)本身進展判定,但是通過設(shè)置這個

37、屬性,可以強制采用指定的類型。組件:指定意圖的目標(biāo)組件的類名稱。通常Android會根據(jù)意圖中包含的其它屬性的信息,比方動作、數(shù)據(jù)/數(shù)據(jù)類型、類別進展查找,最終找到一個與之匹配的目標(biāo)組件。附加信息:是其它所有附加信息的集合。使用附加信息可以為組件提供擴展信息,比方,如果要執(zhí)行發(fā)送電子這個動作,可以將電子的標(biāo)題、正文等保存在附加信息里,傳給電子發(fā)送組件??傊?,動作、數(shù)據(jù)/數(shù)據(jù)類型、類別和附加信息一起形成了一種語言。這種語言使系統(tǒng)能夠理解諸如查看*聯(lián)系人的詳細(xì)信息之類的短語。隨著應(yīng)用不斷的參加到系統(tǒng)中,它們可以添加新的動作、數(shù)據(jù)/數(shù)據(jù)類型和類別來擴展這種語言。應(yīng)用也可以提供自己的活動來處理已經(jīng)存在

38、的這樣的短語,從而改變這些短語的行為。2、Android中 Intent的使用在應(yīng)用中,可以以兩種形式來使用Intent:(l)直接意圖:指定了組件屬性的意圖。通過指定具體的組件類,通知應(yīng)用啟動對應(yīng)的組件。(2)間接意圖:沒有指定組件屬性的意圖。這些意圖需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在所有的可用組件中,確定滿足此意圖的組件。對于直接意圖,Android不需要去做解析,因為目標(biāo)組件已經(jīng)很明確,Android需要解析的是那些間接意圖,通過解析,將意圖映射給可以處理此意圖的活動、意圖接收器或效勞。意圖解析機制主要是通過查找己注冊在AndroidManifest.*ml中的所有意圖過濾

39、器及其中定義的意圖,最終找到匹配的意圖。在這個解析過程中,Android是通過意圖的動作、數(shù)據(jù)類型、類別這三個屬性來進展判斷的,判斷方法如下:如果意圖指明定了動作,則目標(biāo)組件的意圖過濾器的動作列表中就必須包含有這個動作,否則不能匹配。如果意圖沒有提供數(shù)據(jù)類型,系統(tǒng)將從數(shù)據(jù)中得到數(shù)據(jù)類型。和動作一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包含意圖的數(shù)據(jù)類型,否則不能匹配。如果意圖中的數(shù)據(jù)不是content:類型的URI,而且意圖也沒有明確指定它的數(shù)據(jù)類型,將根據(jù)意圖中數(shù)據(jù)的格式(比方 :或者mailto:)進展匹配。同上,意圖的格式必須出現(xiàn)在目標(biāo)組件的格式列表中。如果意圖指定了一個或多個類別,這些類別必須

40、全部出現(xiàn)在組建的類別列表中。比方意圖中包含了兩個類別:LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目標(biāo)組件必須至少包含這兩個類別。五 Android活動的生命周期Android平臺是個手機作業(yè)系統(tǒng)。撇掉其他功能不談,手機的特性,就是應(yīng)該能隨時在未完成目前動作的時候,暫停正在使用的功能,切換到接、接收短信模式,而且在接完回到應(yīng)用程序時,還希望能看到一樣的容?,F(xiàn)在用戶使用智能手機,大多已習(xí)慣使用多工的作業(yè)系統(tǒng)(如windowsMobile),可以在用手機聽音樂的同時,執(zhí)行其他多個程序。同時執(zhí)行多個程序有它的明顯好處,但也有它的缺點。每多執(zhí)行一個應(yīng)用程序

41、,就會多消耗一些系統(tǒng)存,而手機里的存是相當(dāng)有限的。當(dāng)同時執(zhí)行的程序過多,或是關(guān)閉的程序沒有正確釋放掉存,系統(tǒng)運行時就會覺得越來越慢,甚至不穩(wěn)定。為了解決這個問題,Android引入了一個新的機制生命周期。Android應(yīng)用程序的生命周期是由Android框架進展管理,而不是由應(yīng)用程序直接控制。通常,每一個應(yīng)用程序(入口一般會是一個活動的onCreate方法),都會占據(jù)一個進程。當(dāng)系統(tǒng)存即將缺乏的時候,會依照優(yōu)先級自動進展進程的回收。不管是使用者或開發(fā)者,都無法確定應(yīng)用程序何時會被回收。關(guān)于進程的生命周期將在下一節(jié)中介紹,本節(jié)主要介紹活動的生命周期。一個活動類別除了OnCreate方法之外,還預(yù)

42、先定義了onPause(暫停)、OnResume(繼續(xù))等的根本方法,當(dāng)從一個活動切換到另一個活動的時候,原來的活動將經(jīng)過一連串的狀態(tài)改變。開發(fā)者可以在程序中添加一些各狀態(tài)相對應(yīng)的流程,每次活動狀態(tài)改變時,就會執(zhí)行相對應(yīng)的流程。要讓用戶有好的使用體驗,活動需要在各個周期中負(fù)責(zé)保管狀態(tài)、恢復(fù)狀態(tài)、傳送資料等工作。1、活動的生命狀態(tài)Android的虛擬機是使用堆棧管理。主要有四種狀態(tài):(l)活動狀態(tài)活動狀態(tài)是指用戶啟動應(yīng)用程序或活動后,活動運行中的狀態(tài)。在Android平臺上,同一個時刻只會有一個活動處于活動或運行狀態(tài)。其他的活動都處于未啟動、停頓或是暫停的狀態(tài)。(2)暫停狀態(tài)暫停狀態(tài)是指當(dāng)活動暫

43、時暗下來,退到背景畫面的狀態(tài)。當(dāng)警告對話框或來了時,都會讓原來運行的活動退到背景畫面。新出現(xiàn)的警告對話框等界面元件蓋住了原來的活動畫面。活動處在暫停狀態(tài)時,用戶無法與原活動互動。(3)停頓狀態(tài)停頓狀態(tài)是指有其他活動正在執(zhí)行,而這個活動己經(jīng)離開屏幕,不再動作的狀態(tài)。通過按返回鍵,可以調(diào)出所有處于停頓狀態(tài)的應(yīng)用程序列表。處于停頓狀態(tài)的活動,還可以通過通知來喚醒。(4)已回收或未啟動狀態(tài)已回收或未啟動狀態(tài)是指活動尚未被啟動、已經(jīng)被手動終止或己經(jīng)被系統(tǒng)回收的狀態(tài)。要手動終止活動,可以在程序中調(diào)用finish方法。如果是被系統(tǒng)回收,可能是因為存缺乏了,所以系統(tǒng)根據(jù)存缺乏時的回收規(guī)則,將處于停頓狀態(tài)的活動

44、所占用的存回收。Adroid活動聲明周期如圖3-2:圖3-2 Android活動生命周期圖3-2所示的七個狀態(tài)又可以歸納成三組:(l)資源分配(創(chuàng)立/銷毀)完整的活動生命周期由創(chuàng)立狀態(tài)開場,由銷毀狀態(tài)完畢。創(chuàng)立時分配資源,銷毀時釋放資源。(2)可見與不可見(啟動/重新啟動/停頓)當(dāng)活動運行到啟動狀態(tài)時,就可以在屏幕上看到這個活動。相反地,當(dāng)活動運行到停頓狀態(tài)時,這個活動就會從屏幕上消失。當(dāng)用戶按下返回鍵回到上一個活動時,會先到重新啟動狀態(tài),再到一般的啟動狀態(tài)。(3)用戶取得屏幕的控制權(quán)(繼續(xù)/暫停)當(dāng)有個警告對話框、短信、等信息進入時,原來的活動會進入暫停狀態(tài),暫時放棄屏幕的控制權(quán),被中斷到背

45、景去,將前景交給優(yōu)先級高的事件。當(dāng)這些優(yōu)先級高的事件處理完后,活動就改良入繼續(xù)狀態(tài),此時又取得屏幕的控制權(quán)。2、活動的運作流程由實際運行來看,我們可以歸納出所有Android應(yīng)用程序都遵循的運作流程:(l)一般啟動啟動一個活動的根本流程為onCreate一onstart一onResume。該流程首先分配資源給這個活動(創(chuàng)立狀態(tài)),然后將活動的容顯示到屏幕上(啟動狀態(tài));在一切就緒后,取得屏幕的控制權(quán)(恢復(fù)狀態(tài)),用戶可以開場使用這個程序。(2)調(diào)用另一個活動調(diào)用另一個活動的根本流程為onpause(l)一onCreate(2)一onstart(2)一0nResume(2)一onStop(l)。

46、該流程首先凍結(jié)原來的活動,再交出屏幕控制權(quán);直到活動2完成一般啟動流程后,活動1才會被停頓。(3)回到原來活動回到原來活動的根本流程為onPause(2)一onRestart(1)一onstart(l)一onResume(1)一onstop(2)一onDestroy(2)。另外按返回鍵也可以回到原來的活動。4)退出完畢退出完畢的根本流程為onPause一onStop一onDestroy。如果程序中有直接調(diào)用finish方法來關(guān)閉活動的話,系統(tǒng)會跳過先凍結(jié)的階段,直接暫停,停頓,然后銷毀。(5)回收后再啟動回收后再啟動的根本流程為oncreate一onstart一onresume。如果被回收掉的活動一旦又重新被調(diào)用時,會像一般啟動一樣再次調(diào)用活動的onCreate方法。當(dāng)在模擬器上已經(jīng)執(zhí)行過多個應(yīng)用程序,只要按下返回鍵,就會開啟最近一次開啟過的活動。所以如果要讓再次被創(chuàng)立的活動跟原來開啟過的一樣,則在活動之間切換時,就要保存資料:即在每次活動運行到暫?;蛲nD狀態(tài)時先保存資料,然后在創(chuàng)立時將資料讀出來。四、系統(tǒng)設(shè)計與實現(xiàn)一游戲的籌劃游戲的籌劃主要包括游戲的情節(jié)、目標(biāo)受眾、運行的目標(biāo)平臺、采用的呈現(xiàn)技術(shù)、操作方式等幾個方面。下面就針對

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論