版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本科畢業(yè)設(shè)計(jì)(論文)本科畢業(yè)設(shè)計(jì)(論文) 題目: 基于 android 的 五子棋游戲設(shè)計(jì) 院系: 計(jì)算機(jī)與信息工程學(xué)院 基于 android 的五子棋游戲設(shè)計(jì) 摘摘 要要 移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來(lái)極大的改變了我們的生活,而 android 是一種以 linux 為基礎(chǔ) 的開(kāi)放源碼操作系統(tǒng)迅速占領(lǐng)了智能機(jī)操作系統(tǒng),所以在 android 環(huán)境下開(kāi)發(fā)顯得尤為必 要。本文詳細(xì)介紹了在 android 平臺(tái)上以 java 為語(yǔ)言編寫(xiě)游戲的過(guò)程。五子棋游戲的開(kāi) 發(fā)不僅是一個(gè)簡(jiǎn)單游戲的編寫(xiě)過(guò)程,更重要的是在系統(tǒng)分析和設(shè)計(jì)階段所做的工作。本文 在設(shè)計(jì)過(guò)程中嚴(yán)格遵循軟件工程學(xué)的方法,用分階段的生命周期計(jì)劃嚴(yán)格管
2、理,并主要講述 了程序的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)階段,對(duì)程序進(jìn)行需求迭代,不斷修正和改進(jìn),利用 surface 重 繪等數(shù)據(jù)存儲(chǔ)功能,直到形成一個(gè)完善的可行性系統(tǒng).界面美觀、大方,方便的操作與良好的 視覺(jué)感應(yīng)共同構(gòu)成了“基于 android 平臺(tái)的五子棋游戲設(shè)計(jì)與開(kāi)發(fā)”的設(shè)計(jì)。 關(guān)鍵詞關(guān)鍵詞: android,java,數(shù)據(jù)存儲(chǔ),軟件工程,五子棋 the five in a row game based on android abstract arrival of the mobile internet era has greatly changed our lives, and android i
3、s a linux-based open source operating system quickly occupied the smartphone operating system, android development is particularly necessary under the circumstances. this paper focus on a based on the android platfo rm of five in a row game design and development program design and application syste
4、m develom ent issues as the background, introduces in detail in the android platform to java language write gam es for the process.the development of the quintet game is not just a progress of programing. whats more, we need to pay more attention to the work on the period of systematic analysis and
5、design.th e program follows the software engineering strictly and narrates the major design and section. thispro gram maily talk about the period of the system design and the detailed design. and also it will stud y on the bug fixing and improvements. by using the some fuctiong of datalogging such a
6、s the surfac e, it build a practicable system. the nice and expert interface and good visual introduction form the design which is based on the designing and development of android platform five-in-a-row game. key words: android,java, data storage,software engineering, five in a row 目目 錄錄 1緒論緒論.5 1.
7、1 背景.7 1.2 課題來(lái)源.7 1.3 國(guó)內(nèi)外研究現(xiàn)狀.8 1.4 論文主要工作.8 2 android 的開(kāi)發(fā)環(huán)境的開(kāi)發(fā)環(huán)境.9 2.1 操作系統(tǒng).9 2.2 android開(kāi)發(fā)環(huán)境 .9 2.3 android開(kāi)發(fā)環(huán)境變量配置 .10 2.3.1 jdk的配置.10 2.3.2 sdk的配置.11 2.4 eclipse設(shè)置.11 2.5 android開(kāi)發(fā)環(huán)境配置最終步驟 .12 3 android 的架構(gòu)分析的架構(gòu)分析.12 3.1 android的功能特征 .12 3.2 android架構(gòu)分析 .14 3.2.1 應(yīng)用程序框架.14 3.2.2 類庫(kù).15 3.2.3 andr
8、oid運(yùn)行時(shí)的組件.16 3.3 android應(yīng)用的構(gòu)成和工作機(jī)制 .16 4 android 應(yīng)用程序架構(gòu)結(jié)構(gòu)剖析應(yīng)用程序架構(gòu)結(jié)構(gòu)剖析.16 4.1 應(yīng)用程序基礎(chǔ).17 4.2 應(yīng)用程序組件.17 4.2.1 活動(dòng)(activities).18 4.2.2 服務(wù)(services).20 4.2.3 廣播接收者(broadcast receivers).21 4.2.4 內(nèi)容提供者(content providers).22 5 程序的設(shè)計(jì)與實(shí)現(xiàn)程序的設(shè)計(jì)與實(shí)現(xiàn).22 5.1 程序的算法研究:.23 5.1.1 棋盤(pán)布局的數(shù)據(jù)結(jié)構(gòu).23 5.1.2 行棋坐標(biāo)判定.24 5.1.3 勝負(fù)的判
9、定.25 5.2 流程設(shè)計(jì).26 5.3 游戲的實(shí)現(xiàn):.27 5.4 改進(jìn)與優(yōu)化.29 總結(jié)總結(jié).30 參考文獻(xiàn)參考文獻(xiàn).31 附錄附錄 1.32 1緒論 智能手機(jī)(smartphone),具有獨(dú)立的 操作系統(tǒng),像個(gè)人電腦一樣支持用戶自行安裝 軟件、游 戲等第三方服務(wù)商提供的程序,并通過(guò)此類程序不斷對(duì)手機(jī)的功能進(jìn)行擴(kuò)充,同時(shí)可通過(guò)移動(dòng)通 訊網(wǎng)絡(luò)來(lái)實(shí)現(xiàn) 無(wú)線網(wǎng)絡(luò)接入。目前,全球多數(shù)手機(jī)廠商都有智能手機(jī)產(chǎn)品,而芬蘭諾基亞、美 國(guó)蘋(píng)果、加拿大 rim(黑莓) 、美國(guó)摩托羅拉、中國(guó)臺(tái)灣宏達(dá)( htc)更是智能機(jī)中的佼佼者。 智能手機(jī)具有五大特點(diǎn):1. 具備了無(wú)線接入互聯(lián)網(wǎng)的能力,即要有 gsm 的支持
10、網(wǎng)絡(luò)下的 gprs 或者是 cdma 網(wǎng)絡(luò)支持下的 cdma 1x 或 3g 網(wǎng)絡(luò)。2. 人性化,可以根據(jù)個(gè)人需要擴(kuò)展機(jī)器的功能 。3. 它是具有開(kāi)放性的操作系統(tǒng),還可以安裝非常多的應(yīng)用程序,使得智能手機(jī)的功能可以得到無(wú)限 的擴(kuò)展。4. 具有 pda 功能,其中包括個(gè)人信息管理、日程記事、任務(wù)安排、多媒體應(yīng)用、瀏覽網(wǎng)頁(yè) 。5.強(qiáng)大的功能,擴(kuò)展性能強(qiáng),第三方軟件支持多。 android 的誕生:從時(shí)間要追溯到 二零零三年,在參與到 android 的傳奇之前,它的創(chuàng)始人 and y rubin 在周刊中這么說(shuō)過(guò):“在開(kāi)發(fā)對(duì)于用戶位置以及狀態(tài)更加敏感的移動(dòng)設(shè)備方面存在著巨大的潛 力”,他還說(shuō)過(guò):“
11、很快他們就會(huì)在消費(fèi)類產(chǎn)品中使用這些位置信息,如果開(kāi)發(fā)者足夠聰明的話。 ”現(xiàn)在 看起來(lái)他自己都沒(méi)想到他的預(yù)言是多么的準(zhǔn)確:實(shí)際上,移動(dòng)領(lǐng)域?qū)?huì)發(fā)生巨變,從而催生出我們從 未見(jiàn)過(guò)的強(qiáng)大的智能手機(jī)。到二零零五 年有很多關(guān)于 google 即將進(jìn)軍移動(dòng)設(shè)備制造領(lǐng)域并專注于制 造基于位置服務(wù)的手機(jī)的謠傳,但最大的障礙就在于 google 沒(méi)有自己的可以達(dá)成這個(gè)目標(biāo)的平臺(tái)。 在二零零五 年 七月,google 收購(gòu)了 android,這么一個(gè)小規(guī)模收購(gòu)行動(dòng)還是立刻引起了移動(dòng)業(yè) 界的興趣,它們懷疑這是 google 進(jìn)入移動(dòng)市場(chǎng)的的標(biāo)志。盡管如此,這個(gè)當(dāng)時(shí)只是一個(gè)小規(guī)模的移 動(dòng)軟件開(kāi)發(fā)公司正是由 andy
12、rubin、rich miner、nick sears 以及 chris white 四個(gè)人共同創(chuàng)建的 ?,F(xiàn)在看來(lái),他們的懷疑是正確的。差不多兩年半以后,在 二零零七 年 十一 月 五 日,google 發(fā) 布了 android,它這個(gè)的發(fā)布給移動(dòng)業(yè)界帶來(lái)了一場(chǎng)可怕的風(fēng)暴, ,基于 linux 的全新移動(dòng)操作系統(tǒng)。 這不單單是一個(gè)全新的移動(dòng)系統(tǒng),非常重要的是:它是開(kāi)源的。 這是當(dāng)時(shí)新成立的開(kāi)放手機(jī)聯(lián)盟整合下的成果,諸如 google、htc、intel、sprint-nextel、t-mo bile 以及 nvidia 都是這個(gè)聯(lián)盟的成員,該聯(lián)盟的目的就是要?jiǎng)?chuàng)立移動(dòng)設(shè)備的開(kāi)放標(biāo)準(zhǔn)。第一款搭 載
13、 android 系統(tǒng)的手機(jī)是 2008 年 9 月由 t-mobile 發(fā)布的 g1,它擁有 gps 功能,3.1m 攝像頭 ,以及一系列的 google 應(yīng)用。g1 的面市,正式拉開(kāi)了 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í)之后,它的更新給 用戶帶來(lái)了新的體驗(yàn)。用戶界面得到了極大的改良,并且增添了以下功能。 android 1.6 “donut” 2009 年 9 月發(fā)布。搭載 an
14、droid 1.6 的 htc hero 獲得了意想不到的成功。 使得原來(lái)用許多都沒(méi)有用過(guò) android 的人都對(duì) android 非常的關(guān)注,并且也讓競(jìng)爭(zhēng)者蘋(píng)果和微軟更加 警惕了。 android 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ā)布出來(lái),后來(lái)是 2010 年 1 月 10 日發(fā)布的 2.1 版本。很多圍觀群眾和用戶可能會(huì)有點(diǎn)奇怪:“android 為什么會(huì)被用甜點(diǎn)作為它系統(tǒng)版本的代號(hào)?
15、”, 其實(shí)這個(gè)命名方法開(kāi)始在 andoird 1.5 發(fā)布出來(lái)的時(shí)候。每一個(gè)版本代表的甜點(diǎn)的尺寸就越變?cè)酱螅?然后按照字母的數(shù)序:小蛋糕,甜甜圈和松餅。在這之前人們預(yù)計(jì) 2.2 版本的代號(hào)可能是“餡餅”,但 這個(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) 開(kāi)始接受 android 2.2 “froyo”的無(wú)線更新,其它機(jī)型的用戶可能會(huì)在短時(shí)間內(nèi)獲取到這一更新的。 這一版本的更新出來(lái)會(huì)讓大量
16、讓其他手機(jī)用戶垂涎三尺。 有關(guān)的消息眾口一詞聲稱 android 3.0 “gingerbread”,google 將會(huì)在今年秋天的某個(gè)時(shí)候發(fā)布出 來(lái),它將帶來(lái)給用戶新的體驗(yàn)。 從 android 的發(fā)展旅途中,我們看到 2003 年 andy 他是一個(gè)有遠(yuǎn)見(jiàn)的人,看到了 2005 年的起 步和被 google 的收購(gòu),也看到了系統(tǒng)的進(jìn)步以及新的機(jī)型的快速發(fā)布。所有這一切都讓我們相信, android 將會(huì)走向世界第一移動(dòng)操作系統(tǒng)寶座的步伐是勢(shì)不可擋的。android 平板電腦也在今年的夏 天開(kāi)始發(fā)布以及 google tv 發(fā)布以后(也許還有 google music?),android 可
17、能真的會(huì)將繼續(xù)帶著 我們走向移動(dòng)設(shè)備夢(mèng)想的彼岸。 1.1 背景背景 在我們的生活中有許多的游戲,但是游戲不同,它也會(huì)給玩家?guī)?lái)不同的感受和生活理念。游戲 是我們?nèi)粘I畹囊粋€(gè)必不可少的娛樂(lè)項(xiàng)目,也帶動(dòng)了游戲相關(guān)產(chǎn)業(yè)市場(chǎng)的發(fā)展。游戲平臺(tái)是經(jīng)過(guò)從 游戲機(jī)到電視游戲,然后從到 pc 游戲,到手機(jī)游戲,中間經(jīng)歷了很多的技術(shù)的更新和變革。但隨著新 技術(shù)的發(fā)展和我們生活水平質(zhì)量的提高,手機(jī)開(kāi)始逐漸變?yōu)槠占?,因?yàn)槭謾C(jī)是非常小巧便捷的,而且 方便的特性成為我們?nèi)粘I钪斜貍渫ㄓ嵐ぞ?。而基于手機(jī)平臺(tái)的游戲也就擁有的市場(chǎng)空間是巨大的 ,也因隨著 3g 的開(kāi)通和應(yīng)用,手機(jī)游戲必然會(huì)迎來(lái)新的一輪游戲熱潮! 1.2 課
18、題來(lái)源課題來(lái)源 現(xiàn)在的移動(dòng)電話是小型的計(jì)算機(jī),它的處理能力與臺(tái)式機(jī)的標(biāo)準(zhǔn)處理能力相比很有限,但是足夠 運(yùn)行一個(gè)小型的游戲?,F(xiàn)在的手機(jī)的一個(gè)特性就是它們還是網(wǎng)絡(luò)計(jì)算機(jī),能夠高速發(fā)送和接收數(shù)字?jǐn)?shù) 據(jù)。除了語(yǔ)音數(shù)據(jù)以外,它們還可以發(fā)送和接收其它類型的數(shù)據(jù)。所以這樣的網(wǎng)絡(luò)游戲也可以在手機(jī) 上實(shí)現(xiàn)。短信類游戲就好像“虛擬寵物”那樣。短信游戲是通過(guò)玩家和游戲服務(wù)商通過(guò)短信中的文字的 內(nèi)容來(lái)交流,達(dá)到進(jìn)行游戲的目的的一種文字游戲。 由于短信游戲的整個(gè)游戲過(guò)程都是通過(guò)文字來(lái)表 達(dá),造成短信游戲的娛樂(lè)性較差。但是短信游戲卻是兼容性最好的手機(jī)游戲之一。只要您的手機(jī)可以 發(fā)短信,您就可以暢快的享受短信游戲給您帶來(lái)的
19、快樂(lè)了。圖形類游戲更接近我們常說(shuō)的“電視游戲” ,玩家通過(guò)動(dòng)畫(huà)的形式來(lái)發(fā)展情節(jié)進(jìn)行游戲。由于游戲采用了更為直觀且更為精美的畫(huà)面直接表現(xiàn), 因此圖形類游戲的游戲性和代入感往往較文字類游戲高。因此廣受玩家們的歡迎。嵌入式游戲是一種 將游戲程序預(yù)先固化在手機(jī)的芯片中的游戲。由于這種游戲的所有數(shù)據(jù)都是預(yù)先固化在手機(jī)芯片中的 ,因此這種游戲是無(wú)法進(jìn)行任何修改的。也就是說(shuō),您不能更換其它游戲的,只能玩您手機(jī)中已經(jīng)存 在的娛樂(lè)游戲,而且您也不能將它們刪除。手機(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)模式來(lái)推動(dòng)手機(jī)游戲市場(chǎng) 的爆
20、發(fā)和發(fā)展。其中比較吸引人們的是手機(jī)的休閑類的游戲。應(yīng)該可以說(shuō)它是與 pc 網(wǎng)絡(luò)游戲完全的 脫離開(kāi)了,而且充分發(fā)揮了自身的優(yōu)勢(shì)手機(jī)終端。休閑類的游戲恰巧與之相反,只需要很少的網(wǎng)絡(luò)流 量的網(wǎng)絡(luò)環(huán)境,通過(guò)少量多次的游戲形式帶給玩家流暢的游戲體驗(yàn)滿足玩家瞬間提升的快感,但是同 時(shí)卻很難具有長(zhǎng)期的“沉迷”性。 本題目是基于 android 平臺(tái)開(kāi)發(fā)的一個(gè)小型的程序。其實(shí)都差不多,在有 java 的智能手機(jī)上都 可以運(yùn)行。其實(shí)手機(jī)是我們生活中不可缺少的工具,這些小游戲可以帶給我們快樂(lè)和放松我們的心情 。無(wú)論什么樣手機(jī),我想買起來(lái)的時(shí)候上面就有一些它自帶的各種小游戲,其中有一個(gè)獨(dú)特的小游戲 也是非常重要的。
21、 1.3 國(guó)內(nèi)外研究現(xiàn)狀國(guó)內(nèi)外研究現(xiàn)狀 android 是 google 開(kāi)發(fā)的基于 linux 平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和 應(yīng)用程序 移動(dòng)電話工作所需的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙 。google 與開(kāi)放手機(jī)聯(lián)盟合作開(kāi)發(fā)了 android,這個(gè)聯(lián)盟由包括中國(guó)移動(dòng)、摩托羅拉、高通、宏達(dá)電 和 t-mobile 在內(nèi)的 30 多家技術(shù)和無(wú)線應(yīng)用的領(lǐng)軍企業(yè)組成。google 通過(guò)與運(yùn)營(yíng)商、設(shè)備制造商、 開(kāi)發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開(kāi)放式的移動(dòng)電話軟件平 臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開(kāi)放式的生態(tài)系統(tǒng)。 androi
22、d 作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)隨時(shí)隨地為每個(gè)人提供信息這一企 業(yè)目標(biāo)的實(shí)現(xiàn)。我們發(fā)現(xiàn),全球?yàn)閿?shù)眾多的移動(dòng)電話用戶從未使用過(guò)任何基于 android 的電話。谷歌 的目標(biāo)是讓(移動(dòng)通訊)不依賴于設(shè)備甚至平臺(tái)。出于這個(gè)目的,android 將補(bǔ)充,而不會(huì)替代谷歌 長(zhǎng)期以來(lái)奉行的移動(dòng)發(fā)展戰(zhàn)略:通過(guò)與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開(kāi)發(fā)既有 用又有吸引力的移動(dòng)服務(wù),并推廣這些產(chǎn)品。 開(kāi)放手機(jī)聯(lián)盟的成立和 android 的推出是對(duì)現(xiàn)狀的重大改變,在帶來(lái)初步效益之前,還需要不小 的耐心和高昂的投入。但是,我們認(rèn)為全球移動(dòng)用戶從中能獲得的潛在利益是值得付出這些努力的。 如果
23、你也是一個(gè)開(kāi)發(fā)者,并對(duì)我們的想法感興趣,就請(qǐng)?jiān)俳o我們一星期的時(shí)間,屆時(shí)谷歌便能提供 s dk 了。如果你是一名移動(dòng)用戶,只需再等一段時(shí)間,我們的一些合作伙伴計(jì)劃在 2008 年下半年推 出基于 android 平臺(tái)的電話產(chǎn)品。如果你已經(jīng)擁有一部你了解并喜愛(ài)的電話,請(qǐng)登錄 mobile.google.c om ,確保你已經(jīng)安裝谷歌手機(jī)地圖、gmail 以及其他一些專為你的手機(jī)開(kāi)發(fā)的精彩應(yīng)用。谷歌將繼 續(xù)努力,讓這些服務(wù)變得更好,同時(shí)也將添加更有吸引力的特性、應(yīng)用和服務(wù)。 1.4 論文主要工作論文主要工作 此游戲主要是采用 android 的 view 框架編寫(xiě),部分框架運(yùn)用 android 中的
24、其他組件。主要運(yùn)用 了算法來(lái)實(shí)現(xiàn)對(duì)棋局的分析,棋盤(pán)輸贏的判定。 ui 方面:此游戲當(dāng)進(jìn)入游戲的界面時(shí),調(diào)用的是一個(gè)用相對(duì)布局-absolutelayout 的 xml 布局文 件。其中包括了一個(gè) iamgeview 和 4 個(gè) button.分別實(shí)現(xiàn)了不同的功能。第一個(gè) button 是進(jìn)入新游戲 ,點(diǎn)擊按鈕進(jìn)入新游戲,來(lái)選擇對(duì)手。第二個(gè) button 是幫助,用了一個(gè) textview 來(lái)說(shuō)明怎樣來(lái)進(jìn)行 游戲。第三個(gè) button 是游戲的關(guān)于,用了一個(gè) alertdialog 來(lái)介紹了一下游戲的這個(gè)游戲的好處。第四 個(gè) button 是游戲的退出按鈕。在游戲中,我用畫(huà)線來(lái)不滿了整個(gè)的手機(jī)屏
25、幕,在上面用了 textview 來(lái)進(jìn)行了文字的說(shuō)明和提示。 本篇論文,主要目的是為了探討更加深入的理解 android,為移動(dòng)終端上的游戲軟件的打造提供一 個(gè)思路。 2 android 的開(kāi)發(fā)環(huán)境的開(kāi)發(fā)環(huán)境 本章將主要介紹如何構(gòu)建 android 開(kāi)發(fā)環(huán)境,包括獲取 android sdk、eclipse 以及進(jìn)行 android eclipse 插件設(shè)置等。 2.1 操作系統(tǒng)操作系統(tǒng) 目前只支持 xp(32-bit)、vista(32/64-bit)、mac os x 10.4.8 或更新版本(x86)、linux(只在 linux ubuntu dapper drake 上面做過(guò)測(cè)試)。
26、 系統(tǒng) xp sp2/sp3 32bit 來(lái)做講解,其他系統(tǒng)的可以 google 一下差異,反正都大同小異的。 2.2 android 開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境 無(wú)論是官方還是我本人,都建議使用 eclipse 進(jìn)行開(kāi)發(fā),當(dāng)然,eclipse 版本要在 3.3 以上,這是官 方說(shuō)法,3.3 以下我也沒(méi)測(cè)過(guò),3.3 (europa)、3.4 (ganymede) 都可以,java 版本或者 ee 版本也都沒(méi) 問(wèn)題的,可以到 eclipse 官方下載最新版本。因?yàn)殚_(kāi)發(fā)是基于 java 的,所以 jdk 是少不了的,jdk 要求 是 5.0 或者 6.0,我還是用 5.0 比較多,可以到 sun 官方下載。
27、 2.3 android 開(kāi)發(fā)環(huán)境變量配置開(kāi)發(fā)環(huán)境變量配置 2.3.1 jdk 的配置 首先要到 sun 官方下載 jdk,注意的是下載 jdk 而不是下載 jre,因?yàn)?jre 是提供 java 的運(yùn)行環(huán)境而 不是開(kāi)發(fā)環(huán)境。sun 官方網(wǎng)站是:http:/ 下載后安裝是下的解壓包那就解壓到某目錄,例如解壓到是 c:program filesjavajdk1.5.0_14 右鍵點(diǎn)擊我的電腦 - 屬性 - 高級(jí),點(diǎn)擊下面的環(huán)境變量,在下面的“系統(tǒng)變量”處選擇新建在 變量名處輸入 java_home 變量值中輸入剛才的目錄,比如我的就 c:program filesjavajdk1.5.0_14
28、。效果如圖 2-1 所示: 圖 2-1 進(jìn)入環(huán)境變量 確定后再新建一個(gè)變量名為 classpath,變量值為 %java_home%/lib/rt.jar;%java_home%/lib/t ools.jar , 確定后找到 path 的變量,雙擊或點(diǎn)擊編輯,在變量值最前面加上%java_home%/bin; 注意里面的是,確定、確定、確定后即可。具體如下圖 2-2 所示: 圖 2-2 環(huán)境變量的設(shè)置 然后開(kāi)始 - 運(yùn)行 cmd,輸入 java 或者 javac 看看有沒(méi)有效果,如果出來(lái)一大堆其它的東西,那就 好了,如果出現(xiàn)類似 xxx 不是內(nèi)部或者是外部命令之類的,那就說(shuō)明你的設(shè)置有問(wèn)題,看
29、看那里出問(wèn) 題然后加以改正。 2.3.2 sdk 的配置 因?yàn)槲覀円_(kāi)發(fā)的 android 應(yīng)用程序,所以下的 sdk 是 google 那里下載,地址在 http:/developer.a 以后更新后估計(jì)地址會(huì)變,所以大家可以從 http:/developer.android.co m/index.html 進(jìn)入 android 主頁(yè),然后點(diǎn)擊 sdk 就到了這個(gè)下載頁(yè)面,我是 xp,當(dāng)然下載了第一個(gè) wi ndows 的版本。下載后解壓到一個(gè)目錄,如是 d:sdkandroid-sdk-windows-1.5_r3android-sdk-windows -1.5_r3 然后同樣要設(shè)置環(huán)境變
30、量,同 jdk 設(shè)置,新建一個(gè) sdk_home,值為 d:sdkandroid-sdk-win dows-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è)置設(shè)置 當(dāng)然,以上都搞定后,還不能馬上用 eclipse 開(kāi)發(fā) android 應(yīng)用程序,還必須添加 eclipse 插件才行 ,幸好這步驟非常輕松,打開(kāi) eclipse 后,點(diǎn)擊菜單欄的 hel
31、p - install new software. 然后點(diǎn)擊 add 會(huì)出來(lái)一個(gè) add site 的窗口,這里 name 輸入 android(自己取個(gè)就是了),location 中輸入插件的網(wǎng)絡(luò) 地址: https:/dl- 然后就等待連接了,然后 install,把a(bǔ)ndroid ddms 和 android development tools都選中,f inish 就可以了,可能有段時(shí)間會(huì)去計(jì)算插件占用資源情況,慢慢等會(huì)。完成后會(huì)提示重啟 eclipse 來(lái)加 載插件,ok 重啟,就可以用了。 2.5 android 開(kāi)發(fā)環(huán)境配置最終步驟開(kāi)發(fā)環(huán)境配置最終步驟 為什么要有這個(gè)步驟,是因?yàn)?/p>
32、運(yùn)行了 example 的時(shí)候總會(huì)出現(xiàn)“failed to find an avd compatible with target”,所以在這里寫(xiě)一下該步驟來(lái)提供大家的方便。 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 android 的架構(gòu)分
33、析的架構(gòu)分析 3.1 android 的功能特征的功能特征 (l)應(yīng)用程序架構(gòu):在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基礎(chǔ)組件,在開(kāi)發(fā)應(yīng)用程序時(shí),就可以 直接調(diào)用這些組件來(lái)使用,可以節(jié)省開(kāi)發(fā)應(yīng)用程序的心力及時(shí)間。 (2)dalvik 虛擬機(jī)器:在 android 平臺(tái)上所使用 java 虛擬機(jī),不是 sim 公司的標(biāo)準(zhǔn) java 虛擬機(jī),而 是使用 google 自主開(kāi)發(fā)的代號(hào)為 dalvik 的虛擬機(jī),它在保證 api 方面的兼容的同時(shí),針對(duì)移動(dòng)手機(jī) 進(jìn)行了大幅優(yōu)化,占用資源更小,運(yùn)行效率更高。 (3)集成的瀏覽器:集成的瀏覽器是 android 內(nèi)建的瀏覽器,是以 webkit 的瀏覽引擎為基
34、礎(chǔ)所開(kāi)發(fā) 成的。wedkit 是一個(gè)開(kāi)源瀏覽器網(wǎng)頁(yè)排版引擎,目前使用 webkit 引擎的瀏覽器主要有:safari,midori ,epiphany 等。配合 android 手機(jī)的功能,可以在瀏覽網(wǎng)頁(yè)時(shí),達(dá)到更好的效果,例如:局部性的縮放 網(wǎng)頁(yè)上的資訊、觸控式的操作等效果。 (4)優(yōu)化的繪圖能力:在程序里可以用到的繪圖功能分為 2d 與 3d 兩個(gè)方面。在 2d 方面,android 提供了一套特有的類庫(kù)(sgl;而在 3d 方面則是使用 opengles1.0(opengl for embedded systems)規(guī)范 的類庫(kù)。它們是一種非??斓膱D形引擎,并且支持硬件加速。 (5)sq
35、lite 數(shù)據(jù)庫(kù):sqlite 提供結(jié)構(gòu)化的數(shù)據(jù)存取。sqlite 是一款輕型的數(shù)據(jù)庫(kù),它的設(shè)計(jì)目標(biāo)是 嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源非常低。它能夠支持 windows/linu x/u nix 等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 php,java 等,還有 odbc 接口 ,同樣比起 mysql,postgresql 來(lái)講,它的處理速度比它們都快。它無(wú)需安裝和管理配置,它是一個(gè) 儲(chǔ)存在單一磁盤(pán)文件中的完整數(shù)據(jù)庫(kù),體積小只有 250kb 但支持?jǐn)?shù)據(jù)庫(kù)大小至 2tb。它雖然很小巧, 但是支持的 sql 語(yǔ)句毫不遜色于其它開(kāi)源數(shù)據(jù)庫(kù)。同時(shí)它還支持事務(wù)功
36、能和并發(fā)處理等等。sqlite 也 是一套開(kāi)放性的關(guān)聯(lián)式資料庫(kù),其特點(diǎn)在于輕量性方面的設(shè)計(jì)結(jié)構(gòu),更適合在手機(jī)上使用。 (6)多媒體的支持能力:主要用于播放媒體文件。這同時(shí)包括對(duì)音頻(如播放 mp3 或其他音樂(lè)文件等)和 視頻(如播放從網(wǎng)上下載的視頻)的支持,并支持“播放 uri 地址”(note:uri 即是統(tǒng)一資源識(shí)別地址) 模式在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:jpg、png、gif 等格 式。 (7)gsm 技術(shù):global system for mobile communications,即全球移動(dòng)通訊系統(tǒng),俗稱”全球通” ,是一種起源于歐洲的移動(dòng)通信技
37、術(shù)標(biāo)準(zhǔn),是第二代移動(dòng)通信技術(shù),其開(kāi)發(fā)目的是讓全球各地可以共 同使用一個(gè)移動(dòng)電話網(wǎng)絡(luò)標(biāo)準(zhǔn),讓用戶使用一部手機(jī)就能行遍全球。gsm 技術(shù)是屬于手機(jī)硬件方面的 展現(xiàn),也是在開(kāi)發(fā) android 應(yīng)用程序時(shí)可以突出的特點(diǎn)之一。 (8)藍(lán)牙、edge、3g 及 wi-fi:藍(lán)牙是一種新型、開(kāi)放、低成本、短距離的無(wú)線連接技術(shù),可取代 短距離的電纜,實(shí)現(xiàn)話音和數(shù)據(jù)的無(wú)線傳輸。edge(enhanced data rate for gsm,evolution),即增 強(qiáng)型數(shù)據(jù)速率 gsm 演進(jìn)技術(shù)。edge 是一種從 gsm 到 3g 的過(guò)渡技術(shù),它主要是在 gsm 系統(tǒng)中采 用了一種新的調(diào)制方法,即最先進(jìn)的
38、多時(shí)隙操作和 spsk 調(diào)制技術(shù)。由于 8psk 可將現(xiàn)有 gsm 網(wǎng)絡(luò)采 用的 gmsk 調(diào)制技術(shù)的信號(hào)空間從 2 擴(kuò)展到 8,從而使每個(gè)符號(hào)所包含的信息是原來(lái)的 4 倍。wi-fi( wirelessfidelity),即無(wú)線保真技術(shù),與藍(lán)牙技術(shù)一樣,同屬于在辦公室和家庭中使用的短距離無(wú)線技 術(shù)。該技術(shù)使用的是 2.4ghz 附近的頻段,該頻段目前尚屬?zèng)]用許可的無(wú)線頻段。其目前可使用的標(biāo) 準(zhǔn)有兩個(gè),分別是 ieee802.lla 和 ieee802.11b。這些通訊能力也是屬于手機(jī)硬件方面的展現(xiàn),也是在 開(kāi)發(fā) android 應(yīng)用程序時(shí)可以突出的特點(diǎn)之一。 (9)gps: global p
39、ositioning system,即全球定位系統(tǒng),它是一個(gè)由覆蓋全球的 24 顆衛(wèi)星組成的衛(wèi) 星系統(tǒng)。這個(gè)系統(tǒng)可以保證在任意時(shí)刻和任何地點(diǎn)都可以同時(shí)觀測(cè)到 4 顆衛(wèi)星,以保證衛(wèi)星可以采集 到該觀測(cè)點(diǎn)的經(jīng)緯度和高度,以便實(shí)現(xiàn)導(dǎo)航、定位、授時(shí)等功能。這項(xiàng)技術(shù)可以用來(lái)引導(dǎo)飛機(jī)、船舶 、車輛以及個(gè)人。這個(gè)同樣也是屬于手機(jī)硬體方面的體現(xiàn),也是在開(kāi)發(fā) android 應(yīng)用程序是可以突出 的特點(diǎn)之一。 3.2 android 架構(gòu)分析架構(gòu)分析 圖中顯示的是 android 架構(gòu)的五個(gè)主要部分。 3.2.1 應(yīng)用程序框架 在 android sdk 中,定義了讓開(kāi)發(fā)者使用與核心應(yīng)用程序相同 api 的權(quán)限應(yīng)
40、用程序框架是為了 要簡(jiǎn)化組件的重新利用而設(shè)計(jì)的,應(yīng)用程序可以發(fā)布功能為其它應(yīng)用程序所使用。但是,這要受限于 應(yīng)用程序架構(gòu)的安全機(jī)制,使用者以用同樣的機(jī)制來(lái)新增、置換組件。目前所有的應(yīng)用程序是由服務(wù) 及系統(tǒng)來(lái)組成,包含有: (l)一套強(qiáng)大和可擴(kuò)展的視圖系統(tǒng):用來(lái)建構(gòu)一個(gè)應(yīng)用程序的基本組件,包了在開(kāi)發(fā)系統(tǒng)畫(huà)面時(shí),常 用的列表、網(wǎng)格、文本框、按鈕等控制項(xiàng),甚至是內(nèi)嵌的 web 瀏覽器。 圖 2-1 android 架構(gòu)的五個(gè)部分 (2)內(nèi)容提供者:使應(yīng)用程序可以訪問(wèn)另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)庫(kù)),或者共享它們自己的 數(shù)據(jù)。 (3)資源管理器:提供各種非程序代碼的資源讓?xiě)?yīng)用程序去使用。例如:本字
41、符串、圖形文件或排版 相關(guān)的布局文件。 (4)通知管理器:提供應(yīng)用程序在狀態(tài)欄中顯示應(yīng)用程序自定義的提示信息。 (5)活動(dòng)管理器:管理所有應(yīng)用程序的生命周期及提供常用的導(dǎo)航回退功能。例如:啟動(dòng)應(yīng)用程序要 用到的資源準(zhǔn)備及關(guān)閉應(yīng)用程序時(shí)釋放內(nèi)存及相關(guān)資源等工作。 (6)視窗管理器:用來(lái)管理所有啟動(dòng)程序的視窗。 (7)位置管理器:用來(lái)管理地圖服務(wù)的相關(guān)功能。 (8)電話管理器:用來(lái)管理用戶撥打與接聽(tīng)電話的相關(guān)功能。 (9)包管理器:管理所有安裝在 android 系統(tǒng)內(nèi)的包。 3.2.2 類庫(kù) 在 android 中包含一些 c/c+的類庫(kù),這些類庫(kù)能被 android 系統(tǒng)中不同的組件來(lái)使用。開(kāi)
42、發(fā)者 可以通過(guò)應(yīng)用程序框架使用這些功能。部分核心類庫(kù)列表如下: (1)surface manager:主要的功能是讓開(kāi)發(fā)者可以去存取/顯示系統(tǒng)及管理的功能,在顯示與存取 操作間的對(duì)應(yīng)、互動(dòng)以及實(shí)現(xiàn)無(wú)接縫的 2d/3d 多應(yīng)用程序之間的整合。例如:在 2d、2d 顯示上的合 成、疊合動(dòng)作。 (2)3dlibraries:主要是依 opengles1.0 規(guī)范所定義的 3d 繪圖引擎。該庫(kù)使用硬件加速(當(dāng)硬件可用 時(shí)),可以將硬件的 3d 功能做最佳化的處理顯示。 (3)sgl:主要是處理有關(guān)顯示 2d 方面的繪圖引擎。 (4)media frame work:主要是以 packetvideo 公
43、司的 opencore 為基礎(chǔ)所發(fā)展的多媒體類庫(kù),該庫(kù) 支持回放和錄制大量流行的音視頻格式和靜態(tài)圖片。例如:mpeg4、h.264、mp3、aac、amr、jpg 、png、gif 等格式 (5)free type:主要是用來(lái)顯示點(diǎn)陣圖和處理向量字形的。 (6)ssl:(securesocketsuyer),中文名為“安全套接層協(xié)議層” ,它是網(wǎng)景公司提出的基于 web 應(yīng)用 的安全協(xié)議,當(dāng)前版本為 3.0。ssl 協(xié)議指定了一種在應(yīng)用程序協(xié)議(如 http、telenet、nmtp 和 ft p 等)和 tcp/ip 協(xié)議之間提供數(shù)據(jù)安全性分層的機(jī)制,它為 tcp/ip 連接提供數(shù)據(jù)加密、服
44、務(wù)器認(rèn)證、 消息完整性以及可選的客戶機(jī)認(rèn)證。它已被廣泛地用于 web 瀏覽器與服務(wù)器之間的身份認(rèn)證和加密數(shù) 據(jù)傳輸。ssl 協(xié)議位于 tcp 膽協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。ssl 協(xié)議可分 為兩層:ssl 記錄協(xié)議(ssl record proto col):它建立在可靠的傳輸協(xié)議(如 tcp)之上,為高層協(xié)議提供 數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。ssl 握手協(xié)議(ssl hand shake proto col):它建立在 ssl 記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開(kāi)始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密 鑰等。ssl 協(xié)議提供的服務(wù)主要有:認(rèn)證用戶
45、和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;加 密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取;維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過(guò)程中不被改變。 (7)sqlite:sqlite 是一套開(kāi)放性的關(guān)聯(lián)式資料庫(kù),能夠被所有應(yīng)用程序使用的輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù) 引擎。 (8)web kit:是一個(gè)先進(jìn)的網(wǎng)頁(yè)瀏覽器引擎,被用來(lái)構(gòu)建 android 瀏覽器和內(nèi)嵌的 web 視圖,也可 以讓開(kāi)發(fā)者利用這個(gè)引擎來(lái)做不同的應(yīng)用。 (9)lib c:就是一個(gè) bsd 標(biāo)準(zhǔn) c 類庫(kù)。但是,針對(duì) linux 嵌入式裝置進(jìn)行過(guò)最佳化的調(diào)整。 3.2.3 android 運(yùn)行時(shí)的組件 雖然 android 是用 java 語(yǔ)言來(lái)開(kāi)發(fā)、撰寫(xiě)
46、應(yīng)用程序,但卻不使用 java 運(yùn)行時(shí)組件來(lái)執(zhí)行 java 程 序,而是使用了由 google 自行研發(fā)的 android 運(yùn)行時(shí)組件來(lái)執(zhí)行程序。android 運(yùn)行時(shí)組件包括兩個(gè) 重要的部分,一個(gè)是核心類庫(kù),另一個(gè)是 dalvik 虛擬機(jī)。 3.3 android 應(yīng)用的構(gòu)成和工作機(jī)制應(yīng)用的構(gòu)成和工作機(jī)制 對(duì)于一個(gè) android 應(yīng)用程序來(lái)說(shuō),是由 activity、intentreceiver、service、content provider 四部 分組成,但并不是每一個(gè) android 應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時(shí),需要在配 置文件 androidmanifest.
47、xml 中進(jìn)行配置。這個(gè)配置文件是每個(gè) android 應(yīng)用程序所必需的,用于定義 應(yīng)用程序的組件、組件的功能以及必要條件等。android 應(yīng)用的構(gòu)成和工作流程如圖 2-2: 圖 2-2 android 的構(gòu)成和工作流程 4 android 應(yīng)用程序架構(gòu)結(jié)構(gòu)剖析應(yīng)用程序架構(gòu)結(jié)構(gòu)剖析 本章將會(huì)詳細(xì)敘述 android 的應(yīng)用程序所包括的基本組件,還有這些組件之間的溝通方式 intent(除了 contentprovider),同時(shí)講解一下 android 應(yīng)用程序的生命周期(activity)這是其他智能收 與 android 手機(jī)平臺(tái)最顯著不同的地方。最后將介紹在 android 的應(yīng)用程序
48、中如何利用下載外部資源 。 4.1 應(yīng)用程序基礎(chǔ)應(yīng)用程序基礎(chǔ) android 的應(yīng)用程序全部都是用 java 編程語(yǔ)言所寫(xiě)的。編譯后的 java 代碼包括應(yīng)用程序要求 的任何數(shù)據(jù)和資源文件,是通過(guò) aapt 工具捆綁成一個(gè) android 包,歸檔文件是以.apk 為后綴。這個(gè)文 件是分發(fā)應(yīng)用程序和安裝到移動(dòng)設(shè)備的中介或者是工具,用戶下載這個(gè)文件到他們自己的設(shè)備上。一 個(gè).apk 文件中的所有代碼就會(huì)被認(rèn)為是一個(gè)應(yīng)用程序。 aapt 是 android asset packaging tool 的首寫(xiě)字母的縮寫(xiě),這個(gè)工具包是含在 sdk 的 tools/目錄下 的。查看、創(chuàng)建、更新與 zip
49、兼容的歸檔文件(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é),首先打開(kāi)一個(gè)終端,進(jìn)入 tools/目錄下,運(yùn)行命令: linux 或 mac 操作系統(tǒng):./aapt ,如果是 windows:aapt.exe 。在這里注意的是:tools/目錄指的 是 android sdk 目錄下的/platforms/android-x/tools/。在很多的方面,每個(gè) android 的應(yīng)用程序
50、是生活 在它自己的世界。默認(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 用戶 id。權(quán)限被設(shè)置為每一個(gè)應(yīng)用程序的文件僅對(duì)用戶和應(yīng)用程序自己本身可見(jiàn)。雖然有 一些方法也可以暴露他們給其他應(yīng)用程序。也有可能的是設(shè)置兩個(gè)應(yīng)用程序共享一個(gè)用戶 id,這種情
51、況下,他們能夠看到對(duì)方的文件。為了節(jié)省系統(tǒng)資源的占用,具有相同 id 的應(yīng)用程序最好可以安排 在同一個(gè) linux 進(jìn)程中,共享同一個(gè) vm。 4.2 應(yīng)用程序組件應(yīng)用程序組件 android 的一個(gè)主要特點(diǎn)是,一個(gè)應(yīng)用程序可以利用其他應(yīng)用程序的元素(假設(shè)這些應(yīng)用程序允 許的話) 。例如,如果你的應(yīng)用程序需要顯示一個(gè)圖像的滾動(dòng)列表,且其他應(yīng)用程序已經(jīng)開(kāi)發(fā)了一個(gè)合 適的滾動(dòng)條并可以提供給別的應(yīng)用程序用,你可以調(diào)用這個(gè)滾動(dòng)條來(lái)工作,而不用自己開(kāi)發(fā)一個(gè)。你 的應(yīng)用程序不用并入其他應(yīng)用程序的代碼或鏈接到它。相反,當(dāng)需求產(chǎn)生時(shí)它只是啟動(dòng)其他應(yīng)用程序 塊。 對(duì)于這個(gè)工作,當(dāng)應(yīng)用程序的任何部分被請(qǐng)求時(shí),系統(tǒng)
52、必須能夠啟動(dòng)一個(gè)應(yīng)用程序的進(jìn)程,并實(shí) 例化該部分的 java 對(duì)象。因此,不像其他大多數(shù)系統(tǒng)的應(yīng)用程序,android 應(yīng)用程序沒(méi)有一個(gè)單一的 入口點(diǎn)(例如,沒(méi)有 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è)或幾 個(gè)來(lái)組建。當(dāng)你決定使用以上哪些組件來(lái)構(gòu)建 android 應(yīng)用程序時(shí),你應(yīng)該將它們列在 androi
53、dmanife st.xml 文件中,在這個(gè)文件中你可以聲明應(yīng)用程序組件以及它們的特性和要求。關(guān)于 androidmanifest. xml 在 android 開(kāi)發(fā)之旅:helloworld 項(xiàng)目的目錄結(jié)構(gòu)的 1.6、androidmanifest.xml 簡(jiǎn)單介紹了一下, 你可以參考一下,下篇也將介紹它。 4.2.1 活動(dòng)(activities) 一個(gè)活動(dòng)表示一個(gè)可視化的用戶界面,關(guān)注一個(gè)用戶從事的事件。例如,一個(gè)活動(dòng)可能表示一個(gè) 用戶可選擇的菜單項(xiàng)列表,或者可能顯示照片連同它的標(biāo)題。一個(gè)文本短信應(yīng)用程序可能有一個(gè)活動(dòng) ,顯示聯(lián)系人的名單發(fā)送信息;第二個(gè)活動(dòng),寫(xiě)信息給選定的聯(lián)系人;其他活動(dòng)
54、,重新查看舊信息或 更改設(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è)活動(dòng)中。有兩個(gè)方法是幾乎所有的 activity 子類都 實(shí)現(xiàn)的: oncreate(bundle):初始化你的活動(dòng)(activity) ,
55、比如完成一些圖形的繪制。最重要的是,在這個(gè) 方法里你通常將用布局資源(layout resource)調(diào)用 setcontentview(int)方法定義你的 ui,和用 findvie wbyid(int)在你的 ui 中檢索你需要編程地交互的小部件(widgets) 。setcontentview 指定由哪個(gè)文件指 定布局(main.xml) ,可以將這個(gè)界面顯示出來(lái),然后我們進(jìn)行相關(guān)操作,我們的操作會(huì)被包裝成為一 個(gè)意圖(intent) ,然后這個(gè)意圖對(duì)應(yīng)有相關(guān)的 activity 進(jìn)行處理。 onpause():處理當(dāng)離開(kāi)你的活動(dòng)時(shí)要做的事情。最重要的是,用戶做的所有改變應(yīng)該在這里提交
56、 (通常 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ù)一般情況來(lái)說(shuō),當(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)完成從而開(kāi)始下一個(gè)。 每一個(gè)活動(dòng)都會(huì)有一個(gè)默認(rèn)的窗口。根據(jù)一般情況來(lái)說(shuō),窗口是會(huì)填滿整個(gè)屏幕的,但是它也有 可能比屏幕小或者是浮在其他窗口上,這個(gè)就是程序員代碼的編寫(xiě)情況了。一個(gè)活動(dòng)還可以使用額外
57、窗口。比如彈出式對(duì)話框,或者是當(dāng)一個(gè)用戶選擇屏幕上一個(gè)特定的項(xiàng)時(shí),會(huì)跳出一個(gè)窗口來(lái)顯示給 用戶重要的信息。 窗口的可視化內(nèi)容是由繼承自接口為 view 基類,一個(gè)分層的視圖對(duì)象提供。每個(gè)可視化控件 是窗口內(nèi)的一個(gè)特定的矩形空間。父視圖包含和組織子女視圖的布局。葉子視圖-分層的底層。繪制 的矩形會(huì)直接控制和響應(yīng)用戶的操作。所以,一個(gè)視圖活動(dòng)是與用戶發(fā)生交互的地方。比如說(shuō),一個(gè) 視圖顯示一個(gè)小的圖片和當(dāng)用戶點(diǎn)擊圖片時(shí)發(fā)起一個(gè)動(dòng)作行為。android 有一些現(xiàn)成的可視化控件你 可以使用,其中包括按鈕(buttons) 、圖片按鈕(imagebutton) 、文本域(text fields) 、可編輯
58、文本控 件(edittext) 、菜單項(xiàng)(menu items) 、仿真時(shí)鐘(analogclock)滾動(dòng)條(scroll bars) 、開(kāi)關(guān)按鈕(t ogglebutton) 、復(fù)選按鈕(check boxes)等等。 通過(guò) activity.setcontentview() 方法來(lái)設(shè)置一個(gè)視圖層次在我們的活動(dòng)窗口中。內(nèi)容視圖(content view)是層次結(jié)構(gòu)的根視圖對(duì)象。層次結(jié)構(gòu)如下圖 3-2 所示: 圖 3-2 view 的層次結(jié)構(gòu) activity.setcontentview()方法:public void setcontentview (int layoutresid):根據(jù)布
59、局資源的 設(shè)置活動(dòng)界面。資源將會(huì)被夸大,添加布局資源文件中的所有的最高層的視圖( top-level views )到 活動(dòng). 4.2.2 服務(wù)(services) 與 activity 相反,service 是沒(méi)有可視化的用戶界面,但是 service 的特點(diǎn)是能長(zhǎng)時(shí)間在后臺(tái)運(yùn)行的 。所以,也可以這樣去理解,service 是具有一段較長(zhǎng)生命周期而且沒(méi)有用戶界面的程序。比如說(shuō)一個(gè) 服務(wù)可能要播放背景音樂(lè)但是用戶做可以去做其他一些事情,或者它也可能從網(wǎng)絡(luò)獲取數(shù)據(jù),也或者 是計(jì)算一些東西并會(huì)提供一個(gè)結(jié)果給需要的活動(dòng)(activities) 。每一個(gè)服務(wù)都繼承自 service 基類。 每一個(gè)服務(wù)
60、類都惠子在 androidmanifest.xml 中有自己相應(yīng)的聲明。服務(wù)必須可以通過(guò) c ontext.startservice()或者 context.bindservice()啟動(dòng)因?yàn)?service 是有兩個(gè)不同的生命周期的。 一個(gè)非常典型的例子是媒體播放器播放一個(gè)播放列表中的歌曲文件。該播放器應(yīng)用程序?qū)⒖赡苡?一個(gè)或者是多個(gè)活動(dòng)(activities) ,可以允許用戶選擇要聽(tīng)的歌曲和開(kāi)始播放。然而,音樂(lè)播放本身就 不會(huì)被一個(gè)活動(dòng)處理,因?yàn)橛脩羰窍M3忠魳?lè)一直播放的,當(dāng)用戶離開(kāi)播放器的時(shí)候而去做其他事 情。為了保持音樂(lè)能夠繼續(xù)播放,媒體播放器活動(dòng)可以啟動(dòng)一個(gè)服務(wù)運(yùn)行在后臺(tái)的運(yùn)行。系
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江蘇信息職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年武漢航海職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年新疆交通職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2016年注冊(cè)會(huì)計(jì)師《財(cái)務(wù)成本管理》考點(diǎn):定期預(yù)算法和滾動(dòng)預(yù)算法理論考試試題及答案
- 采購(gòu)行業(yè)助理的日常工作概述
- 2025年蘭州從業(yè)資格證貨運(yùn)題庫(kù)答案
- 2025年浙教版八年級(jí)歷史下冊(cè)月考試卷
- 2025年浙教版九年級(jí)生物上冊(cè)階段測(cè)試試卷含答案
- 2025年浙教新版選修歷史上冊(cè)月考試卷含答案
- 近十一年云南省中考語(yǔ)文試題卷中22篇現(xiàn)代文(2014至2024年 近四萬(wàn)字)
- 2024年全國(guó)職業(yè)院校技能大賽高職組(研學(xué)旅行賽項(xiàng))考試題庫(kù)(含答案)
- 電器儀表人員培訓(xùn)課件
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 計(jì)量經(jīng)濟(jì)學(xué)練習(xí)題
- 2025年全國(guó)高考體育單招考試模擬政治試卷試題(含答案詳解)
- 傳統(tǒng)春節(jié)習(xí)俗
- 反走私課件完整版本
- 四年級(jí)下冊(cè)數(shù)學(xué)知識(shí)點(diǎn)總結(jié)
- 鐵未來(lái)商業(yè)模擬挑戰(zhàn)賽規(guī)則與流程
- 氯諾昔康針劑在圍術(shù)期鎮(zhèn)痛與其它市場(chǎng)應(yīng)用(代表培訓(xùn)完整版)
- 經(jīng)歷是流經(jīng)裙邊的水
評(píng)論
0/150
提交評(píng)論