基于安卓的象棋游戲設(shè)計(jì)_第1頁
基于安卓的象棋游戲設(shè)計(jì)_第2頁
基于安卓的象棋游戲設(shè)計(jì)_第3頁
基于安卓的象棋游戲設(shè)計(jì)_第4頁
基于安卓的象棋游戲設(shè)計(jì)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、PAGE 32 - PAGE 39 - 基于Android的象棋游戲設(shè)計(jì)【關(guān)鍵詞】機(jī)器人, 生命周期,算法,線程軟件工程【摘 要】本論文主要闡述以面向?qū)ο蟮某绦蜷_發(fā)語言eclipse為開發(fā)工具, 基于智能手機(jī)Android之上設(shè)計(jì)一個(gè)五子棋游戲。五子棋起源于中國(guó)古代的傳統(tǒng)黑白棋種之一,它不僅能增強(qiáng)思維能力 提高智力,而且富含哲理,有助于修身養(yǎng)性。本系統(tǒng)是本系統(tǒng)中設(shè)定了人機(jī)對(duì)戰(zhàn)和人人對(duì)戰(zhàn)兩種模式。人機(jī)對(duì)戰(zhàn)實(shí)現(xiàn)的是一些簡(jiǎn)單的算法,人人對(duì)戰(zhàn)只是進(jìn)行了輸贏方的判定。它與javame的五子棋設(shè)計(jì)有許多的不一樣,Android本來就是全觸摸的形式,而且操作非常簡(jiǎn)單。The five in a row ga

2、me based on Android【Abstract】 This paper mainly expounds the object-oriented program development in eclipse for language development tool, smartphone Android based on above design a five in a row game. Gobang originated in China ancient traditional black white kind, it not only can enhance one of th

3、inking capacity, improve intelligence and high in philosophy, helps to cultivate ones morality raises a gender. This system is the system that set the man-machine against and everyone against two patterns. The realization man-machine against some simple algorithm, everyone was against just win the j

4、udgement of the party. It has with the javame gobang chess design many are dissimilar, Android is the entire touching form originally, moreover operates is simple. 【Key words】 Android,Activity, arithmetic,Thread緒論 智能手機(jī)(Smartphone),具有獨(dú)立的操作系統(tǒng),像個(gè)人電腦一樣支持用戶自行安裝HYPERLINK /view/37.htm t _blank軟件、游戲等第三方服務(wù)商提

5、供的程序,并通過此類程序不斷對(duì)手機(jī)的功能進(jìn)行擴(kuò)充,同時(shí)可通過移動(dòng)通訊網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入。目前,全球多數(shù)手機(jī)廠商都有智能手機(jī)產(chǎn)品,而芬蘭諾基亞、美國(guó)蘋果、加拿大HYPERLINK /view/240699.htm t _blankRIM(HYPERLINK /view/34183.htm t _blank黑莓)、美國(guó)HYPERLINK /view/7274.htm t _blank摩托羅拉、中國(guó)臺(tái)灣宏達(dá)(htc)更是智能機(jī)中的佼佼者。智能手機(jī)具有五大特點(diǎn):1. 具備了無線接入互聯(lián)網(wǎng)的能力,即要有GSM的支持網(wǎng)絡(luò)下的GPRS或者是CDMA網(wǎng)絡(luò)支持下的CDMA 1X或3G網(wǎng)絡(luò)。2. 人性化,可以

6、根據(jù)個(gè)人需要擴(kuò)展機(jī)器的功能。3. 它是具有開放性的操作系統(tǒng),還可以安裝非常多的應(yīng)用程序,使得智能手機(jī)的功能可以得到無限的擴(kuò)展。4. 具有PDA功能,其中包括個(gè)人信息管理、日程記事、任務(wù)安排、多媒體應(yīng)用、瀏覽網(wǎng)頁。5.強(qiáng)大的功能,擴(kuò)展性能強(qiáng),第三方軟件支持多。Android的誕生:從時(shí)間要追溯到 二零零三年,在參與到 Android 的傳奇之前,它的創(chuàng)始人Andy Rubin 在周刊中這么說過:“在開發(fā)對(duì)于用戶位置以及狀態(tài)更加敏感的移動(dòng)設(shè)備方面存在著巨大的潛力”,他還說過:“很快他們就會(huì)在消費(fèi)類產(chǎn)品中使用這些位置信息,如果開發(fā)者足夠聰明的話?!爆F(xiàn)在看起來他自己都沒想到他的預(yù)言是多么的準(zhǔn)確:實(shí)際上

7、,移動(dòng)領(lǐng)域?qū)?huì)發(fā)生巨變,從而催生出我們從未見過的強(qiáng)大的智能手機(jī)。到二零零五 年有很多關(guān)于 Google 即將進(jìn)軍移動(dòng)設(shè)備制造領(lǐng)域并專注于制造基于位置服務(wù)的手機(jī)的謠傳,但最大的障礙就在于 Google 沒有自己的可以達(dá)成這個(gè)目標(biāo)的平臺(tái)。在二零零五 年 七月,Google收購了 Android,這么一個(gè)小規(guī)模收購行動(dòng)還是立刻引起了移動(dòng)業(yè)界的興趣,它們懷疑這是 Google 進(jìn)入移動(dòng)市場(chǎng)的的標(biāo)志。盡管如此,這個(gè)當(dāng)時(shí)只是一個(gè)小規(guī)模的移動(dòng)軟件開發(fā)公司正是由 Andy Rubin、Rich Miner、Nick Sears 以及 Chris White 四個(gè)人共同創(chuàng)建的?,F(xiàn)在看來,他們的懷疑是正確的。差不

8、多兩年半以后,在 二零零七 年 十一 月 五 日,Google發(fā)布了Android,它這個(gè)的發(fā)布給移動(dòng)業(yè)界帶來了一場(chǎng)可怕的風(fēng)暴,基于 Linux的全新移動(dòng)操作系統(tǒng)。這不單單是一個(gè)全新的移動(dòng)系統(tǒng),非常重要的是:它是開源的。這是當(dāng)時(shí)新成立的開放手機(jī)聯(lián)盟整合下的成果,諸如 Google、HTC、Intel、Sprint-Nextel、T-Mobile 以及 NVIDIA 都是這個(gè)聯(lián)盟的成員,該聯(lián)盟的目的就是要?jiǎng)?chuàng)立移動(dòng)設(shè)備的開放標(biāo)準(zhǔn)。第一款搭載 Android 系統(tǒng)的手機(jī)是 2008 年 9 月由 T-Mobile 發(fā)布的 G1,它擁有 GPS 功能,3.1M 攝像頭,以及一系列的 Google 應(yīng)用

9、。G1 的面市,正式拉開了 Google 以及整個(gè)移動(dòng)業(yè)界激動(dòng)人心的大冒險(xiǎn)的序幕。Android 操作系統(tǒng)版本Android 1.1 (發(fā)布于 2009 年 2 月)Android 1.5 “Cupcake” 這是第一個(gè)主要版本,發(fā)布于 2009 年 5 月.這個(gè)升級(jí)之后,它的更新給用戶帶來了新的體驗(yàn)。用戶界面得到了極大的改良,并且增添了以下功能。Android 1.6 “Donut” 2009 年 9 月發(fā)布。搭載Android 1.6 的 HTC Hero 獲得了意想不到的成功。使得原來用許多都沒有用過Android的人都對(duì)Android非常的關(guān)注,并且也讓競(jìng)爭(zhēng)者蘋果和微軟更加警惕了。An

10、droid 2.0/2.1: 2009 年 10 月 26 日,又一個(gè)主要版本升級(jí)以創(chuàng)紀(jì)錄的速度放出。這次,大版本升級(jí)到了 Android 2.0/2.1 “Eclair.”。Android 2.0.1 SDK 在 2009 年 12 月 3 日發(fā)布出來,后來是2010 年 1 月 10 日發(fā)布的2.1 版本。很多圍觀群眾和用戶可能會(huì)有點(diǎn)奇怪:“Android為什么會(huì)被用甜點(diǎn)作為它系統(tǒng)版本的代號(hào)?”,其實(shí)這個(gè)命名方法開始在 Andoird 1.5 發(fā)布出來的時(shí)候。每一個(gè)版本代表的甜點(diǎn)的尺寸就越變?cè)酱螅缓蟀凑兆帜傅臄?shù)序:小蛋糕,甜甜圈和松餅。在這之前人們預(yù)計(jì) 2.2 版本的代號(hào)可能是“餡餅”,

11、但這個(gè)最終被證明是錯(cuò)誤的,“FroYo”(凍酸奶)才是 Android 2.2 這個(gè)伴隨 Google Nexus One 發(fā)布的新版的最新代號(hào)。而下一個(gè)版本的代號(hào)將會(huì)是“姜餅”。Android 2.2 “Froyo”: Nexus One 的用戶已經(jīng)開始接受 Android 2.2 “FroYo”的無線更新,其它機(jī)型的用戶可能會(huì)在短時(shí)間內(nèi)獲取到這一更新的。這一版本的更新出來會(huì)讓大量讓其他手機(jī)用戶垂涎三尺。有關(guān)的消息眾口一詞聲稱 Android 3.0 “Gingerbread”,Google 將會(huì)在今年秋天的某個(gè)時(shí)候發(fā)布出來,它將帶來給用戶新的體驗(yàn)。從 Android 的發(fā)展旅途中,我們看到

12、 2003 年 Andy他是一個(gè)有遠(yuǎn)見的人,看到了 2005 年的起步和被 Google 的收購,也看到了系統(tǒng)的進(jìn)步以及新的機(jī)型的快速發(fā)布。所有這一切都讓我們相信,Android 將會(huì)走向世界第一移動(dòng)操作系統(tǒng)寶座的步伐是勢(shì)不可擋的。Android 平板電腦也在今年的夏天開始發(fā)布以及 Google TV 發(fā)布以后(也許還有 Google Music?),Android 可能真的會(huì)將繼續(xù)帶著我們走向移動(dòng)設(shè)備夢(mèng)想的彼岸。1 開發(fā)概述在手機(jī)游戲的早期,大多數(shù)開發(fā)者都是想要玩轉(zhuǎn)設(shè)備、學(xué)習(xí)技巧和快速攻關(guān)的狂熱分子。但是,隨著更多的開發(fā)者加入這個(gè)行業(yè),手機(jī)游戲已經(jīng)進(jìn)化成涉及到專業(yè)設(shè)計(jì)師、構(gòu)造師、開發(fā)者、產(chǎn)品

13、經(jīng)銷商、律師、和藝術(shù)家在內(nèi)的主導(dǎo)產(chǎn)品。這是行業(yè)走向成熟的必然趨勢(shì)。盡管在某人的業(yè)余時(shí)間內(nèi)要開發(fā)和推銷簡(jiǎn)單的游戲更加困難,但是更多的專業(yè)商店將為許多人提供更多的就業(yè)機(jī)會(huì)。 從手機(jī)軟件的平臺(tái)的種類,游戲玩家的心理,未來移動(dòng)通信服務(wù)終端的發(fā)展,3G手機(jī)網(wǎng)絡(luò)對(duì)手機(jī)軟件游戲的影響,還有從J2ME手機(jī)游戲開發(fā)平臺(tái)介紹的手機(jī)游戲的趨勢(shì)和未來這種游戲的運(yùn)營(yíng)模式,這幾方面的內(nèi)容來看,手機(jī)游戲是未來游戲發(fā)展的趨勢(shì),其移動(dòng)性、互連性,必定會(huì)帶來網(wǎng)絡(luò)游戲的風(fēng)暴,這就使我們對(duì)這一個(gè)新興的領(lǐng)域有了一定的概念,對(duì)指導(dǎo)我們建立一個(gè)手機(jī)軟件開發(fā)培訓(xùn)的知識(shí)結(jié)構(gòu)有一定的幫助,也是我們的一個(gè)發(fā)展契機(jī)。1.1 背景在我們的生活中有許多

14、的游戲,但是游戲不同,它也會(huì)給玩家?guī)聿煌母惺芎蜕罾砟?。游戲是我們?nèi)粘I畹囊粋€(gè)必不可少的娛樂項(xiàng)目,也帶動(dòng)了游戲相關(guān)產(chǎn)業(yè)市場(chǎng)的發(fā)展。游戲平臺(tái)是經(jīng)過從游戲機(jī)到電視游戲,然后從到pc游戲,到手機(jī)游戲,中間經(jīng)歷了很多的技術(shù)的更新和變革。但隨著新技術(shù)的發(fā)展和我們生活水平質(zhì)量的提高,手機(jī)開始逐漸變?yōu)槠占埃驗(yàn)槭謾C(jī)是非常小巧便捷的,而且方便的特性成為我們?nèi)粘I钪斜貍渫ㄓ嵐ぞ?。而基于手機(jī)平臺(tái)的游戲也就擁有的市場(chǎng)空間是巨大的,也因隨著3g的開通和應(yīng)用,手機(jī)游戲必然會(huì)迎來新的一輪游戲熱潮!1.2 課題來源現(xiàn)在的移動(dòng)電話是小型的計(jì)算機(jī),它的處理能力與臺(tái)式機(jī)的標(biāo)準(zhǔn)處理能力相比很有限,但是足夠運(yùn)行一個(gè)小型的游戲

15、。現(xiàn)在的手機(jī)的一個(gè)特性就是它們還是網(wǎng)絡(luò)計(jì)算機(jī),能夠高速發(fā)送和接收數(shù)字?jǐn)?shù)據(jù)。除了語音數(shù)據(jù)以外,它們還可以發(fā)送和接收其它類型的數(shù)據(jù)。所以這樣的網(wǎng)絡(luò)游戲也可以在手機(jī)上實(shí)現(xiàn)。短信類游戲就好像“虛擬寵物”那樣。短信游戲是通過玩家和游戲服務(wù)商通過短信中的文字的內(nèi)容來交流,達(dá)到進(jìn)行游戲的目的的一種文字游戲。 由于短信游戲的整個(gè)游戲過程都是通過文字來表達(dá),造成短信游戲的娛樂性較差。但是短信游戲卻是兼容性最好的手機(jī)游戲之一。只要您的手機(jī)可以發(fā)短信,您就可以暢快的享受短信游戲給您帶來的快樂了。圖形類游戲更接近我們常說的“電視游戲”,玩家通過動(dòng)畫的形式來發(fā)展情節(jié)進(jìn)行游戲。由于游戲采用了更為直觀且更為精美的畫面直接表

16、現(xiàn),因此圖形類游戲的游戲性和代入感往往較文字類游戲高。因此廣受玩家們的歡迎。嵌入式游戲是一種將游戲程序預(yù)先固化在手機(jī)的芯片中的游戲。由于這種游戲的所有數(shù)據(jù)都是預(yù)先固化在手機(jī)芯片中的,因此這種游戲是無法進(jìn)行任何修改的。也就是說,您不能更換其它游戲的,只能玩您手機(jī)中已經(jīng)存在的娛樂游戲,而且您也不能將它們刪除。手機(jī)在網(wǎng)絡(luò)游戲行業(yè)在多年的技術(shù)經(jīng)驗(yàn)與運(yùn)營(yíng)經(jīng)驗(yàn)的積累與總結(jié)之后,到了2009年迫不及待的需要?jiǎng)?chuàng)新出新的游戲模式和嶄新的運(yùn)營(yíng)模式來推動(dòng)手機(jī)游戲市場(chǎng)的爆發(fā)和發(fā)展。其中比較吸引人們的是手機(jī)的休閑類的游戲。應(yīng)該可以說它是與PC網(wǎng)絡(luò)游戲完全的脫離開了,而且充分發(fā)揮了自身的優(yōu)勢(shì)手機(jī)終端。休閑類的游戲恰巧與之

17、相反,只需要很少的網(wǎng)絡(luò)流量的網(wǎng)絡(luò)環(huán)境,通過少量多次的游戲形式帶給玩家流暢的游戲體驗(yàn)滿足玩家瞬間提升的快感,但是同時(shí)卻很難具有長(zhǎng)期的“沉迷”性。本題目是基于Android平臺(tái)開發(fā)的一個(gè)小型的程序。其實(shí)都差不多,在有JAVA的智能手機(jī)上都可以運(yùn)行。其實(shí)手機(jī)是我們生活中不可缺少的工具,這些小游戲可以帶給我們快樂和放松我們的心情。無論什么樣手機(jī),我想買起來的時(shí)候上面就有一些它自帶的各種小游戲,其中有一個(gè)獨(dú)特的小游戲也是非常重要的。1.3 國(guó)內(nèi)外研究現(xiàn)狀A(yù)ndroid 是Google開發(fā)的基于Linux平臺(tái)的開源HYPERLINK /z/Search.e?sp=S%E6%89%8B%E6%9C%BA%E

18、6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank手機(jī)操作系統(tǒng)。它包括HYPERLINK /z/Search.e?sp=S%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank操作系統(tǒng)、用戶界面和應(yīng)用程序 HYPERLINK /z/Search.e?sp=S%E7%A7%BB%E5%8A%A8%E7%94%B5%E8%AF%9D&ch=w.search.yjjl

19、ink&cid=w.search.yjjlink t _blank移動(dòng)電話工作所需的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。Google與開放手機(jī)聯(lián)盟合作開發(fā)了 Android,這個(gè)聯(lián)盟由包括HYPERLINK /z/Search.e?sp=S%E4%B8%AD%E5%9B%BD%E7%A7%BB%E5%8A%A8&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank中國(guó)移動(dòng)、HYPERLINK /z/Search.e?sp=S%E6%91%A9%E6%89%98%E7%BD%97%E6%8B%89&ch=w.search.yjj

20、link&cid=w.search.yjjlink t _blank摩托羅拉、HYPERLINK /z/Search.e?sp=S%E9%AB%98%E9%80%9A&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank高通、HYPERLINK /z/Search.e?sp=S%E5%AE%8F%E8%BE%BE%E7%94%B5&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank宏達(dá)電和 T-Mobile 在內(nèi)的 30 多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成。Google通過與運(yùn)營(yíng)商、設(shè)備制造商、開發(fā)商和

21、其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動(dòng)電話軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開放式的HYPERLINK /z/Search.e?sp=S%E7%94%9F%E6%80%81%E7%B3%BB%E7%BB%9F&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank生態(tài)系統(tǒng)。Android 作為HYPERLINK /z/Search.e?sp=S%E8%B0%B7%E6%AD%8C&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank谷歌HYPERLINK /z/Search.e

22、?sp=S%E4%BC%81%E4%B8%9A%E6%88%98%E7%95%A5&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)隨時(shí)隨地為每個(gè)人提供信息這一HYPERLINK /z/Search.e?sp=S%E4%BC%81%E4%B8%9A%E7%9B%AE%E6%A0%87&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank企業(yè)目標(biāo)的實(shí)現(xiàn)。我們發(fā)現(xiàn),全球?yàn)閿?shù)眾多的移動(dòng)電話用戶從未使用過任何基于 Android 的電話。谷歌的目標(biāo)是讓(移動(dòng)通訊)不依賴于

23、設(shè)備甚至平臺(tái)。出于這個(gè)目的,Android 將補(bǔ)充,而不會(huì)替代谷歌長(zhǎng)期以來HYPERLINK /z/Search.e?sp=S%E5%A5%89%E8%A1%8C&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank奉行的移動(dòng)發(fā)展戰(zhàn)略:通過與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動(dòng)服務(wù),并推廣這些產(chǎn)品。開放手機(jī)聯(lián)盟的成立和 Android 的推出是對(duì)現(xiàn)狀的重大改變,在帶來初步效益之前,還需要不小的耐心和高昂的投入。但是,我們認(rèn)為全球移動(dòng)用戶從中能獲得的潛在利益是值得付出這些努力的。如果你也是一個(gè)開發(fā)者,并對(duì)我們的想法

24、感興趣,就請(qǐng)?jiān)俳o我們一星期的時(shí)間,屆時(shí)谷歌便能提供 SDK 了。如果你是一名移動(dòng)用戶,只需再等一段時(shí)間,我們的一些合作伙伴計(jì)劃在 2008 年下半年推出基于 Android 平臺(tái)的電話產(chǎn)品。如果你已經(jīng)擁有一部你了解并喜愛的電話,請(qǐng)登錄 ,確保你已經(jīng)安裝HYPERLINK /z/Search.e?sp=S%E8%B0%B7%E6%AD%8C%E6%89%8B%E6%9C%BA%E5%9C%B0%E5%9B%BE&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank谷歌手機(jī)地圖、Gmail 以及其他一些專為你的HYPERLINK /z/Search.e

25、?sp=S%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8F%91&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank手機(jī)開發(fā)的精彩應(yīng)用。谷歌將繼續(xù)努力,讓這些服務(wù)變得更好,同時(shí)也將添加更有吸引力的特性、應(yīng)用和服務(wù)。1.4 論文主要工作此游戲主要是采用Android的View框架編寫,部分框架運(yùn)用Android中的其他組件。主要運(yùn)用了算法來實(shí)現(xiàn)對(duì)棋局的分析,棋盤輸贏的判定。 UI方面:此游戲當(dāng)進(jìn)入游戲的界面時(shí),調(diào)用的是一個(gè)用相對(duì)布局-AbsoluteLayout的XML布局文件。其中包括了一個(gè)IamgeView和4個(gè)Button.

26、分別實(shí)現(xiàn)了不同的功能。第一個(gè)Button是進(jìn)入新游戲,點(diǎn)擊按鈕進(jìn)入新游戲,來選擇對(duì)手。第二個(gè)Button是幫助,用了一個(gè)TextView來說明怎樣來進(jìn)行游戲。第三個(gè)Button是游戲的關(guān)于,用了一個(gè)AlertDialog來介紹了一下游戲的這個(gè)游戲的好處。第四個(gè)Button是游戲的退出按鈕。在游戲中,我用畫線來不滿了整個(gè)的手機(jī)屏幕,在上面用了TextView來進(jìn)行了文字的說明和提示。本篇論文,主要目的是為了探討更加深入的理解Android,為移動(dòng)終端上的游戲軟件的打造提供一個(gè)思路。2 Android的開發(fā)環(huán)境本章將主要介紹如何構(gòu)建Android開發(fā)環(huán)境,包括獲取Android SDK、Eclip

27、se以及進(jìn)行Android Eclipse插件設(shè)置等。2.1 操作系統(tǒng)目前只支持XP(32-bit)、Vista(32/64-bit)、Mac OS X 10.4.8或更新版本(x86)、Linux(只在Linux Ubuntu Dapper Drake上面做過測(cè)試)。系統(tǒng)XP sp2/sp3 32bit 來做講解,其他系統(tǒng)的可以google一下差異,反正都大同小異的。2.2 Android開發(fā)環(huán)境無論是官方還是我本人,都建議使用eclipse進(jìn)行開發(fā),當(dāng)然,eclipse版本要在3.3以上,這是官方說法,3.3以下我也沒測(cè)過,3.3 (Europa)、3.4 (Ganymede) 都可以,j

28、ava版本或者EE版本也都沒問題的,可以到eclipse官方下載最新版本。因?yàn)殚_發(fā)是基于java的,所以jdk是少不了的,jdk要求是5.0或者6.0,我還是用5.0比較多,可以到sun官方下載。2.3 Android開發(fā)環(huán)境變量配置2.3.1 jdk的配置首先要到sun官方下載jdk,注意的是下載jdk而不是下載jre,因?yàn)閖re是提供java的運(yùn)行環(huán)境而不是開發(fā)環(huán)境。sun官方網(wǎng)站是:HYPERLINK /下載后安裝是下的解壓包那就解壓到某目錄,例如解壓到是C:Program FilesJavajdk1.5.0_14右鍵點(diǎn)擊我的電腦 - 屬性 - 高級(jí),點(diǎn)擊下面的環(huán)境變量,在下面的“系統(tǒng)變

29、量”處選擇新建在變量名處輸入 JAVA_HOME變量值中輸入剛才的目錄,比如我的就C:Program FilesJavajdk1.5.0_14 。效果如圖2-1所示:圖2-1進(jìn)入環(huán)境變量確定后再新建一個(gè)變量名為classpath,變量值為 %JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar , 確定后找到PATH的變量,雙擊或點(diǎn)擊編輯,在變量值最前面加上%JAVA_HOME%/bin; 注意里面的是,確定、確定、確定后即可。具體如下圖2-2所示:圖2-2環(huán)境變量的設(shè)置然后開始 - 運(yùn)行 cmd,輸入java或者javac看看有沒有效果,如果出來一大

30、堆其它的東西,那就好了,如果出現(xiàn)類似xxx不是內(nèi)部或者是外部命令之類的,那就說明你的設(shè)置有問題,看看那里出問題然后加以改正。2.3.2 sdk的配置因?yàn)槲覀円_發(fā)的android應(yīng)用程序,所以下的sdk是Google那里下載,地址在HYPERLINK /sdk/1.5_r3/index.html/sdk/1.5_r3/index.html 以后更新后估計(jì)地址會(huì)變,所以大家可以從HYPERLINK /index.html/index.html進(jìn)入android主頁,然后點(diǎn)擊sdk就到了這個(gè)下載頁面,我是XP,當(dāng)然下載了第一個(gè)Windows的版本。下載后解壓到一個(gè)目錄,如是D:SDKandroid

31、-sdk-windows-1.5_r3android-sdk-windows-1.5_r3 然后同樣要設(shè)置環(huán)境變量,同jdk設(shè)置,新建一個(gè)SDK_HOME,值為D:SDKandroid-sdk-windows-1.5_r3android-sdk-windows-1.5_r3 ,然后找到path,在前面加上%SDK_HOME%tools; 就OK了。和jdk一樣,我們也可以測(cè)試一下環(huán)境變量是否設(shè)置成功,cmd窗口中輸入android,出現(xiàn)一堆東西,就完成了。2.4 eclipse設(shè)置當(dāng)然,以上都搞定后,還不能馬上用eclipse開發(fā)android應(yīng)用程序,還必須添加eclipse插件才行,幸好這

32、步驟非常輕松,打開eclipse后,點(diǎn)擊菜單欄的help - install new software. 然后點(diǎn)擊Add會(huì)出來一個(gè)Add Site的窗口,這里Name輸入android(自己取個(gè)就是了),location中輸入插件的網(wǎng)絡(luò)地址:HYPERLINK /android/eclipse/android/eclipse/然后就等待連接了,然后install,把Android DDMS 和 Android Development Tools都選中,finish就可以了,可能有段時(shí)間會(huì)去計(jì)算插件占用資源情況,慢慢等會(huì)。完成后會(huì)提示重啟eclipse來加載插件,ok重啟,就可以用了。2.5 A

33、ndroid開發(fā)環(huán)境配置最終步驟為什么要有這個(gè)步驟,是因?yàn)檫\(yùn)行了example的時(shí)候總會(huì)出現(xiàn)“Failed to find an AVD compatible with target”,所以在這里寫一下該步驟來提供大家的方便。avd必須在運(yùn)行實(shí)例之前前創(chuàng)建好,這個(gè)時(shí)候可以直接在cmd中輸入 android list,就會(huì)列出幾個(gè)由avd創(chuàng)建的api,如果有id1 id2 id3 分別對(duì)應(yīng)sdk1.1 sdk1.5 GoogleAPIs。然后就運(yùn)行android create -name myname(取一個(gè)英文的名字) -target 3(如果要用sdk1.5就輸入2,1.1輸出1)3 And

34、roid應(yīng)用程序核心本章將會(huì)詳細(xì)敘述Android的應(yīng)用程序所包括的基本組件,還有這些組件之間的溝通方式Intent(除了Contentprovider),同時(shí)講解一下Android應(yīng)用程序的生命周期(Activity)這是其他智能收與Android手機(jī)平臺(tái)最顯著不同的地方。最后將介紹在Android的應(yīng)用程序中如何利用下載外部資源。3.1應(yīng)用程序基礎(chǔ)Android的應(yīng)用程序全部都是用Java編程語言所寫的。編譯后的Java代碼包括應(yīng)用程序要求的任何數(shù)據(jù)和資源文件,是通過aapt工具捆綁成一個(gè)Android包,歸檔文件是以.apk為后綴。這個(gè)文件是分發(fā)應(yīng)用程序和安裝到移動(dòng)設(shè)備的中介或者是工具,

35、用戶下載這個(gè)文件到他們自己的設(shè)備上。一個(gè).apk文件中的所有代碼就會(huì)被認(rèn)為是一個(gè)應(yīng)用程序。aapt是Android Asset Packaging Tool的首寫字母的縮寫,這個(gè)工具包是含在SDK的tools/目錄下的。查看、創(chuàng)建、更新與zip兼容的歸檔文件(zip、jar、apk)。它也能將資源文件編譯成二進(jìn)制包。雖然你可能不會(huì)經(jīng)常直接使用appt,但構(gòu)建腳本(build scripts)和IDE插件會(huì)使用這個(gè)工具打包成apk文件,構(gòu)成一個(gè)Android的應(yīng)用程序。下面是更詳細(xì)的使用細(xì)節(jié),首先打開一個(gè)終端,進(jìn)入tools/目錄下,運(yùn)行命令:Linux或Mac操作系統(tǒng):./aapt ,如果是W

36、indows:aapt.exe 。在這里注意的是:tools/目錄指的是android SDK目錄下的/platforms/android-X/tools/。在很多的方面,每個(gè)Android的應(yīng)用程序是生活在它自己的世界。默認(rèn)的情況下,任何一個(gè)應(yīng)用程序是運(yùn)行在它自己的Linux進(jìn)程中。而當(dāng)應(yīng)用程序中的任何代碼需要被執(zhí)行時(shí)候,Android將啟動(dòng)進(jìn)程;當(dāng)它不再需要和系統(tǒng)資源不會(huì)被其他應(yīng)用程序所請(qǐng)求時(shí),Android就會(huì)關(guān)閉進(jìn)程這個(gè)進(jìn)程。每一個(gè)應(yīng)用程序都有自己的Java虛擬機(jī)(VM),所以應(yīng)用程序的代碼是獨(dú)立于其他所有的應(yīng)用程序代碼的運(yùn)行。在默認(rèn)情況下,每一個(gè)應(yīng)用程序分配一個(gè)唯一的Linux用戶I

37、D。權(quán)限被設(shè)置為每一個(gè)應(yīng)用程序的文件僅對(duì)用戶和應(yīng)用程序自己本身可見。雖然有一些方法也可以暴露他們給其他應(yīng)用程序。也有可能的是設(shè)置兩個(gè)應(yīng)用程序共享一個(gè)用戶ID,這種情況下,他們能夠看到對(duì)方的文件。為了節(jié)省系統(tǒng)資源的占用,具有相同ID的應(yīng)用程序最好可以安排在同一個(gè)Linux進(jìn)程中,共享同一個(gè)VM。3.2 應(yīng)用程序組件Android的一個(gè)主要特點(diǎn)是,一個(gè)應(yīng)用程序可以利用其他應(yīng)用程序的元素(假設(shè)這些應(yīng)用程序允許的話)。例如,如果你的應(yīng)用程序需要顯示一個(gè)圖像的滾動(dòng)列表,且其他應(yīng)用程序已經(jīng)開發(fā)了一個(gè)合適的滾動(dòng)條并可以提供給別的應(yīng)用程序用,你可以調(diào)用這個(gè)滾動(dòng)條來工作,而不用自己開發(fā)一個(gè)。你的應(yīng)用程序不用并入

38、其他應(yīng)用程序的代碼或鏈接到它。相反,當(dāng)需求產(chǎn)生時(shí)它只是啟動(dòng)其他應(yīng)用程序塊。對(duì)于這個(gè)工作,當(dāng)應(yīng)用程序的任何部分被請(qǐng)求時(shí),系統(tǒng)必須能夠啟動(dòng)一個(gè)應(yīng)用程序的進(jìn)程,并實(shí)例化該部分的Java對(duì)象。因此,不像其他大多數(shù)系統(tǒng)的應(yīng)用程序,Android應(yīng)用程序沒有一個(gè)單一的入口點(diǎn)(例如,沒有main()函數(shù))。相反,系統(tǒng)能夠?qū)嵗瓦\(yùn)行需要幾個(gè)必要的組件。有四種類型的組件:活動(dòng)(Activities) 服務(wù)(Services) 廣播接收者(Broadcast receivers) 內(nèi)容提供者(Content providers) 然而,并不是所有的應(yīng)用程序都必須包含上面的四個(gè)部分,你的應(yīng)用程序可以由上面的一個(gè)或

39、幾個(gè)來組建。當(dāng)你決定使用以上哪些組件來構(gòu)建Android應(yīng)用程序時(shí),你應(yīng)該將它們列在AndroidManifest.xml文件中,在這個(gè)文件中你可以聲明應(yīng)用程序組件以及它們的特性和要求。關(guān)于AndroidManifest.xml在HYPERLINK /skynet/archive/2010/04/13/1711479.htmlAndroid開發(fā)之旅:HelloWorld項(xiàng)目的目錄結(jié)構(gòu)的1.6、AndroidManifest.xml簡(jiǎn)單介紹了一下,你可以參考一下,下篇也將介紹它。3.2.1、活動(dòng)(Activities) 一個(gè)活動(dòng)表示一個(gè)可視化的用戶界面,關(guān)注一個(gè)用戶從事的事件。例如,一個(gè)活動(dòng)可能

40、表示一個(gè)用戶可選擇的菜單項(xiàng)列表,或者可能顯示照片連同它的標(biāo)題。一個(gè)文本短信應(yīng)用程序可能有一個(gè)活動(dòng),顯示聯(lián)系人的名單發(fā)送信息;第二個(gè)活動(dòng),寫信息給選定的聯(lián)系人;其他活動(dòng),重新查看舊信息或更改設(shè)置。雖然他們一起工作形成一個(gè)整體的用戶界面,但是每個(gè)活動(dòng)是獨(dú)立于其他活動(dòng)的。每一個(gè)都是作為Activity基類的一個(gè)子類的實(shí)現(xiàn)。android.app.Activity類:因?yàn)閹缀跛械幕顒?dòng)(activities)都是與用戶交互的,所以Activity類關(guān)注創(chuàng)建窗口,你可以用方法setContentView(View)將自己的UI放到里面。然而活動(dòng)通常以全屏的方式展示給用戶,也可以以浮動(dòng)窗口或嵌入在另外一個(gè)

41、活動(dòng)中。有兩個(gè)方法是幾乎所有的Activity子類都實(shí)現(xiàn)的:onCreate(Bundle):初始化你的活動(dòng)(Activity),比如完成一些圖形的繪制。最重要的是,在這個(gè)方法里你通常將用布局資源(layout resource)調(diào)用setContentView(int)方法定義你的UI,和用findViewById(int)在你的UI中檢索你需要編程地交互的小部件(widgets)。setContentView指定由哪個(gè)文件指定布局(main.xml),可以將這個(gè)界面顯示出來,然后我們進(jìn)行相關(guān)操作,我們的操作會(huì)被包裝成為一個(gè)意圖(Intent),然后這個(gè)意圖對(duì)應(yīng)有相關(guān)的activity進(jìn)行處

42、理。 onPause():處理當(dāng)離開你的活動(dòng)時(shí)要做的事情。最重要的是,用戶做的所有改變應(yīng)該在這里提交(通常ContentProvider保存數(shù)據(jù))。 生命周期如圖3-1圖3-1Android的生命周期每一個(gè)應(yīng)用程序可能只包含一個(gè)活動(dòng),或者是像短信應(yīng)用程序一樣,它可能會(huì)包含幾個(gè)活動(dòng)。這些活動(dòng)分別是什么,以及有多少,這個(gè)當(dāng)然取決于它的應(yīng)用程序自己的設(shè)計(jì)。根據(jù)一般情況來說,當(dāng)一個(gè)應(yīng)用程序被啟動(dòng)的時(shí)候,會(huì)被標(biāo)記為第一個(gè)的活動(dòng),應(yīng)該展示給用戶。從一個(gè)活動(dòng)轉(zhuǎn)移到另外一個(gè)活動(dòng)由當(dāng)前的活動(dòng)完成從而開始下一個(gè)。每一個(gè)活動(dòng)都會(huì)有一個(gè)默認(rèn)的窗口。根據(jù)一般情況來說,窗口是會(huì)填滿整個(gè)屏幕的,但是它也有可能比屏幕小或者是

43、浮在其他窗口上,這個(gè)就是程序員代碼的編寫情況了。一個(gè)活動(dòng)還可以使用額外窗口。比如彈出式對(duì)話框,或者是當(dāng)一個(gè)用戶選擇屏幕上一個(gè)特定的項(xiàng)時(shí),會(huì)跳出一個(gè)窗口來顯示給用戶重要的信息。窗口的可視化內(nèi)容是由繼承自接口為View基類,一個(gè)分層的視圖對(duì)象提供。每個(gè)可視化控件是窗口內(nèi)的一個(gè)特定的矩形空間。父視圖包含和組織子女視圖的布局。葉子視圖-分層的底層。繪制的矩形會(huì)直接控制和響應(yīng)用戶的操作。所以,一個(gè)視圖活動(dòng)是與用戶發(fā)生交互的地方。比如說,一個(gè)視圖顯示一個(gè)小的圖片和當(dāng)用戶點(diǎn)擊圖片時(shí)發(fā)起一個(gè)動(dòng)作行為。Android有一些現(xiàn)成的可視化控件你可以使用,其中包括按鈕(buttons)、圖片按鈕(ImageButto

44、n)、文本域(text fields)、可編輯文本控件(EditText)、菜單項(xiàng)(menu items)、仿真時(shí)鐘(AnalogClock)滾動(dòng)條(scroll bars)、開關(guān)按鈕(ToggleButton)、復(fù)選按鈕(check boxes)等等。通過Activity.setContentView() 方法來設(shè)置一個(gè)視圖層次在我們的活動(dòng)窗口中。內(nèi)容視圖(content view)是層次結(jié)構(gòu)的根視圖對(duì)象。層次結(jié)構(gòu)如下圖3-2所示:圖3-2View的層次結(jié)構(gòu)Activity.setContentView()方法:public void setContentView (int layoutRe

45、sID):根據(jù)布局資源的設(shè)置活動(dòng)界面。資源將會(huì)被夸大,添加布局資源文件中的所有的最高層的視圖( top-level views )到活動(dòng).3.2.2、 服務(wù)(Services)與Activity相反,Service是沒有可視化的用戶界面,但是Service的特點(diǎn)是能長(zhǎng)時(shí)間在后臺(tái)運(yùn)行的。所以,也可以這樣去理解,Service是具有一段較長(zhǎng)生命周期而且沒有用戶界面的程序。比如說一個(gè)服務(wù)可能要播放背景音樂但是用戶做可以去做其他一些事情,或者它也可能從網(wǎng)絡(luò)獲取數(shù)據(jù),也或者是計(jì)算一些東西并會(huì)提供一個(gè)結(jié)果給需要的活動(dòng)(activities)。每一個(gè)服務(wù)都繼承自Service基類。每一個(gè)服務(wù)類都惠子在And

46、roidManifest.xml中有自己相應(yīng)的聲明。服務(wù)必須可以通過Context.startService()或者Context.bindService()啟動(dòng)因?yàn)閟ervice是有兩個(gè)不同的生命周期的。一個(gè)非常典型的例子是媒體播放器播放一個(gè)播放列表中的歌曲文件。該播放器應(yīng)用程序?qū)⒖赡苡幸粋€(gè)或者是多個(gè)活動(dòng)(activities),可以允許用戶選擇要聽的歌曲和開始播放。然而,音樂播放本身就不會(huì)被一個(gè)活動(dòng)處理,因?yàn)橛脩羰窍M3忠魳芬恢辈シ诺?,?dāng)用戶離開播放器的時(shí)候而去做其他事情。為了保持音樂能夠繼續(xù)播放,媒體播放器活動(dòng)可以啟動(dòng)一個(gè)服務(wù)運(yùn)行在后臺(tái)的運(yùn)行。系統(tǒng)將會(huì)保持音樂播放服務(wù)運(yùn)行,甚至媒體播放

47、器離開屏幕的時(shí)候??梢赃B接到(綁定到)一個(gè)持續(xù)運(yùn)行的服務(wù)(并啟動(dòng)服務(wù),如果它尚未運(yùn)行)。連接之后,你可以通過服務(wù)暴露的接口與服務(wù)交流。對(duì)于音樂服務(wù),這個(gè)接口可以允許用戶暫停、倒帶、停止和重新播放。像活動(dòng)(activities)和其他組件一樣,服務(wù)(services)運(yùn)行在應(yīng)用程序進(jìn)程中的主線程中。因此,他們將不會(huì)阻止其他組件或用戶界面,他們往往產(chǎn)生其他一些耗時(shí)的任務(wù)(如音樂播放)。3.2.3、廣播接收者(Broadcast receivers) 一個(gè)廣播接收者是這樣一個(gè)組件,它不做什么事,僅是接受廣播公告并作出相應(yīng)的反應(yīng)。許多廣播源自于系統(tǒng)代碼,例如公告時(shí)區(qū)的改變、電池電量低、已采取圖片、用戶

48、改變了語言偏好。應(yīng)用程序也可以發(fā)起廣播,例如為了他其他程序知道某些數(shù)據(jù)已經(jīng)下載到設(shè)備且他們可以使用這些數(shù)據(jù)。一個(gè)應(yīng)用程序可以有任意數(shù)量的廣播接收者去反應(yīng)任何它認(rèn)為重要的公告。所有的接受者繼承自BroadcastReceiver基類。BroadcastReceiver類:是接受sendBroadcast()發(fā)送的意圖(intents)的基類。可以用Context.registerReceiver()動(dòng)態(tài)地注冊(cè)這個(gè)類的實(shí)例,或者通過AndroidManifest.xml中標(biāo)簽靜態(tài)發(fā)布。注意:如果你在Activity.onResume() 注冊(cè)一個(gè)接受者,你應(yīng)該在Activity.onPause()

49、注銷它。因?yàn)楫?dāng)暫停時(shí)你不會(huì)收到意圖,注銷它將削減不必要的系統(tǒng)開銷。不要在Activity.onSaveInstanceState()中注銷它,因?yàn)樗鼘⒉粫?huì)被調(diào)用,如果用戶移動(dòng)到先前的堆棧。有兩種主要的可接受廣播類型:正常廣播(由Context.sendBroadcast發(fā)送)是完全異步的。所有的廣播接收者以無序方式運(yùn)行,往往在同一時(shí)間接收。這樣效率較高,但是意味著接受者不能使用結(jié)果或終止廣播數(shù)據(jù)傳播。 有序廣播(由Context.sendOrderedBroadcast發(fā)送)一次傳遞給一個(gè)接收者。由于每個(gè)接收者依次執(zhí)行,因此它可以傳播到下一個(gè)接收器,也可以完全終止傳播以便他不會(huì)傳遞給其他接收者

50、。接收者的運(yùn)行順序可由匹配的意圖過濾器(intent-filter)的android:priority屬性控制。 廣播接收者不顯示一個(gè)用戶界面。然而,它們啟動(dòng)一個(gè)活動(dòng)去響應(yīng)收到的信息,或者他們可能使用NotificationManager去通知用戶。通知可以使用多種方式獲得用戶的注意閃爍的背光、振動(dòng)設(shè)備、播放聲音等等。典型的是放在一個(gè)持久的圖標(biāo)在狀態(tài)欄,用戶可以打開獲取信息。3.2.4、內(nèi)容提供者(Content providers)內(nèi)容提供者(content provider)使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。這些數(shù)據(jù)可以存儲(chǔ)在文件系統(tǒng)中、在一個(gè)SQLite數(shù)據(jù)庫、或以任何其他合

51、理的方式。內(nèi)容提供者繼承自ContentProvider 基類并實(shí)現(xiàn)了一個(gè)標(biāo)準(zhǔn)的方法集,使得其他應(yīng)用程序可以檢索和存儲(chǔ)數(shù)據(jù)。然而,應(yīng)用程序并不直接調(diào)用這些方法。相反,替代的是它們使用一個(gè)ContentResolver對(duì)象并調(diào)用它的方法。ContentResolver能與任何內(nèi)容提供者通信,它與提供者合作來管理參與進(jìn)來的進(jìn)程間的通信。內(nèi)容提供者是Android應(yīng)用程序的主要組成部分之一,提供內(nèi)容給應(yīng)用程序。他們封裝數(shù)據(jù)且通過單個(gè)ContentResolver接口提供給應(yīng)用程序。只有需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。例如,通訊錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中。如

52、果你不需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù),你可以直接使用SQLiteDataBase當(dāng)ContentResolver發(fā)出一個(gè)請(qǐng)求時(shí),系統(tǒng)檢查給定的URI的權(quán)限并傳遞請(qǐng)求給內(nèi)容提供者注冊(cè)。內(nèi)容提供者能理解URI想要的東西。UriMatcher 類用于幫組解析URIs。需要實(shí)現(xiàn)的方法主要如下:query(Uri, String, String, String, String) 返回?cái)?shù)據(jù)給調(diào)用者 insert(Uri, ContentValues) 插入數(shù)據(jù)到內(nèi)容提供者 update(Uri, ContentValues, String, String) 更新內(nèi)容提供者已存在的數(shù)據(jù) delete(Uri,

53、 String, String) 從內(nèi)容提供者中刪除數(shù)據(jù) getType(Uri) 返回內(nèi)容提供者中的MIME 類型數(shù)據(jù) 更多的關(guān)于ContentResolver信息,請(qǐng)查看相關(guān)文檔。每當(dāng)有一個(gè)應(yīng)該由特定組件處理的請(qǐng)求,Android可以確保該組件的應(yīng)用程序正在運(yùn)行,如果沒有就啟動(dòng)它,而且一個(gè)適當(dāng)?shù)慕M件實(shí)例可用,如果沒有就創(chuàng)建。4相關(guān)技術(shù)概念 本章節(jié)主要介紹一下此論文中用到了的Android的布局文件,可視化控件以及它們的具體實(shí)現(xiàn)。4.1坐標(biāo)布局(AbsoluteLayout)坐標(biāo)布局(AbsoluteLayout)的子控件需要指定相對(duì)與此坐標(biāo)布局的橫、縱坐標(biāo)的值,將會(huì)想FrameLayout

54、那樣被排在左上角。項(xiàng)目中進(jìn)入游戲的布局文件代碼如下: 4.2 Intent Android中提供了Intent機(jī)制來協(xié)助應(yīng)用間的交互與通訊,Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。Intent不僅可用于應(yīng)用程序之間,也可用于應(yīng)用程序內(nèi)部的Activity/Service之間的交互。因此,Intent在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。(1)action:一般要執(zhí)行的操作,如ACTION_VIE

55、W,ACTION_EDIT,ACTION_MAIN等(2)Data也就是執(zhí)行動(dòng)作要操作的數(shù)據(jù)Android中采用指向數(shù)據(jù)的一個(gè)URI來表示,如在聯(lián)系人應(yīng)用中,一個(gè)指向某聯(lián)系人的URI可能為:content:/contacts/1。對(duì)于不同的動(dòng)作,其URI數(shù)據(jù)的類型是不同的(可以設(shè)置type屬性指定特定類型數(shù)據(jù)),如 ACTION_EDIT指定Data為文件URI,打電話為tel:URI,訪問網(wǎng)絡(luò)為http:URI,而由content provider提供的數(shù)據(jù)則為content: URIs。(3)category:提供了有關(guān)的行動(dòng)來執(zhí)行的其他信息。例如,CATEGORY_LAUNCHER意味著

56、它應(yīng)該出現(xiàn)在作為頂層應(yīng)用程序啟動(dòng)器,而CATEGORY_ALTERNATIVE意味著它應(yīng)在的其他行動(dòng)用戶可以對(duì)一個(gè)數(shù)據(jù)列表中。 (4)type:指定一個(gè)明確的意圖的數(shù)據(jù)類型(MIME類型)。一般情況下,類型推斷,從數(shù)據(jù)本身。通過設(shè)置這個(gè)屬性,您禁用,評(píng)價(jià)并強(qiáng)制顯式類型。 (5)component:指定組件類使用的意圖明確的名稱。通常這是由看在意圖(動(dòng)作,數(shù)據(jù)/類型和類別)其它信息和匹配一個(gè)組件,它可以處理它的。如果這個(gè)屬性被設(shè)置,那么評(píng)價(jià)沒有執(zhí)行,這部份會(huì)被用來完全一樣的。通過指定這個(gè)屬性,其他所有屬性成為可選的意向。 (6)extras:這是任何其他信息包。這可以用來提供擴(kuò)展信息的組件。例如

57、,如果我們有一個(gè)行動(dòng),發(fā)送一封郵件,我們也可以包括在這里的數(shù)據(jù)提供一個(gè)額外的部分主題,正文等。下面是轉(zhuǎn)載來的其他的一些 Intent 用法實(shí)例(轉(zhuǎn)自 javaeye )顯示網(wǎng)頁1. Uri uri = Uri.parse();2. Intent intent = new Intent(Intent.ACTION_VIEW, uri);3. startActivity(intent);顯示地圖1. Uri uri = Uri.parse(geo:38.899533,-77.036476);2. Intent intent = new Intent(Intent.ACTION_VIEW, uri)

58、;3. startActivity(intent);4. /其他 geo URI ?例5. /geo:latitude,longitude;6. /geo:latitude,longitude?z=zoom;7. /geo:0,0?q=my+street+address;8. /geo:0,0?q=business+near+city;9. /google.streetview:cbll=lat,lng&cbp=1,yaw,pitch,zoom&mz=mapZoom;路徑規(guī)劃1. Uri uri = Uri.parse(/maps?f=d&saddr=startLat%20startLng&d

59、addr=endLat%20endLng&hl=en);2. Intent intent = new Intent(Intent.ACTION_VIEW, uri);3. startActivity(intent);4. /where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456打電話1. /叫出撥號(hào)程序2. Uri uri = Uri.parse(tel:0280000456);3. Intent intent = new Intent(Intent.ACTION_DIAL, uri

60、);4. startActivity(intent);1. / 直接打電話出去2. Intent intent = new Intent(Intent.ACTION_CALL, uri);3. Uri uri = Uri.parse(tel:0280000456); 4.3 AlertDialogAlertDialog是一個(gè)Dialog類的子類,可以顯示一個(gè)、兩個(gè)或三個(gè)按鈕。如果你只是想在此對(duì)話框中顯示一個(gè)字符串,請(qǐng)使用setMessage()方法。如果你想顯示一個(gè)更復(fù)雜的View,查找FrameLayout的所謂“自定義“,并添加到您的View:FrameLayout fl = (Frame

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論