版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢業(yè)設(shè)計(jì)(論文)開題報告</p><p> ?。ê墨I(xiàn)綜述、外文翻譯)</p><p> 題 目 基于Android手機(jī)平臺的吃豆人游戲設(shè)計(jì)與開發(fā) </p><p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> 開 題 報 告</b></p
2、><p> ?。òㄟx題的意義、可行性分析、研究的內(nèi)容、研究方法、</p><p> 擬解決的關(guān)鍵問題、預(yù)期結(jié)果、研究進(jìn)度計(jì)劃等)</p><p> 1. 選題的背景和意義</p><p><b> 選題的背景</b></p><p> 目前隨著移動設(shè)備越來越普及以及移動設(shè)備的硬件的提升,移動
3、設(shè)備的功能越來越完善,他的系統(tǒng)平臺也日漸火熱起來。目前國內(nèi)最常見的移動系統(tǒng)平臺有Symbian,iPhone,Windows Phone以及當(dāng)下正在逐步興起的Android。目前為止國內(nèi)已經(jīng)有很多Android系統(tǒng)的用戶。截止2010年第二季度Android系統(tǒng)的國內(nèi)市場占有率已經(jīng)過10%,在西歐以及北美智能手機(jī)市場占有率也在20%左右??梢夾ndroid系統(tǒng)正在崛起之中。但是對于Android系統(tǒng)的應(yīng)用和開發(fā)在國內(nèi)仍然屬于起步和探索階
4、段。急需要大量的相關(guān)技術(shù)和人員的投入。</p><p> 下面首先介紹一下Android系統(tǒng)。Android是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),是Google在2007年11月5日公布的手機(jī)系統(tǒng)平臺,早期由Google開發(fā),后由(Open Handset Alliance)開發(fā)。它采用了軟件堆層(Software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以Linux核心工作為基礎(chǔ),只提供
5、基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程式的一部分[1]。</p><p> 手機(jī)游戲作為Android系統(tǒng)平臺的一個重要組成部分,正在被越來越多的人所重視。全球在使用的移動電話已經(jīng)超過10億部,而且這個數(shù)字每天都在不斷增加。在除美國之外的各個發(fā)達(dá)國家,手機(jī)用戶都比計(jì)算機(jī)用戶多。手機(jī)游戲潛在的市場比其他任何平臺,比如PlayStation和GameBoy都要大。</p>&
6、lt;p> 在學(xué)院和老師的支持和幫助下,我所在的手機(jī)開放實(shí)驗(yàn)室在2009年底就開始對Android系統(tǒng)進(jìn)行深入細(xì)致的研究。在國內(nèi)Android相關(guān)領(lǐng)域?qū)儆谳^早研究的一批,經(jīng)過老師和同學(xué)一年多的努力,在這個方面也積累了一定的知識和技能。所以希望通過這篇論文的研究,展示我這一年多來學(xué)習(xí)與實(shí)踐的成果,給本科四年的學(xué)習(xí)交上一份圓滿的答卷。</p><p><b> 國內(nèi)外研究現(xiàn)狀</b>&
7、lt;/p><p> 1.2.1 國內(nèi)外手機(jī)系統(tǒng)現(xiàn)狀</p><p> 目前國外各軟硬件廠商已經(jīng)推出過多款手機(jī)操作系統(tǒng)。下面簡單介紹一下現(xiàn)主流手機(jī)操作系統(tǒng)。</p><p> 現(xiàn)階段使用較廣泛大家也相對熟悉的手機(jī)操作系統(tǒng)是由諾基亞公司主導(dǎo)推出的Symbian操作系統(tǒng)。Symbian是為手機(jī)而設(shè)計(jì)的操作系統(tǒng),它是一個實(shí)時性,多任務(wù)的純32位嵌入式的操作系統(tǒng),具有低能
8、耗,內(nèi)存占用較少等特點(diǎn)?,F(xiàn)在流行的Symbian系統(tǒng)有以下四個版本,分別為S40、S60(第二版)、S60(第三版)、S60(第五版)。S60(第五版)為觸摸屏手機(jī)版本[2]。</p><p> iOS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng)。它主要是給iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系統(tǒng)一樣,它也是以Darwin為基礎(chǔ)的。iOS的系統(tǒng)架構(gòu)分為四個層次:核心操
9、作系統(tǒng)層(the Core OS layer),核心服務(wù)層(the Core Services layer),媒體層(the Media layer),可輕觸層(the Cocoa Touch layer)。系統(tǒng)操作占用大概240MB的存儲器空間[3]。</p><p> 相對國外手機(jī)系統(tǒng)百花齊放的局面,國內(nèi)手機(jī)操作系統(tǒng)則處于剛起步的階段。目前國內(nèi)還沒有自主研發(fā)并商品化的手機(jī)操作系統(tǒng)。當(dāng)然近些年來國內(nèi)企業(yè)和我國
10、政府在這方也投入了大量的人力和物力。同時也取得了一定成果。</p><p> 在2009年8月,由中國移動所主導(dǎo)開發(fā)OPhone平臺面世。OPhone平臺采用開源的Linux作為系統(tǒng)內(nèi)核,借鑒并兼容Android平臺,集成靈活高效的Java應(yīng)用框架,充分借鑒當(dāng)下主流手機(jī)操作系統(tǒng)所具有的良好用戶體驗(yàn),提供了一套完整的電話解決方案和各類移動數(shù)據(jù)業(yè)務(wù)解決方案[4]。</p><p> 1.2
11、.2 國內(nèi)外手機(jī)應(yīng)用現(xiàn)狀</p><p> 隨著3G在中國的全面啟動,它所帶來的巨大機(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á)到384KB/秒的2.75G過渡技術(shù)而欣喜的時候,國外早已開始試行HSDPA(高速下行分組接入
12、,是一種移動通信協(xié)議,亦稱為3.5G)這種3.5G技術(shù),傳輸速度更可達(dá)到驚人的數(shù)兆每秒,而基于其上所開發(fā)的延伸功能更是數(shù)不勝數(shù),所以國內(nèi)外手機(jī)應(yīng)用也存在的較大的差異。但國內(nèi)外對手機(jī)應(yīng)用的需求方向是大致相似的,主要集中在信息服務(wù),娛樂,學(xué)習(xí)這些方面。</p><p> 目前手機(jī)應(yīng)用中數(shù)量最大,使用人數(shù)最多的應(yīng)用類型是手機(jī)游戲。該類應(yīng)用作為傳統(tǒng)手機(jī)應(yīng)用,在各個平臺上發(fā)展已近相對完善,手機(jī)上對各種流媒體的播放也已完美
13、的支持。各類傳統(tǒng)PC游戲廠商也已進(jìn)入手機(jī)領(lǐng)域。根據(jù)iResearch艾瑞市場咨詢整理的國外數(shù)據(jù)顯示,全球手機(jī)游戲市場的收入規(guī)模在2005年達(dá)到了102億美元, 2008年達(dá)到520億美元[6] 。07年之后,手機(jī)游戲市場增速開始減緩,傳統(tǒng)手機(jī)游戲逐漸顯現(xiàn)頹勢,市場增長主要由基于智能手機(jī)平臺的游戲所帶動。所以Android游戲進(jìn)入智能手機(jī)游戲市場,必將打破原有格局,開辟手機(jī)游戲新紀(jì)元。</p><p> 其他方面
14、較為熱門的有基于地理位置的信息服務(wù)(Location Based Service LBS)它是通過電信移動運(yùn)營商的無線電通訊網(wǎng)絡(luò)(如GSM網(wǎng)、CDMA網(wǎng))或外部定位方式(如GPS)獲取移動終端用戶的位置信息(地理坐標(biāo),或大地坐標(biāo)),在GIS(Geographic Information System,地理信息系統(tǒng))平臺的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)。例如手機(jī)定位,導(dǎo)航服務(wù)[7]。</p><p>
15、近年來十分熱門的網(wǎng)絡(luò)社交服務(wù)(Social Networking Services)也已進(jìn)入到手機(jī)客戶端領(lǐng)域。例如國內(nèi)有名的社交網(wǎng)站人人網(wǎng)已經(jīng)針對Iphone,android,塞班等手機(jī)平臺推出了手機(jī)客戶端。國外最大的社交Fackbook也已經(jīng)傳出正在進(jìn)行針對手機(jī)的產(chǎn)品的研發(fā)。Twiter,Myspace等國外知名社交類網(wǎng)站都已經(jīng)推出手機(jī)版。口碑網(wǎng)在今年也已經(jīng)推出針對多個手機(jī)平臺的客戶端程序。MSN,QQ等即時通信類的應(yīng)用也已經(jīng)在各個主
16、流手機(jī)平臺推出。</p><p> 手機(jī)辦公類軟件在手機(jī)上也正日趨完善,在手機(jī)上編輯查看各類文檔已經(jīng)實(shí)現(xiàn),在android平臺上的QuickOffice就是這樣的軟件。在Google Market(一個谷歌針對android系統(tǒng)用戶所開發(fā)的應(yīng)用商場)上已經(jīng)有過萬的企業(yè)應(yīng)用辦公套件。</p><p><b> 1.3 發(fā)展趨勢</b></p><
17、p> 根據(jù)對谷歌電子市場中的Android應(yīng)用程序的調(diào)查發(fā)現(xiàn),該市場中絕大部分是游戲軟件。Android平臺的開放性及服務(wù)免費(fèi)大大降低了應(yīng)用開發(fā)的門檻,使得開發(fā)者在游戲開發(fā)中投入成本相對較少。而隨著技術(shù)的發(fā)展手機(jī)終端的特性使其具備了地理位置、重力感應(yīng)、觸摸控制等固定終端所不具備的特性,更容易開發(fā)出極具創(chuàng)意的游戲產(chǎn)品。Android設(shè)備數(shù)量的持續(xù)增長使得這個市場對優(yōu)質(zhì)游戲的需求越來越大。</p><p>
18、 Android平臺上的游戲相比應(yīng)用軟件,不需要進(jìn)行嚴(yán)格的市場細(xì)分,不需要針對目標(biāo)用戶量身定制。這是因?yàn)橛螒蛲婕业暮诵男枨笫墙y(tǒng)一的,那就是:娛樂與打發(fā)時間(乃至更高層面的競技需求和群體認(rèn)同需求),這種需求附著于特定的社會發(fā)展階段,不受地域的限制,甚至于能夠穿透文化壁壘。因此,絕大多數(shù)種類的游戲都具備傳染性與普適性,每一個售出的游戲都像一個火種,將會點(diǎn)燃周圍潛在玩家的激情,激情的火焰迅速蔓延,最終吞噬整個需求市場,當(dāng)然前提是開發(fā)的游戲是高
19、質(zhì)量的。</p><p> 此外,幾乎每一個Android手機(jī)用戶都是游戲的需求者,都是潛在的顧客,現(xiàn)今的1000多萬Android用戶不過是冰山一角,另根據(jù)IDC機(jī)構(gòu)預(yù)計(jì)在2013年Android手機(jī)用戶將達(dá)到6800萬,所以Android手機(jī)游戲的需求也將不斷擴(kuò)充。</p><p> 在Android系統(tǒng)面世短短兩年時間內(nèi), Android以勢如破竹之勢,迅速的蠶食著其他手機(jī)廠商在
20、市場中的份額,而終端市場幾乎每隔一天就會有新的Android機(jī)型問世。另據(jù)國外媒體報道,Android應(yīng)用軟件數(shù)量已經(jīng)突破13萬大關(guān)。業(yè)內(nèi)由此預(yù)期,Android平臺可能會在未來幾個月內(nèi)將躋身手機(jī)操作系統(tǒng)前三甲,并獲得亞軍的地位。</p><p> 雖然Android系統(tǒng)前景廣闊,但是基于該平臺的手機(jī)游戲開發(fā)也面臨著各種問題。平臺硬件差異,代碼分裂,用戶沒有良好的付費(fèi)習(xí)慣等等缺點(diǎn)一直被Android游戲開發(fā)者詬
21、病,但是Android快速的發(fā)展卻使開發(fā)者又無法放棄這塊大蛋糕,所以其他手機(jī)平臺的開發(fā)者也慢慢轉(zhuǎn)向Android游戲開發(fā)。</p><p> 綜上所述,在今后幾年內(nèi)Android游戲應(yīng)用將會成為手機(jī)應(yīng)用市場的主流應(yīng)用,并且需要大量人力物力的投入。</p><p><b> 2.研究的基本內(nèi)容</b></p><p> 根據(jù)近一年來學(xué)習(xí)An
22、droid平臺游戲動畫的經(jīng)驗(yàn),結(jié)合現(xiàn)在已有技術(shù),基于游戲動畫設(shè)計(jì)的基本原理。設(shè)計(jì)一個基于Android平臺的吃豆人的游戲應(yīng)用。</p><p> 設(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)行游戲控制、游戲動畫的實(shí)現(xiàn)、基于圖形的碰撞檢測、數(shù)據(jù)在手機(jī)系統(tǒng)和網(wǎng)絡(luò)上存
23、儲及人工智能的實(shí)現(xiàn)。</p><p> 解決這些在Android游戲開發(fā)中所共同面臨的問題,對于Android游戲的開發(fā)效率與Android游戲的質(zhì)量有著極大的幫助作用。</p><p><b> 2.1 基本框架</b></p><p> 首先基于Android平臺特性,把本應(yīng)用主要劃分為五大模塊分別為:程序控制界面、數(shù)據(jù)持久化模塊,網(wǎng)
24、絡(luò)數(shù)據(jù)傳輸模塊,游戲邏輯模塊,游戲音效模塊。</p><p> 程序體系結(jié)構(gòu)如下圖所示:</p><p> 圖1.1 程序體系結(jié)構(gòu)圖</p><p> 本程序主要通過程序控制界面和用戶進(jìn)行交互, 用戶通過該界面上的相應(yīng)選項(xiàng)進(jìn)行游戲,控制怪物進(jìn)行游戲,提交游戲積分,存儲游戲積分,播放游戲音樂等各項(xiàng)功能。程序控制界面同時也負(fù)責(zé)各模塊間的數(shù)據(jù)傳輸。</p>
25、;<p> 游戲邏輯模塊主要功能是負(fù)責(zé)游戲畫面的繪制,游戲中敵對怪物人工智能的實(shí)現(xiàn),以及用戶輸入的控制的響應(yīng)(如鍵盤,導(dǎo)航鍵和屏幕輸入)。 本模塊主要解決游戲引擎的實(shí)現(xiàn)、應(yīng)用多種手機(jī)內(nèi)置傳感器進(jìn)行游戲控制和游戲的人工智能的問題,實(shí)現(xiàn)該模塊能使用戶得到更好的動畫體驗(yàn)和游戲操控體驗(yàn),明顯提升游戲的用戶好感動和實(shí)用性。</p><p> 下圖是游戲邏輯塊的體系結(jié)構(gòu),游戲邏輯模塊主要分為人工智能、游戲繪
26、圖引擎和人機(jī)交互控制。</p><p> 圖1.2 吃豆人程序游戲邏輯模塊結(jié)構(gòu)圖</p><p> 數(shù)據(jù)持久化模塊主要負(fù)責(zé)游戲中所產(chǎn)生的內(nèi)存數(shù)據(jù),轉(zhuǎn)化成可存儲的XML數(shù)據(jù)。該模塊包含XML數(shù)據(jù)結(jié)構(gòu)定義、XML生成和XML數(shù)據(jù)解析。本模塊的主要解決Android系統(tǒng)中數(shù)據(jù)存儲的問題。</p><p> 具體結(jié)構(gòu)如下圖所示:</p><p>
27、; 圖1.3吃豆人程序體數(shù)據(jù)持久化圖</p><p> 網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊主要功能為提交用戶游戲評分至網(wǎng)絡(luò)服務(wù)器中。該模塊主要用來實(shí)現(xiàn)網(wǎng)絡(luò)積分榜功能。讓原本單機(jī)的游戲具有網(wǎng)絡(luò)競賽的功能。提升游戲的可玩性,吸引更多用戶使用游戲。</p><p> 游戲音效模塊提供游戲音樂的播放和關(guān)閉的功能,其向主控制界面暴露開啟和關(guān)閉音樂的接口。</p><p> 2.2 研究
28、的重點(diǎn)和難點(diǎn)</p><p> 根據(jù)本人在Android游戲編程上所遇到的問題,現(xiàn)將研究吃豆人游戲應(yīng)用中所遇到的問題總結(jié)如下:</p><p> ?。?)基于Android游戲動畫的實(shí)現(xiàn)。所有計(jì)算機(jī)游戲的圖形的核心都是動畫,在J2ME手機(jī)游戲中,MDIP2.0以上版本提供了一個有助于游戲制作的開發(fā)包,該開發(fā)包核心為Sprite,使用該類能夠簡單管理動畫角色的圖像[9]?;诖宋覍⑸钊胙芯?/p>
29、J2ME中Sprite類在Android平臺上移植和使用的可能性。提高Android游戲中動畫展示的效果和效率,解決Android系統(tǒng)中動畫實(shí)現(xiàn)的問題。</p><p> ?。?)游戲地圖的數(shù)據(jù)結(jié)構(gòu)的表示。解決此問題主要解決在Android平臺中如何高效的對復(fù)雜的游戲地圖進(jìn)行存儲和解析,合理有效的數(shù)據(jù)結(jié)構(gòu)對提高游戲整體的效率極大地幫助。</p><p> ?。?)游戲動畫中的碰撞檢測問題。
30、在游戲中,經(jīng)常需要進(jìn)行碰撞檢測,例如在吃豆人游戲中如何檢測到吃豆人吃到豆子、吃豆人是否被怪物吃掉,都是檢測兩個物體是否發(fā)生碰撞,然后根據(jù)檢測的結(jié)果做出不同的處理。進(jìn)行碰撞檢測的物體可能不同的形狀,這就給碰撞檢測的算法帶來了許多的問題。如何高效正確的進(jìn)行圖像的碰撞檢測將是我吃豆人游戲中解決的重點(diǎn)問題。</p><p> ?。?)游戲人工智能算法的實(shí)現(xiàn)。在游戲軟件中,游戲的人工智能的高低直接決定了游戲互動性和可玩性。
31、而尋路問題又是人們研究的熱點(diǎn)問題之一。在吃豆人游戲中,需要設(shè)計(jì)怪物主動跟蹤玩家的人工智能算法,并且可以通過參數(shù)對怪物的“聰明度”進(jìn)行調(diào)節(jié)。</p><p> ?。?)人機(jī)交互界面的友好性。優(yōu)美的圖像界面將會給使用者帶來舒適和美感,在吃豆人游戲中,設(shè)計(jì)出時尚美觀的界面和游戲圖片,給使用者留下良好的印象,提高游戲的品質(zhì)。</p><p> 2.3 擬解決的關(guān)鍵問題</p>&l
32、t;p> 關(guān)于Android游戲動畫的解決方案,我準(zhǔn)備實(shí)現(xiàn)一個相對高效并且簡單易用的游戲引擎,或者從其他手機(jī)平臺移植相對較為成熟的游戲動畫引擎。解決此問題可以為吃豆人游戲以及其他類似的動畫游戲提供流暢的動畫效果,實(shí)現(xiàn)游戲引擎同時也可以提高游戲動畫的代碼復(fù)用率,提高游戲編程的效率。</p><p> 深入理解Android 系統(tǒng)的Dalvik虛擬機(jī)工作機(jī)制。由于Android平臺使用Java語言進(jìn)行開發(fā),
33、谷歌的工程師改寫了Java ME的虛擬機(jī)。眾所周知虛擬機(jī)的垃圾回收會造成系統(tǒng)資源的消耗,影響游戲動畫的流暢性。解決虛擬機(jī)垃圾回收時所造成的占用系統(tǒng)資源較大的問題,可以提高游戲的流暢性,提升用戶的游戲體驗(yàn)。</p><p> 解決游戲人工智能的解決方案,吃豆人游戲中,地圖尋路問題并非如此簡單,必須考慮多方面的因素,比如游戲地圖的文件結(jié)構(gòu)、是否可通以及目標(biāo)點(diǎn)所在的磚塊是否可通等。解決吃豆人游戲中的地圖尋徑問題。并查
34、找A*,啟發(fā)式搜索算法[10],遺傳算法等算法在本應(yīng)用中實(shí)現(xiàn)的可能性。</p><p> 觸屏以及重力感應(yīng)器等操控方式的處理問題。在Android平臺中相對傳統(tǒng)的手機(jī)系統(tǒng),Android系統(tǒng)提供多種傳感器的調(diào)用接口。探索使用手機(jī)導(dǎo)航球,重力感應(yīng),觸屏操作等新型操控模式提高用戶操作體驗(yàn)。</p><p> 3.研究的方法及措施</p><p> 利用網(wǎng)絡(luò)查閱國內(nèi)
35、外相關(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ā)各個功能模塊,盡量降低各模塊之間的耦合,在各個功能模塊實(shí)現(xiàn)的基礎(chǔ)上構(gòu)建靈活方便的UI界面。 </p><p><b> 4.預(yù)期研究成果</b></p><p> 在新的Go
36、ogle Android智能手機(jī)平臺上實(shí)現(xiàn)吃豆人游戲,游戲分為十個關(guān)卡,每個關(guān)卡經(jīng)過仔細(xì)的設(shè)計(jì),按照難度依次遞進(jìn)。游戲的主要功能包括:每關(guān)有3個怪物,吃豆人在設(shè)計(jì)的關(guān)卡地圖中吃光所有的豆子和其他特殊作用的物品為過關(guān)。吃豆人在運(yùn)動過程中如果和怪物相遇那么吃豆人死亡;游戲提供多種道具,包括加分道具,怪物減速道具,生命道具,吃豆人吃到每個不同道具時根據(jù)道具的預(yù)定義行為進(jìn)行處理;吃豆人控制方式包括使用觸屏控制,軟鍵盤以及重力感應(yīng)器;支持背景音樂
37、,暫停等操作;支持全球排行榜;通關(guān)后地圖重新開始,不過每關(guān)的怪物增加為4個。</p><p> 完成畢業(yè)論文和畢業(yè)設(shè)計(jì)以及畢業(yè)答辯。</p><p> 開發(fā)游戲能發(fā)布到國內(nèi)外公共Android應(yīng)用平臺上,例如移動的MM市場和谷歌的電子市場。</p><p> 為本應(yīng)用申請軟件著作權(quán)。</p><p> 5.研究工作進(jìn)度計(jì)劃</p
38、><p> 2010年第7學(xué)期 </p><p> 第6-9周 查閱文獻(xiàn)</p><p> 第10-12周 文獻(xiàn)綜述和外文翻譯</p><p> 第12-15周 撰寫開題報告</p><p> 第16-17周 程序設(shè)計(jì)與開發(fā)</p><p> 2011年第8學(xué)期 </p&g
39、t;<p> 第1-9周 程序設(shè)計(jì)與開發(fā)</p><p> 第10-12周 撰寫畢業(yè)論文</p><p> 第13-14周 論文的答辯與修改</p><p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> 文 獻(xiàn) 綜 述</b></p><
40、p> ?。ò▏鴥?nèi)外現(xiàn)狀、研究方向、進(jìn)展情況、存在問題、參考依據(jù)等)</p><p> Android手機(jī)游戲開發(fā)研究現(xiàn)狀</p><p> 1. 國內(nèi)外研究現(xiàn)狀</p><p> 今天的手機(jī)不在是單純的通訊工具,已經(jīng)成為了集通訊、PIM、音樂、電影、游戲娛樂等為一體的個人便攜終端。手機(jī)在通訊功能以外的綜合附加值越高,加之便攜的特性,使得人們對手機(jī)的依賴
41、性越強(qiáng)[12]。</p><p> 游戲作為日常休閑的娛樂活動,歷經(jīng)了電視游戲、電腦單機(jī)游戲、電腦網(wǎng)絡(luò)游戲這幾個階段。現(xiàn)在,游戲作為一個產(chǎn)業(yè),可以看出游戲市場有著非常龐大的需求。</p><p> 手機(jī)游戲的出現(xiàn),給手機(jī)和游戲市場帶來了新的活力,由于娛樂時不受時間和地點(diǎn)的限制,手機(jī)游戲已經(jīng)成為大眾娛樂的又一新選擇。隨著科技的發(fā)展,現(xiàn)在手機(jī)的功能也越來越多,越來越強(qiáng)大。而手機(jī)游戲也遠(yuǎn)遠(yuǎn)不
42、是我們印象中的什么“俄羅斯方塊”“貪吃蛇”之類畫面簡陋,規(guī)則簡單的游戲,進(jìn)而發(fā)展到了可以和掌上游戲機(jī)媲美,具有很強(qiáng)的娛樂性和交互性的復(fù)雜形態(tài)了。</p><p> 近期在iPhone和Android平臺上火爆的游戲憤怒的小鳥游戲,采用優(yōu)美的動畫,先進(jìn)的物理游戲引擎以及獨(dú)特的創(chuàng)意,成為了本年度最受用戶喜歡的手機(jī)游戲之一[13]。其制作公司僅在Android平臺的廣告收入就達(dá)100萬美元每月。</p>
43、<p> 可見手機(jī)游戲已經(jīng)從單一內(nèi)容到多元內(nèi)容,從簡單畫面和音樂進(jìn)入到了復(fù)雜的多媒體效果之中。為了實(shí)現(xiàn)手機(jī)游戲豐富的動畫效果和良好的用戶體驗(yàn),一些原本在PC上的游戲動畫引擎也被移植到了手機(jī)這個平臺上,例如Androids上的OpenGL ES 游戲動畫庫(OpenGL for Embedded Systems 是OpenGL 三維圖形 API 的子集,針對手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)[14])、BOX2D物理游
44、戲引擎(該引擎主要用來模擬物理碰撞和物理運(yùn)動)。</p><p> 在手機(jī)游戲動畫效果提升的同時,新硬件功能(比如重力感應(yīng)、多點(diǎn)觸控)的加入,也促使了一些創(chuàng)新的手機(jī)游戲的推出。如重力滾動球的游戲就是根據(jù)手機(jī)重力感應(yīng)功能編寫而成。IPhone上的街頭霸王、刺客信條等游戲就使用到了多點(diǎn)觸控這一功能。</p><p> 綜上所述現(xiàn)階段手機(jī)游戲的開發(fā)也進(jìn)入了一個新的階段,在這個階段的開發(fā)中手機(jī)
45、游戲不僅需要豐富的編程經(jīng)驗(yàn),還需要對新型手機(jī)特點(diǎn),用戶需求新的娛樂需求的進(jìn)一步發(fā)掘,從而開發(fā)出符合用戶使用習(xí)慣,吸引用戶的游戲。</p><p><b> 2.研究方向</b></p><p> 2.1 Android系統(tǒng)架構(gòu)研究</p><p> Android平臺是一組面向移動設(shè)備的軟件包,它包含了一個操作系統(tǒng)、中間件和關(guān)鍵應(yīng)用程序。
46、Android是一組面向移動設(shè)備的軟件包(目前不僅限于移動手機(jī)領(lǐng)域,Android也已經(jīng)進(jìn)入其他嵌入式領(lǐng)域,如汽車中控臺,MP3/MP4等),包含了一個操作系統(tǒng),中間件和關(guān)鍵應(yīng)用程序。Android SDK 的預(yù)覽版提供了必需的開發(fā)工具和應(yīng)用程序接口,基于這些,我們就可以使用Java編程語言在Android平臺上開發(fā)應(yīng)用程序了[15]。</p><p> Android系統(tǒng)架構(gòu)基本分為應(yīng)用(Appli
47、cations),應(yīng)用框架(Application Frameworks),庫函數(shù)(Libraries),運(yùn)行時環(huán)境(Android Runtime),Linux 內(nèi)核(Linux Kernel)。下方圖表顯示了Android操作系統(tǒng)的主要組件[15]。</p><p> 圖2.1 Android系統(tǒng)架構(gòu)圖</p><p><b> 1.應(yīng)用程序</b><
48、/p><p> Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。</p><p><b> 2.應(yīng)用程序框架</b></p><p> 開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡
49、化了組件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。</p><p><b> 3.系統(tǒng)運(yùn)行庫</b></p><p> Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android
50、 應(yīng)用程序框架為開發(fā)者提供服務(wù)。Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。</p><p> 4.Android運(yùn)行時</p><p> 每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik被設(shè)計(jì)成一個設(shè)備可以同時高效地運(yùn)行多個虛擬系統(tǒng)。 Dalvik虛擬機(jī)執(zhí)行(.dex)的Dalvik可執(zhí)行
51、文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。同時虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由JAVA編譯器編譯,然后通過SDK中 的“dx” 工具轉(zhuǎn)化成“.dex”格式由虛擬機(jī)執(zhí)行。</p><p> Dalvik虛擬機(jī)依賴于linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。</p><p> 5.Linux 內(nèi)核</p><p> Android 的核心系統(tǒng)服務(wù)
52、依賴于 Linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理, 網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。 Linux 內(nèi)核也同時作為硬件和軟件棧之間的抽象層。</p><p> 2.2 Android游戲開發(fā)研究</p><p> Android系統(tǒng)開發(fā)采用JAVA語言,使用Google Android SDK和Eclipse IED進(jìn)行應(yīng)用程序的開發(fā)。在Android SDK 附帶 Android
53、Emulator,是一個運(yùn)行在PC端的手機(jī)模擬器,在開發(fā)中可以使用這個模擬器來運(yùn)行自己編寫的應(yīng)用程序。 </p><p> 2.2.1 Android游戲引擎研究</p><p> 簡單地說,游戲引擎就是“用于控制所有游戲功能的主程序”,從計(jì)算碰撞、物理系統(tǒng)和物體的相對位置,到接受玩家的輸入,以及聲音的輸出等等功能都是游戲引擎需要負(fù)責(zé)的事情。它扮演著中場發(fā)動機(jī)的角色,把游戲中的所有元素
54、捆綁在一起,在后臺指揮它們有序地工作[16]。</p><p> 經(jīng)過不斷的進(jìn)化,如今的手機(jī)游戲引擎已經(jīng)發(fā)展為由多個子系統(tǒng)共同構(gòu)成的復(fù)雜系統(tǒng),從建模、動畫到光影、粒子特效,從物理系統(tǒng)、碰撞檢測到文件管理、網(wǎng)絡(luò)特性,還有專業(yè)的編輯工具和插件。Android平臺經(jīng)過2年的發(fā)展,通過移植其他平臺優(yōu)秀的游戲引擎也出現(xiàn)了多款游戲引擎。例如由國人開發(fā)的LGame(基于Graphics API)游戲引擎,Rokon游戲引擎(
55、基于OpenGL ES),WiEngine游戲引擎等等。</p><p> 但是這些引擎總是存在這樣或者那樣的問題,例如缺少開發(fā)文檔,引擎設(shè)計(jì)不完善。特別是這些游戲引擎在處理復(fù)雜圖形時效果始終不夠理想。 雖然目前手機(jī)硬件平臺相比以前有了較大的發(fā)展和進(jìn)步,但是對于一些復(fù)雜游戲圖形的處理仍然顯得有些“不給力”。</p><p> 為了提高游戲引擎處理復(fù)雜圖形的效率一些游戲引擎也提出了一些新
56、的解決方案。例如WiEngine2.0版本中就采用Java JNI 調(diào)用C++ Native代碼進(jìn)行編寫,這一方法提高了處理復(fù)雜游戲動畫的效率。采用C++編寫雖然提高了代碼執(zhí)行的效率,但是增加了代碼編寫的時間,同時也給程序調(diào)錯和移植帶來了巨大的問題。</p><p> 2.2.2 Android游戲人工智能算法的研究</p><p> 游戲中的人工智能(Artificial Intel
57、ligence,簡稱AI),是指用來控制游戲中各種活動對象行為的邏輯。大部分游戲,特別是角色扮演類游戲都需要人工智能,在游戲中玩家是主要人物,而游戲中的其他人物由人工智能操縱。游戲開發(fā)領(lǐng)域中的人工智能設(shè)計(jì)越來越被游戲開發(fā)者和玩家重視,因?yàn)樗芙o玩家提供更大的挑戰(zhàn)性,從而增加游戲的可玩性,一款游戲的生命力正在于游戲的可玩性。</p><p> 在吃豆人應(yīng)用中路徑搜索是游戲AI的需要解決最基本的問題之一。<
58、/p><p> 在當(dāng)今游戲工業(yè)界,A*算法是被大家最廣泛使用的人工智能尋路算法,也是最有效的最短路徑搜索算法之一。A*算法實(shí)際上是一種基于廣度優(yōu)先搜索的啟發(fā)式搜索算法,通常采用估價函數(shù)對當(dāng)前的搜索位置進(jìn)行評估。標(biāo)準(zhǔn)的A*算法根據(jù)Closed表對路徑進(jìn)行逆向提取,當(dāng)存在死路的時,它會把走向死路的點(diǎn)也包含進(jìn)去,造成走彎路的現(xiàn)象,從而能得到解[17]。 </p><p> 另外在游戲中經(jīng)常使用的
59、AI算法還有遺傳算法,他是一種隨機(jī)的群體搜索算法,它是模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過程的計(jì)算模型,是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法[18]。</p><p><b> 3.進(jìn)展情況</b></p><p> 由于手機(jī)本身CPU計(jì)算條件的限制,A*和遺傳算法是否可以在Android手機(jī)平臺上高效的使用還有待進(jìn)一步的檢驗(yàn)。通過在手機(jī)上實(shí)現(xiàn)這兩種算
60、法,比較其優(yōu)缺點(diǎn),結(jié)合兩種算法的優(yōu)勢,設(shè)計(jì)一種高效的算法應(yīng)用在吃豆人游戲中,將是我接下來的主要目標(biāo)。</p><p> 對于游戲引擎的開發(fā)方面,著手研究Roken 游戲引擎,LGame游戲引擎,J2ME中的精靈類,通過參考其示例程序了解引擎原理及架構(gòu)。研究以上游戲引擎能否滿足吃豆人游戲動畫的需求,并且比較各個游戲引擎的性能。</p><p> 游戲操控方面參考Google Androi
61、d開發(fā)文檔,熟悉重力感應(yīng),多點(diǎn)觸控,方向鍵以及手機(jī)鍵盤的API,結(jié)合已有技術(shù)實(shí)現(xiàn)游戲操作的多元化。</p><p><b> 存在問題</b></p><p> 根據(jù)本人在Android游戲編程上所遇到的問題,現(xiàn)將研究吃豆人游戲應(yīng)用中所遇到的問題總結(jié)如下:</p><p> ?。?)由于Google 對Android系統(tǒng)更新過快,目前市場上
62、流通的Android系統(tǒng)版本多達(dá)5種,由于高版本的系統(tǒng)對于低版本的系統(tǒng)并不兼容,所以給我們編程上帶來了諸多的問題,如何使編寫的程序在盡量多的系統(tǒng)上正確的運(yùn)行將是我所解決的首要問題。</p><p> (2)在手機(jī)編程上另一個令人頭痛的問題是手機(jī)硬件上的差異(屏幕、處理器、內(nèi)存容量等)。由于硬件的差異,導(dǎo)致程序的移植性不強(qiáng),相同的程序在相同系統(tǒng)版本的不同手機(jī)上不能正常運(yùn)行,在編程中如何對代碼進(jìn)行優(yōu)化,使我的程序能
63、在更多的手機(jī)上正常運(yùn)行也是現(xiàn)在所面臨的重要問題之一。</p><p> ?。?)基于Android游戲動畫的實(shí)現(xiàn)的問題。所有計(jì)算機(jī)游戲的圖形的核心都是動畫,在J2ME手機(jī)游戲中,MDIP2.0以上版本提供了一個有助于游戲制作的開發(fā)包,該開發(fā)包核心為Sprite,使用該類能夠簡單管理動畫角色的圖像[11]?;诖宋覍⑸钊胙芯縅2ME中Sprite類在Android平臺上移植和使用的可能性。提高Android游戲中動
64、畫展示的效果和效率,解決Android系統(tǒng)中動畫實(shí)現(xiàn)的問題。</p><p> ?。?)游戲動畫中的碰撞檢測問題。在游戲中,經(jīng)常需要進(jìn)行碰撞檢測,例如在吃豆人游戲中如何檢測到吃豆人吃到豆子、吃豆人是否被怪物吃掉,都是檢測兩個物體是否發(fā)生碰撞,然后根據(jù)檢測的結(jié)果做出不同的處理。進(jìn)行碰撞檢測的物體可能不同的形狀,這就給碰撞檢測的算法帶來了許多的問題。如何高效正確的進(jìn)行圖像的碰撞檢測將是我吃豆人游戲中解決的重點(diǎn)問題。&
65、lt;/p><p> ?。?)游戲人工智能算法的實(shí)現(xiàn)問題。在游戲軟件中,游戲的人工智能的高低直接決定了游戲互動性和可玩性。而尋路問題又是人們研究的熱點(diǎn)問題之一。在吃豆人游戲中,需要設(shè)計(jì)怪物主動跟蹤玩家的人工智能算法,并且可以通過參數(shù)對怪物的“聰明度”進(jìn)行調(diào)節(jié)。</p><p> 參考文獻(xiàn)(含開題報告和文獻(xiàn)綜述)</p><p> [1] GONG Lei,ZHOU
66、Cong.Development and Research of Mobile Termination Application Based on Android[J]. Computer And Modernization,2008,8(1).</p><p> [2]何偉 楊宗德 張兵等.基于SymbianOS的手機(jī)開發(fā)與應(yīng)用[M].北京:人民郵電出版社,2006.3.</p><p>
67、; [3] 百度百科 . iOS百科[EB/OL].</p><p> http://baike.baidu.com/view/158983.htm 2010.12.</p><p> [4] 百度百科. OPhone百科[EB/OL]. http//baike.baidu.com/view/2410021.htm,2010.12.</p><p> [5
68、] 李曉鶯.EDGE——增強(qiáng)型GSM的演進(jìn)數(shù)據(jù)業(yè)務(wù)介紹[J].通信世界 ,2004,2(1).</p><p> [6] 殷福忠 孫立民.以“3S”集成技術(shù)為基礎(chǔ)的“LBS”極地應(yīng)用研究[J] .</p><p> 地理信息世界.2008,(03).</p><p> [7] 百度百科. 游戲引擎 [EB/OL].</p><p>
69、 http://baike.baidu.com/view/33343.htm 2010.12</p><p> [8] 李峰.Symbian+OS游戲引擎的研究和應(yīng)用[D] .成都:西南交通大學(xué),2008 .</p><p> [9] 劉志成.基于Sprite類的游戲動畫的實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2010.5(1).</p><p> [10] 陳
70、和平.A*算法在游戲地圖尋徑中的應(yīng)用與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件, 2005, 12 (1) . </p><p> [11] 谷歌公司.Android 中文文檔[EB/OL].</p><p> http://wenku.baidu.com/view/6f28995f804d2b160b4ec005.html,2010.12.</p><p> [12]百
71、度文庫.手機(jī)游戲未來發(fā)展趨勢預(yù)測 [EB/OL] .</p><p> http://wenku.baidu.com/view/0e563f335a8102d276a22f35.html, 2010.1.</p><p> [13] 百度百科.Angry Birds百科[EB/OL]. </p><p> http://baike.baidu.com/vie
72、w/4256200.htm ,2010.7.</p><p> [14] 百度百科.OpenGL ES百科[EB/OL].</p><p> http://baike.baidu.com/view/2013442.htm ,2010.12.</p><p> [15] 胡偉.Android系統(tǒng)架構(gòu)及其驅(qū)動研究[J] .廣州廣播電視大學(xué)學(xué)報,2008.8(1)
73、.</p><p> [16] 陳凱.三維游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)[D] .浙江:浙江大學(xué),2007.6.</p><p> [17] 楊科選.人工智能尋路算法及其在游戲中的應(yīng)用研究[D] .長沙:中南大學(xué) ,2009.6.</p><p> [18] 張亮亮 夏正友.基于遺傳算法求解游戲關(guān)卡問題[J] .信息通信2009,3(1) .</p>&
74、lt;p> [19]Shane Conder.Android Wireless Application Development[M]. Boston :Addison-Wesley,2010.</p><p> [20]Enck,W., Ongtang,M.,McDaniel,P.Understanding Android Security[J]. Security & Pr
75、ivacy, IEEE,2009,7(1).</p><p> [21]Sandeep Kumar. Location Based Services using Android[C]. Internet Multimedia Services Architecture and Applications (IMSAA), IEEE International Conference ,2009.</p>
76、<p> [22]劉昌平,范明鈺. Android手機(jī)的輕量級訪問控制[J].計(jì)算機(jī)應(yīng)用研究,2010,7(1).</p><p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> 譯文及原稿</b></p><p> 譯文題目 深入理解安致系統(tǒng)的安全性
77、 </p><p> 原稿題目 Understanding Android Security </p><p> 原稿出處 Security & Privacy, IEEE.2009,7 </p
78、><p> 深入理解安致系統(tǒng)的安全性</p><p> 下一代開放操作系統(tǒng)的主流將不會在桌面上,但是將會出現(xiàn)在我們每天攜帶的手機(jī)上。這些開放性的環(huán)境將會帶領(lǐng)這些新的應(yīng)用可能集成這些已經(jīng)存在的在線服務(wù),當(dāng)然隨著日以具增的數(shù)據(jù)與服務(wù)在手機(jī)上的支持,手機(jī)上的安全缺陷也越發(fā)明顯。下一代操作系統(tǒng)本質(zhì)在于是否提供一個完整綜合的安全平臺。</p><p> 由開放手機(jī)聯(lián)盟(op
79、en Handset Alliance 谷歌領(lǐng)導(dǎo))所開發(fā)的android 系統(tǒng)是一個被廣泛看好的一個手機(jī)開源系統(tǒng),該系統(tǒng)提供一個基本的操作系統(tǒng),一個中間件應(yīng)用層,一個java開發(fā)工具和一個系統(tǒng)應(yīng)用收集器(collection of system applications )。盡管android SDK自2007年就發(fā)布了,但是第一部android 手機(jī)卻在2008年10月才誕生。自從這時起谷歌開起了自己的時代,T-Mobile的G1的制
80、造商臺灣 HTC估算G1的發(fā)貨量在2008年底已經(jīng)超過100萬部。據(jù)業(yè)內(nèi)人士預(yù)期該G1手機(jī)的銷量將會在2009年繼續(xù)保持。不久的將來其他許多手機(jī)供應(yīng)商要計(jì)劃支持這個系統(tǒng)。</p><p> 一個圍繞android龐大的開發(fā)者社區(qū)已經(jīng)建立,同時很多新的產(chǎn)品和應(yīng)用已經(jīng)可以在android上使用。一個Android的主要賣點(diǎn)是它使開發(fā)人員無縫把在線服務(wù)擴(kuò)展到手機(jī)。這方面最明顯的例子是谷歌的緊密集成Gmail,日歷和聯(lián)
81、系人Web應(yīng)用程序通過該系統(tǒng)。用戶只需提供一個android用戶名和密碼,其手機(jī)自動同步與谷歌的服務(wù)。其他廠商正在迅速適應(yīng)自己的現(xiàn)有的即時通訊,社交網(wǎng)絡(luò)和游戲服務(wù)。Android和許多企業(yè)尋找新途徑來整合他們的自己已有的業(yè)務(wù)到android上。</p><p> 傳統(tǒng)的臺式機(jī)和服務(wù)器的操作系統(tǒng)一直在努力進(jìn)行安全功能的集成。這些個人和商業(yè)應(yīng)用在單一平臺的很出色,然而這一塊業(yè)務(wù)一個手機(jī)平臺上像android上不是很
82、有用。它給了許多研究人員希望。Android沒有停在為其他平臺體用應(yīng)用支持:應(yīng)用的執(zhí)行依賴于頂層JAVA中間件,這個中間件運(yùn)行在嵌入式Linux 內(nèi)核之上。所以開發(fā)人員要把他們的應(yīng)用部署到Android必須使用其自定義的用戶界面環(huán)境。</p><p> 此外,android系統(tǒng)應(yīng)用限制各應(yīng)用相互調(diào)用API協(xié)作,并且對方為自己的用戶應(yīng)用進(jìn)行身份驗(yàn)證。盡管這些應(yīng)用有一定的安全特性,我們一些有經(jīng)驗(yàn)的開發(fā)人員開發(fā)and
83、roid應(yīng)用人士透露,設(shè)計(jì)安全應(yīng)用程序并不總是直線前進(jìn)的。Android使用一個簡單的許可標(biāo)簽分配模式限制訪問的資源,但其他應(yīng)用程序的原因必要性和便利,其設(shè)計(jì)師們增加了困惑對這個系統(tǒng)。本文試圖對Android的安全的復(fù)雜性進(jìn)行講解,并注意一些可能的發(fā)展缺陷以及應(yīng)用程序的安全。我們通過嘗試得出一些經(jīng)驗(yàn)教訓(xùn),希望對未來的安全有用。</p><p> Android Application </p>
84、<p> Android應(yīng)用程序框架對開發(fā)者來說是一個強(qiáng)制架構(gòu)。</p><p> 它沒有一個main()函數(shù)功能或單一入口點(diǎn)執(zhí)行,相反,開發(fā)人員必須在設(shè)計(jì)方面的應(yīng)用組件。我們開發(fā)的應(yīng)用對android的sdk的幫助的APIExample Application。</p><p> 我們開發(fā)了一個描述如何創(chuàng)建android的應(yīng)用。有興趣的讀者可以去我們的站點(diǎn)下載讓我們考
85、慮一個基于位置的社交網(wǎng)絡(luò)應(yīng)用,其中手機(jī)用戶可以通過本應(yīng)用發(fā)現(xiàn)他們的朋友們位置。我們進(jìn)行功能拆分,分成兩個應(yīng)用程序:一個用于跟蹤查看朋友和??此麄?。如圖1所示,F(xiàn)riendTracker應(yīng)用包括跟蹤的組件specifc朋友的位置(例如,通過一個Web服務(wù)),儲存地理坐標(biāo),并分享這些合作統(tǒng)籌與其他應(yīng)用程序。然后用戶使用友情查看器應(yīng)用程序來檢索地理坐標(biāo)和儲存在地圖上查看朋友。</p><p> 這兩個應(yīng)用程序包含的多
86、個組件包括展示自己任務(wù),他們組件是由他們組件類型所決定的。一個Android 開發(fā)者選擇從根據(jù)不同的組件類型組件的目的決定 (如與一個用戶或存儲數(shù)據(jù)接口)。</p><p> 圖1。例如Android應(yīng)用程序。FriendTracker和FriendViewer應(yīng)用由多個不同類型的組件,每個提供一個不同的組功能。Activity提供一個用戶界面,Service執(zhí)行后臺處理,Content提供存儲,Broadca
87、st receiver接收機(jī)其他應(yīng)用程序的信息。</p><p> Android系統(tǒng)定義了4種組件類型。</p><p><b> Activity </b></p><p> 組件定義應(yīng)用程序的用戶界面。通常,應(yīng)用程序開發(fā)者定義每一個活動“畫面?!盇ctivity可以自己開始,也可能通過傳遞和返回值。在一時間只有一個鍵盤的系統(tǒng)Acti
88、vity可以進(jìn)行處理,在這個時候所有其他的Activity都會被暫停。</p><p><b> Service</b></p><p> 組件執(zhí)行后臺處理。當(dāng)一個活動需要進(jìn)行一些操作,在用戶界面消失以后(如下載一個文件或播放音樂),它通常采取此種動作特殊設(shè)計(jì)的服務(wù)。開發(fā)人員還可以在系統(tǒng)啟動使用特殊的守護(hù)進(jìn)程,Service通常定義一個遠(yuǎn)程過程調(diào)用(RPC),其他
89、系統(tǒng)組件可以用來傳送接口命令和檢索數(shù)據(jù),以及注冊一個回調(diào)函數(shù)。</p><p><b> Content</b></p><p> 組件存儲和共享數(shù)據(jù) 用關(guān)系數(shù)據(jù)庫接口。每個Content供應(yīng)者都有一個關(guān)聯(lián)的“權(quán)限”來形容它的內(nèi)容包含。其他組件使用時作為一個handle執(zhí)行SQL查詢(如的SELECT,INSERT或DELETE內(nèi)容。雖然Content供應(yīng)者通常
90、存儲把數(shù)值放在數(shù)據(jù)庫記錄中,數(shù)據(jù)檢索是實(shí)現(xiàn)特殊的例子,文件也同時通過內(nèi)容提供商共享接口。</p><p> Broadcast receiver</p><p> 該組件作為為從郵件信箱發(fā)送信息給他應(yīng)用程序。通常,廣播消息的應(yīng)用程序代碼隱含的目的地。因此,廣播接收器訂閱這些目的地接收發(fā)送給它的消息。應(yīng)用程序代碼也可以解決明確廣播接收機(jī)包括命名空間分配。</p><p
91、> 圖1顯示了FriendTracker和FriendViewer應(yīng)用所包含的不同的組件類型。開發(fā)者組件使用一個主要定義文件(也用于定義權(quán)限,稍后介紹)。上有一個應(yīng)用程序的組件的數(shù)量沒有限制定義每種類型,但作為習(xí)慣,一組件應(yīng)具有相同的名稱該應(yīng)用程序。通常情況下,這是作為在FriendViewer activity中進(jìn)行注冊。這一動作通常指示主activity作為該系統(tǒng)應(yīng)用程序啟動器用于啟動用戶界面;然而,如果需要啟動特定的act
92、ivity,開發(fā)者需要者在選擇配置manifest 信息來實(shí)現(xiàn)這一個功能。在在FriendTracker應(yīng)用,例如,F(xiàn)riendTrackerControl活動被標(biāo)記為主用戶界面的啟動點(diǎn)。在這種情況下,我們保留名稱“FriendTracker”為服務(wù)執(zhí)行的核心組成部分的應(yīng)用程序邏輯。</p><p> 在FriendTracker應(yīng)用包含四種類型的組件。在FriendTracker服務(wù)搜尋調(diào)查外部服務(wù)并發(fā)現(xiàn)好
93、友的位置。在我們的示例代碼中,位置是我們隨機(jī)生成的,但直接通過網(wǎng)絡(luò)連接組件接口的服務(wù)。該FriendProvider Content 提供保持最新的朋友地理坐標(biāo),F(xiàn)riendTrackerControl活動用于啟動和用戶界面停止跟蹤好友功能,該系統(tǒng)一旦啟動 BootReceiver通知從廣播系統(tǒng)啟動。</p><p> 該FriendViewer應(yīng)用主要是顯示有關(guān)好友的位置的信息。每個啟動的FriendVie
94、wer將會列出了所有的朋友和他們的地理坐標(biāo),F(xiàn)riendMap顯示他們在地圖上的位置。FriendReceiver將會等待接收附近的手機(jī)發(fā)送的消息這個消息來一個所指定的朋友。盡管我們可以在這些組件內(nèi)放置在FriendTracker應(yīng)用,但是我們?nèi)匀粍?chuàng)建了一個單獨(dú)的應(yīng)用程序來展示跨應(yīng)用的溝通。此外,通過分離程序功能和接口,我們可以創(chuàng)建不同的顯示和功能,可選用戶界面是,許多應(yīng)用程序可以重用這些來自FriendTracker的功能。</
95、p><p> Component Interaction</p><p> 該組件交互的主要機(jī)制是一個intent ,這是一個簡單的消息對象,其中包含一個目的地組件的地址和數(shù)據(jù)。 Android的API定義了他的方法中傳入intent ,并使用該信息來啟動一個activity例如開始一個activity(startActivity(intent)),啟動服務(wù)(startService(in
96、tent))和廣播信息(sendBroadcast(intent))。Android框架來通知這些方法的調(diào)用開始執(zhí)行在目標(biāo)應(yīng)用程序代碼。這個過程中內(nèi)部組件通信稱為一個動作。簡單地說, Intent對象定義的“Intent”以執(zhí)行“action”。Android的一個最強(qiáng)大的特點(diǎn)是允許的多種intent尋址機(jī)制。開發(fā)人員可以解決一個目標(biāo)組件使用其應(yīng)用的空間,他們也可以指定一個隱含的名稱。在后一種情況下,系統(tǒng)決定了一個action的最佳組件
97、,通過考慮安裝的應(yīng)用程序和用戶的選擇 。</p><p> 這個隱含的名字被稱為動作字符串因?yàn)樗厥獾念愋偷恼埱髣幼鳌@缫粋€view動作字符串,在一個intent中和數(shù)據(jù)域指向一個圖像文件,系統(tǒng)將會直接指首選圖像瀏覽器、</p><p> 開發(fā)者也能使用動作字符串進(jìn)行大量廣播發(fā)送和接收。在接收端的接收者,開發(fā)者使用一intent 過濾器來定制特殊的動作字符串。Android系包括附加
98、目標(biāo)的決議規(guī)則,但可選的數(shù)據(jù)操作字符串類型是最常見的。</p><p> 圖2顯示了組件之間的FriendTracker和FriendViewer應(yīng)用程序和組件的交互作用在應(yīng)用程序中定義為基礎(chǔ)的Android發(fā)布的一部分。在每一種情況下,發(fā)起一個組件與其他的溝通。為了簡單起見,我們稱這個為件間通信(ICC)。在許多方面,ICC是類似于進(jìn)程間通信(IPC)在基于Unix的系統(tǒng)中。對于開發(fā)人員,ICC的功能相同無論
99、目標(biāo)是在相同或不同的應(yīng)用與界定將在下文的安全規(guī)則中說明。</p><p> 可用的ICC的動作取決于目標(biāo)的組成部分。每個組件類型支持自己的類型例如,當(dāng)FriendViewer開始FriendMap的FriendMap活動出現(xiàn)在屏幕上。服務(wù)組件支持啟動,停止,并結(jié)合行動,所以FriendTrackerControl活動,例如,可以啟動和停止FriendTracker服務(wù)在后臺運(yùn)行。Action的綁定組件之間建立
100、連接,使啟動執(zhí)行的服務(wù)定義的RPC。在我們的例子,F(xiàn)riendTracker結(jié)合到系統(tǒng)中的服務(wù)器位置的管理。</p><p> Understand android security </p><p> the next generation of open operating systems won’t be on desktops or mainframes but on the
101、small mobile devices we carry every day. The openness of these new environments will lead to new applications and markets and will enable greater integration with existing online services. </p><p> However,
102、 as the importance of the data and services our cell phones support increases, so too do the opportunities for vulnerability. It’s essential that this next generation of platforms provide a comprehensive and usable secur
103、ity infrastructure.Developed by the Open Handset Alliance (visibly led by Google), Android is a widely anticipated open source operating system for mobile devices that provides a base operating system, an application mid
104、dleware layer, a Java software development kit (SDK)</p><p> growth has been phenomenal: TMobile’s G1 manufacturer HTC estimates shipment volumes of more than 1 million phones by the end of 2008, and indust
105、ry insiders expect public adoption to increase steeply in 2009. Many other cell phone providers have either promised or plan to support it in the near future.</p><p> A large community of developers has org
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- android_吃豆人畢業(yè)設(shè)計(jì)開題報告、文獻(xiàn)綜述
- 開題報告、文獻(xiàn)綜述---手機(jī)平臺的吃豆人游戲設(shè)計(jì)
- 橋梁畢業(yè)設(shè)計(jì)文獻(xiàn)綜述+開題報告+外文翻譯
- 機(jī)械手搖磨豆機(jī)設(shè)計(jì)【開題報告+文獻(xiàn)綜述+畢業(yè)論文+外文翻譯】
- 施工圖設(shè)計(jì)畢業(yè)設(shè)計(jì)開題報告、文獻(xiàn)綜述、外文翻譯
- android游戲畢業(yè)設(shè)計(jì)開題報告和外文翻譯
- 試卷分析評價系統(tǒng)----畢業(yè)設(shè)計(jì)開題報告、外文翻譯、文獻(xiàn)綜述
- 畢業(yè)設(shè)計(jì)開題報告+文獻(xiàn)綜述.doc
- 基于android平臺的手機(jī)游戲開發(fā)【畢業(yè)設(shè)計(jì)+開題報告+文獻(xiàn)綜述】
- 基于android模擬考試系統(tǒng)【畢業(yè)設(shè)計(jì)+開題報告+文獻(xiàn)綜述】
- 機(jī)器人開題報告(含文獻(xiàn)綜述、外文翻譯)
- 開題報告(文獻(xiàn)綜述、外文翻譯)——姓名——畢業(yè)設(shè)計(jì)三個文件樣本
- 畢業(yè)設(shè)計(jì)開題報告+文獻(xiàn)綜述.doc
- 開題報告、外文翻譯、文獻(xiàn)綜述.doc
- 工業(yè)設(shè)計(jì)專業(yè)畢業(yè)設(shè)計(jì)+開題報告+文獻(xiàn)綜述 -小型豆制機(jī)改良設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)開題報告和文獻(xiàn)綜述.doc
- 會計(jì)專業(yè)畢業(yè)設(shè)計(jì)---開題報告、文獻(xiàn)綜述和外文翻譯、論文前置部分
- 開題報告、外文翻譯、文獻(xiàn)綜述.doc
- 開題報告、外文翻譯、文獻(xiàn)綜述.doc
- 畢業(yè)設(shè)計(jì)開題報告和文獻(xiàn)綜述.doc
評論
0/150
提交評論