版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p> 題 目: 基于Android平臺的手機(jī)軟件開發(fā) </p><p> 基于Android平臺的校園通軟件 </p><p> 本科畢業(yè)設(shè)計(論文)正文</p><p><b> 目 錄</b>&l
2、t;/p><p><b> 摘要1</b></p><p> Abstract2</p><p><b> 1 引言3</b></p><p> 1.1 國內(nèi)外手機(jī)系統(tǒng)現(xiàn)狀3</p><p> 1.1.2 國內(nèi)外手機(jī)應(yīng)用現(xiàn)狀4</p><p
3、> 1.2 發(fā)展趨勢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類庫9<
4、;/b></p><p> 2.2.3 Android運行時組件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)用程序結(jié)
5、構(gòu)解析12</p><p> 3.2.1活動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 Intent
6、的抽象描述14</p><p> 3.3.2 Android如何解析Intent15</p><p> 3.4 Android活動的生命周期16</p><p> 3.4.1活動的生命狀態(tài)16</p><p> 3.4.2 活動的運作流程18</p><p> 4 Android校園通軟件的設(shè)計與
7、實現(xiàn)19</p><p> 4.1 研究目標(biāo)19</p><p> 4.2 需求分析19</p><p> 4.3 UI界面設(shè)計19</p><p> 4.4 程序模塊設(shè)計20</p><p> 4.5 軟件功能圖21</p><p> 4.6 文件結(jié)構(gòu)與用途
8、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平臺的校園通軟件</p&g
9、t;<p> 摘要:隨著智能手機(jī)一步步走進(jìn)普通人的生活,它將成為人們獲取信息的主要設(shè)備。因此,手機(jī)的娛樂應(yīng)用服務(wù)將會有很大的發(fā)展空間,校園資訊軟件就是其中之一。Android平臺提供給用戶非常方便的數(shù)據(jù)查閱功能,這將為校園資訊軟件的設(shè)計與實現(xiàn)提供了更好的平臺。另外,Android平臺基本上是免費的,所以能夠有效降低軟件的成本,最終讓每個用戶能夠自由地獲取信息,也為手機(jī)校園資訊服務(wù)的普及做出貢獻(xiàn)。</p>&
10、lt;p> 本文對目前應(yīng)用的Symbian、WindowsMobile、MacOSX和RIM等平臺的現(xiàn)狀進(jìn)行了分析與比較。進(jìn)而研究分析了Android平臺的系統(tǒng)架構(gòu)和組件模型,接著解析了Android中的重要API和應(yīng)用構(gòu)成,以Intent和生命周期的機(jī)制。在此基礎(chǔ)上,基于Android平臺設(shè)計和開發(fā)校園資訊軟件。本系統(tǒng)界面友好、操作便捷,具有良好的可擴(kuò)展性和可維護(hù)性;系統(tǒng)經(jīng)過測試,可以穩(wěn)定運行,能夠滿足手機(jī)用戶的基本需求。&l
11、t;/p><p> 關(guān)鍵詞:Android;Java;校園資訊;Intent;布局</p><p> A Campus Information Software based on the Android operating system</p><p> Name:Shun Huang No. :10191118 Director:GeJian Ding<
12、;/p><p> (College of Mathematics, Physics and Information Engineering,Zhejiang NormalUniversity, Jinhua, P.R.China)</p><p> Abstract:With the Mobile Phone enters into the live step by step,it wil
13、l 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 Information the function,
14、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, Finally le</p>
15、<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 platform system archi
16、tecture 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 Information the softwa
17、re based on the Android platform. This system friendly interface, Conven</p><p> Keywords: Android;Java;Campus Information ; Intent; Layout</p><p><b> 1 引言</b></p><p>
18、 目前隨著移動設(shè)備越來越普及以及移動設(shè)備的硬件的提升,移動設(shè)備的功能越來越完善,移動設(shè)備的系統(tǒng)平臺也日漸火熱起來。目前國內(nèi)最常見的移動開發(fā)平臺有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)正在崛起之中
19、。但是對于Android系統(tǒng)的應(yīng)用和開發(fā)在國內(nèi)仍然屬于起步和探索階段。急需要大量的相關(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,又名以軟件疊
20、層)的架構(gòu),主要分為三部分。低層以Linux核心工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程式的一部分。</p><p> 因為興趣和挑戰(zhàn),我開始自學(xué)android編程,通關(guān)指導(dǎo)老師的幫助完成了校園通軟件。希望通過這篇論文的研究,展示我在校期間學(xué)習(xí)與實踐的成果,希望給在浙師兩年的本科學(xué)習(xí)交上一份圓滿的答卷。</p><p> 1.1 國內(nèi)外手機(jī)系統(tǒng)
21、現(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è)計的操作系統(tǒng),它是一個實時性,多任務(wù)的純32位嵌入式的操作系統(tǒng),具有低能耗,內(nèi)存占用較少等特點?,F(xiàn)在流行的Symbian系統(tǒng)有以下四個版本,
22、分別為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)分為四個層次:核心操作系統(tǒng)層(the Core OS layer),核心服務(wù)層(the Cor
23、e Services layer),媒體層(the Media layer),可輕觸層(the Cocoa Touch layer)。系統(tǒng)操作占用大概240MB的存儲器空間</p><p> Windows Mobile 系列操作系統(tǒng)是從微軟計算機(jī)的Windows操作系統(tǒng)演化而來的。Windows Mobile系列操作系統(tǒng)功能強(qiáng)大,而且支持該操作系統(tǒng)的智能手機(jī)大多數(shù)都采用了英特爾嵌入式處理器,主頻比較高,在其它
24、硬件配置(如內(nèi)存、儲存卡容量等)上也比采用其它操作系統(tǒng)的智能手機(jī)要高出許多,因此性能比較強(qiáng)勁,速度比較快。</p><p> PalmOS屬于Palm公司開發(fā),是一種32位的嵌入式操作系統(tǒng),是一套專門為掌上電腦編寫的操作系統(tǒng),是一種輕量級、比較開放的操作系統(tǒng),占用的內(nèi)存非常小。現(xiàn)在多用Paml公司生產(chǎn)的手機(jī)上。該系統(tǒng)允許用戶在其基礎(chǔ)上編寫和修改相關(guān)軟件,使支持的應(yīng)用程序更加豐富多彩。Palm系統(tǒng)與其他手機(jī)系統(tǒng)相
25、比在其它方面也還存在一些不足,如Palm操作系統(tǒng)本身不具有錄音、MP3播放功能等,但是可以通過加入第三方軟件或硬件設(shè)備來實現(xiàn)。</p><p> 相對國外手機(jī)系統(tǒng)百花齊放的局面,國內(nèi)手機(jī)操作系統(tǒng)則處于剛起步的階段。</p><p> 目前國內(nèi)還沒有自主研發(fā)并商品化的手機(jī)操作系統(tǒng)。當(dāng)然近些年來國內(nèi)企業(yè)和我國政府在這方也投入了大量的人力和物力。同時也取得了一定成果。</p>
26、<p> 在2009年8月,由中國移動所主導(dǎo)開發(fā)OPhone平臺面世。OPhone平臺采用開源的Linux作為系統(tǒng)內(nèi)核,借鑒并兼容Android平臺,集成靈活高效的Java應(yīng)用框架,充分借鑒當(dāng)下主流手機(jī)操作系統(tǒng)所具有的良好用戶體驗,提供了一套完整的電話解決方案和各類移動數(shù)據(jù)業(yè)務(wù)解決方案。</p><p> 1.1.2 國內(nèi)外手機(jī)應(yīng)用現(xiàn)狀</p><p> 隨著3G在中國的全
27、面啟動,它所帶來的巨大機(jī)遇和新生力量,大規(guī)模的網(wǎng)絡(luò)建設(shè)正不斷深入展開。但不可否認(rèn)的是我國在通信領(lǐng)域中相比許多發(fā)達(dá)國家仍然存在著不小的差距,就在國人還在為EDGE這種傳輸速度僅能達(dá)到384KB/秒的2.75G過渡技術(shù)而欣喜的時候,國外早已開始試行HSDPA這種3.5G技術(shù),傳輸速度更可達(dá)到驚人的數(shù)兆每秒,而基于其上所開發(fā)的延伸功能更是數(shù)不勝數(shù),所以國內(nèi)外手機(jī)應(yīng)用也存在的較大的差異。但國內(nèi)外對手機(jī)應(yīng)用的需求方向是大致相似的,主要集中在信息服
28、務(wù),娛樂,學(xué)習(xí)這些方面。</p><p> 目前國內(nèi)外手機(jī)應(yīng)用服務(wù)方向主要有基于地理位置的信息服務(wù)(Location Based Service LBS)它是通過電信移動運營商的無線電通訊網(wǎng)絡(luò)(如GSM網(wǎng)、CDMA網(wǎng))或外部定位方式(如GPS)獲取移動終端用戶的位置信息(地理坐標(biāo),或大地坐標(biāo)),在GIS(Geographic Information System,地理信息系統(tǒng))平臺的支持下,為用戶提供相應(yīng)服務(wù)的
29、一種增值業(yè)務(wù)。例如手機(jī)定位,導(dǎo)航服務(wù)。</p><p> 近年來十分熱門的網(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ī)版。國內(nèi)淘寶網(wǎng)旗
30、下口碑網(wǎng)在今年也已經(jīng)推出針對多個手機(jī)平臺的客戶端程序。MSN,QQ等即時通信類的應(yīng)用也已經(jīng)在各個主流手機(jī)平臺推出。</p><p> 手機(jī)辦公類軟件在手機(jī)上也正日趨完善,在手機(jī)上編輯查看各類文檔已經(jīng)實現(xiàn),在android平臺上的QuickOffice就是這樣的軟件。在Google Market(一個谷歌針對android系統(tǒng)用戶所開發(fā)的應(yīng)用商場)上已經(jīng)有過萬的企業(yè)應(yīng)用辦公套件。</p><p
31、> 手機(jī)娛樂游戲類應(yīng)用,該類應(yīng)用作為傳統(tǒng)類手機(jī)應(yīng)用,在各個平臺上發(fā)展已近相對完善,手機(jī)上對各種流媒體的播放也已完美的支持。各類傳統(tǒng)PC游戲廠商進(jìn)入手機(jī)領(lǐng)域。</p><p><b> 1.2 發(fā)展趨勢</b></p><p> 隨著3G應(yīng)用的不斷開發(fā)推廣,用戶會越來越需要更加個性化、優(yōu)質(zhì)化的多媒體數(shù)據(jù)服務(wù),用戶希望能夠隨時、隨地?zé)o縫利用3G網(wǎng)絡(luò)進(jìn)行辦公、網(wǎng)
32、上交易、游戲娛樂、欣賞影視節(jié)目、收聽和下載音樂等。根據(jù)觀察,在不久的將來,移動手機(jī)終端將會在以下若干方面具有新的發(fā)展。</p><p> 首先,提供智能提醒服務(wù),手機(jī)能夠與用戶實現(xiàn)密切配合,并監(jiān)控用戶的個性化設(shè)置(保持在本地或者云端),當(dāng)重要時間點或關(guān)鍵事物需要用戶注意時,手機(jī)會向用戶發(fā)出“提醒”服務(wù),服務(wù)包括日程提醒、交通狀況、最佳行車路線、最佳泊位、優(yōu)惠活動、實時新聞、體育賽事、天氣情況、股市行情、好友活動
33、、親友生日等。</p><p> 其次,提供虛擬現(xiàn)實體驗,手機(jī)可以借助傳感器、周邊設(shè)備了解到您的身邊環(huán)境,并根據(jù)收集到的信息,智能的為您提供有用的信息,如在網(wǎng)絡(luò)世界養(yǎng)的寵物,可以借助音頻設(shè)備表達(dá)叫聲,借助馬達(dá)和位置傳感器等傳遞其跳、躍等行為信息;也可以在用戶購物時,提供相關(guān)的同類產(chǎn)品價格參考,提醒用戶附近的那個賣場更物美價廉;根據(jù)實際場景,為用戶及時提供正在操控的產(chǎn)品的使用方法提醒。</p>&l
34、t;p> 接著,發(fā)揮物聯(lián)網(wǎng)的優(yōu)勢,借助無處不在的傳感器,可以感知并分享到周圍世界的海量信息,這些信息將在“云端”得到整合,幫助用戶及時、準(zhǔn)確的獲得氣息信息、交通路況。另外借助物聯(lián)網(wǎng),用戶間可以方便、快速的分享資源,協(xié)助和交互。如進(jìn)行端到端的多人游戲、照片分享、書籍分享、音樂分享等。</p><p> 然后,作為經(jīng)濟(jì)工具,在交通或者信息不發(fā)達(dá)的情況下,幫助用戶找到最佳的市場,獲得有價值的幫助信息,幫助用戶
35、從事的經(jīng)濟(jì)活動的收益率。</p><p> 最后,更加智能、安全的設(shè)備,隨著智能手機(jī)的不斷普及和更加智能,手機(jī)軟件的更新、升級將會變得越發(fā)簡單,并會為用戶提供工具或信息,讓用戶有能力和權(quán)力決策那些內(nèi)容可以瀏覽、下載或分享。在安全性上也將更加出色,能夠十分有效的幫助用戶進(jìn)行獲取到的內(nèi)容的管理,保護(hù)用戶的個人隱私和基于手機(jī)的金融活動如電子錢包、在線支付、在線貿(mào)易等。 </p><p> 2
36、 Android的相關(guān)技術(shù)介紹及分析</p><p> 2.1 Android系統(tǒng)架構(gòu)研究Android是一個包含操作系統(tǒng)、中介架構(gòu)層及應(yīng)用程序所產(chǎn)生出來的軟件堆棧架構(gòu)。由下而上,其核心為嵌入式Linux2.6作業(yè)系統(tǒng),向上搭配Google為Android開發(fā)的類庫及Android運行時,再配合應(yīng)用程序架構(gòu),來開發(fā)各種不同的應(yīng)用程序。</p><p> 2.1Android的功能特
37、征</p><p> (l)應(yīng)用程序架構(gòu):在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基礎(chǔ)組件,在開發(fā)應(yīng)用程序時,就可以直接調(diào)用這些組件來使用,可以節(jié)省開發(fā)應(yīng)用程序的心力及時間。</p><p> (2)Dalvik虛擬機(jī)器:在Android平臺上所使用Java虛擬機(jī),不是Sim公司的標(biāo)準(zhǔn)Java虛擬機(jī),而是使用Google自主開發(fā)的代號為Dalvik的虛擬機(jī),它在保證API方面的兼容的同時,針
38、對移動手機(jī)進(jìn)行了大幅優(yōu)化,占用資源更小,運行效率更高。</p><p> (3)集成的瀏覽器:集成的瀏覽器是Android內(nèi)建的瀏覽器,是以WebKit的瀏覽引擎為基礎(chǔ)所開發(fā)成的。WedKit是一個開源瀏覽器網(wǎng)頁排版引擎,目前使用WebKit引擎的瀏覽器主要有:Safari,Midori,Epiphany等。配合Android手機(jī)的功能,可以在瀏覽網(wǎng)頁時,達(dá)到更好的效果,例如:局部性的縮放網(wǎng)頁上的資訊、觸控式的
39、操作等效果。</p><p> (4)優(yōu)化的繪圖能力:在程序里可以用到的繪圖功能分為2D與3D兩個方面。在2D方面,Android提供了一套特有的類庫(SGL;而在3D方面則是使用OpenGLES1.0(openGL for Embedded systems)規(guī)范的類庫。它們是一種非??斓膱D形引擎,并且支持硬件加速。</p><p> (5)SQLite數(shù)據(jù)庫:SQLite提供結(jié)構(gòu)化的
40、數(shù)據(jù)存取。SQLite是一款輕型的數(shù)據(jù)庫,它的設(shè)計目標(biāo)是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源非常低。它能夠支持Windows/Linux/U nix等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如php,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來講,它的處理速度比它們都快。它無需安裝和管理配置,它是一個儲存在單一磁盤文件中的完整數(shù)據(jù)庫,體積小只有250KB但支持?jǐn)?shù)據(jù)庫大小至2TB。
41、它雖然很小巧,但是支持的SQL語句毫不遜色于其它開源數(shù)據(jù)庫。同時它還支持事務(wù)功能和并發(fā)處理等等。SQLite也是一套開放性的關(guān)聯(lián)式資料庫,其特點在于輕量性方面的設(shè)計結(jié)構(gòu),更適合在手機(jī)上使用。</p><p> (6)多媒體的支持能力:主要用于播放媒體文件。這同時包括對音頻(如播放MP3或其他音樂文件等)和視頻(如播放從網(wǎng)上下載的視頻)的支持,并支持“播放URI地址”(Note:URI即是統(tǒng)一資源識別地址)模式—
42、在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:JPG、PNG、GIF等格式。</p><p> (7)GSM技術(shù):Global System for Mobile Communications,即全球移動通訊系統(tǒng),俗稱”全球通”,是一種起源于歐洲的移動通信技術(shù)標(biāo)準(zhǔn),是第二代移動通信技術(shù),其開發(fā)目的是讓全球各地可以共同使用一個移動電話網(wǎng)絡(luò)標(biāo)準(zhǔn),讓用戶使用一部手機(jī)就能行遍全球。GSM技術(shù)是屬于手機(jī)
43、硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時可以突出的特點之一。</p><p> (8)藍(lán)牙、EDGE、3G及Wi-Fi:藍(lán)牙是一種新型、開放、低成本、短距離的無線連接技術(shù),可取代短距離的電纜,實現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE(Enhanced Data Rate for GSM,Evolution),即增強(qiáng)型數(shù)據(jù)速率GSM演進(jìn)技術(shù)。EDGE是一種從GSM到3G的過渡技術(shù),它主要是在GSM系統(tǒng)中采用了
44、一種新的調(diào)制方法,即最先進(jìn)的多時隙操作和SPSK調(diào)制技術(shù)。由于8PSK可將現(xiàn)有GSM網(wǎng)絡(luò)采用的GMSK調(diào)制技術(shù)的信號空間從2擴(kuò)展到8,從而使每個符號所包含的信息是原來的4倍。Wi-Fi(WirelessFidelity),即無線保真技術(shù),與藍(lán)牙技術(shù)一樣,同屬于在辦公室和家庭中使用的短距離無線技術(shù)。該技術(shù)使用的是2.4GHz附近的頻段,該頻段目前尚屬沒用許可的無線頻段。其目前可使用的標(biāo)準(zhǔn)有兩個,分別是IEEE802.lla和IEEE802
45、.11b。這些通訊能力也是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時可以突出的特點之一。</p><p> (9)GPS: Global Positioning System,即全球定位系統(tǒng),它是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個系統(tǒng)可以保證在任意時刻和任何地點都可以同時觀測到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點的經(jīng)緯度和高度,以便實現(xiàn)導(dǎo)航、定位、授時等功能。這項技術(shù)可以用來引導(dǎo)飛
46、機(jī)、船舶、車輛以及個人。這個同樣也是屬于手機(jī)硬體方面的體現(xiàn),也是在開發(fā)Android應(yīng)用程序是可以突出的特點之一。</p><p> 2.2 Android架構(gòu)分析</p><p> 圖2-1 安卓架構(gòu)的五個部分</p><p> 圖中顯示的是Android架構(gòu)的五個主要部分。</p><p> 2.2.1應(yīng)用程序框架</p&
47、gt;<p> 在Android SDK中,定義了讓開發(fā)者使用與核心應(yīng)用程序相同API的權(quán)限應(yīng)用程序框架是為了要簡化組件的重新利用而設(shè)計的,應(yīng)用程序可以發(fā)布功能為其它應(yīng)用程序所使用。但是,這要受限于應(yīng)用程序架構(gòu)的安全機(jī)制,使用者以用同樣的機(jī)制來新增、置換組件。目前所有的應(yīng)用程序是由服務(wù)及系統(tǒng)來組成,包含有:</p><p> (l)一套強(qiáng)大和可擴(kuò)展的視圖系統(tǒng):用來建構(gòu)一個應(yīng)用程序的基本組件,包了
48、在開發(fā)系統(tǒng)畫面時,常用的列表、網(wǎng)格、文本框、按鈕等控制項,甚至是內(nèi)嵌的Web瀏覽器。 </p><p> (2)內(nèi)容提供者:使應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)庫),或者共享它們自己的數(shù)據(jù)。</p><p> (3)資源管理器:提供各種非程序代碼的資源讓應(yīng)用程序去使用。例如:本字符串、圖形文件或排版相關(guān)的布局文件。</p>
49、<p> (4)通知管理器:提供應(yīng)用程序在狀態(tài)欄中顯示應(yīng)用程序自定義的提示信息。</p><p> (5)活動管理器:管理所有應(yīng)用程序的生命周期及提供常用的導(dǎo)航回退功能。例如:啟動應(yīng)用程序要用到的資源準(zhǔn)備及關(guān)閉應(yīng)用程序時釋放內(nèi)存及相關(guān)資源等工作。</p><p> (6)視窗管理器:用來管理所有啟動程序的視窗。</p><p> (7)位置管理器:
50、用來管理地圖服務(wù)的相關(guān)功能。</p><p> (8)電話管理器:用來管理用戶撥打與接聽電話的相關(guān)功能。</p><p> (9)包管理器:管理所有安裝在Android系統(tǒng)內(nèi)的包。</p><p><b> 2.2.2類庫</b></p><p> 在Android中包含一些C/C++的類庫,這些類庫能被Andr
51、oid系統(tǒng)中不同的組件來使用。開發(fā)者可以通過應(yīng)用程序框架使用這些功能。部分核心類庫列表如下:</p><p> (1)surface Manager:主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管理的功能,在[顯示]與[存取操作]間的對應(yīng)、互動以及實現(xiàn)無接縫的2D/3D多應(yīng)用程序之間的整合。例如:在2D、2D顯示上的合成、疊合動作。</p><p> (2)3Dlibraries:主要是
52、依openGLES1.0規(guī)范所定義的3D繪圖引擎。該庫使用硬件加速(當(dāng)硬件可用時),可以將硬件的3D功能做最佳化的處理顯示。</p><p> (3)SGL:主要是處理有關(guān)顯示2D方面的繪圖引擎。</p><p> (4)Media Frame work:主要是以packetVideo公司的OpenCORE為基礎(chǔ)所發(fā)展的多媒體類庫,該庫支持回放和錄制大量流行的音視頻格式和靜態(tài)圖片。例如
53、:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式</p><p> (5)Free Type:主要是用來顯示點陣圖和處理向量字形的。</p><p> (6)SSL:(secureSocketsuyer),中文名為“安全套接層協(xié)議層”,它是網(wǎng)景公司提出的基于WEB應(yīng)用的安全協(xié)議,當(dāng)前版本為3.0。SSL協(xié)議指定了一種在應(yīng)用程序協(xié)議(如HTTP、Telene
54、t、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)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、
55、加密等基本功能的支持。SSL握手協(xié)議(SSL Hand shake proto col):它建立在SSL記錄協(xié)議之上,用于在實際的數(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ù)在傳輸過程中</p><p> (7)SQLite:SQLite是一套開
56、放性的關(guān)聯(lián)式資料庫,能夠被所有應(yīng)用程序使用的輕量級的關(guān)系數(shù)據(jù)庫引擎。</p><p> (8)web Kit:是一個先進(jìn)的網(wǎng)頁瀏覽器引擎,被用來構(gòu)建Android瀏覽器和內(nèi)嵌的web視圖,也可以讓開發(fā)者利用這個引擎來做不同的應(yīng)用。</p><p> (9)lib c:就是一個BSD標(biāo)準(zhǔn)C類庫。但是,針對Linux嵌入式裝置進(jìn)行過最佳化的調(diào)整。</p><p>
57、 2.2.3 Android運行時組件</p><p> 雖然Android是用Java語言來開發(fā)、撰寫應(yīng)用程序,但卻不使用Java運行時組件來執(zhí)行Java程序,而是使用了由Google自行研發(fā)的Android運行時組件來執(zhí)行程序。Android運行時組件包括兩個重要的部分,一個是核心類庫,另一個是Dalvik虛擬機(jī)。</p><p> 2.3 Android應(yīng)用的構(gòu)成和工作機(jī)制<
58、;/p><p> 對于一個Android應(yīng)用程序來說,是由Activity、IntentReceiver、Service、Content Provider四部分組成,但并不是每一個Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時,需要在配置文件AndroidManifest.xml中進(jìn)行配置。這個配置文件是每個Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等。Andro
59、id應(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主要包含了以下幾個部分:</p><p> (
60、1)AndroidManifest.xml</p><p> AndroidManifest.xml是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件(尤其是活動(Activity),服務(wù)(Service),意圖接收器(Intent Receiver)和內(nèi)容提供者(Content Provider))。舉例來說,控制文件就是把活動和要接收的意圖(Intents)連接在一起的“膠水”。</p>
61、<p><b> (2)活動</b></p><p> 活動就是一個有生命周期的對象。一個活動就是完成某些工作的代碼塊,這部分工作還可能包括對用戶UI界面的顯示。不過這不是必須的,有些活動從不顯示UI界面。</p><p><b> (3)視圖</b></p><p> 視圖可以將其自身繪制到屏幕上。A
62、ndroid的用戶界面由一系列的視圖樹構(gòu)成。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)建一個新的視圖的方法來使用自定義的圖形處理技術(shù)(比如開發(fā)游戲,或者是使用了不常用的用戶圖形窗口界面)。</p><p><b> (4)意圖</b></p><p> 意圖是一個簡單的消息對象,它表示程序想做某事的“意圖”。比如應(yīng)用程序想要顯示一個網(wǎng)頁,那么它可以
63、通過創(chuàng)建一個Intent實例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個URI。系統(tǒng)將定位到能處理這一Intent的代碼(在當(dāng)前情況下就是瀏覽器),并運行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。</p><p><b> (5)服務(wù)</b></p><p> 服務(wù)是運行在后臺的一段代碼。它可以運行在它自己的進(jìn)程,也可以運行在其他應(yīng)用程序的進(jìn)程里,這取決于
64、自身的需要.。其它的組件可以綁定到一個服務(wù)上來,通過遠(yuǎn)程過程調(diào)用(RPC)來調(diào)用這個方法。例如媒體播放器的服務(wù),當(dāng)用戶退出媒體選擇的界面時,仍然希望音樂依然可以繼續(xù)播放,這時就可用服務(wù)來保證當(dāng)用戶界面關(guān)閉時音樂還繼續(xù)播放著。</p><p><b> (6)通知</b></p><p> 通知將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互來接收消息。最常見的
65、通知包括短信息、通話記錄和語音郵件,但是應(yīng)用程序也可以創(chuàng)建它們自己的通知事件。</p><p><b> (7)內(nèi)容提供者</b></p><p> 內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進(jìn)行訪問。典型的例子就是使用內(nèi)容提供者來訪問聯(lián)系人列表。應(yīng)用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時也可以定義自己的內(nèi)容提供者來向其它應(yīng)用提供數(shù)據(jù)訪問服務(wù)。</p&g
66、t;<p> 3.2Android應(yīng)用程序結(jié)構(gòu)解析</p><p> 通常由以下四個組件來構(gòu)建一個完整的Android應(yīng)用程序。</p><p><b> ?、倩顒?lt;/b></p><p><b> ?、谝鈭D接收器</b></p><p><b> ?、鄯?wù)</b&
67、gt;</p><p><b> ④內(nèi)容提供者</b></p><p> 然而,并不是所有的Android應(yīng)用程序都必須具備上面的四個組件,可以由上面的一個或幾個來組建。當(dāng)決定使用以上哪些組件來構(gòu)建Android應(yīng)用程序時,需要將它們注冊在AndroidManifest.xml文件中,這是一個XML配置文件,在這個文件中可以聲明應(yīng)用程序組件以及它們的特性和要求。這
68、個配置文件是每個Android應(yīng)用程序所必需的。</p><p><b> 3.2.1活動</b></p><p> 活動是以上四個組件中最常用的一個。每個活動都是Activity的子類,并實現(xiàn)了一些獨有的功能,如管理UI顯示和UI的反饋事件。一個活動就相當(dāng)于應(yīng)用程序的一個用戶界面,由事件響應(yīng)以及視圖等組成。大多數(shù)的應(yīng)用程序通常包括多個界面。例如:一個文本聊天應(yīng)用
69、程序,至少應(yīng)該包含一個聯(lián)系人列表界面、一個聊天界面、一個設(shè)置界面、一個聊天記錄查詢界面等等。每個界面其實都可看作是一個活動。顯示一個新界面就相當(dāng)于生成一個對應(yīng)的活動對象。在一些情況下,活動能夠返回給它的上級界面一個返回值,例如一個提供給用戶選擇照片的活動可以返回給它的調(diào)用者用戶選擇了哪個照片文件。</p><p> 當(dāng)一個新的活動出現(xiàn)時,前一個活動被中斷并被放入到一個歷史堆棧中。用戶可以使用返回鍵使前一個活動重
70、現(xiàn)。當(dāng)一個活動不再需要時,可以將它們從歷史堆棧中移除。默認(rèn)情況下,Android會為每個應(yīng)用程序保留從主界面開始的歷史堆棧。</p><p> Android通過一個被稱作意圖的特殊類,來實現(xiàn)界面與界面之間的跳轉(zhuǎn)。一個意圖描述了一個應(yīng)用程序想要做什么。在意圖的描述結(jié)構(gòu)中,含有兩個重要的數(shù)據(jù)結(jié)構(gòu):動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型包括MAIN、VIEW、PICK、EDIT等等,而動作對應(yīng)的數(shù)據(jù)則以URI的形式表
71、示。例如:顯示一個聯(lián)系人信息的界面,可以創(chuàng)建一個意圖,并將它的動作設(shè)置成VIEW,數(shù)據(jù)設(shè)置成表示這個人信息的URI。</p><p> 除此之外,還有一個被稱作意圖過濾器(IntentFiher)的相關(guān)類。當(dāng)發(fā)生一個有效的目的請求時,意圖過濾器用來描述一個活動能夠處理什么意圖。如上例中所描述,想要正常顯示一個聯(lián)系人信息的界面,必須聲明一個意圖過濾器,它說明當(dāng)有聯(lián)系人數(shù)據(jù)要被在界面上顯示時,知道如何處理它們。通常
72、意圖過濾器要被注冊在AndroidManifest.xml文件中。從一個界面跳轉(zhuǎn)到另一個界面是由解析各種意圖實現(xiàn)的。例如:一個活動使用startActivity(myIntent)來調(diào)用其他活動時,系統(tǒng)會查找所有已經(jīng)安裝的應(yīng)用程序的意圖過濾器,并從中挑選出能夠匹配myIntent意圖的活動。隨后,這個新的活動接收到意圖(myIntent)的通知并開始運行。當(dāng)startActivity方法被調(diào)用,解析意圖的處理過程隨之發(fā)生,這個機(jī)制有以下
73、兩個突出的優(yōu)點:</p><p> 活動可以通過一個以意圖形式產(chǎn)生的請求來重用其他組件的功能。</p><p> 活動可以在任何時候被一個具有等價意圖過濾器的新活動所替代。</p><p> 3.2.2意圖接收器</p><p> 當(dāng)想要編寫代碼來對外部事件做一些處理時,可以使用意圖接收器。意圖接收器并不顯示UI界面,它是通過Noti
74、ficationManager來通知用戶他們感興趣的事件發(fā)生了。意圖接收器同樣可以被注冊在AndroidManifest.xml文件中,同時也可以在代碼中使用Context.registerReceiver()來注冊自己的意圖接收器。當(dāng)一個意圖接收器被觸發(fā)時,系統(tǒng)會根據(jù)需要來啟動應(yīng)用程序。</p><p><b> 3.2.3服務(wù)</b></p><p> 服務(wù)是
75、具有長生命周期并且沒有用戶界面的代碼。</p><p> 3.2.4內(nèi)容提供者</p><p> 在Android中,每個應(yīng)用程序都是有自己的userID及在自己的進(jìn)程中執(zhí)行。這樣做的好處是,可以保護(hù)系統(tǒng)及應(yīng)用程序,避免被其他不正常的應(yīng)用程序所影響??梢园衙總€進(jìn)程想像成是一個黑盒子,彼此不會互相影響,連內(nèi)存的資料都無法共享。如果應(yīng)用程序之間想要共享數(shù)據(jù),就需要使用用內(nèi)容提供者。一個內(nèi)容
76、提供者就是一個類,它實現(xiàn)了一個標(biāo)準(zhǔn)的方法集合。其他的應(yīng)用程序可以使用這些方法來保存和檢索此內(nèi)容提供者處理過的數(shù)據(jù)。</p><p> 3.3 Intent的詳細(xì)解析</p><p> 在一個Android應(yīng)用中,主要是由四種組件組成的,這四種組件可參考上一節(jié)的內(nèi)容。而這四種組件是獨立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個真正的Android應(yīng)用。在這些組件之間的通訊中,主要是
77、由意圖協(xié)助完成的。意圖負(fù)責(zé)對應(yīng)用中一次操作的動作、動作對應(yīng)的數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此意圖的描述,負(fù)責(zé)找到相應(yīng)的組件,將意圖傳遞給它,并完成組件的調(diào)用。因此,意圖在這里起著一個媒體中介的作用,專門提供組件之間互相調(diào)用的相關(guān)信息,實現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。</p><p> 例如,在一個聯(lián)系人維護(hù)的應(yīng)用中,當(dāng)在一個聯(lián)系人列表屏幕(假設(shè)對應(yīng)的Activity為listActivity)上,
78、點擊某個聯(lián)系人后,希望能夠調(diào)出此聯(lián)系人的詳細(xì)信息,為了實現(xiàn)這個目的,listActivity需要構(gòu)造一個Intent,這個Intent用于告訴系統(tǒng),要做“查看”動作,此動作對應(yīng)的查看對象是“某聯(lián)系人”,然后調(diào)用startActivity(intent intent),將構(gòu)造的Intent傳入,系統(tǒng)會根據(jù)此intent中的描述,到AndroidManifest.xml中找到滿足此Intent要求的Activity。系統(tǒng)會調(diào)用找到的Acti
79、vity,即為detailActivity,最終傳入Intent,detailActivitv則會根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。</p><p> 3.3.1 Intent的抽象描述</p><p> 在Android參考文檔中,對意圖的定義是執(zhí)行某操作的一個抽象描述。該抽象描述的具體內(nèi)容如下:</p><p> 首先,它是要執(zhí)行的動作的一個簡要
80、描述,如查看、修改等,Android定義了一套標(biāo)準(zhǔn)動作。此外,還可以根據(jù)應(yīng)用的需要,定義自己的動作,并可定義相應(yīng)的活動來處理自定義的動作。</p><p> 其次,是執(zhí)行動作要操作的數(shù)據(jù),Android采用指向數(shù)據(jù)的一個URI方式來實現(xiàn)。</p><p> 另外,除了動作和數(shù)據(jù)這兩個重要屬性外,還有一些附加屬性:</p><p> 類別:被執(zhí)行動作的附加信息。
81、例如LAUNCHER_CATEGORY表示意圖的接受者應(yīng)該在Launcher中作為頂級應(yīng)用出現(xiàn);而ALTERNATIVECATEGORY表示當(dāng)前的意圖是一系列的可選動作中的一個,這些動作可以在同一個數(shù)據(jù)上執(zhí)行。</p><p> 數(shù)據(jù)類型:顯式指定意圖的數(shù)據(jù)類型。一般意圖的數(shù)據(jù)類型能夠根據(jù)數(shù)據(jù)本身進(jìn)行判定,但是通過設(shè)置這個屬性,可以強(qiáng)制采用指定的類型。</p><p> 組件:指定意圖
82、的目標(biāo)組件的類名稱。通常Android會根據(jù)意圖中包含的其它屬性的信息,比如動作、數(shù)據(jù)/數(shù)據(jù)類型、類別進(jìn)行查找,最終找到一個與之匹配的目標(biāo)組件。</p><p> 附加信息:是其它所有附加信息的集合。使用附加信息可以為組件提供擴(kuò)展信息,比如,如果要執(zhí)行“發(fā)送電子郵件”這個動作,可以將電子郵件的標(biāo)題、正文等保存在附加信息里,傳給電子郵件發(fā)送組件??傊瑒幼?、數(shù)據(jù)/數(shù)據(jù)類型、類別和附加信息一起形成了一種語言。這種語
83、言使系統(tǒng)能夠理解諸如“查看某聯(lián)系人的詳細(xì)信息”之類的短語。隨著應(yīng)用不斷的加入到系統(tǒng)中,它們可以添加新的動作、數(shù)據(jù)/數(shù)據(jù)類型和類別來擴(kuò)展這種語言。應(yīng)用也可以提供自己的活動來處理已經(jīng)存在的這樣的“短語”,從而改變這些“短語”的行為。</p><p> 3.3.2 Android如何解析Intent</p><p> 在應(yīng)用中,可以以兩種形式來使用Intent:</p><
84、;p> (l)直接意圖:指定了組件屬性的意圖。通過指定具體的組件類,通知應(yīng)用啟動對應(yīng)的組件。</p><p> (2)間接意圖:沒有指定組件屬性的意圖。這些意圖需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在所有的可用組件中,確定滿足此意圖的組件。對于直接意圖,Android不需要去做解析,因為目標(biāo)組件已經(jīng)很明確,Android需要解析的是那些間接意圖,通過解析,將意圖映射給可以處理此意圖的活動、意圖接
85、收器或服務(wù)。</p><p> 意圖解析機(jī)制主要是通過查找己注冊在AndroidManifest.xml中的所有意圖過濾器及其中定義的意圖,最終找到匹配的意圖。在這個解析過程中,Android是通過意圖的動作、數(shù)據(jù)類型、類別這三個屬性來進(jìn)行判斷的,判斷方法如下:</p><p> 如果意圖指明定了動作,則目標(biāo)組件的意圖過濾器的動作列表中就必須包含有這個動作,否則不能匹配。</p&
86、gt;<p> 如果意圖沒有提供數(shù)據(jù)類型,系統(tǒng)將從數(shù)據(jù)中得到數(shù)據(jù)類型。和動作一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包含意圖的數(shù)據(jù)類型,否則不能匹配。</p><p> 如果意圖中的數(shù)據(jù)不是content:類型的URI,而且意圖也沒有明確指定它的數(shù)據(jù)類型,將根據(jù)意圖中數(shù)據(jù)的格式(比如http:或者mailto:)進(jìn)行匹配。同上,意圖的格式必須出現(xiàn)在目標(biāo)組件的格式列表中。</p><
87、p> 如果意圖指定了一個或多個類別,這些類別必須全部出現(xiàn)在組建的類別列表中。比如意圖中包含了兩個類別:</p><p> LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目標(biāo)組件必須至少包含這兩個類別。</p><p> 3.4 Android活動的生命周期</p><p> Android平臺是個手機(jī)作業(yè)系統(tǒng)
88、。撇掉其他功能不談,手機(jī)的特性,就是應(yīng)該能隨時在未完成目前動作的時候,暫停正在使用的功能,切換到接電話、接收短信模式,而且在接完電話回到應(yīng)用程序時,還希望能看到一樣的內(nèi)容?,F(xiàn)在用戶使用智能手機(jī),大多已習(xí)慣使用多工的作業(yè)系統(tǒng)(如windowsMobile),可以在用手機(jī)聽音樂的同時,執(zhí)行其他多個程序。同時執(zhí)行多個程序有它的明顯好處,但也有它的缺點。每多執(zhí)行一個應(yīng)用程序,就會多耗費一些系統(tǒng)內(nèi)存,而手機(jī)里的內(nèi)存是相當(dāng)有限的。當(dāng)同時執(zhí)行的程序過
89、多,或是關(guān)閉的程序沒有正確釋放掉內(nèi)存,系統(tǒng)運行時就會覺得越來越慢,甚至不穩(wěn)定。為了解決這個問題,Android引入了一個新的機(jī)制—生命周期。</p><p> Android應(yīng)用程序的生命周期是由Android框架進(jìn)行管理,而不是由應(yīng)用程序直接控制。通常,每一個應(yīng)用程序(入口一般會是一個活動的onCreate方法),都會占據(jù)一個進(jìn)程。當(dāng)系統(tǒng)內(nèi)存即將不足的時候,會依照優(yōu)先級自動進(jìn)行進(jìn)程的回收。不管是使用者或開發(fā)者
90、,都無法確定應(yīng)用程序何時會被回收。關(guān)于進(jìn)程的生命周期將在下一節(jié)中介紹,本節(jié)主要介紹活動的生命周期。</p><p> 一個活動類別除了OnCreate方法之外,還預(yù)先定義了onPause(暫停)、OnResume(繼續(xù))等的基本方法,當(dāng)從一個活動切換到另一個活動的時候,原來的活動將經(jīng)過一連串的狀態(tài)改變。開發(fā)者可以在程序中添加一些各狀態(tài)相對應(yīng)的流程,每次活動狀態(tài)改變時,就會執(zhí)行相對應(yīng)的流程。要讓用戶有好的使用體驗
91、,活動需要在各個周期中負(fù)責(zé)保管狀態(tài)、恢復(fù)狀態(tài)、傳送資料等工作。</p><p> 3.4.1活動的生命狀態(tài)</p><p> Android的虛擬機(jī)是使用堆棧管理。主要有四種狀態(tài):</p><p><b> (l)活動狀態(tài)</b></p><p> 活動狀態(tài)是指用戶啟動應(yīng)用程序或活動后,活動運行中的狀態(tài)。在And
92、roid平臺上,同一個時刻只會有一個活動處于活動或運行狀態(tài)。其他的活動都處于未啟動、停止或是暫停的狀態(tài)。</p><p><b> (2)暫停狀態(tài)</b></p><p> 暫停狀態(tài)是指當(dāng)活動暫時暗下來,退到背景畫面的狀態(tài)。當(dāng)警告對話框或電話來了時,都會讓原來運行的活動退到背景畫面。新出現(xiàn)的警告對話框等界面元件蓋住了原來的活動畫面。活動處在暫停狀態(tài)時,用戶無法與原
93、活動互動。</p><p><b> (3)停止?fàn)顟B(tài)</b></p><p> 停止?fàn)顟B(tài)是指有其他活動正在執(zhí)行,而這個活動己經(jīng)離開屏幕,不再動作的狀態(tài)。通過按返回鍵,可以調(diào)出所有處于停止?fàn)顟B(tài)的應(yīng)用程序列表。處于停止?fàn)顟B(tài)的活動,還可以通過通知來喚醒。</p><p> (4)已回收或未啟動狀態(tài)</p><p> 已
94、回收或未啟動狀態(tài)是指活動尚未被啟動、已經(jīng)被手動終止或己經(jīng)被系統(tǒng)回收的狀態(tài)。要手動終止活動,可以在程序中調(diào)用finish方法。如果是被系統(tǒng)回收,可能是因為內(nèi)存不足了,所以系統(tǒng)根據(jù)內(nèi)存不足時的回收規(guī)則,將處于停止?fàn)顟B(tài)的活動所占用的內(nèi)存回收。</p><p> 圖3-1 Android活動生命周期</p><p> 圖3-1所示的七個狀態(tài)又可以歸納成三組:</p><p
95、> (l)資源分配(創(chuàng)建/銷毀)</p><p> 完整的活動生命周期由創(chuàng)建狀態(tài)開始,由銷毀狀態(tài)結(jié)束。創(chuàng)建時分配資源,銷毀時釋放資源。</p><p> (2)可見與不可見(啟動/重新啟動/停止)</p><p> 當(dāng)活動運行到啟動狀態(tài)時,就可以在屏幕上看到這個活動。相反地,當(dāng)活動運行到停止?fàn)顟B(tài)時,這個活動就會從屏幕上消失。當(dāng)用戶按下返回鍵回到上一個活
96、動時,會先到重新啟動狀態(tài),再到一般的啟動狀態(tài)。</p><p> (3)用戶取得屏幕的控制權(quán)(繼續(xù)/暫停)</p><p> 當(dāng)有個警告對話框、短信、電話等信息進(jìn)入時,原來的活動會進(jìn)入暫停狀態(tài),暫時放棄屏幕的控制權(quán),被中斷到背景去,將前景交給優(yōu)先級高的事件。當(dāng)這些優(yōu)先級高的事件處理完后,活動就改進(jìn)入繼續(xù)狀態(tài),此時又取得屏幕的控制權(quán)。</p><p> 3.4.
97、2 活動的運作流程</p><p> 由實際運行來看,我們可以歸納出所有Android應(yīng)用程序都遵循的運作流程:</p><p><b> (l)一般啟動</b></p><p> 啟動一個活動的基本流程為onCreate一>onstart一>onResume。該流程首先分配資源給這個活動(創(chuàng)建狀態(tài)),然后將活動的內(nèi)容顯示到屏
98、幕上(啟動狀態(tài));在一切就緒后,取得屏幕的控制權(quán)(恢復(fù)狀態(tài)),用戶可以開始使用這個程序。</p><p> (2)調(diào)用另一個活動</p><p> 調(diào)用另一個活動的基本流程為onpause(l)一>onCreate(2)一>onstart(2)一>0nResume(2)一>onStop(l)。該流程首先凍結(jié)原來的活動,再交出屏幕控制權(quán);直到活動2完成一般啟動流程
99、后,活動1才會被停止。</p><p><b> (3)回到原來活動</b></p><p> 回到原來活動的基本流程為onPause(2)一>onRestart(1)一>onstart(l)一>onResume(1)一>onstop(2)一>onDestroy(2)。另外按返回鍵也可以回到原來的活動。</p><
100、p><b> ?。?)退出結(jié)束</b></p><p> 退出結(jié)束的基本流程為onPause一>onStop一>onDestroy。如果程序中有直接調(diào)用finish方法來關(guān)閉活動的話,系統(tǒng)會跳過先凍結(jié)的階段,直接暫停,停止,然后銷毀。</p><p><b> (5)回收后再啟動</b></p><p&g
101、t; 回收后再啟動的基本流程為oncreate一>onstart一>onresume。如果被回收掉的活動一旦又重新被調(diào)用時,會像一般啟動一樣再次調(diào)用活動的onCreate方法。</p><p> 當(dāng)在模擬器上已經(jīng)執(zhí)行過多個應(yīng)用程序,只要按下返回鍵,就會開啟最近一次開啟過的活動。所以如果要讓再次被創(chuàng)建的活動跟原來開啟過的一樣,那么在活動之間切換時,就要保存資料:即在每次活動運行到暫?;蛲V?fàn)顟B(tài)時先保
102、存資料,然后在創(chuàng)建時將資料讀出來。</p><p> 4 Android校園通軟件的設(shè)計與實現(xiàn)</p><p><b> 4.1 研究目標(biāo)</b></p><p> (1)了解Android應(yīng)用程序的設(shè)計和開發(fā)過程;</p><p> (2) 使用多種組件進(jìn)行Android 平臺校園資訊軟件的開發(fā)。</
103、p><p> 本軟件是基于Eclipse的開發(fā)環(huán)境,在Android平臺上的手機(jī)校園資訊軟件。</p><p><b> 4.2 需求分析</b></p><p> 本軟件是Android平臺的一個校園資訊程序,啟動程序后查閱學(xué)校相關(guān)資訊包括在學(xué)校吃住娛樂風(fēng)景等各方面的訊息。</p><p> 從上面的描述中可以基本
104、了解軟件的功能需求:</p><p> 首先是學(xué)校電影院每周電影的更新;</p><p> 其次有學(xué)校的各種資料;</p><p> 各種校園活動及周邊娛樂設(shè)施的信息;</p><p><b> 校園校景美圖查看;</b></p><p><b> 校園生活手冊;</b&
105、gt;</p><p> 擴(kuò)展內(nèi)容“我的資料”,及“更多”兩個Activity。</p><p> 4.3 UI界面設(shè)計</p><p> 根據(jù)需求分析可以知道,應(yīng)用程序應(yīng)包含五個主要的用戶界面,這里需要進(jìn)一步分析每個用戶界面中應(yīng)該包括哪些顯示內(nèi)容。</p><p> 在首頁中,需要對學(xué)校的大致情況做以介紹,并且有每周影訊的功能。在“
106、分類”中,有各種學(xué)校的相關(guān)資料。包括娛樂,電影,紀(jì)錄片,校景,公開課及生活。另外,還有擴(kuò)展內(nèi)容“我的資料”及“更多”兩個選項卡如圖4-1所示。</p><p> 圖4-1 用戶界面草圖</p><p> 4.4 程序模塊設(shè)計</p><p> 從功能需求上分析可以看出,整個應(yīng)用程序應(yīng)劃分為5個模塊,分別是首頁、分類、搜索、我的資料和擴(kuò)展功能區(qū)。</p&
107、gt;<p> 首頁介紹學(xué)校的一個總體情況,分類是整個軟件的核心,其中包括了軟件的各種主要功能,搜索是一個數(shù)據(jù)庫搜索系統(tǒng),我的資料是個人資料和數(shù)據(jù)的一個整合和提供了一些簡單的小服務(wù),更多則是后期的一些擴(kuò)展功能。 </p><p> 在完成用戶界面設(shè)計、數(shù)據(jù)庫設(shè)計和模塊設(shè)計后,至此程序設(shè)計階段基本完成。</p><p> 4.5 軟件功能圖</p>&l
108、t;p> 圖4-2 軟件功能圖</p><p> 4.6 文件結(jié)構(gòu)與用途</p><p> 在程序開發(fā)階段,首先確定“Android平臺校園通軟件”的工程名為MySchool,據(jù)程序模塊設(shè)計的內(nèi)容,建立MySchool工程。MySchool工程源代碼的結(jié)構(gòu)如圖5.1所示。</p><p> 為了使源代碼文件的結(jié)構(gòu)更加清晰,MySchool工程設(shè)置了多
溫馨提示
- 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è)論文
- 畢業(yè)論文范文——基于android的校園通軟件設(shè)計
- 基于android平臺的校園通軟件 (2)
- 基于android平臺的校園通軟件 (2)
- 畢業(yè)論文---基于安卓平臺的校園通軟件設(shè)計
- 基于安卓平臺的校園通軟件設(shè)計—畢業(yè)論文.doc
- 基于android的校園信息服務(wù)系統(tǒng)畢業(yè)論文
- 軟件工程畢業(yè)論文-基于android的家庭理財通軟件的設(shè)計——收入管理模塊
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財通軟件——便簽管理模塊設(shè)計
- 畢業(yè)論文范文——校園通系統(tǒng)設(shè)計
- 畢業(yè)論文范文——校園通系統(tǒng)設(shè)計
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財通軟件-----支出模塊的設(shè)計
- 軟件工程畢業(yè)論文-基于android的家庭理財通軟件的設(shè)計——支出管理模塊
- android畢業(yè)論文
- 軟件工程畢業(yè)論文-android跑步應(yīng)用開發(fā)
- 畢業(yè)論文——android手機(jī)語音錄入軟件設(shè)計
- 畢業(yè)論文---基于android平臺的移動警務(wù)通系統(tǒng)
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財通軟件的設(shè)計——收入管理模塊
- 基于Android的校園信息服務(wù)系統(tǒng)畢業(yè)論文.doc
- 基于android平臺的天氣軟件開發(fā)畢業(yè)論文
評論
0/150
提交評論