基于android平臺(tái)的校園通軟件畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p>  ( 2012屆 ) </p><p>  題 目: 基于Android平臺(tái)的手機(jī)軟件開發(fā) </p><p>  基于Android平臺(tái)的校園通軟件 </p><p>  學(xué) 院: 數(shù)理與信息工程學(xué)院 </p&g

2、t;<p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  學(xué)生姓名: 學(xué)號(hào): </p><p>  指導(dǎo)教師: 職稱: 教授 </p><p>  合作導(dǎo)師: 職稱:

3、 </p><p>  完成時(shí)間: 2012 年 4 月 10 日 </p><p>  成 績(jī): </p><p>  畢業(yè)設(shè)計(jì)(論文)正文</p><p><b>  目 錄</b>

4、;</p><p><b>  摘要1</b></p><p>  Abstract2</p><p><b>  1 引言3</b></p><p>  1.1 國(guó)內(nèi)外手機(jī)系統(tǒng)現(xiàn)狀3</p><p>  1.1.2 國(guó)內(nèi)外手機(jī)應(yīng)用現(xiàn)狀4</p>&l

5、t;p>  1.2 發(fā)展趨勢(shì)5</p><p>  2 Android的相關(guān)技術(shù)介紹及分析6</p><p>  2.1Android的功能特征6</p><p>  2.2 Android架構(gòu)分析8</p><p>  2.2.1應(yīng)用程序框架8</p><p><b>  2.2.2類庫(kù)9

6、</b></p><p>  2.2.3 Android運(yùn)行時(shí)組件10</p><p>  2.3 Android應(yīng)用的構(gòu)成和工作機(jī)制10</p><p>  3 Android應(yīng)用程序結(jié)構(gòu)剖析11</p><p>  3.1 Android的API11</p><p>  3.2Android應(yīng)用

7、程序結(jié)構(gòu)解析12</p><p>  3.2.1活動(dòng)12</p><p>  3.2.2意圖接收器13</p><p>  3.2.3服務(wù)13</p><p>  3.2.4內(nèi)容提供者13</p><p>  3.3 Intent的詳細(xì)解析14</p><p>  3.3.1 Int

8、ent的抽象描述14</p><p>  3.3.2 Android如何解析Intent15</p><p>  3.4 Android活動(dòng)的生命周期16</p><p>  3.4.1活動(dòng)的生命狀態(tài)16</p><p>  3.4.2 活動(dòng)的運(yùn)作流程18</p><p>  4 Android校園通軟件的

9、設(shè)計(jì)與實(shí)現(xiàn)19</p><p>  4.1 研究目標(biāo)19</p><p>  4.2 需求分析19</p><p>  4.3 UI界面設(shè)計(jì)19</p><p>  4.4 程序模塊設(shè)計(jì)20</p><p>  4.5 軟件功能圖21</p><p>  4.6 文件結(jié)構(gòu)

10、與用途21</p><p>  4.7 程序主要代碼23</p><p>  4.8 用戶界面27</p><p><b>  5 總結(jié)30</b></p><p><b>  參考文獻(xiàn)31</b></p><p>  基于Android平臺(tái)的校園通軟件</

11、p><p>  摘要:隨著智能手機(jī)一步步走進(jìn)普通人的生活,它將成為人們獲取信息的主要設(shè)備。因此,手機(jī)的娛樂(lè)應(yīng)用服務(wù)將會(huì)有很大的發(fā)展空間,校園資訊軟件就是其中之一。Android平臺(tái)提供給用戶非常方便的數(shù)據(jù)查閱功能,這將為校園資訊軟件的設(shè)計(jì)與實(shí)現(xiàn)提供了更好的平臺(tái)。另外,Android平臺(tái)基本上是免費(fèi)的,所以能夠有效降低軟件的成本,最終讓每個(gè)用戶能夠自由地獲取信息,也為手機(jī)校園資訊服務(wù)的普及做出貢獻(xiàn)。</p>

12、<p>  本文對(duì)目前應(yīng)用的Symbian、WindowsMobile、MacOSX和RIM等平臺(tái)的現(xiàn)狀進(jìn)行了分析與比較。進(jìn)而研究分析了Android平臺(tái)的系統(tǒng)架構(gòu)和組件模型,接著解析了Android中的重要API和應(yīng)用構(gòu)成,以Intent和生命周期的機(jī)制。在此基礎(chǔ)上,基于Android平臺(tái)設(shè)計(jì)和開發(fā)校園資訊軟件。本系統(tǒng)界面友好、操作便捷,具有良好的可擴(kuò)展性和可維護(hù)性;系統(tǒng)經(jīng)過(guò)測(cè)試,可以穩(wěn)定運(yùn)行,能夠滿足手機(jī)用戶的基本需求

13、。</p><p>  關(guān)鍵詞:Android;Java;校園資訊;Intent;布局</p><p>  A Campus Information Software based on the Android operating system</p><p>  Abstract:With the Mobile Phone enters into the live

14、step by step,it will become the main device to obtain information. Services of mobile Phone will have great development space,Campus Information is one of them. Android platform offers users very convenient Campus Inform

15、ation the function,This will be for Campus Information the design and implementation of service provides a better platform.In addition, Android platform is basically free, so can effectively reduce the software costs, Fi

16、nally le</p><p>  This paper discusses the present application of Symbian, Windows Mobile, MacOSX and RIM situation of such platform are analysed and compared. Further research and analysis of the Android pl

17、atform system architecture and the component model, then analyzes the important Android API and the application form, with Intent and life cycle mechanism, on this basis, design and development of mobile phone Campus Inf

18、ormation the software based on the Android platform. This system friendly interface, Conven</p><p>  Keywords: Android;Java;Campus Information ; Intent; Layout</p><p><b>  1 引言</b>&l

19、t;/p><p>  目前隨著移動(dòng)設(shè)備越來(lái)越普及以及移動(dòng)設(shè)備的硬件的提升,移動(dòng)設(shè)備的功能越來(lái)越完善,移動(dòng)設(shè)備的系統(tǒng)平臺(tái)也日漸火熱起來(lái)。目前國(guó)內(nèi)最常見(jiàn)的移動(dòng)開發(fā)平臺(tái)有Symbian,iPhone,Windows Phone以及當(dāng)下正在逐步興起的Android。目前為止國(guó)內(nèi)已經(jīng)有很多Android系統(tǒng)的用戶。截止2010年第二季度Android系統(tǒng)的國(guó)內(nèi)市場(chǎng)占有率已經(jīng)過(guò)10%,在西歐以及北美智能手機(jī)市場(chǎng)占有率也在20%左

20、右。可見(jiàn)Android系統(tǒng)正在崛起之中。但是對(duì)于Android系統(tǒng)的應(yīng)用和開發(fā)在國(guó)內(nèi)仍然屬于起步和探索階段。急需要大量的相關(guān)技術(shù)和人員的投入。</p><p>  下面首先介紹一下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ā)。它采用了軟件堆層(So

21、ftware stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以Linux核心工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程式的一部分。</p><p>  因?yàn)榕d趣和挑戰(zhàn),我開始自學(xué)android編程,通關(guān)指導(dǎo)老師的幫助完成了校園通軟件。希望通過(guò)這篇論文的研究,展示我在校期間學(xué)習(xí)與實(shí)踐的成果,希望給在浙師兩年的本科學(xué)習(xí)交上一份圓滿的答卷。</p><

22、;p>  1.1 國(guó)內(nèi)外手機(jī)系統(tǒng)現(xiàn)狀</p><p>  目前國(guó)外各軟硬件廠商已經(jīng)推出過(guò)多款手機(jī)操作系統(tǒng)。下面簡(jiǎn)單介紹一下現(xiàn)主流手機(jī)操作系統(tǒng)。</p><p>  現(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)在流

23、行的Symbian系統(tǒng)有以下四個(gè)版本,分別為S40、S60(第二版)、S60(第三版)、S60(第五版)。S60(第五版)為觸摸屏手機(jī)版本。</p><p>  iOS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng)。它主要是給iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系統(tǒng)一樣,它也是以Darwin為基礎(chǔ)的。iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(the Core OS l

24、ayer),核心服務(wù)層(the Core Services layer),媒體層(the Media layer),可輕觸層(the Cocoa Touch layer)。系統(tǒng)操作占用大概240MB的存儲(chǔ)器空間</p><p>  Windows Mobile 系列操作系統(tǒng)是從微軟計(jì)算機(jī)的Windows操作系統(tǒng)演化而來(lái)的。Windows Mobile系列操作系統(tǒng)功能強(qiáng)大,而且支持該操作系統(tǒng)的智能手機(jī)大多數(shù)都采用了

25、英特爾嵌入式處理器,主頻比較高,在其它硬件配置(如內(nèi)存、儲(chǔ)存卡容量等)上也比采用其它操作系統(tǒng)的智能手機(jī)要高出許多,因此性能比較強(qiáng)勁,速度比較快。</p><p>  PalmOS屬于Palm公司開發(fā),是一種32位的嵌入式操作系統(tǒng),是一套專門為掌上電腦編寫的操作系統(tǒng),是一種輕量級(jí)、比較開放的操作系統(tǒng),占用的內(nèi)存非常小?,F(xiàn)在多用Paml公司生產(chǎn)的手機(jī)上。該系統(tǒng)允許用戶在其基礎(chǔ)上編寫和修改相關(guān)軟件,使支持的應(yīng)用程序更加

26、豐富多彩。Palm系統(tǒng)與其他手機(jī)系統(tǒng)相比在其它方面也還存在一些不足,如Palm操作系統(tǒng)本身不具有錄音、MP3播放功能等,但是可以通過(guò)加入第三方軟件或硬件設(shè)備來(lái)實(shí)現(xiàn)。</p><p>  相對(duì)國(guó)外手機(jī)系統(tǒng)百花齊放的局面,國(guó)內(nèi)手機(jī)操作系統(tǒng)則處于剛起步的階段。</p><p>  目前國(guó)內(nèi)還沒(méi)有自主研發(fā)并商品化的手機(jī)操作系統(tǒng)。當(dāng)然近些年來(lái)國(guó)內(nèi)企業(yè)和我國(guó)政府在這方也投入了大量的人力和物力。同時(shí)也取

27、得了一定成果。</p><p>  在2009年8月,由中國(guó)移動(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ù)解決方案。</p><p>  1.1.2 國(guó)內(nèi)外手機(jī)應(yīng)用現(xiàn)狀</p>&

28、lt;p>  隨著3G在中國(guó)的全面啟動(dòng),它所帶來(lái)的巨大機(jī)遇和新生力量,大規(guī)模的網(wǎng)絡(luò)建設(shè)正不斷深入展開。但不可否認(rèn)的是我國(guó)在通信領(lǐng)域中相比許多發(fā)達(dá)國(guó)家仍然存在著不小的差距,就在國(guó)人還在為EDGE這種傳輸速度僅能達(dá)到384KB/秒的2.75G過(guò)渡技術(shù)而欣喜的時(shí)候,國(guó)外早已開始試行HSDPA這種3.5G技術(shù),傳輸速度更可達(dá)到驚人的數(shù)兆每秒,而基于其上所開發(fā)的延伸功能更是數(shù)不勝數(shù),所以國(guó)內(nèi)外手機(jī)應(yīng)用也存在的較大的差異。但國(guó)內(nèi)外對(duì)手機(jī)應(yīng)用的

29、需求方向是大致相似的,主要集中在信息服務(wù),娛樂(lè),學(xué)習(xí)這些方面。</p><p>  目前國(guó)內(nèi)外手機(jī)應(yīng)用服務(wù)方向主要有基于地理位置的信息服務(wù)(Location Based Service LBS)它是通過(guò)電信移動(dòng)運(yùn)營(yíng)商的無(wú)線電通訊網(wǎng)絡(luò)(如GSM網(wǎng)、CDMA網(wǎng))或外部定位方式(如GPS)獲取移動(dòng)終端用戶的位置信息(地理坐標(biāo),或大地坐標(biāo)),在GIS(Geographic Information System,地理信息系

30、統(tǒng))平臺(tái)的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)。例如手機(jī)定位,導(dǎo)航服務(wù)。</p><p>  近年來(lái)十分熱門的網(wǎng)絡(luò)社交服務(wù)(Social Networking Services)也已進(jìn)入到手機(jī)客戶端領(lǐng)域。例如國(guó)內(nèi)有名的社交網(wǎng)站人人網(wǎng)已經(jīng)針對(duì)Iphone,android,塞班等手機(jī)平臺(tái)推出了手機(jī)客戶端。國(guó)外最大的社交Fackbook也已經(jīng)傳出正在進(jìn)行針對(duì)手機(jī)的產(chǎn)品的研發(fā)。Twiter,Myspace等國(guó)外知名社

31、交類網(wǎng)站都已經(jīng)推出手機(jī)版。國(guó)內(nèi)淘寶網(wǎng)旗下口碑網(wǎng)在今年也已經(jīng)推出針對(duì)多個(gè)手機(jī)平臺(tái)的客戶端程序。MSN,QQ等即時(shí)通信類的應(yīng)用也已經(jīng)在各個(gè)主流手機(jī)平臺(tái)推出。</p><p>  手機(jī)辦公類軟件在手機(jī)上也正日趨完善,在手機(jī)上編輯查看各類文檔已經(jīng)實(shí)現(xiàn),在android平臺(tái)上的QuickOffice就是這樣的軟件。在Google Market(一個(gè)谷歌針對(duì)android系統(tǒng)用戶所開發(fā)的應(yīng)用商場(chǎng))上已經(jīng)有過(guò)萬(wàn)的企業(yè)應(yīng)用辦公套

32、件。</p><p>  手機(jī)娛樂(lè)游戲類應(yīng)用,該類應(yīng)用作為傳統(tǒng)類手機(jī)應(yīng)用,在各個(gè)平臺(tái)上發(fā)展已近相對(duì)完善,手機(jī)上對(duì)各種流媒體的播放也已完美的支持。各類傳統(tǒng)PC游戲廠商進(jìn)入手機(jī)領(lǐng)域。</p><p><b>  1.2 發(fā)展趨勢(shì)</b></p><p>  隨著3G應(yīng)用的不斷開發(fā)推廣,用戶會(huì)越來(lái)越需要更加個(gè)性化、優(yōu)質(zhì)化的多媒體數(shù)據(jù)服務(wù),用戶希望能夠

33、隨時(shí)、隨地?zé)o縫利用3G網(wǎng)絡(luò)進(jìn)行辦公、網(wǎng)上交易、游戲娛樂(lè)、欣賞影視節(jié)目、收聽(tīng)和下載音樂(lè)等。根據(jù)觀察,在不久的將來(lái),移動(dòng)手機(jī)終端將會(huì)在以下若干方面具有新的發(fā)展。</p><p>  首先,提供智能提醒服務(wù),手機(jī)能夠與用戶實(shí)現(xiàn)密切配合,并監(jiān)控用戶的個(gè)性化設(shè)置(保持在本地或者云端),當(dāng)重要時(shí)間點(diǎn)或關(guān)鍵事物需要用戶注意時(shí),手機(jī)會(huì)向用戶發(fā)出“提醒”服務(wù),服務(wù)包括日程提醒、交通狀況、最佳行車路線、最佳泊位、優(yōu)惠活動(dòng)、實(shí)時(shí)新聞、

34、體育賽事、天氣情況、股市行情、好友活動(dòng)、親友生日等。</p><p>  其次,提供虛擬現(xiàn)實(shí)體驗(yàn),手機(jī)可以借助傳感器、周邊設(shè)備了解到您的身邊環(huán)境,并根據(jù)收集到的信息,智能的為您提供有用的信息,如在網(wǎng)絡(luò)世界養(yǎng)的寵物,可以借助音頻設(shè)備表達(dá)叫聲,借助馬達(dá)和位置傳感器等傳遞其跳、躍等行為信息;也可以在用戶購(gòu)物時(shí),提供相關(guān)的同類產(chǎn)品價(jià)格參考,提醒用戶附近的那個(gè)賣場(chǎng)更物美價(jià)廉;根據(jù)實(shí)際場(chǎng)景,為用戶及時(shí)提供正在操控的產(chǎn)品的使用

35、方法提醒。</p><p>  接著,發(fā)揮物聯(lián)網(wǎng)的優(yōu)勢(shì),借助無(wú)處不在的傳感器,可以感知并分享到周圍世界的海量信息,這些信息將在“云端”得到整合,幫助用戶及時(shí)、準(zhǔn)確的獲得氣息信息、交通路況。另外借助物聯(lián)網(wǎng),用戶間可以方便、快速的分享資源,協(xié)助和交互。如進(jìn)行端到端的多人游戲、照片分享、書籍分享、音樂(lè)分享等。</p><p>  然后,作為經(jīng)濟(jì)工具,在交通或者信息不發(fā)達(dá)的情況下,幫助用戶找到最佳

36、的市場(chǎng),獲得有價(jià)值的幫助信息,幫助用戶從事的經(jīng)濟(jì)活動(dòng)的收益率。</p><p>  最后,更加智能、安全的設(shè)備,隨著智能手機(jī)的不斷普及和更加智能,手機(jī)軟件的更新、升級(jí)將會(huì)變得越發(fā)簡(jiǎn)單,并會(huì)為用戶提供工具或信息,讓用戶有能力和權(quán)力決策那些內(nèi)容可以瀏覽、下載或分享。在安全性上也將更加出色,能夠十分有效的幫助用戶進(jìn)行獲取到的內(nèi)容的管理,保護(hù)用戶的個(gè)人隱私和基于手機(jī)的金融活動(dòng)如電子錢包、在線支付、在線貿(mào)易等。 </

37、p><p>  2 Android的相關(guān)技術(shù)介紹及分析</p><p>  2.1 Android系統(tǒng)架構(gòu)研究Android是一個(gè)包含操作系統(tǒng)、中介架構(gòu)層及應(yīng)用程序所產(chǎn)生出來(lái)的軟件堆棧架構(gòu)。由下而上,其核心為嵌入式Linux2.6作業(yè)系統(tǒng),向上搭配Google為Android開發(fā)的類庫(kù)及Android運(yùn)行時(shí),再配合應(yīng)用程序架構(gòu),來(lái)開發(fā)各種不同的應(yīng)用程序。</p><p&

38、gt;  2.1Android的功能特征</p><p>  (l)應(yīng)用程序架構(gòu):在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基礎(chǔ)組件,在開發(fā)應(yīng)用程序時(shí),就可以直接調(diào)用這些組件來(lái)使用,可以節(jié)省開發(fā)應(yīng)用程序的心力及時(shí)間。</p><p>  (2)Dalvik虛擬機(jī)器:在Android平臺(tái)上所使用Java虛擬機(jī),不是Sim公司的標(biāo)準(zhǔn)Java虛擬機(jī),而是使用Google自主開發(fā)的代號(hào)為Dalvik的虛擬

39、機(jī),它在保證API方面的兼容的同時(shí),針對(duì)移動(dòng)手機(jī)進(jìn)行了大幅優(yōu)化,占用資源更小,運(yùn)行效率更高。</p><p>  (3)集成的瀏覽器:集成的瀏覽器是Android內(nèi)建的瀏覽器,是以WebKit的瀏覽引擎為基礎(chǔ)所開發(fā)成的。WedKit是一個(gè)開源瀏覽器網(wǎng)頁(yè)排版引擎,目前使用WebKit引擎的瀏覽器主要有:Safari,Midori,Epiphany等。配合Android手機(jī)的功能,可以在瀏覽網(wǎng)頁(yè)時(shí),達(dá)到更好的效果,例

40、如:局部性的縮放網(wǎng)頁(yè)上的資訊、觸控式的操作等效果。</p><p>  (4)優(yōu)化的繪圖能力:在程序里可以用到的繪圖功能分為2D與3D兩個(gè)方面。在2D方面,Android提供了一套特有的類庫(kù)(SGL;而在3D方面則是使用OpenGLES1.0(openGL for Embedded systems)規(guī)范的類庫(kù)。它們是一種非??斓膱D形引擎,并且支持硬件加速。</p><p>  (5)SQL

41、ite數(shù)據(jù)庫(kù):SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQLite是一款輕型的數(shù)據(jù)庫(kù),它的設(shè)計(jì)目標(biāo)是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源非常低。它能夠支持Windows/Linux/U nix等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如php,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來(lái)講,它的處理速度比它們都快。它無(wú)需安裝和管理配置,它是一個(gè)儲(chǔ)存在單一磁盤文件中的完整數(shù)據(jù)庫(kù),體積小只

42、有250KB但支持?jǐn)?shù)據(jù)庫(kù)大小至2TB。它雖然很小巧,但是支持的SQL語(yǔ)句毫不遜色于其它開源數(shù)據(jù)庫(kù)。同時(shí)它還支持事務(wù)功能和并發(fā)處理等等。SQLite也是一套開放性的關(guān)聯(lián)式資料庫(kù),其特點(diǎn)在于輕量性方面的設(shè)計(jì)結(jié)構(gòu),更適合在手機(jī)上使用。</p><p>  (6)多媒體的支持能力:主要用于播放媒體文件。這同時(shí)包括對(duì)音頻(如播放MP3或其他音樂(lè)文件等)和視頻(如播放從網(wǎng)上下載的視頻)的支持,并支持“播放URI地址”(Not

43、e:URI即是統(tǒng)一資源識(shí)別地址)模式—在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:JPG、PNG、GIF等格式。</p><p>  (7)GSM技術(shù):Global System for Mobile Communications,即全球移動(dòng)通訊系統(tǒng),俗稱”全球通”,是一種起源于歐洲的移動(dòng)通信技術(shù)標(biāo)準(zhǔn),是第二代移動(dòng)通信技術(shù),其開發(fā)目的是讓全球各地可以共同使用一個(gè)移動(dòng)電話網(wǎng)絡(luò)標(biāo)準(zhǔn),讓用戶使用一部

44、手機(jī)就能行遍全球。GSM技術(shù)是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時(shí)可以突出的特點(diǎn)之一。</p><p>  (8)藍(lán)牙、EDGE、3G及Wi-Fi:藍(lán)牙是一種新型、開放、低成本、短距離的無(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的

45、過(guò)渡技術(shù),它主要是在GSM系統(tǒng)中采用了一種新的調(diào)制方法,即最先進(jìn)的多時(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è),分別是

46、IEEE802.lla和IEEE802.11b。這些通訊能力也是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時(shí)可以突出的特點(diǎn)之一。</p><p>  (9)GPS: Global Positioning 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)航、定

47、位、授時(shí)等功能。這項(xiàng)技術(shù)可以用來(lái)引導(dǎo)飛機(jī)、船舶、車輛以及個(gè)人。這個(gè)同樣也是屬于手機(jī)硬體方面的體現(xiàn),也是在開發(fā)Android應(yīng)用程序是可以突出的特點(diǎn)之一。</p><p>  2.2 Android架構(gòu)分析</p><p>  圖2-1 安卓架構(gòu)的五個(gè)部分</p><p>  圖中顯示的是Android架構(gòu)的五個(gè)主要部分。</p><p> 

48、 2.2.1應(yīng)用程序框架</p><p>  在Android SDK中,定義了讓開發(fā)者使用與核心應(yīng)用程序相同API的權(quán)限應(yīng)用程序框架是為了要簡(jiǎn)化組件的重新利用而設(shè)計(jì)的,應(yīng)用程序可以發(fā)布功能為其它應(yīng)用程序所使用。但是,這要受限于應(yīng)用程序架構(gòu)的安全機(jī)制,使用者以用同樣的機(jī)制來(lái)新增、置換組件。目前所有的應(yīng)用程序是由服務(wù)及系統(tǒng)來(lái)組成,包含有:</p><p>  (l)一套強(qiáng)大和可擴(kuò)展的視圖系統(tǒng)

49、:用來(lái)建構(gòu)一個(gè)應(yīng)用程序的基本組件,包了在開發(fā)系統(tǒng)畫面時(shí),常用的列表、網(wǎng)格、文本框、按鈕等控制項(xiàng),甚至是內(nèi)嵌的Web瀏覽器。 </p><p>  (2)內(nèi)容提供者:使應(yīng)用程序可以訪問(wèn)另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)庫(kù)),或者共享它們自己的數(shù)據(jù)。</p><p>  (3)資源管理器:提供各種非程序代碼的資源讓應(yīng)用程序去使用。例如:本字符串、圖形文件或排版相

50、關(guān)的布局文件。</p><p>  (4)通知管理器:提供應(yīng)用程序在狀態(tài)欄中顯示應(yīng)用程序自定義的提示信息。</p><p>  (5)活動(dòng)管理器:管理所有應(yīng)用程序的生命周期及提供常用的導(dǎo)航回退功能。例如:啟動(dòng)應(yīng)用程序要用到的資源準(zhǔn)備及關(guān)閉應(yīng)用程序時(shí)釋放內(nèi)存及相關(guān)資源等工作。</p><p>  (6)視窗管理器:用來(lái)管理所有啟動(dòng)程序的視窗。</p>&

51、lt;p>  (7)位置管理器:用來(lái)管理地圖服務(wù)的相關(guān)功能。</p><p>  (8)電話管理器:用來(lái)管理用戶撥打與接聽(tīng)電話的相關(guān)功能。</p><p>  (9)包管理器:管理所有安裝在Android系統(tǒng)內(nèi)的包。</p><p><b>  2.2.2類庫(kù)</b></p><p>  在Android中包含一些

52、C/C++的類庫(kù),這些類庫(kù)能被Android系統(tǒng)中不同的組件來(lái)使用。開發(fā)者可以通過(guò)應(yīng)用程序框架使用這些功能。部分核心類庫(kù)列表如下:</p><p>  (1)surface Manager:主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管理的功能,在[顯示]與[存取操作]間的對(duì)應(yīng)、互動(dòng)以及實(shí)現(xiàn)無(wú)接縫的2D/3D多應(yīng)用程序之間的整合。例如:在2D、2D顯示上的合成、疊合動(dòng)作。</p><p> 

53、 (2)3Dlibraries:主要是依openGLES1.0規(guī)范所定義的3D繪圖引擎。該庫(kù)使用硬件加速(當(dāng)硬件可用時(shí)),可以將硬件的3D功能做最佳化的處理顯示。</p><p>  (3)SGL:主要是處理有關(guān)顯示2D方面的繪圖引擎。</p><p>  (4)Media Frame work:主要是以packetVideo公司的OpenCORE為基礎(chǔ)所發(fā)展的多媒體類庫(kù),該庫(kù)支持回放和錄

54、制大量流行的音視頻格式和靜態(tài)圖片。例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式</p><p>  (5)Free Type:主要是用來(lái)顯示點(diǎn)陣圖和處理向量字形的。</p><p>  (6)SSL:(secureSocketsuyer),中文名為“安全套接層協(xié)議層”,它是網(wǎng)景公司提出的基于WEB應(yīng)用的安全協(xié)議,當(dāng)前版本為3.0。SSL協(xié)議指定了一種在

55、應(yīng)用程序協(xié)議(如HTTP、Telenet、NMTP和FTP等)和TCP/IP協(xié)議之間提供數(shù)據(jù)安全性分層的機(jī)制,它為TCP/IP連接提供數(shù)據(jù)加密、服務(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

56、)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL握手協(xié)議(SSL Hand shake proto col):它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。SSL協(xié)議提供的服務(wù)主要有:①認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;②加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取;③維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過(guò)程中</p><p>  (

57、7)SQLite:SQLite是一套開放性的關(guān)聯(lián)式資料庫(kù),能夠被所有應(yīng)用程序使用的輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù)引擎。</p><p>  (8)web Kit:是一個(gè)先進(jìn)的網(wǎng)頁(yè)瀏覽器引擎,被用來(lái)構(gòu)建Android瀏覽器和內(nèi)嵌的web視圖,也可以讓開發(fā)者利用這個(gè)引擎來(lái)做不同的應(yīng)用。</p><p>  (9)lib c:就是一個(gè)BSD標(biāo)準(zhǔn)C類庫(kù)。但是,針對(duì)Linux嵌入式裝置進(jìn)行過(guò)最佳化的調(diào)整。<

58、;/p><p>  2.2.3 Android運(yùn)行時(shí)組件</p><p>  雖然Android是用Java語(yǔ)言來(lái)開發(fā)、撰寫應(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ī)。</p><p>  2.3 A

59、ndroid應(yīng)用的構(gòu)成和工作機(jī)制</p><p>  對(duì)于一個(gè)Android應(yīng)用程序來(lái)說(shuō),是由Activity、IntentReceiver、Service、Content Provider四部分組成,但并不是每一個(gè)Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時(shí),需要在配置文件AndroidManifest.xml中進(jìn)行配置。這個(gè)配置文件是每個(gè)Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件

60、、組件的功能以及必要條件等。Android應(yīng)用的構(gòu)成和工作流程如圖2-2: </p><p>  圖2-2 Android的構(gòu)成和工作流程 </p><p>  3 Android應(yīng)用程序結(jié)構(gòu)剖析</p><p>  3.1 Android的API</p><p>  Android API主要包含了以下幾個(gè)部分:</

61、p><p>  (1)AndroidManifest.xml</p><p>  AndroidManifest.xml是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件(尤其是活動(dòng)(Activity),服務(wù)(Service),意圖接收器(Intent Receiver)和內(nèi)容提供者(Content Provider))。舉例來(lái)說(shuō),控制文件就是把活動(dòng)和要接收的意圖(Intents)連接在

62、一起的“膠水”。</p><p><b>  (2)活動(dòng)</b></p><p>  活動(dòng)就是一個(gè)有生命周期的對(duì)象。一個(gè)活動(dòng)就是完成某些工作的代碼塊,這部分工作還可能包括對(duì)用戶UI界面的顯示。不過(guò)這不是必須的,有些活動(dòng)從不顯示UI界面。</p><p><b>  (3)視圖</b></p><p>

63、;  視圖可以將其自身繪制到屏幕上。Android的用戶界面由一系列的視圖樹構(gòu)成。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過(guò)創(chuàng)建一個(gè)新的視圖的方法來(lái)使用自定義的圖形處理技術(shù)(比如開發(fā)游戲,或者是使用了不常用的用戶圖形窗口界面)。</p><p><b>  (4)意圖</b></p><p>  意圖是一個(gè)簡(jiǎn)單的消息對(duì)象,它表示程序想做某事的“意圖”。比

64、如應(yīng)用程序想要顯示一個(gè)網(wǎng)頁(yè),那么它可以通過(guò)創(chuàng)建一個(gè)Intent實(shí)例并將其傳遞給系統(tǒng)來(lái)表示意圖瀏覽這個(gè)URI。系統(tǒng)將定位到能處理這一Intent的代碼(在當(dāng)前情況下就是瀏覽器),并運(yùn)行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。</p><p><b>  (5)服務(wù)</b></p><p>  服務(wù)是運(yùn)行在后臺(tái)的一段代碼。它可以運(yùn)行在它自己的進(jìn)程,也可

65、以運(yùn)行在其他應(yīng)用程序的進(jìn)程里,這取決于自身的需要.。其它的組件可以綁定到一個(gè)服務(wù)上來(lái),通過(guò)遠(yuǎn)程過(guò)程調(diào)用(RPC)來(lái)調(diào)用這個(gè)方法。例如媒體播放器的服務(wù),當(dāng)用戶退出媒體選擇的界面時(shí),仍然希望音樂(lè)依然可以繼續(xù)播放,這時(shí)就可用服務(wù)來(lái)保證當(dāng)用戶界面關(guān)閉時(shí)音樂(lè)還繼續(xù)播放著。</p><p><b>  (6)通知</b></p><p>  通知將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用

66、戶通過(guò)與圖標(biāo)的交互來(lái)接收消息。最常見(jiàn)的通知包括短信息、通話記錄和語(yǔ)音郵件,但是應(yīng)用程序也可以創(chuàng)建它們自己的通知事件。</p><p><b>  (7)內(nèi)容提供者</b></p><p>  內(nèi)容提供者是用來(lái)提供對(duì)設(shè)備上數(shù)據(jù)進(jìn)行訪問(wèn)。典型的例子就是使用內(nèi)容提供者來(lái)訪問(wèn)聯(lián)系人列表。應(yīng)用程序也可以使用其它程序通過(guò)內(nèi)容提供者提供的數(shù)據(jù),同時(shí)也可以定義自己的內(nèi)容提供者來(lái)向其它

67、應(yīng)用提供數(shù)據(jù)訪問(wèn)服務(wù)。</p><p>  3.2Android應(yīng)用程序結(jié)構(gòu)解析</p><p>  通常由以下四個(gè)組件來(lái)構(gòu)建一個(gè)完整的Android應(yīng)用程序。</p><p><b>  ①活動(dòng)</b></p><p><b> ?、谝鈭D接收器</b></p><p>&l

68、t;b> ?、鄯?wù)</b></p><p><b>  ④內(nèi)容提供者</b></p><p>  然而,并不是所有的Android應(yīng)用程序都必須具備上面的四個(gè)組件,可以由上面的一個(gè)或幾個(gè)來(lái)組建。當(dāng)決定使用以上哪些組件來(lái)構(gòu)建Android應(yīng)用程序時(shí),需要將它們注冊(cè)在AndroidManifest.xml文件中,這是一個(gè)XML配置文件,在這個(gè)文件中可以聲

69、明應(yīng)用程序組件以及它們的特性和要求。這個(gè)配置文件是每個(gè)Android應(yīng)用程序所必需的。</p><p><b>  3.2.1活動(dòng)</b></p><p>  活動(dòng)是以上四個(gè)組件中最常用的一個(gè)。每個(gè)活動(dòng)都是Activity的子類,并實(shí)現(xiàn)了一些獨(dú)有的功能,如管理UI顯示和UI的反饋事件。一個(gè)活動(dòng)就相當(dāng)于應(yīng)用程序的一個(gè)用戶界面,由事件響應(yīng)以及視圖等組成。大多數(shù)的應(yīng)用程序通

70、常包括多個(gè)界面。例如:一個(gè)文本聊天應(yīng)用程序,至少應(yīng)該包含一個(gè)聯(lián)系人列表界面、一個(gè)聊天界面、一個(gè)設(shè)置界面、一個(gè)聊天記錄查詢界面等等。每個(gè)界面其實(shí)都可看作是一個(gè)活動(dòng)。顯示一個(gè)新界面就相當(dāng)于生成一個(gè)對(duì)應(yīng)的活動(dòng)對(duì)象。在一些情況下,活動(dòng)能夠返回給它的上級(jí)界面一個(gè)返回值,例如一個(gè)提供給用戶選擇照片的活動(dòng)可以返回給它的調(diào)用者用戶選擇了哪個(gè)照片文件。</p><p>  當(dāng)一個(gè)新的活動(dòng)出現(xiàn)時(shí),前一個(gè)活動(dòng)被中斷并被放入到一個(gè)歷史堆

71、棧中。用戶可以使用返回鍵使前一個(gè)活動(dòng)重現(xiàn)。當(dāng)一個(gè)活動(dòng)不再需要時(shí),可以將它們從歷史堆棧中移除。默認(rèn)情況下,Android會(huì)為每個(gè)應(yīng)用程序保留從主界面開始的歷史堆棧。</p><p>  Android通過(guò)一個(gè)被稱作意圖的特殊類,來(lái)實(shí)現(xiàn)界面與界面之間的跳轉(zhuǎn)。一個(gè)意圖描述了一個(gè)應(yīng)用程序想要做什么。在意圖的描述結(jié)構(gòu)中,含有兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu):動(dòng)作和動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。典型的動(dòng)作類型包括MAIN、VIEW、PICK、EDIT等

72、等,而動(dòng)作對(duì)應(yīng)的數(shù)據(jù)則以URI的形式表示。例如:顯示一個(gè)聯(lián)系人信息的界面,可以創(chuàng)建一個(gè)意圖,并將它的動(dòng)作設(shè)置成VIEW,數(shù)據(jù)設(shè)置成表示這個(gè)人信息的URI。</p><p>  除此之外,還有一個(gè)被稱作意圖過(guò)濾器(IntentFiher)的相關(guān)類。當(dāng)發(fā)生一個(gè)有效的目的請(qǐng)求時(shí),意圖過(guò)濾器用來(lái)描述一個(gè)活動(dòng)能夠處理什么意圖。如上例中所描述,想要正常顯示一個(gè)聯(lián)系人信息的界面,必須聲明一個(gè)意圖過(guò)濾器,它說(shuō)明當(dāng)有聯(lián)系人數(shù)據(jù)要被

73、在界面上顯示時(shí),知道如何處理它們。通常意圖過(guò)濾器要被注冊(cè)在AndroidManifest.xml文件中。從一個(gè)界面跳轉(zhuǎn)到另一個(gè)界面是由解析各種意圖實(shí)現(xiàn)的。例如:一個(gè)活動(dòng)使用startActivity(myIntent)來(lái)調(diào)用其他活動(dòng)時(shí),系統(tǒng)會(huì)查找所有已經(jīng)安裝的應(yīng)用程序的意圖過(guò)濾器,并從中挑選出能夠匹配myIntent意圖的活動(dòng)。隨后,這個(gè)新的活動(dòng)接收到意圖(myIntent)的通知并開始運(yùn)行。當(dāng)startActivity方法被調(diào)用,解析

74、意圖的處理過(guò)程隨之發(fā)生,這個(gè)機(jī)制有以下兩個(gè)突出的優(yōu)點(diǎn):</p><p>  活動(dòng)可以通過(guò)一個(gè)以意圖形式產(chǎn)生的請(qǐng)求來(lái)重用其他組件的功能。</p><p>  活動(dòng)可以在任何時(shí)候被一個(gè)具有等價(jià)意圖過(guò)濾器的新活動(dòng)所替代。</p><p>  3.2.2意圖接收器</p><p>  當(dāng)想要編寫代碼來(lái)對(duì)外部事件做一些處理時(shí),可以使用意圖接收器。意圖接

75、收器并不顯示UI界面,它是通過(guò)NotificationManager來(lái)通知用戶他們感興趣的事件發(fā)生了。意圖接收器同樣可以被注冊(cè)在AndroidManifest.xml文件中,同時(shí)也可以在代碼中使用Context.registerReceiver()來(lái)注冊(cè)自己的意圖接收器。當(dāng)一個(gè)意圖接收器被觸發(fā)時(shí),系統(tǒng)會(huì)根據(jù)需要來(lái)啟動(dòng)應(yīng)用程序。</p><p><b>  3.2.3服務(wù)</b></p&

76、gt;<p>  服務(wù)是具有長(zhǎng)生命周期并且沒(méi)有用戶界面的代碼。</p><p>  3.2.4內(nèi)容提供者</p><p>  在Android中,每個(gè)應(yīng)用程序都是有自己的userID及在自己的進(jìn)程中執(zhí)行。這樣做的好處是,可以保護(hù)系統(tǒng)及應(yīng)用程序,避免被其他不正常的應(yīng)用程序所影響??梢园衙總€(gè)進(jìn)程想像成是一個(gè)黑盒子,彼此不會(huì)互相影響,連內(nèi)存的資料都無(wú)法共享。如果應(yīng)用程序之間想要共享

77、數(shù)據(jù),就需要使用用內(nèi)容提供者。一個(gè)內(nèi)容提供者就是一個(gè)類,它實(shí)現(xiàn)了一個(gè)標(biāo)準(zhǔn)的方法集合。其他的應(yīng)用程序可以使用這些方法來(lái)保存和檢索此內(nèi)容提供者處理過(guò)的數(shù)據(jù)。</p><p>  3.3 Intent的詳細(xì)解析</p><p>  在一個(gè)Android應(yīng)用中,主要是由四種組件組成的,這四種組件可參考上一節(jié)的內(nèi)容。而這四種組件是獨(dú)立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個(gè)真正的Androi

78、d應(yīng)用。在這些組件之間的通訊中,主要是由意圖協(xié)助完成的。意圖負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作對(duì)應(yīng)的數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此意圖的描述,負(fù)責(zé)找到相應(yīng)的組件,將意圖傳遞給它,并完成組件的調(diào)用。因此,意圖在這里起著一個(gè)媒體中介的作用,專門提供組件之間互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。</p><p>  例如,在一個(gè)聯(lián)系人維護(hù)的應(yīng)用中,當(dāng)在一個(gè)聯(lián)系人列表屏幕(假設(shè)對(duì)應(yīng)的Activ

79、ity為listActivity)上,點(diǎn)擊某個(gè)聯(lián)系人后,希望能夠調(diào)出此聯(lián)系人的詳細(xì)信息,為了實(shí)現(xiàn)這個(gè)目的,listActivity需要構(gòu)造一個(gè)Intent,這個(gè)Intent用于告訴系統(tǒng),要做“查看”動(dòng)作,此動(dòng)作對(duì)應(yīng)的查看對(duì)象是“某聯(lián)系人”,然后調(diào)用startActivity(intent intent),將構(gòu)造的Intent傳入,系統(tǒng)會(huì)根據(jù)此intent中的描述,到AndroidManifest.xml中找到滿足此Intent要求的Ac

80、tivity。系統(tǒng)會(huì)調(diào)用找到的Activity,即為detailActivity,最終傳入Intent,detailActivitv則會(huì)根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。</p><p>  3.3.1 Intent的抽象描述</p><p>  在Android參考文檔中,對(duì)意圖的定義是執(zhí)行某操作的一個(gè)抽象描述。該抽象描述的具體內(nèi)容如下:</p><p>

81、;  首先,它是要執(zhí)行的動(dòng)作的一個(gè)簡(jiǎn)要描述,如查看、修改等,Android定義了一套標(biāo)準(zhǔn)動(dòng)作。此外,還可以根據(jù)應(yīng)用的需要,定義自己的動(dòng)作,并可定義相應(yīng)的活動(dòng)來(lái)處理自定義的動(dòng)作。</p><p>  其次,是執(zhí)行動(dòng)作要操作的數(shù)據(jù),Android采用指向數(shù)據(jù)的一個(gè)URI方式來(lái)實(shí)現(xiàn)。</p><p>  另外,除了動(dòng)作和數(shù)據(jù)這兩個(gè)重要屬性外,還有一些附加屬性:</p><p&

82、gt;  類別:被執(zhí)行動(dòng)作的附加信息。例如LAUNCHER_CATEGORY表示意圖的接受者應(yīng)該在Launcher中作為頂級(jí)應(yīng)用出現(xiàn);而ALTERNATIVECATEGORY表示當(dāng)前的意圖是一系列的可選動(dòng)作中的一個(gè),這些動(dòng)作可以在同一個(gè)數(shù)據(jù)上執(zhí)行。</p><p>  數(shù)據(jù)類型:顯式指定意圖的數(shù)據(jù)類型。一般意圖的數(shù)據(jù)類型能夠根據(jù)數(shù)據(jù)本身進(jìn)行判定,但是通過(guò)設(shè)置這個(gè)屬性,可以強(qiáng)制采用指定的類型。</p>

83、<p>  組件:指定意圖的目標(biāo)組件的類名稱。通常Android會(huì)根據(jù)意圖中包含的其它屬性的信息,比如動(dòng)作、數(shù)據(jù)/數(shù)據(jù)類型、類別進(jìn)行查找,最終找到一個(gè)與之匹配的目標(biāo)組件。</p><p>  附加信息:是其它所有附加信息的集合。使用附加信息可以為組件提供擴(kuò)展信息,比如,如果要執(zhí)行“發(fā)送電子郵件”這個(gè)動(dòng)作,可以將電子郵件的標(biāo)題、正文等保存在附加信息里,傳給電子郵件發(fā)送組件??傊瑒?dòng)作、數(shù)據(jù)/數(shù)據(jù)類型、類

84、別和附加信息一起形成了一種語(yǔ)言。這種語(yǔ)言使系統(tǒng)能夠理解諸如“查看某聯(lián)系人的詳細(xì)信息”之類的短語(yǔ)。隨著應(yīng)用不斷的加入到系統(tǒng)中,它們可以添加新的動(dòng)作、數(shù)據(jù)/數(shù)據(jù)類型和類別來(lái)擴(kuò)展這種語(yǔ)言。應(yīng)用也可以提供自己的活動(dòng)來(lái)處理已經(jīng)存在的這樣的“短語(yǔ)”,從而改變這些“短語(yǔ)”的行為。</p><p>  3.3.2 Android如何解析Intent</p><p>  在應(yīng)用中,可以以兩種形式來(lái)使用Int

85、ent:</p><p>  (l)直接意圖:指定了組件屬性的意圖。通過(guò)指定具體的組件類,通知應(yīng)用啟動(dòng)對(duì)應(yīng)的組件。</p><p>  (2)間接意圖:沒(méi)有指定組件屬性的意圖。這些意圖需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在所有的可用組件中,確定滿足此意圖的組件。對(duì)于直接意圖,Android不需要去做解析,因?yàn)槟繕?biāo)組件已經(jīng)很明確,Android需要解析的是那些間接意圖,通過(guò)解析,將

86、意圖映射給可以處理此意圖的活動(dòng)、意圖接收器或服務(wù)。</p><p>  意圖解析機(jī)制主要是通過(guò)查找己注冊(cè)在AndroidManifest.xml中的所有意圖過(guò)濾器及其中定義的意圖,最終找到匹配的意圖。在這個(gè)解析過(guò)程中,Android是通過(guò)意圖的動(dòng)作、數(shù)據(jù)類型、類別這三個(gè)屬性來(lái)進(jìn)行判斷的,判斷方法如下:</p><p>  如果意圖指明定了動(dòng)作,則目標(biāo)組件的意圖過(guò)濾器的動(dòng)作列表中就必須包含有

87、這個(gè)動(dòng)作,否則不能匹配。</p><p>  如果意圖沒(méi)有提供數(shù)據(jù)類型,系統(tǒng)將從數(shù)據(jù)中得到數(shù)據(jù)類型。和動(dòng)作一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包含意圖的數(shù)據(jù)類型,否則不能匹配。</p><p>  如果意圖中的數(shù)據(jù)不是content:類型的URI,而且意圖也沒(méi)有明確指定它的數(shù)據(jù)類型,將根據(jù)意圖中數(shù)據(jù)的格式(比如http:或者mailto:)進(jìn)行匹配。同上,意圖的格式必須出現(xiàn)在目標(biāo)組件的格式列

88、表中。</p><p>  如果意圖指定了一個(gè)或多個(gè)類別,這些類別必須全部出現(xiàn)在組建的類別列表中。比如意圖中包含了兩個(gè)類別:</p><p>  LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目標(biāo)組件必須至少包含這兩個(gè)類別。</p><p>  3.4 Android活動(dòng)的生命周期</p><p>

89、  Android平臺(tái)是個(gè)手機(jī)作業(yè)系統(tǒng)。撇掉其他功能不談,手機(jī)的特性,就是應(yīng)該能隨時(shí)在未完成目前動(dòng)作的時(shí)候,暫停正在使用的功能,切換到接電話、接收短信模式,而且在接完電話回到應(yīng)用程序時(shí),還希望能看到一樣的內(nèi)容?,F(xiàn)在用戶使用智能手機(jī),大多已習(xí)慣使用多工的作業(yè)系統(tǒng)(如windowsMobile),可以在用手機(jī)聽(tīng)音樂(lè)的同時(shí),執(zhí)行其他多個(gè)程序。同時(shí)執(zhí)行多個(gè)程序有它的明顯好處,但也有它的缺點(diǎn)。每多執(zhí)行一個(gè)應(yīng)用程序,就會(huì)多耗費(fèi)一些系統(tǒng)內(nèi)存,而手機(jī)里

90、的內(nèi)存是相當(dāng)有限的。當(dāng)同時(shí)執(zhí)行的程序過(guò)多,或是關(guān)閉的程序沒(méi)有正確釋放掉內(nèi)存,系統(tǒng)運(yùn)行時(shí)就會(huì)覺(jué)得越來(lái)越慢,甚至不穩(wěn)定。為了解決這個(gè)問(wèn)題,Android引入了一個(gè)新的機(jī)制—生命周期。</p><p>  Android應(yīng)用程序的生命周期是由Android框架進(jìn)行管理,而不是由應(yīng)用程序直接控制。通常,每一個(gè)應(yīng)用程序(入口一般會(huì)是一個(gè)活動(dòng)的onCreate方法),都會(huì)占據(jù)一個(gè)進(jìn)程。當(dāng)系統(tǒng)內(nèi)存即將不足的時(shí)候,會(huì)依照優(yōu)先級(jí)自

91、動(dòng)進(jìn)行進(jìn)程的回收。不管是使用者或開發(fā)者,都無(wú)法確定應(yīng)用程序何時(shí)會(huì)被回收。關(guān)于進(jìn)程的生命周期將在下一節(jié)中介紹,本節(jié)主要介紹活動(dòng)的生命周期。</p><p>  一個(gè)活動(dòng)類別除了OnCreate方法之外,還預(yù)先定義了onPause(暫停)、OnResume(繼續(xù))等的基本方法,當(dāng)從一個(gè)活動(dòng)切換到另一個(gè)活動(dòng)的時(shí)候,原來(lái)的活動(dòng)將經(jīng)過(guò)一連串的狀態(tài)改變。開發(fā)者可以在程序中添加一些各狀態(tài)相對(duì)應(yīng)的流程,每次活動(dòng)狀態(tài)改變時(shí),就會(huì)執(zhí)

92、行相對(duì)應(yīng)的流程。要讓用戶有好的使用體驗(yàn),活動(dòng)需要在各個(gè)周期中負(fù)責(zé)保管狀態(tài)、恢復(fù)狀態(tài)、傳送資料等工作。</p><p>  3.4.1活動(dòng)的生命狀態(tài)</p><p>  Android的虛擬機(jī)是使用堆棧管理。主要有四種狀態(tài):</p><p><b>  (l)活動(dòng)狀態(tài)</b></p><p>  活動(dòng)狀態(tài)是指用戶啟動(dòng)應(yīng)用程

93、序或活動(dòng)后,活動(dòng)運(yùn)行中的狀態(tài)。在Android平臺(tái)上,同一個(gè)時(shí)刻只會(huì)有一個(gè)活動(dòng)處于活動(dòng)或運(yùn)行狀態(tài)。其他的活動(dòng)都處于未啟動(dòng)、停止或是暫停的狀態(tài)。</p><p><b>  (2)暫停狀態(tài)</b></p><p>  暫停狀態(tài)是指當(dāng)活動(dòng)暫時(shí)暗下來(lái),退到背景畫面的狀態(tài)。當(dāng)警告對(duì)話框或電話來(lái)了時(shí),都會(huì)讓原來(lái)運(yùn)行的活動(dòng)退到背景畫面。新出現(xiàn)的警告對(duì)話框等界面元件蓋住了原來(lái)的活動(dòng)

94、畫面?;顒?dòng)處在暫停狀態(tài)時(shí),用戶無(wú)法與原活動(dòng)互動(dòng)。</p><p><b>  (3)停止?fàn)顟B(tài)</b></p><p>  停止?fàn)顟B(tài)是指有其他活動(dòng)正在執(zhí)行,而這個(gè)活動(dòng)己經(jīng)離開屏幕,不再動(dòng)作的狀態(tài)。通過(guò)按返回鍵,可以調(diào)出所有處于停止?fàn)顟B(tài)的應(yīng)用程序列表。處于停止?fàn)顟B(tài)的活動(dòng),還可以通過(guò)通知來(lái)喚醒。</p><p>  (4)已回收或未啟動(dòng)狀態(tài)</

95、p><p>  已回收或未啟動(dòng)狀態(tài)是指活動(dòng)尚未被啟動(dòng)、已經(jīng)被手動(dòng)終止或己經(jīng)被系統(tǒng)回收的狀態(tài)。要手動(dòng)終止活動(dòng),可以在程序中調(diào)用finish方法。如果是被系統(tǒng)回收,可能是因?yàn)閮?nèi)存不足了,所以系統(tǒng)根據(jù)內(nèi)存不足時(shí)的回收規(guī)則,將處于停止?fàn)顟B(tài)的活動(dòng)所占用的內(nèi)存回收。</p><p>  圖3-1 Android活動(dòng)生命周期</p><p>  圖3-1所示的七個(gè)狀態(tài)又可以歸納成三

96、組:</p><p>  (l)資源分配(創(chuàng)建/銷毀)</p><p>  完整的活動(dòng)生命周期由創(chuàng)建狀態(tài)開始,由銷毀狀態(tài)結(jié)束。創(chuàng)建時(shí)分配資源,銷毀時(shí)釋放資源。</p><p>  (2)可見(jiàn)與不可見(jiàn)(啟動(dòng)/重新啟動(dòng)/停止)</p><p>  當(dāng)活動(dòng)運(yùn)行到啟動(dòng)狀態(tài)時(shí),就可以在屏幕上看到這個(gè)活動(dòng)。相反地,當(dāng)活動(dòng)運(yùn)行到停止?fàn)顟B(tài)時(shí),這個(gè)活動(dòng)就會(huì)從屏

97、幕上消失。當(dāng)用戶按下返回鍵回到上一個(gè)活動(dòng)時(shí),會(huì)先到重新啟動(dòng)狀態(tài),再到一般的啟動(dòng)狀態(tài)。</p><p>  (3)用戶取得屏幕的控制權(quán)(繼續(xù)/暫停)</p><p>  當(dāng)有個(gè)警告對(duì)話框、短信、電話等信息進(jìn)入時(shí),原來(lái)的活動(dòng)會(huì)進(jìn)入暫停狀態(tài),暫時(shí)放棄屏幕的控制權(quán),被中斷到背景去,將前景交給優(yōu)先級(jí)高的事件。當(dāng)這些優(yōu)先級(jí)高的事件處理完后,活動(dòng)就改進(jìn)入繼續(xù)狀態(tài),此時(shí)又取得屏幕的控制權(quán)。</p&g

98、t;<p>  3.4.2 活動(dòng)的運(yùn)作流程</p><p>  由實(shí)際運(yùn)行來(lái)看,我們可以歸納出所有Android應(yīng)用程序都遵循的運(yùn)作流程:</p><p><b>  (l)一般啟動(dòng)</b></p><p>  啟動(dòng)一個(gè)活動(dòng)的基本流程為onCreate一>onstart一>onResume。該流程首先分配資源給這個(gè)活動(dòng)

99、(創(chuàng)建狀態(tài)),然后將活動(dòng)的內(nèi)容顯示到屏幕上(啟動(dòng)狀態(tài));在一切就緒后,取得屏幕的控制權(quán)(恢復(fù)狀態(tài)),用戶可以開始使用這個(gè)程序。</p><p>  (2)調(diào)用另一個(gè)活動(dòng)</p><p>  調(diào)用另一個(gè)活動(dòng)的基本流程為onpause(l)一>onCreate(2)一>onstart(2)一>0nResume(2)一>onStop(l)。該流程首先凍結(jié)原來(lái)的活動(dòng),再交出

100、屏幕控制權(quán);直到活動(dòng)2完成一般啟動(dòng)流程后,活動(dòng)1才會(huì)被停止。</p><p><b>  (3)回到原來(lái)活動(dòng)</b></p><p>  回到原來(lái)活動(dòng)的基本流程為onPause(2)一>onRestart(1)一>onstart(l)一>onResume(1)一>onstop(2)一>onDestroy(2)。另外按返回鍵也可以回到原來(lái)的

101、活動(dòng)。</p><p><b> ?。?)退出結(jié)束</b></p><p>  退出結(jié)束的基本流程為onPause一>onStop一>onDestroy。如果程序中有直接調(diào)用finish方法來(lái)關(guān)閉活動(dòng)的話,系統(tǒng)會(huì)跳過(guò)先凍結(jié)的階段,直接暫停,停止,然后銷毀。</p><p><b>  (5)回收后再啟動(dòng)</b>

102、</p><p>  回收后再啟動(dòng)的基本流程為oncreate一>onstart一>onresume。如果被回收掉的活動(dòng)一旦又重新被調(diào)用時(shí),會(huì)像一般啟動(dòng)一樣再次調(diào)用活動(dòng)的onCreate方法。</p><p>  當(dāng)在模擬器上已經(jīng)執(zhí)行過(guò)多個(gè)應(yīng)用程序,只要按下返回鍵,就會(huì)開啟最近一次開啟過(guò)的活動(dòng)。所以如果要讓再次被創(chuàng)建的活動(dòng)跟原來(lái)開啟過(guò)的一樣,那么在活動(dòng)之間切換時(shí),就要保存資料:

103、即在每次活動(dòng)運(yùn)行到暫?;蛲V?fàn)顟B(tài)時(shí)先保存資料,然后在創(chuàng)建時(shí)將資料讀出來(lái)。</p><p>  4 Android校園通軟件的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  4.1 研究目標(biāo)</b></p><p>  (1)了解Android應(yīng)用程序的設(shè)計(jì)和開發(fā)過(guò)程;</p><p>  (2) 使用多種組件進(jìn)行Androi

104、d 平臺(tái)校園資訊軟件的開發(fā)。</p><p>  本軟件是基于Eclipse的開發(fā)環(huán)境,在Android平臺(tái)上的手機(jī)校園資訊軟件。</p><p><b>  4.2 需求分析</b></p><p>  本軟件是Android平臺(tái)的一個(gè)校園資訊程序,啟動(dòng)程序后查閱學(xué)校相關(guān)資訊包括在學(xué)校吃住娛樂(lè)風(fēng)景等各方面的訊息。</p><

105、;p>  從上面的描述中可以基本了解軟件的功能需求:</p><p>  首先是學(xué)校電影院每周電影的更新;</p><p>  其次有學(xué)校的各種資料;</p><p>  各種校園活動(dòng)及周邊娛樂(lè)設(shè)施的信息;</p><p><b>  校園校景美圖查看;</b></p><p><b&

106、gt;  校園生活手冊(cè);</b></p><p>  擴(kuò)展內(nèi)容“我的資料”,及“更多”兩個(gè)Activity。</p><p>  4.3 UI界面設(shè)計(jì)</p><p>  根據(jù)需求分析可以知道,應(yīng)用程序應(yīng)包含五個(gè)主要的用戶界面,這里需要進(jìn)一步分析每個(gè)用戶界面中應(yīng)該包括哪些顯示內(nèi)容。</p><p>  在首頁(yè)中,需要對(duì)學(xué)校的大致情

107、況做以介紹,并且有每周影訊的功能。在“分類”中,有各種學(xué)校的相關(guān)資料。包括娛樂(lè),電影,紀(jì)錄片,校景,公開課及生活。另外,還有擴(kuò)展內(nèi)容“我的資料”及“更多”兩個(gè)選項(xiàng)卡如圖4-1所示。</p><p>  圖4-1 用戶界面草圖</p><p>  4.4 程序模塊設(shè)計(jì)</p><p>  從功能需求上分析可以看出,整個(gè)應(yīng)用程序應(yīng)劃分為5個(gè)模塊,分別是首頁(yè)、分類、搜索

108、、我的資料和擴(kuò)展功能區(qū)。</p><p>  首頁(yè)介紹學(xué)校的一個(gè)總體情況,分類是整個(gè)軟件的核心,其中包括了軟件的各種主要功能,搜索是一個(gè)數(shù)據(jù)庫(kù)搜索系統(tǒng),我的資料是個(gè)人資料和數(shù)據(jù)的一個(gè)整合和提供了一些簡(jiǎn)單的小服務(wù),更多則是后期的一些擴(kuò)展功能。 </p><p>  在完成用戶界面設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和模塊設(shè)計(jì)后,至此程序設(shè)計(jì)階段基本完成。</p><p>  4.5

溫馨提示

  • 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ù)僅提供信息存儲(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)論