版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(jì)(論文)開題報(bào)告(含文獻(xiàn)綜述、外文翻譯)題 目 基于android手機(jī)平臺(tái)的吃豆人游戲設(shè)計(jì)與開發(fā) 畢業(yè)設(shè)計(jì)(論文)開 題 報(bào) 告(包括選題的意義、可行性分析、研究的內(nèi)容、研究方法、擬解決的關(guān)鍵問題、預(yù)期結(jié)果、研究進(jìn)度計(jì)劃等)1. 選題的背景和意義1.1 選題的背景目前隨著移動(dòng)設(shè)備越來越普及以及移動(dòng)設(shè)備的硬件的提升,移動(dòng)設(shè)備的功能越來越完善,他的系統(tǒng)平臺(tái)也日漸火熱起來。目前國內(nèi)最常見的移動(dòng)系統(tǒng)平臺(tái)有symbian,iphone,windows phone以及當(dāng)下正在逐步興起的android。目前為止國內(nèi)已經(jīng)有很多android系統(tǒng)的用戶。截止2010年第二季度android系統(tǒng)的國內(nèi)市場(chǎng)
2、占有率已經(jīng)過10%,在西歐以及北美智能手機(jī)市場(chǎng)占有率也在20%左右??梢奱ndroid系統(tǒng)正在崛起之中。但是對(duì)于android系統(tǒng)的應(yīng)用和開發(fā)在國內(nèi)仍然屬于起步和探索階段。急需要大量的相關(guān)技術(shù)和人員的投入。下面首先介紹一下android系統(tǒng)。android是基于linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng),是google在2007年11月5日公布的手機(jī)系統(tǒng)平臺(tái),早期由google開發(fā),后由(open handset alliance)開發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以linux核心工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開
3、發(fā),以java作為編寫程式的一部分1。手機(jī)游戲作為android系統(tǒng)平臺(tái)的一個(gè)重要組成部分,正在被越來越多的人所重視。全球在使用的移動(dòng)電話已經(jīng)超過10億部,而且這個(gè)數(shù)字每天都在不斷增加。在除美國之外的各個(gè)發(fā)達(dá)國家,手機(jī)用戶都比計(jì)算機(jī)用戶多。手機(jī)游戲潛在的市場(chǎng)比其他任何平臺(tái),比如playstation和gameboy都要大。在學(xué)院和老師的支持和幫助下,我所在的手機(jī)開放實(shí)驗(yàn)室在2009年底就開始對(duì)android系統(tǒng)進(jìn)行深入細(xì)致的研究。在國內(nèi)android相關(guān)領(lǐng)域?qū)儆谳^早研究的一批,經(jīng)過老師和同學(xué)一年多的努力,在這個(gè)方面也積累了一定的知識(shí)和技能。所以希望通過這篇論文的研究,展示我這一年多來學(xué)習(xí)與實(shí)踐
4、的成果,給本科四年的學(xué)習(xí)交上一份圓滿的答卷。1.2 國內(nèi)外研究現(xiàn)狀1.2.1 國內(nèi)外手機(jī)系統(tǒng)現(xiàn)狀目前國外各軟硬件廠商已經(jīng)推出過多款手機(jī)操作系統(tǒng)。下面簡單介紹一下現(xiàn)主流手機(jī)操作系統(tǒng)。現(xiàn)階段使用較廣泛大家也相對(duì)熟悉的手機(jī)操作系統(tǒng)是由諾基亞公司主導(dǎo)推出的symbian操作系統(tǒng)。symbian是為手機(jī)而設(shè)計(jì)的操作系統(tǒng),它是一個(gè)實(shí)時(shí)性,多任務(wù)的純32位嵌入式的操作系統(tǒng),具有低能耗,內(nèi)存占用較少等特點(diǎn)?,F(xiàn)在流行的symbian系統(tǒng)有以下四個(gè)版本,分別為s40、s60(第二版)、s60(第三版)、s60(第五版)。s60(第五版)為觸摸屏手機(jī)版本2。ios是由蘋果公司為iphone開發(fā)的操作系統(tǒng)。它主要是給
5、iphone、ipod touch以及ipad使用。就像其基于的mac os x操作系統(tǒng)一樣,它也是以darwin為基礎(chǔ)的。ios的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(the core os layer),核心服務(wù)層(the core services layer),媒體層(the media layer),可輕觸層(the cocoa touch layer)。系統(tǒng)操作占用大概240mb的存儲(chǔ)器空間3。相對(duì)國外手機(jī)系統(tǒng)百花齊放的局面,國內(nèi)手機(jī)操作系統(tǒng)則處于剛起步的階段。目前國內(nèi)還沒有自主研發(fā)并商品化的手機(jī)操作系統(tǒng)。當(dāng)然近些年來國內(nèi)企業(yè)和我國政府在這方也投入了大量的人力和物力。同時(shí)也取得了一
6、定成果。在2009年8月,由中國移動(dòng)所主導(dǎo)開發(fā)ophone平臺(tái)面世。ophone平臺(tái)采用開源的linux作為系統(tǒng)內(nèi)核,借鑒并兼容android平臺(tái),集成靈活高效的java應(yīng)用框架,充分借鑒當(dāng)下主流手機(jī)操作系統(tǒng)所具有的良好用戶體驗(yàn),提供了一套完整的電話解決方案和各類移動(dòng)數(shù)據(jù)業(yè)務(wù)解決方案4。1.2.2 國內(nèi)外手機(jī)應(yīng)用現(xiàn)狀隨著3g在中國的全面啟動(dòng),它所帶來的巨大機(jī)遇和新生力量,大規(guī)模的網(wǎng)絡(luò)建設(shè)正不斷深入展開。但不可否認(rèn)的是我國在通信領(lǐng)域中相比許多發(fā)達(dá)國家仍然存在著不小的差距,就在國人還在為edge(即增強(qiáng)型數(shù)據(jù)速率gsm演進(jìn)技術(shù)。edge是一種從gsm到3g的過渡技術(shù))5這種傳輸速度僅能達(dá)到384k
7、b/秒的2.75g過渡技術(shù)而欣喜的時(shí)候,國外早已開始試行hsdpa(高速下行分組接入,是一種移動(dòng)通信協(xié)議,亦稱為3.5g)這種3.5g技術(shù),傳輸速度更可達(dá)到驚人的數(shù)兆每秒,而基于其上所開發(fā)的延伸功能更是數(shù)不勝數(shù),所以國內(nèi)外手機(jī)應(yīng)用也存在的較大的差異。但國內(nèi)外對(duì)手機(jī)應(yīng)用的需求方向是大致相似的,主要集中在信息服務(wù),娛樂,學(xué)習(xí)這些方面。目前手機(jī)應(yīng)用中數(shù)量最大,使用人數(shù)最多的應(yīng)用類型是手機(jī)游戲。該類應(yīng)用作為傳統(tǒng)手機(jī)應(yīng)用,在各個(gè)平臺(tái)上發(fā)展已近相對(duì)完善,手機(jī)上對(duì)各種流媒體的播放也已完美的支持。各類傳統(tǒng)pc游戲廠商也已進(jìn)入手機(jī)領(lǐng)域。根據(jù)iresearch艾瑞市場(chǎng)咨詢整理的國外數(shù)據(jù)顯示,全球手機(jī)游戲市場(chǎng)的收入
8、規(guī)模在2005年達(dá)到了102億美元, 2008年達(dá)到520億美元6 。07年之后,手機(jī)游戲市場(chǎng)增速開始減緩,傳統(tǒng)手機(jī)游戲逐漸顯現(xiàn)頹勢(shì),市場(chǎng)增長主要由基于智能手機(jī)平臺(tái)的游戲所帶動(dòng)。所以android游戲進(jìn)入智能手機(jī)游戲市場(chǎng),必將打破原有格局,開辟手機(jī)游戲新紀(jì)元。其他方面較為熱門的有基于地理位置的信息服務(wù)(location based service lbs)它是通過電信移動(dòng)運(yùn)營商的無線電通訊網(wǎng)絡(luò)(如gsm網(wǎng)、cdma網(wǎng))或外部定位方式(如gps)獲取移動(dòng)終端用戶的位置信息(地理坐標(biāo),或大地坐標(biāo)),在gis(geographic information system,地理信息系統(tǒng))平臺(tái)的支持下,為
9、用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)。例如手機(jī)定位,導(dǎo)航服務(wù)7。近年來十分熱門的網(wǎng)絡(luò)社交服務(wù)(social networking services)也已進(jìn)入到手機(jī)客戶端領(lǐng)域。例如國內(nèi)有名的社交網(wǎng)站人人網(wǎng)已經(jīng)針對(duì)iphone,android,塞班等手機(jī)平臺(tái)推出了手機(jī)客戶端。國外最大的社交fackbook也已經(jīng)傳出正在進(jìn)行針對(duì)手機(jī)的產(chǎn)品的研發(fā)。twiter,myspace等國外知名社交類網(wǎng)站都已經(jīng)推出手機(jī)版??诒W(wǎng)在今年也已經(jīng)推出針對(duì)多個(gè)手機(jī)平臺(tái)的客戶端程序。msn,qq等即時(shí)通信類的應(yīng)用也已經(jīng)在各個(gè)主流手機(jī)平臺(tái)推出。 手機(jī)辦公類軟件在手機(jī)上也正日趨完善,在手機(jī)上編輯查看各類文檔已經(jīng)實(shí)現(xiàn),在androi
10、d平臺(tái)上的quickoffice就是這樣的軟件。在google market(一個(gè)谷歌針對(duì)android系統(tǒng)用戶所開發(fā)的應(yīng)用商場(chǎng))上已經(jīng)有過萬的企業(yè)應(yīng)用辦公套件。1.3 發(fā)展趨勢(shì)根據(jù)對(duì)谷歌電子市場(chǎng)中的android應(yīng)用程序的調(diào)查發(fā)現(xiàn),該市場(chǎng)中絕大部分是游戲軟件。android平臺(tái)的開放性及服務(wù)免費(fèi)大大降低了應(yīng)用開發(fā)的門檻,使得開發(fā)者在游戲開發(fā)中投入成本相對(duì)較少。而隨著技術(shù)的發(fā)展手機(jī)終端的特性使其具備了地理位置、重力感應(yīng)、觸摸控制等固定終端所不具備的特性,更容易開發(fā)出極具創(chuàng)意的游戲產(chǎn)品。android設(shè)備數(shù)量的持續(xù)增長使得這個(gè)市場(chǎng)對(duì)優(yōu)質(zhì)游戲的需求越來越大。android平臺(tái)上的游戲相比應(yīng)用軟件,
11、不需要進(jìn)行嚴(yán)格的市場(chǎng)細(xì)分,不需要針對(duì)目標(biāo)用戶量身定制。這是因?yàn)橛螒蛲婕业暮诵男枨笫墙y(tǒng)一的,那就是:娛樂與打發(fā)時(shí)間(乃至更高層面的競(jìng)技需求和群體認(rèn)同需求),這種需求附著于特定的社會(huì)發(fā)展階段,不受地域的限制,甚至于能夠穿透文化壁壘。因此,絕大多數(shù)種類的游戲都具備傳染性與普適性,每一個(gè)售出的游戲都像一個(gè)火種,將會(huì)點(diǎn)燃周圍潛在玩家的激情,激情的火焰迅速蔓延,最終吞噬整個(gè)需求市場(chǎng),當(dāng)然前提是開發(fā)的游戲是高質(zhì)量的。此外,幾乎每一個(gè)android手機(jī)用戶都是游戲的需求者,都是潛在的顧客,現(xiàn)今的1000多萬android用戶不過是冰山一角,另根據(jù)idc機(jī)構(gòu)預(yù)計(jì)在2013年android手機(jī)用戶將達(dá)到6800萬
12、,所以android手機(jī)游戲的需求也將不斷擴(kuò)充。在android系統(tǒng)面世短短兩年時(shí)間內(nèi), android以勢(shì)如破竹之勢(shì),迅速的蠶食著其他手機(jī)廠商在市場(chǎng)中的份額,而終端市場(chǎng)幾乎每隔一天就會(huì)有新的android機(jī)型問世。另據(jù)國外媒體報(bào)道,android應(yīng)用軟件數(shù)量已經(jīng)突破13萬大關(guān)。業(yè)內(nèi)由此預(yù)期,android平臺(tái)可能會(huì)在未來幾個(gè)月內(nèi)將躋身手機(jī)操作系統(tǒng)前三甲,并獲得亞軍的地位。雖然android系統(tǒng)前景廣闊,但是基于該平臺(tái)的手機(jī)游戲開發(fā)也面臨著各種問題。平臺(tái)硬件差異,代碼分裂,用戶沒有良好的付費(fèi)習(xí)慣等等缺點(diǎn)一直被android游戲開發(fā)者詬病,但是android快速的發(fā)展卻使開發(fā)者又無法放棄這塊大蛋
13、糕,所以其他手機(jī)平臺(tái)的開發(fā)者也慢慢轉(zhuǎn)向android游戲開發(fā)。綜上所述,在今后幾年內(nèi)android游戲應(yīng)用將會(huì)成為手機(jī)應(yīng)用市場(chǎng)的主流應(yīng)用,并且需要大量人力物力的投入。2研究的基本內(nèi)容根據(jù)近一年來學(xué)習(xí)android平臺(tái)游戲動(dòng)畫的經(jīng)驗(yàn),結(jié)合現(xiàn)在已有技術(shù),基于游戲動(dòng)畫設(shè)計(jì)的基本原理。設(shè)計(jì)一個(gè)基于android平臺(tái)的吃豆人的游戲應(yīng)用。設(shè)計(jì)制作吃豆人游戲的目的在于主要實(shí)現(xiàn)一套android游戲開發(fā)的解決方案,解決目前在android游戲開發(fā)中所面臨的幾大問題。主要有游戲的關(guān)卡切換,游戲地圖數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)、應(yīng)用多種手機(jī)內(nèi)置傳感器進(jìn)行游戲控制、游戲動(dòng)畫的實(shí)現(xiàn)、基于圖形的碰撞檢測(cè)、數(shù)據(jù)在手機(jī)系統(tǒng)和網(wǎng)絡(luò)上存儲(chǔ)及
14、人工智能的實(shí)現(xiàn)。解決這些在android游戲開發(fā)中所共同面臨的問題,對(duì)于android游戲的開發(fā)效率與android游戲的質(zhì)量有著極大的幫助作用。2.1 基本框架首先基于android平臺(tái)特性,把本應(yīng)用主要?jiǎng)澐譃槲宕竽K分別為:程序控制界面、數(shù)據(jù)持久化模塊,網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊,游戲邏輯模塊,游戲音效模塊。程序體系結(jié)構(gòu)如下圖所示:圖1.1 程序體系結(jié)構(gòu)圖本程序主要通過程序控制界面和用戶進(jìn)行交互, 用戶通過該界面上的相應(yīng)選項(xiàng)進(jìn)行游戲,控制怪物進(jìn)行游戲,提交游戲積分,存儲(chǔ)游戲積分,播放游戲音樂等各項(xiàng)功能。程序控制界面同時(shí)也負(fù)責(zé)各模塊間的數(shù)據(jù)傳輸。游戲邏輯模塊主要功能是負(fù)責(zé)游戲畫面的繪制,游戲中敵對(duì)怪物
15、人工智能的實(shí)現(xiàn),以及用戶輸入的控制的響應(yīng)(如鍵盤,導(dǎo)航鍵和屏幕輸入)。 本模塊主要解決游戲引擎的實(shí)現(xiàn)、應(yīng)用多種手機(jī)內(nèi)置傳感器進(jìn)行游戲控制和游戲的人工智能的問題,實(shí)現(xiàn)該模塊能使用戶得到更好的動(dòng)畫體驗(yàn)和游戲操控體驗(yàn),明顯提升游戲的用戶好感動(dòng)和實(shí)用性。下圖是游戲邏輯塊的體系結(jié)構(gòu),游戲邏輯模塊主要分為人工智能、游戲繪圖引擎和人機(jī)交互控制。圖1.2 吃豆人程序游戲邏輯模塊結(jié)構(gòu)圖數(shù)據(jù)持久化模塊主要負(fù)責(zé)游戲中所產(chǎn)生的內(nèi)存數(shù)據(jù),轉(zhuǎn)化成可存儲(chǔ)的xml數(shù)據(jù)。該模塊包含xml數(shù)據(jù)結(jié)構(gòu)定義、xml生成和xml數(shù)據(jù)解析。本模塊的主要解決android系統(tǒng)中數(shù)據(jù)存儲(chǔ)的問題。具體結(jié)構(gòu)如下圖所示:圖1.3吃豆人程序體數(shù)據(jù)持久
16、化圖網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊主要功能為提交用戶游戲評(píng)分至網(wǎng)絡(luò)服務(wù)器中。該模塊主要用來實(shí)現(xiàn)網(wǎng)絡(luò)積分榜功能。讓原本單機(jī)的游戲具有網(wǎng)絡(luò)競(jìng)賽的功能。提升游戲的可玩性,吸引更多用戶使用游戲。游戲音效模塊提供游戲音樂的播放和關(guān)閉的功能,其向主控制界面暴露開啟和關(guān)閉音樂的接口。2.2 研究的重點(diǎn)和難點(diǎn)根據(jù)本人在android游戲編程上所遇到的問題,現(xiàn)將研究吃豆人游戲應(yīng)用中所遇到的問題總結(jié)如下:(1)基于android游戲動(dòng)畫的實(shí)現(xiàn)。所有計(jì)算機(jī)游戲的圖形的核心都是動(dòng)畫,在j2me手機(jī)游戲中,mdip2.0以上版本提供了一個(gè)有助于游戲制作的開發(fā)包,該開發(fā)包核心為sprite,使用該類能夠簡單管理動(dòng)畫角色的圖像9?;诖?/p>
17、我將深入研究j2me中sprite類在android平臺(tái)上移植和使用的可能性。提高android游戲中動(dòng)畫展示的效果和效率,解決android系統(tǒng)中動(dòng)畫實(shí)現(xiàn)的問題。(2)游戲地圖的數(shù)據(jù)結(jié)構(gòu)的表示。解決此問題主要解決在android平臺(tái)中如何高效的對(duì)復(fù)雜的游戲地圖進(jìn)行存儲(chǔ)和解析,合理有效的數(shù)據(jù)結(jié)構(gòu)對(duì)提高游戲整體的效率極大地幫助。(3)游戲動(dòng)畫中的碰撞檢測(cè)問題。在游戲中,經(jīng)常需要進(jìn)行碰撞檢測(cè),例如在吃豆人游戲中如何檢測(cè)到吃豆人吃到豆子、吃豆人是否被怪物吃掉,都是檢測(cè)兩個(gè)物體是否發(fā)生碰撞,然后根據(jù)檢測(cè)的結(jié)果做出不同的處理。進(jìn)行碰撞檢測(cè)的物體可能不同的形狀,這就給碰撞檢測(cè)的算法帶來了許多的問題。如何高
18、效正確的進(jìn)行圖像的碰撞檢測(cè)將是我吃豆人游戲中解決的重點(diǎn)問題。(4)游戲人工智能算法的實(shí)現(xiàn)。在游戲軟件中,游戲的人工智能的高低直接決定了游戲互動(dòng)性和可玩性。而尋路問題又是人們研究的熱點(diǎn)問題之一。在吃豆人游戲中,需要設(shè)計(jì)怪物主動(dòng)跟蹤玩家的人工智能算法,并且可以通過參數(shù)對(duì)怪物的“聰明度”進(jìn)行調(diào)節(jié)。(5)人機(jī)交互界面的友好性。優(yōu)美的圖像界面將會(huì)給使用者帶來舒適和美感,在吃豆人游戲中,設(shè)計(jì)出時(shí)尚美觀的界面和游戲圖片,給使用者留下良好的印象,提高游戲的品質(zhì)。 2.3 擬解決的關(guān)鍵問題關(guān)于android游戲動(dòng)畫的解決方案,我準(zhǔn)備實(shí)現(xiàn)一個(gè)相對(duì)高效并且簡單易用的游戲引擎,或者從其他手機(jī)平臺(tái)移植相對(duì)較為成熟的游戲
19、動(dòng)畫引擎。解決此問題可以為吃豆人游戲以及其他類似的動(dòng)畫游戲提供流暢的動(dòng)畫效果,實(shí)現(xiàn)游戲引擎同時(shí)也可以提高游戲動(dòng)畫的代碼復(fù)用率,提高游戲編程的效率。深入理解android 系統(tǒng)的dalvik虛擬機(jī)工作機(jī)制。由于android平臺(tái)使用java語言進(jìn)行開發(fā),谷歌的工程師改寫了java me的虛擬機(jī)。眾所周知虛擬機(jī)的垃圾回收會(huì)造成系統(tǒng)資源的消耗,影響游戲動(dòng)畫的流暢性。解決虛擬機(jī)垃圾回收時(shí)所造成的占用系統(tǒng)資源較大的問題,可以提高游戲的流暢性,提升用戶的游戲體驗(yàn)。解決游戲人工智能的解決方案,吃豆人游戲中,地圖尋路問題并非如此簡單,必須考慮多方面的因素,比如游戲地圖的文件結(jié)構(gòu)、是否可通以及目標(biāo)點(diǎn)所在的磚塊是
20、否可通等。解決吃豆人游戲中的地圖尋徑問題。并查找a*,啟發(fā)式搜索算法10,遺傳算法等算法在本應(yīng)用中實(shí)現(xiàn)的可能性。觸屏以及重力感應(yīng)器等操控方式的處理問題。在android平臺(tái)中相對(duì)傳統(tǒng)的手機(jī)系統(tǒng),android系統(tǒng)提供多種傳感器的調(diào)用接口。探索使用手機(jī)導(dǎo)航球,重力感應(yīng),觸屏操作等新型操控模式提高用戶操作體驗(yàn)。3研究的方法及措施利用網(wǎng)絡(luò)查閱國內(nèi)外相關(guān)資料,利用數(shù)據(jù)庫資源瀏覽大量的期刊與文獻(xiàn),進(jìn)行分析與研究。深入國內(nèi)外android系統(tǒng)開發(fā)者社區(qū),與一線開發(fā)者進(jìn)行交流,獲取更多信息與技術(shù)。 應(yīng)用擬采用java實(shí)現(xiàn),模塊化結(jié)構(gòu),獨(dú)立開發(fā)各個(gè)功能模塊,盡量降低各模塊之間的耦合,在各個(gè)功能模塊實(shí)現(xiàn)的基礎(chǔ)上
21、構(gòu)建靈活方便的ui界面。 4預(yù)期研究成果在新的google android智能手機(jī)平臺(tái)上實(shí)現(xiàn)吃豆人游戲,游戲分為十個(gè)關(guān)卡,每個(gè)關(guān)卡經(jīng)過仔細(xì)的設(shè)計(jì),按照難度依次遞進(jìn)。游戲的主要功能包括:每關(guān)有3個(gè)怪物,吃豆人在設(shè)計(jì)的關(guān)卡地圖中吃光所有的豆子和其他特殊作用的物品為過關(guān)。吃豆人在運(yùn)動(dòng)過程中如果和怪物相遇那么吃豆人死亡;游戲提供多種道具,包括加分道具,怪物減速道具,生命道具,吃豆人吃到每個(gè)不同道具時(shí)根據(jù)道具的預(yù)定義行為進(jìn)行處理;吃豆人控制方式包括使用觸屏控制,軟鍵盤以及重力感應(yīng)器;支持背景音樂,暫停等操作;支持全球排行榜;通關(guān)后地圖重新開始,不過每關(guān)的怪物增加為4個(gè)。完成畢業(yè)論文和畢業(yè)設(shè)計(jì)以及畢業(yè)答辯
22、。開發(fā)游戲能發(fā)布到國內(nèi)外公共android應(yīng)用平臺(tái)上,例如移動(dòng)的mm市場(chǎng)和谷歌的電子市場(chǎng)。為本應(yīng)用申請(qǐng)軟件著作權(quán)。5研究工作進(jìn)度計(jì)劃2010年第7學(xué)期 第6-9周 查閱文獻(xiàn)第10-12周 文獻(xiàn)綜述和外文翻譯第12-15周 撰寫開題報(bào)告第16-17周 程序設(shè)計(jì)與開發(fā)2011年第8學(xué)期 第1-9周 程序設(shè)計(jì)與開發(fā)第10-12周 撰寫畢業(yè)論文第13-14周 論文的答辯與修改畢業(yè)設(shè)計(jì)(論文)文 獻(xiàn) 綜 述(包括國內(nèi)外現(xiàn)狀、研究方向、進(jìn)展情況、存在問題、參考依據(jù)等)android手機(jī)游戲開發(fā)研究現(xiàn)狀1. 國內(nèi)外研究現(xiàn)狀今天的手機(jī)不在是單純的通訊工具,已經(jīng)成為了集通訊、pim、音樂、電影、游戲娛樂等為一體
23、的個(gè)人便攜終端。手機(jī)在通訊功能以外的綜合附加值越高,加之便攜的特性,使得人們對(duì)手機(jī)的依賴性越強(qiáng)12。游戲作為日常休閑的娛樂活動(dòng),歷經(jīng)了電視游戲、電腦單機(jī)游戲、電腦網(wǎng)絡(luò)游戲這幾個(gè)階段?,F(xiàn)在,游戲作為一個(gè)產(chǎn)業(yè),可以看出游戲市場(chǎng)有著非常龐大的需求。手機(jī)游戲的出現(xiàn),給手機(jī)和游戲市場(chǎng)帶來了新的活力,由于娛樂時(shí)不受時(shí)間和地點(diǎn)的限制,手機(jī)游戲已經(jīng)成為大眾娛樂的又一新選擇。隨著科技的發(fā)展,現(xiàn)在手機(jī)的功能也越來越多,越來越強(qiáng)大。而手機(jī)游戲也遠(yuǎn)遠(yuǎn)不是我們印象中的什么“俄羅斯方塊”“貪吃蛇”之類畫面簡陋,規(guī)則簡單的游戲,進(jìn)而發(fā)展到了可以和掌上游戲機(jī)媲美,具有很強(qiáng)的娛樂性和交互性的復(fù)雜形態(tài)了。近期在iphone和an
24、droid平臺(tái)上火爆的游戲憤怒的小鳥游戲,采用優(yōu)美的動(dòng)畫,先進(jìn)的物理游戲引擎以及獨(dú)特的創(chuàng)意,成為了本年度最受用戶喜歡的手機(jī)游戲之一13。其制作公司僅在android平臺(tái)的廣告收入就達(dá)100萬美元每月??梢娛謾C(jī)游戲已經(jīng)從單一內(nèi)容到多元內(nèi)容,從簡單畫面和音樂進(jìn)入到了復(fù)雜的多媒體效果之中。為了實(shí)現(xiàn)手機(jī)游戲豐富的動(dòng)畫效果和良好的用戶體驗(yàn),一些原本在pc上的游戲動(dòng)畫引擎也被移植到了手機(jī)這個(gè)平臺(tái)上,例如androids上的opengl es 游戲動(dòng)畫庫(opengl for embedded systems 是opengl 三維圖形 api 的子集,針對(duì)手機(jī)、pda和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)14)、bo
25、x2d物理游戲引擎(該引擎主要用來模擬物理碰撞和物理運(yùn)動(dòng))。在手機(jī)游戲動(dòng)畫效果提升的同時(shí),新硬件功能(比如重力感應(yīng)、多點(diǎn)觸控)的加入,也促使了一些創(chuàng)新的手機(jī)游戲的推出。如重力滾動(dòng)球的游戲就是根據(jù)手機(jī)重力感應(yīng)功能編寫而成。iphone上的街頭霸王、刺客信條等游戲就使用到了多點(diǎn)觸控這一功能。綜上所述現(xiàn)階段手機(jī)游戲的開發(fā)也進(jìn)入了一個(gè)新的階段,在這個(gè)階段的開發(fā)中手機(jī)游戲不僅需要豐富的編程經(jīng)驗(yàn),還需要對(duì)新型手機(jī)特點(diǎn),用戶需求新的娛樂需求的進(jìn)一步發(fā)掘,從而開發(fā)出符合用戶使用習(xí)慣,吸引用戶的游戲。2研究方向2.1 android系統(tǒng)架構(gòu)研究android平臺(tái)是一組面向移動(dòng)設(shè)備的軟件包,它包含了一個(gè)操作系統(tǒng)、
26、中間件和關(guān)鍵應(yīng)用程序。android是一組面向移動(dòng)設(shè)備的軟件包(目前不僅限于移動(dòng)手機(jī)領(lǐng)域,android也已經(jīng)進(jìn)入其他嵌入式領(lǐng)域,如汽車中控臺(tái),mp3/mp4等),包含了一個(gè)操作系統(tǒng),中間件和關(guān)鍵應(yīng)用程序。android sdk的預(yù)覽版提供了必需的開發(fā)工具和應(yīng)用程序接口,基于這些,我們就可以使用java編程語言在android平臺(tái)上開發(fā)應(yīng)用程序了15。android系統(tǒng)架構(gòu)基本分為應(yīng)用(applications),應(yīng)用框架(application frameworks),庫函數(shù)(libraries),運(yùn)行時(shí)環(huán)境(android runtime),linux 內(nèi)核(linux kernel)。下
27、方圖表顯示了android操作系統(tǒng)的主要組件15。圖2.1 android系統(tǒng)架構(gòu)圖1.應(yīng)用程序android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,sms短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用java語言編寫的。2.應(yīng)用程序框架 開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的api框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。3.系統(tǒng)運(yùn)行庫 android 包含一些c
28、/c+庫,這些庫能被android系統(tǒng)中不同的組件使用。它們通過 android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。android 包括了一個(gè)核心庫,該核心庫提供了java編程語言核心庫的大多數(shù)功能。4.android運(yùn)行時(shí) 每一個(gè)android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的dalvik虛擬機(jī)實(shí)例。dalvik被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。 dalvik虛擬機(jī)執(zhí)行(.dex)的dalvik可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由java編譯器編譯,然后通過sdk中 的“dx” 工具轉(zhuǎn)化成“.dex”格式由虛擬機(jī)執(zhí)行。
29、 dalvik虛擬機(jī)依賴于linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。5.linux 內(nèi)核 android 的核心系統(tǒng)服務(wù)依賴于 linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理, 網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。 linux 內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。2.2 android游戲開發(fā)研究android系統(tǒng)開發(fā)采用java語言,使用google android sdk和eclipse ied進(jìn)行應(yīng)用程序的開發(fā)。在android sdk 附帶 android emulator,是一個(gè)運(yùn)行在pc端的手機(jī)模擬器,在開發(fā)中可以使用這個(gè)模擬器來運(yùn)行自己編寫的應(yīng)用程序。 2.2.1
30、android游戲引擎研究簡單地說,游戲引擎就是“用于控制所有游戲功能的主程序”,從計(jì)算碰撞、物理系統(tǒng)和物體的相對(duì)位置,到接受玩家的輸入,以及聲音的輸出等等功能都是游戲引擎需要負(fù)責(zé)的事情。它扮演著中場(chǎng)發(fā)動(dòng)機(jī)的角色,把游戲中的所有元素捆綁在一起,在后臺(tái)指揮它們有序地工作16。經(jīng)過不斷的進(jìn)化,如今的手機(jī)游戲引擎已經(jīng)發(fā)展為由多個(gè)子系統(tǒng)共同構(gòu)成的復(fù)雜系統(tǒng),從建模、動(dòng)畫到光影、粒子特效,從物理系統(tǒng)、碰撞檢測(cè)到文件管理、網(wǎng)絡(luò)特性,還有專業(yè)的編輯工具和插件。android平臺(tái)經(jīng)過2年的發(fā)展,通過移植其他平臺(tái)優(yōu)秀的游戲引擎也出現(xiàn)了多款游戲引擎。例如由國人開發(fā)的lgame(基于graphics api)游戲引擎
31、,rokon游戲引擎(基于opengl es),wiengine游戲引擎等等。但是這些引擎總是存在這樣或者那樣的問題,例如缺少開發(fā)文檔,引擎設(shè)計(jì)不完善。特別是這些游戲引擎在處理復(fù)雜圖形時(shí)效果始終不夠理想。 雖然目前手機(jī)硬件平臺(tái)相比以前有了較大的發(fā)展和進(jìn)步,但是對(duì)于一些復(fù)雜游戲圖形的處理仍然顯得有些“不給力”。為了提高游戲引擎處理復(fù)雜圖形的效率一些游戲引擎也提出了一些新的解決方案。例如wiengine2.0版本中就采用java jni 調(diào)用c+ native代碼進(jìn)行編寫,這一方法提高了處理復(fù)雜游戲動(dòng)畫的效率。采用c+編寫雖然提高了代碼執(zhí)行的效率,但是增加了代碼編寫的時(shí)間,同時(shí)也給程序調(diào)錯(cuò)和移植帶
32、來了巨大的問題。2.2.2 android游戲人工智能算法的研究游戲中的人工智能(artificial intelligence,簡稱ai),是指用來控制游戲中各種活動(dòng)對(duì)象行為的邏輯。大部分游戲,特別是角色扮演類游戲都需要人工智能,在游戲中玩家是主要人物,而游戲中的其他人物由人工智能操縱。游戲開發(fā)領(lǐng)域中的人工智能設(shè)計(jì)越來越被游戲開發(fā)者和玩家重視,因?yàn)樗芙o玩家提供更大的挑戰(zhàn)性,從而增加游戲的可玩性,一款游戲的生命力正在于游戲的可玩性。在吃豆人應(yīng)用中路徑搜索是游戲ai的需要解決最基本的問題之一。在當(dāng)今游戲工業(yè)界,a*算法是被大家最廣泛使用的人工智能尋路算法,也是最有效的最短路徑搜索算法之一。a*
33、算法實(shí)際上是一種基于廣度優(yōu)先搜索的啟發(fā)式搜索算法,通常采用估價(jià)函數(shù)對(duì)當(dāng)前的搜索位置進(jìn)行評(píng)估。標(biāo)準(zhǔn)的a*算法根據(jù)closed表對(duì)路徑進(jìn)行逆向提取,當(dāng)存在死路的時(shí),它會(huì)把走向死路的點(diǎn)也包含進(jìn)去,造成走彎路的現(xiàn)象,從而能得到解17。 另外在游戲中經(jīng)常使用的ai算法還有遺傳算法,他是一種隨機(jī)的群體搜索算法,它是模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過程的計(jì)算模型,是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法18。3進(jìn)展情況由于手機(jī)本身cpu計(jì)算條件的限制,a*和遺傳算法是否可以在android手機(jī)平臺(tái)上高效的使用還有待進(jìn)一步的檢驗(yàn)。通過在手機(jī)上實(shí)現(xiàn)這兩種算法,比較其優(yōu)缺點(diǎn),結(jié)合兩種算法的優(yōu)勢(shì),設(shè)計(jì)一種
34、高效的算法應(yīng)用在吃豆人游戲中,將是我接下來的主要目標(biāo)。對(duì)于游戲引擎的開發(fā)方面,著手研究roken 游戲引擎,lgame游戲引擎,j2me中的精靈類,通過參考其示例程序了解引擎原理及架構(gòu)。研究以上游戲引擎能否滿足吃豆人游戲動(dòng)畫的需求,并且比較各個(gè)游戲引擎的性能。游戲操控方面參考google android開發(fā)文檔,熟悉重力感應(yīng),多點(diǎn)觸控,方向鍵以及手機(jī)鍵盤的api,結(jié)合已有技術(shù)實(shí)現(xiàn)游戲操作的多元化。4 存在問題根據(jù)本人在android游戲編程上所遇到的問題,現(xiàn)將研究吃豆人游戲應(yīng)用中所遇到的問題總結(jié)如下:(1)由于google 對(duì)android系統(tǒng)更新過快,目前市場(chǎng)上流通的android系統(tǒng)版本多
35、達(dá)5種,由于高版本的系統(tǒng)對(duì)于低版本的系統(tǒng)并不兼容,所以給我們編程上帶來了諸多的問題,如何使編寫的程序在盡量多的系統(tǒng)上正確的運(yùn)行將是我所解決的首要問題。(2)在手機(jī)編程上另一個(gè)令人頭痛的問題是手機(jī)硬件上的差異(屏幕、處理器、內(nèi)存容量等)。由于硬件的差異,導(dǎo)致程序的移植性不強(qiáng),相同的程序在相同系統(tǒng)版本的不同手機(jī)上不能正常運(yùn)行,在編程中如何對(duì)代碼進(jìn)行優(yōu)化,使我的程序能在更多的手機(jī)上正常運(yùn)行也是現(xiàn)在所面臨的重要問題之一。(3)基于android游戲動(dòng)畫的實(shí)現(xiàn)的問題。所有計(jì)算機(jī)游戲的圖形的核心都是動(dòng)畫,在j2me手機(jī)游戲中,mdip2.0以上版本提供了一個(gè)有助于游戲制作的開發(fā)包,該開發(fā)包核心為sprit
36、e,使用該類能夠簡單管理動(dòng)畫角色的圖像11?;诖宋覍⑸钊胙芯縥2me中sprite類在android平臺(tái)上移植和使用的可能性。提高android游戲中動(dòng)畫展示的效果和效率,解決android系統(tǒng)中動(dòng)畫實(shí)現(xiàn)的問題。(4)游戲動(dòng)畫中的碰撞檢測(cè)問題。在游戲中,經(jīng)常需要進(jìn)行碰撞檢測(cè),例如在吃豆人游戲中如何檢測(cè)到吃豆人吃到豆子、吃豆人是否被怪物吃掉,都是檢測(cè)兩個(gè)物體是否發(fā)生碰撞,然后根據(jù)檢測(cè)的結(jié)果做出不同的處理。進(jìn)行碰撞檢測(cè)的物體可能不同的形狀,這就給碰撞檢測(cè)的算法帶來了許多的問題。如何高效正確的進(jìn)行圖像的碰撞檢測(cè)將是我吃豆人游戲中解決的重點(diǎn)問題。(5)游戲人工智能算法的實(shí)現(xiàn)問題。在游戲軟件中,游戲的
37、人工智能的高低直接決定了游戲互動(dòng)性和可玩性。而尋路問題又是人們研究的熱點(diǎn)問題之一。在吃豆人游戲中,需要設(shè)計(jì)怪物主動(dòng)跟蹤玩家的人工智能算法,并且可以通過參數(shù)對(duì)怪物的“聰明度”進(jìn)行調(diào)節(jié)。 參考文獻(xiàn)(含開題報(bào)告和文獻(xiàn)綜述)1 gong lei,zhou cong.development and research of mobile termination application based on androidj. computer and modernization,2008,8(1)2何偉 楊宗德 張兵等基于symbianos的手機(jī)開發(fā)與應(yīng)用m北京:人民郵電出版社,2006.33 百度百科 .
38、ios百科eb/ol 2010.12.4 百度百科. ophone百科eb/ol. http/5 李曉鶯edge增強(qiáng)型gsm的演進(jìn)數(shù)據(jù)業(yè)務(wù)介紹j通信世界 ,2004,2(1).6 殷福忠 孫立民以“3s”集成技術(shù)為基礎(chǔ)的“l(fā)bs”極地應(yīng)用研究j 地理信息世界2008,(03)7 百度百科. 游戲引擎 ebol 2010.128 李峰symbian+os游戲引擎的研究和應(yīng)用d 成都:西南交通大學(xué),2008 9 劉志成基于sprite類的游戲動(dòng)畫的實(shí)現(xiàn)j電腦編程技巧與維護(hù),2010.5(1)10 陳和平a*算法在游戲地圖尋徑中的應(yīng)用與實(shí)現(xiàn)j計(jì)算機(jī)應(yīng)用與軟件, 2005, 12 (1) 11 谷歌公
39、司android 中文文檔ebol12百度文庫手機(jī)游戲未來發(fā)展趨勢(shì)預(yù)測(cè) ebol 2010.1.13 百度百科angry birds百科ebol ,2010.7.14 百度百科opengl es百科ebol ,2010.12.15 胡偉android系統(tǒng)架構(gòu)及其驅(qū)動(dòng)研究j 廣州廣播電視大學(xué)學(xué)報(bào),2008.8(1)16 陳凱三維游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)d 浙江:浙江大學(xué),2007.617 楊科選人工智能尋路算法及其在游戲中的應(yīng)用研究d 長沙:中南大學(xué) ,2009.618 張亮亮 夏正友基于遺傳算法求解游戲關(guān)卡問題j 信息通信2009,3(1) 19shane conderandroid wirele
40、ss application developmentm. boston :addison-wesley,2010.20enck,w.,ongtang,m.,mcdaniel,p.understanding android securityj.security & privacy, ieee,2009,7(1).21sandeep kumar. location based services using androidc. internet multimedia services architecture and applications (imsaa), ieee international
41、conference ,2009.22劉昌平,范明鈺. android手機(jī)的輕量級(jí)訪問控制j.計(jì)算機(jī)應(yīng)用研究,2010,7(1). 畢業(yè)設(shè)計(jì)(論文)譯文及原稿譯文題目 深入理解安致系統(tǒng)的安全性 原稿題目 understanding android security 原稿出處 security & privacy, ieee.2009,7 深入理解安致系統(tǒng)的安全性下一代開放操作系統(tǒng)的主流將不會(huì)在桌面上,但是將會(huì)出現(xiàn)在我們每天攜帶的手機(jī)上。這些開放性的環(huán)境將會(huì)帶領(lǐng)這些新的應(yīng)用可能集成這些已經(jīng)存在的在線服務(wù),當(dāng)然隨著日以具增的數(shù)據(jù)與服務(wù)在手機(jī)上的支持,手機(jī)上的安全缺陷也越發(fā)明顯。下一代操作系統(tǒng)本質(zhì)在
42、于是否提供一個(gè)完整綜合的安全平臺(tái)。由開放手機(jī)聯(lián)盟(open handset alliance 谷歌領(lǐng)導(dǎo))所開發(fā)的android 系統(tǒng)是一個(gè)被廣泛看好的一個(gè)手機(jī)開源系統(tǒng),該系統(tǒng)提供一個(gè)基本的操作系統(tǒng),一個(gè)中間件應(yīng)用層,一個(gè)java開發(fā)工具和一個(gè)系統(tǒng)應(yīng)用收集器(collection of system applications )。盡管android sdk自2007年就發(fā)布了,但是第一部android 手機(jī)卻在2008年10月才誕生。自從這時(shí)起谷歌開起了自己的時(shí)代,t-mobile的g1的制造商臺(tái)灣 htc估算g1的發(fā)貨量在2008年底已經(jīng)超過100萬部。據(jù)業(yè)內(nèi)人士預(yù)期該g1手機(jī)的銷量將會(huì)在20
43、09年繼續(xù)保持。不久的將來其他許多手機(jī)供應(yīng)商要計(jì)劃支持這個(gè)系統(tǒng)。一個(gè)圍繞android龐大的開發(fā)者社區(qū)已經(jīng)建立,同時(shí)很多新的產(chǎn)品和應(yīng)用已經(jīng)可以在android上使用。一個(gè)android的主要賣點(diǎn)是它使開發(fā)人員無縫把在線服務(wù)擴(kuò)展到手機(jī)。這方面最明顯的例子是谷歌的緊密集成gmail,日歷和聯(lián)系人web應(yīng)用程序通過該系統(tǒng)。用戶只需提供一個(gè)android用戶名和密碼,其手機(jī)自動(dòng)同步與谷歌的服務(wù)。其他廠商正在迅速適應(yīng)自己的現(xiàn)有的即時(shí)通訊,社交網(wǎng)絡(luò)和游戲服務(wù)。android和許多企業(yè)尋找新途徑來整合他們的自己已有的業(yè)務(wù)到android上。傳統(tǒng)的臺(tái)式機(jī)和服務(wù)器的操作系統(tǒng)一直在努力進(jìn)行安全功能的集成。這些個(gè)人
44、和商業(yè)應(yīng)用在單一平臺(tái)的很出色,然而這一塊業(yè)務(wù)一個(gè)手機(jī)平臺(tái)上像android上不是很有用。它給了許多研究人員希望。android沒有停在為其他平臺(tái)體用應(yīng)用支持:應(yīng)用的執(zhí)行依賴于頂層java中間件,這個(gè)中間件運(yùn)行在嵌入式linux 內(nèi)核之上。所以開發(fā)人員要把他們的應(yīng)用部署到android必須使用其自定義的用戶界面環(huán)境。此外,android系統(tǒng)應(yīng)用限制各應(yīng)用相互調(diào)用api協(xié)作,并且對(duì)方為自己的用戶應(yīng)用進(jìn)行身份驗(yàn)證。盡管這些應(yīng)用有一定的安全特性,我們一些有經(jīng)驗(yàn)的開發(fā)人員開發(fā)android應(yīng)用人士透露,設(shè)計(jì)安全應(yīng)用程序并不總是直線前進(jìn)的。android使用一個(gè)簡單的許可標(biāo)簽分配模式限制訪問的資源,但其他
45、應(yīng)用程序的原因必要性和便利,其設(shè)計(jì)師們?cè)黾恿死Щ髮?duì)這個(gè)系統(tǒng)。本文試圖對(duì)android的安全的復(fù)雜性進(jìn)行講解,并注意一些可能的發(fā)展缺陷以及應(yīng)用程序的安全。我們通過嘗試得出一些經(jīng)驗(yàn)教訓(xùn),希望對(duì)未來的安全有用。android application android應(yīng)用程序框架對(duì)開發(fā)者來說是一個(gè)強(qiáng)制架構(gòu)。它沒有一個(gè)main()函數(shù)功能或單一入口點(diǎn)執(zhí)行,相反,開發(fā)人員必須在設(shè)計(jì)方面的應(yīng)用組件。我們開發(fā)的應(yīng)用對(duì)android的sdk的幫助的apiexample application。我們開發(fā)了一個(gè)描述如何創(chuàng)建android的應(yīng)用。有興趣的讀者可以去我們的站點(diǎn)下載讓我們考慮一個(gè)基于位置的社交網(wǎng)絡(luò)應(yīng)用,其中
46、手機(jī)用戶可以通過本應(yīng)用發(fā)現(xiàn)他們的朋友們位置。我們進(jìn)行功能拆分,分成兩個(gè)應(yīng)用程序:一個(gè)用于跟蹤查看朋友和常看他們。如圖1所示,friendtracker應(yīng)用包括跟蹤的組件specifc朋友的位置(例如,通過一個(gè)web服務(wù)),儲(chǔ)存地理坐標(biāo),并分享這些合作統(tǒng)籌與其他應(yīng)用程序。然后用戶使用友情查看器應(yīng)用程序來檢索地理坐標(biāo)和儲(chǔ)存在地圖上查看朋友。這兩個(gè)應(yīng)用程序包含的多個(gè)組件包括展示自己任務(wù),他們組件是由他們組件類型所決定的。一個(gè)android 開發(fā)者選擇從根據(jù)不同的組件類型組件的目的決定 (如與一個(gè)用戶或存儲(chǔ)數(shù)據(jù)接口)。圖1。例如android應(yīng)用程序。friendtracker和friendviewe
47、r應(yīng)用由多個(gè)不同類型的組件,每個(gè)提供一個(gè)不同的組功能。activity提供一個(gè)用戶界面,service執(zhí)行后臺(tái)處理,content提供存儲(chǔ),broadcast receiver接收機(jī)其他應(yīng)用程序的信息。android系統(tǒng)定義了4種組件類型。activity 組件定義應(yīng)用程序的用戶界面。通常,應(yīng)用程序開發(fā)者定義每一個(gè)活動(dòng)“畫面?!盿ctivity可以自己開始,也可能通過傳遞和返回值。在一時(shí)間只有一個(gè)鍵盤的系統(tǒng)activity可以進(jìn)行處理,在這個(gè)時(shí)候所有其他的activity都會(huì)被暫停。service組件執(zhí)行后臺(tái)處理。當(dāng)一個(gè)活動(dòng)需要進(jìn)行一些操作,在用戶界面消失以后(如下載一個(gè)文件或播放音樂),它通
48、常采取此種動(dòng)作特殊設(shè)計(jì)的服務(wù)。開發(fā)人員還可以在系統(tǒng)啟動(dòng)使用特殊的守護(hù)進(jìn)程,service通常定義一個(gè)遠(yuǎn)程過程調(diào)用(rpc),其他系統(tǒng)組件可以用來傳送接口命令和檢索數(shù)據(jù),以及注冊(cè)一個(gè)回調(diào)函數(shù)。content組件存儲(chǔ)和共享數(shù)據(jù) 用關(guān)系數(shù)據(jù)庫接口。每個(gè)content供應(yīng)者都有一個(gè)關(guān)聯(lián)的“權(quán)限”來形容它的內(nèi)容包含。其他組件使用時(shí)作為一個(gè)handle執(zhí)行sql查詢(如的select,insert或delete內(nèi)容。雖然content供應(yīng)者通常存儲(chǔ)把數(shù)值放在數(shù)據(jù)庫記錄中,數(shù)據(jù)檢索是實(shí)現(xiàn)特殊的例子,文件也同時(shí)通過內(nèi)容提供商共享接口。broadcast receiver該組件作為為從郵件信箱發(fā)送信息給他應(yīng)用程
49、序。通常,廣播消息的應(yīng)用程序代碼隱含的目的地。因此,廣播接收器訂閱這些目的地接收發(fā)送給它的消息。應(yīng)用程序代碼也可以解決明確廣播接收機(jī)包括命名空間分配。圖1顯示了friendtracker和friendviewer應(yīng)用所包含的不同的組件類型。開發(fā)者組件使用一個(gè)主要定義文件(也用于定義權(quán)限,稍后介紹)。上有一個(gè)應(yīng)用程序的組件的數(shù)量沒有限制定義每種類型,但作為習(xí)慣,一組件應(yīng)具有相同的名稱該應(yīng)用程序。通常情況下,這是作為在friendviewer activity中進(jìn)行注冊(cè)。這一動(dòng)作通常指示主activity作為該系統(tǒng)應(yīng)用程序啟動(dòng)器用于啟動(dòng)用戶界面;然而,如果需要啟動(dòng)特定的activity,開發(fā)者需要
50、者在選擇配置manifest 信息來實(shí)現(xiàn)這一個(gè)功能。在在friendtracker應(yīng)用,例如,friendtrackercontrol活動(dòng)被標(biāo)記為主用戶界面的啟動(dòng)點(diǎn)。在這種情況下,我們保留名稱“friendtracker”為服務(wù)執(zhí)行的核心組成部分的應(yīng)用程序邏輯。在friendtracker應(yīng)用包含四種類型的組件。在friendtracker服務(wù)搜尋調(diào)查外部服務(wù)并發(fā)現(xiàn)好友的位置。在我們的示例代碼中,位置是我們隨機(jī)生成的,但直接通過網(wǎng)絡(luò)連接組件接口的服務(wù)。該friendprovider content 提供保持最新的朋友地理坐標(biāo),friendtrackercontrol活動(dòng)用于啟動(dòng)和用戶界面停止跟
51、蹤好友功能,該系統(tǒng)一旦啟動(dòng) bootreceiver通知從廣播系統(tǒng)啟動(dòng)。該friendviewer應(yīng)用主要是顯示有關(guān)好友的位置的信息。每個(gè)啟動(dòng)的friendviewer將會(huì)列出了所有的朋友和他們的地理坐標(biāo),friendmap顯示他們?cè)诘貓D上的位置。friendreceiver將會(huì)等待接收附近的手機(jī)發(fā)送的消息這個(gè)消息來一個(gè)所指定的朋友。盡管我們可以在這些組件內(nèi)放置在friendtracker應(yīng)用,但是我們?nèi)匀粍?chuàng)建了一個(gè)單獨(dú)的應(yīng)用程序來展示跨應(yīng)用的溝通。此外,通過分離程序功能和接口,我們可以創(chuàng)建不同的顯示和功能,可選用戶界面是,許多應(yīng)用程序可以重用這些來自friendtracker的功能。comp
52、onent interaction該組件交互的主要機(jī)制是一個(gè)intent ,這是一個(gè)簡單的消息對(duì)象,其中包含一個(gè)目的地組件的地址和數(shù)據(jù)。 android的api定義了他的方法中傳入intent ,并使用該信息來啟動(dòng)一個(gè)activity例如開始一個(gè)activity(startactivity(intent),啟動(dòng)服務(wù)(startservice(intent)和廣播信息(sendbroadcast(intent)。android框架來通知這些方法的調(diào)用開始執(zhí)行在目標(biāo)應(yīng)用程序代碼。這個(gè)過程中內(nèi)部組件通信稱為一個(gè)動(dòng)作。簡單地說, intent對(duì)象定義的“intent”以執(zhí)行“action”。andro
53、id的一個(gè)最強(qiáng)大的特點(diǎn)是允許的多種intent尋址機(jī)制。開發(fā)人員可以解決一個(gè)目標(biāo)組件使用其應(yīng)用的空間,他們也可以指定一個(gè)隱含的名稱。在后一種情況下,系統(tǒng)決定了一個(gè)action的最佳組件,通過考慮安裝的應(yīng)用程序和用戶的選擇 。這個(gè)隱含的名字被稱為動(dòng)作字符串因?yàn)樗厥獾念愋偷恼?qǐng)求動(dòng)作。例如一個(gè)view動(dòng)作字符串,在一個(gè)intent中和數(shù)據(jù)域指向一個(gè)圖像文件,系統(tǒng)將會(huì)直接指首選圖像瀏覽器、開發(fā)者也能使用動(dòng)作字符串進(jìn)行大量廣播發(fā)送和接收。在接收端的接收者,開發(fā)者使用一intent 過濾器來定制特殊的動(dòng)作字符串。android系包括附加目標(biāo)的決議規(guī)則,但可選的數(shù)據(jù)操作字符串類型是最常見的。圖2顯示了組件
54、之間的friendtracker和friendviewer應(yīng)用程序和組件的交互作用在應(yīng)用程序中定義為基礎(chǔ)的android發(fā)布的一部分。在每一種情況下,發(fā)起一個(gè)組件與其他的溝通。為了簡單起見,我們稱這個(gè)為件間通信(icc)。在許多方面,icc是類似于進(jìn)程間通信(ipc)在基于unix的系統(tǒng)中。對(duì)于開發(fā)人員,icc的功能相同無論目標(biāo)是在相同或不同的應(yīng)用與界定將在下文的安全規(guī)則中說明??捎玫膇cc的動(dòng)作取決于目標(biāo)的組成部分。每個(gè)組件類型支持自己的類型例如,當(dāng)friendviewer開始friendmap的friendmap活動(dòng)出現(xiàn)在屏幕上。服務(wù)組件支持啟動(dòng),停止,并結(jié)合行動(dòng),所以friendtrac
55、kercontrol活動(dòng),例如,可以啟動(dòng)和停止friendtracker服務(wù)在后臺(tái)運(yùn)行。action的綁定組件之間建立連接,使啟動(dòng)執(zhí)行的服務(wù)定義的rpc。在我們的例子,friendtracker結(jié)合到系統(tǒng)中的服務(wù)器位置的管理。understand android security the next generation of open operating systems wont be on desktops or mainframes but on the small mobile devices we carry every day. the openness of these new e
56、nvironments will lead to new applications and markets and will enable greater integration with existing online services. however, as the importance of the data and services our cell phones support increases, so too do the opportunities for vulnerability. its essential that this next generation of platforms provide a comprehensive and usable sec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Windows Server網(wǎng)絡(luò)管理項(xiàng)目教程(Windows Server 2022)(微課版)9.1 知識(shí)引入-VPN
- Windows Server網(wǎng)絡(luò)管理項(xiàng)目教程(Windows Server 2022)(微課版)7.3 任務(wù)2 配置網(wǎng)絡(luò)負(fù)載均衡
- 《心理健康教育概論》串講
- 人教版九年級(jí)英語Unit 8 It must belong to Carla. Section B 3a - Self Check課時(shí)作業(yè)
- 2014-2020熔接機(jī)行業(yè)投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2024至2030年中國大口徑雙埋弧直縫焊管行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國臺(tái)式砂光機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國單動(dòng)型點(diǎn)膠機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國內(nèi)襯白紙鋁箔膠帶數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年中國鋁鐵防銹漆市場(chǎng)調(diào)查研究報(bào)告
- 《批判性思維與中學(xué)物理(批判性思維與基礎(chǔ)教育課程教學(xué)叢書)》讀書筆記模板
- 學(xué)校食品安全總監(jiān)職責(zé)
- 幼兒園教學(xué)課件社會(huì)教育《收獲的農(nóng)場(chǎng)》
- 醫(yī)師進(jìn)修考核表
- 2023年北京市石景山區(qū)初三英語二模試題及答案
- 部編版語文二年級(jí)上冊(cè) 小狗的小房子 導(dǎo)讀課(一等獎(jiǎng)創(chuàng)新教案)
- 數(shù)學(xué)在哪里(小學(xué)五年級(jí)上冊(cè))
- 旅游概論旅游資源教學(xué)設(shè)計(jì)教案
- 文化自信心得體會(huì)800字(6篇)
- 2023年行政法歷年司考真題案例分析
- 房顫抗凝及出血評(píng)分
評(píng)論
0/150
提交評(píng)論