版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 題 目 名 稱基于Android的短信備份</p><p> 題 目 類 型畢業(yè)設(shè)計(jì)</p><p> 系 部信息系</p><p> 專 業(yè) 班 級(jí)</p><p> 學(xué) 生 姓 名</p>&l
2、t;p> 指 導(dǎo) 教 師</p><p> 輔 導(dǎo) 教 師</p><p> 時(shí) 間</p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 學(xué)院(系) 信息系 專業(yè) 班級(jí) </p><p> 學(xué)生姓名 指導(dǎo)教師/職稱
3、 </p><p> 畢業(yè)設(shè)計(jì)(論文)題目:</p><p> 基于Android的短信備份</p><p> 畢業(yè)設(shè)計(jì)(論文)起止時(shí)間:</p><p> 2009年11月20日-2010年6月10日</p><p> 3.畢業(yè)設(shè)計(jì)(論文)所需資料及原始數(shù)據(jù)(指導(dǎo)教師選定部分)</p&g
4、t;<p> 1) 陳帆,和紅杰,周榮輝 ,《Java 2程序設(shè)計(jì)實(shí)用教程》,機(jī)械工業(yè)出版社,2006年</p><p> 2)崔群法,王詠梅,李有軍,《Eclipse 3.0從入門到精通》,電子工業(yè)出版社,2008年</p><p> 3)林建素,孟康健,《Eclipse開發(fā)學(xué)習(xí)筆記》,電子工業(yè)出版社,2008年</p><p> 4)范春梅
5、,王新剛,張衛(wèi)華,《XML基礎(chǔ)教程》,人民郵電出版社,2009年</p><p> 5)(美)Erik T.Ray,譯者: 卓小濤,《XML入門》,中國電力出版社,2001年</p><p> 6)梅爾斯T.,奈克莫夫斯基A.,王輝,《Java XML 編程指南》,電子工業(yè)出版社,2001年</p><p> 7)麥克勞林B.,孫兆林,汪東 ,《JAVA 與
6、XML》,中國電力出版社,2001年</p><p> 8)威爾頓,P.,科爾比,J.,敖富江,《SQL入門經(jīng)典》,清華大學(xué)出版社,2006年</p><p> 4.畢業(yè)設(shè)計(jì)(論文)應(yīng)完成的主要內(nèi)容</p><p> 1)熟悉并掌握Android系統(tǒng)上程序開發(fā)的基本流程及方法。</p><p> 2)設(shè)計(jì)一個(gè)基于Android的短信備
7、份的軟件。實(shí)現(xiàn)的功能有:</p><p> a) 能在Android手機(jī)上的短信以文件的形式備份在手機(jī)上。</p><p> b) 能將短信以主題的形式備份。</p><p> c)能將短信備份到網(wǎng)絡(luò)上。</p><p><b> 3)調(diào)試程序</b></p><p> 4)撰寫畢業(yè)設(shè)
8、計(jì)論文</p><p> 5.畢業(yè)設(shè)計(jì)(論文)的目標(biāo)及具體要求</p><p> 要求學(xué)生了解Android系統(tǒng)的短信存儲(chǔ)機(jī)制和Java 語言解析XML文件知識(shí),熟悉Jave編程和Eclipse開發(fā)環(huán)境。</p><p> 通過Android的數(shù)據(jù)提供機(jī)制讀取手機(jī)上的短信,并根據(jù)用戶的選擇將短信備份到文件,郵件甚至備份到在線文檔中;同時(shí)要求提供主題備份及過濾備
9、份(指定備份與指定人間的短信)的功能和定時(shí)備份功能。</p><p> 在此過程中要求學(xué)生掌握Android系統(tǒng)的開發(fā)方法與流程,了解Android系統(tǒng)的結(jié)構(gòu),提高學(xué)生的編程能力和設(shè)計(jì)動(dòng)手能力,提高實(shí)踐水平,撰寫畢業(yè)設(shè)計(jì)論文。</p><p> 6.完成畢業(yè)設(shè)計(jì)(論文)所需的條件及上機(jī)時(shí)數(shù)要求</p><p> 1)基于Android系統(tǒng)的手機(jī)一部(可選)&l
10、t;/p><p><b> 2)微型計(jì)算機(jī)一臺(tái)</b></p><p><b> 3)圖書館及網(wǎng)絡(luò)</b></p><p><b> 4)參考資料</b></p><p> 任務(wù)書批準(zhǔn)日期 年 月 日 教研室(系)主任(簽字) &l
11、t;/p><p> 任務(wù)書下達(dá)日期 年 月 日 指導(dǎo)教師(簽字) </p><p> 完成任務(wù)日期 年 月 日 學(xué)生(簽名) </p><p> 基于Android系統(tǒng)的短信備份程序設(shè)計(jì)</p><p><b> 學(xué)生:
12、**,*</b></p><p> 指導(dǎo)老師:***, **</p><p> [摘要]社會(huì)信息化的普及,隨著現(xiàn)代社會(huì)的發(fā)展,手機(jī)作為通信的手段在人們?nèi)粘I钪衅鹪絹碓街匾淖饔?,而其中短信作為手機(jī)上的一種業(yè)務(wù),讓本來具有語言傳遞功能的手機(jī)變成了電報(bào)式的解讀工具,讓耳朵閑置,讓文字彰顯更大的作用;短信作為用文字傳遞信息和溝通的一種方式,讓拇指靈敏發(fā)達(dá)起來,讓嘴巴休息,現(xiàn)代
13、電信的業(yè)務(wù)具有了技術(shù)和文化的雙重色彩。然而在這個(gè)商品經(jīng)濟(jì)社會(huì)中的人們,使用短信通信常常會(huì)遇到一些重要的短信需要保留,所以短信備份就成為了一個(gè)重要的問題。</p><p> 而就手機(jī)系統(tǒng)而言,Android 是開放手機(jī)聯(lián)盟開發(fā)的第一個(gè)完整、開放、免費(fèi)的手機(jī)平臺(tái)。自發(fā)布來得到了廣泛關(guān)注和迅猛發(fā)展。而基于Android的短信備份,可以實(shí)現(xiàn)手機(jī)端、PC 端兩個(gè)平臺(tái)的資源交互共享,可與PC、手機(jī)進(jìn)行信息導(dǎo)入導(dǎo)出,安全性顯
14、著提高,且您能將短信通過電子郵件直接群發(fā)給朋友、客戶,便捷迅速。本文根據(jù)實(shí)際的項(xiàng)目?jī)?nèi)容,通過Android的數(shù)據(jù)提供機(jī)制設(shè)計(jì)程序,并在一款A(yù)ndroid手機(jī)上獲得了實(shí)物成果。</p><p> 文中首先介紹了Google推出的新一代智能手機(jī)平臺(tái)Android以及手機(jī)短信備份的重要性,以及課題研究的意義與目的。</p><p> 隨后詳細(xì)分析了Android的構(gòu)架,詳細(xì)分析了Androi
15、d的組件模型。介紹了Android應(yīng)用的構(gòu)成和工作機(jī)制,分別介紹了Activity、Intent Receiver、Service、Content Provider的作用,詳細(xì)分析了intent機(jī)制。</p><p> 接著詳細(xì)闡述了總體方案設(shè)計(jì)及開發(fā)步驟。</p><p> 論文最后文章指出了短信備份設(shè)計(jì)的結(jié)果與總結(jié)。</p><p> [關(guān)鍵詞]Andro
16、id、短信、短信備份、智能手機(jī)</p><p> SMS-based Android system backup program designed</p><p> Student: Zhang Kun,The engineering and technology college</p><p> Counselor: Shen Xiaoke,Electron
17、ics & information college</p><p> 【Abstract】With the popularity of social information,and the development of modern society, mobile phones as a means of communication play more and more important role i
18、n people's daily lives,so had passed with language functions phone into a cable-style interpretation tools to ear idle, so the text demonstrates a greater role; SMS text as the transmission of information and communi
19、cation with a way to thumb developed sensitivity up to his mouth closed, modern telecommunications business with the</p><p> The terms of the mobile phone system, Android is the Open Handset Alliance develo
20、ped the first complete, open, free mobile phone platform. Since the release to get the attention and rapid development. The Android-based SMS backup, you can achieve mobile terminal, PC terminal interaction of two platfo
21、rms share resources, with PC, mobile phone import and export of information, security, significantly improved, and you can e-mail direct bulk SMS to friends, customers, convenient and fast. This proj</p><p>
22、 The paper introduces a new generation Google Android smartphone platform as well as the importance of SMS backup, and the meaning and purpose of the research.</p><p> Followed by a detailed analysis of th
23、e Android framework, a detailed analysis of Android's component model. Android applications described the composition and working mechanism, introduced the Activity, Intent Receiver, Service, Content Provider role, d
24、etailed analysis of the intent mechanism.</p><p> Then elaborated on the overall program design and development process.</p><p> Finally the article points out the text and summarized the resu
25、lts of the backup design.</p><p> 【Key words】 Android ,SMS,SMS Backup,Smart Phones</p><p><b> 前言</b></p><p> Android平臺(tái)是Google推出的新一代智能手機(jī)平臺(tái)。Android是一套真正意義上的開放性移動(dòng)設(shè)備綜合平臺(tái),
26、它包括操作系統(tǒng)、中間件和一些關(guān)鍵的平臺(tái)應(yīng)用。Android平臺(tái)的開放性等特點(diǎn)既能促進(jìn)技術(shù)(包括平臺(tái)自身)的創(chuàng)新,又有助于降低開發(fā)成本,還可以使運(yùn)營商能非常方便地制定特色化的產(chǎn)品,因此,它具有很大的市場(chǎng)發(fā)展?jié)摿Α?lt;/p><p> 通訊移動(dòng)的發(fā)展,帶動(dòng)了手機(jī)的發(fā)展,而手機(jī)的發(fā)展,帶動(dòng)了手機(jī)軟件的發(fā)展,手機(jī)軟件的發(fā)展,最終形成了手機(jī)操作系統(tǒng)的誕生。Android的誕生不僅具有它固有的時(shí)代背景,更帶來了新的手機(jī)操作系
27、統(tǒng)的革命。Android不僅是一種操作系統(tǒng),它更是一個(gè)開源的平臺(tái)。</p><p> 隨著社會(huì)信息化的普及,隨著現(xiàn)代社會(huì)的發(fā)展,手機(jī)作為通信的手段在人們?nèi)粘I钪衅鹪絹碓街匾淖饔?,而其中短信作為手機(jī)上的一種業(yè)務(wù),讓本來具有語言傳遞功能的手機(jī)變成了電報(bào)式的解讀工具,讓耳朵閑置,讓文字彰顯更大的作用;短信作為用文字傳遞信息和溝通的一種方式,讓拇指靈敏發(fā)達(dá)起來,讓嘴巴休息,現(xiàn)代電信的業(yè)務(wù)具有了技術(shù)和文化的雙重色彩。
28、然而在這個(gè)商品經(jīng)濟(jì)社會(huì)中的人們,使用短信通信常常會(huì)遇到一些重要的短信需要保留,所以短信備份就成為了一個(gè)重要的問題。</p><p> 基于Android的短息備份</p><p><b> 第一章 緒論</b></p><p><b> 1.1概述</b></p><p> Android是
29、一個(gè)開放、自由的移動(dòng)終端平臺(tái)。Android平臺(tái)由操作系統(tǒng)、中間件、用戶界面、應(yīng)用軟件組成。開發(fā)人員在該平臺(tái)開發(fā)的應(yīng)用程序,是使用Java語言編寫的在Dalvik虛擬機(jī)上運(yùn)行的。Android的底層以開放性的Linux kernel為其架構(gòu)。也可以理解為Android是Google推出的智能手機(jī)操作系統(tǒng)和相關(guān)軟件的總稱。因此,它和一般在說Symbian、WindowsMobile是相同概念的。Google與開放手機(jī)聯(lián)盟合作開發(fā)了 And
30、roid,這個(gè)聯(lián)盟由包括中國移動(dòng)、摩托羅拉、高通、宏達(dá)電和 T-Mobile 在內(nèi)的 30 多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成,研發(fā)隊(duì)伍陣容相當(dāng)強(qiáng)大。</p><p> 而Android平臺(tái), Google集合30多家包括高通,摩托羅拉,三星,HTC等來自諸多領(lǐng)域的領(lǐng)先技術(shù)和無線公司組成"開放手機(jī)聯(lián)盟"(OHA),共同努力開發(fā)Android平臺(tái)。全球四大手機(jī)制造商中,已經(jīng)有三家為Android
31、提供硬件技術(shù)支持。在國內(nèi),中國移動(dòng)已經(jīng)加入OHA,并有機(jī)會(huì)成為第一家在中國運(yùn)營Android手機(jī)的公司。聯(lián)通也在今年的5月17日宣布加入OHA。中國的許多軟件公司已經(jīng)將目光投向了Android。首款基于Android平臺(tái)的智能手機(jī)在2008年下半年推出。另外華為也已證實(shí)正在研發(fā)基于Android平臺(tái)的手機(jī),目前已經(jīng)制成樣機(jī)。在目前,由于Android平臺(tái)剛發(fā)布半年,系統(tǒng)還有許多需要充實(shí)的地方;但相信在未來幾年中,Google Andro
32、id將對(duì)移動(dòng)產(chǎn)業(yè)帶來較大的影響,Android會(huì)變得更加的強(qiáng)壯和易用。</p><p> 1.2研究的目的及意義</p><p> 1992年,世界上第一條短信在英國沃達(dá)豐的網(wǎng)絡(luò)上通過電腦向手機(jī)發(fā)送成功,從而宣布手機(jī)短信誕生。至于中國的第一條短信誕生于何時(shí)何地已無從知曉,但據(jù)考證,中國的移動(dòng)通信網(wǎng)絡(luò)早在1994年就具備了短信功能,只是那時(shí)有手機(jī)的人根本不需要它罷了。隨著手機(jī)的日益普及,
33、從1998年開始,移動(dòng)、聯(lián)通先后大范圍拓展短信業(yè)務(wù):2000年,中國手機(jī)短信息量突破10億條;2001</p><p> 年,達(dá)到189億條;2004年,其飛漲到900億條。于是短信理所應(yīng)當(dāng)?shù)爻蔀榱说谖宸N傳播工具;于是從1998年至今,管你愿意與否,短信已逐漸走入我們的生活,成為生活的一部分,我們的生活也因短信而改變著。</p><p> 短信作為手機(jī)上的一種業(yè)務(wù),讓本來具有語言傳遞功
34、能的手機(jī)變成了電報(bào)式的解讀工具,讓耳朵閑置,讓文字彰顯更大的作用;短信作為用文字傳遞信息和溝通的一種方式,讓拇指靈敏發(fā)達(dá)起來,讓嘴巴休息,現(xiàn)代電信的業(yè)務(wù)具有了技術(shù)和文化的雙重色彩。盡管移動(dòng)市場(chǎng)發(fā)展飛速,不過短信仍然是其最重要的一項(xiàng)附加價(jià)值服務(wù)。據(jù)此前IDC公司統(tǒng)計(jì),文字短信仍是亞太地區(qū)手機(jī)用戶普及率最高的一項(xiàng)移動(dòng)服務(wù),即使在短信的發(fā)展中市場(chǎng),例如西歐短信服務(wù)的使用率也達(dá)到了90%。而隨著科技的日益發(fā)展,信息時(shí)代的到來,在人們使用手機(jī)的信
35、息交流中,已漸漸離不開了短信,短信的重要性就越來越突出了。且在這個(gè)商品經(jīng)濟(jì)社會(huì)中人們常常會(huì)遇到一些重要的短信需要保留,所以短信備份就成為了一個(gè)重要的問題。 </p><p> Android 是開放手機(jī)聯(lián)盟開發(fā)的第一個(gè)完整、開放、免費(fèi)的手機(jī)平臺(tái)。自發(fā)布來得到了廣泛關(guān)注和迅猛發(fā)展。而基于Android的短信備份,可以實(shí)現(xiàn)手機(jī)端、PC 端兩個(gè)平臺(tái)的資源交互共享,可與PC、手機(jī)進(jìn)行信息導(dǎo)入導(dǎo)出,安全性顯著提高,且
36、您能將短信通過電子郵件直接群發(fā)給朋友、客戶,便捷迅速。如此一來,要是手機(jī)出現(xiàn)什么意外,你也不用擔(dān)心重要短信會(huì)丟失了。</p><p> 1.3本文主要研究的內(nèi)容</p><p> 本次畢業(yè)設(shè)計(jì)主要內(nèi)容有:了解Android系統(tǒng)的短信存儲(chǔ)機(jī)制和Java 語言解析XML文件知識(shí),熟悉Java編程和Eclipse開發(fā)環(huán)境及其配置環(huán)境。</p><p> 通過Andr
37、oid的數(shù)據(jù)提供機(jī)制讀取手機(jī)上的短信,并根據(jù)用戶的選擇將短信備份到文件,郵件甚至備份到在線文檔中,同時(shí)要求提供主題備份及過濾備份(指定備份與指定人間的短信)的功能和定時(shí)備份功能。</p><p> 在此過程中掌握Android系統(tǒng)的開發(fā)方法與流程,了解Android系統(tǒng)的結(jié)構(gòu),提高學(xué)生的編程能力和設(shè)計(jì)動(dòng)手能力,提高實(shí)踐水平。</p><p> 第二章 Android架構(gòu) </p&
38、gt;<p> 本章所要介紹的Android架構(gòu)內(nèi)容包括:Android平臺(tái)的架構(gòu),Android的內(nèi)核分析,Android應(yīng)用的構(gòu)成與工作機(jī)制,Android中的Intent以及Eclipse。以下就是對(duì)其相關(guān)內(nèi)容的描述。</p><p> 2.1Android平臺(tái)的架構(gòu)</p><p> Android平臺(tái)自底向上由以下四個(gè)層次組成:Linux內(nèi)核層、Android
39、運(yùn)行時(shí)庫和其他庫層、應(yīng)用框架層、應(yīng)用程序?qū)印H鐖D1所示圖1</p><p> Android平臺(tái)的結(jié)構(gòu)</p><p> (1) Linux內(nèi)核層:Android基于Linux核來開發(fā)的,主要是添加了一個(gè)名為Goldfish的虛擬CPU以及Android運(yùn)行所需的特定驅(qū)動(dòng)代碼。該層用來提供系統(tǒng)的底層服務(wù),包括安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧及一系列的驅(qū)動(dòng)模塊。作為一個(gè)虛擬的中間層
40、,該層位于硬件與其它的軟件層之間。需要注意的是,這個(gè)內(nèi)核操作系統(tǒng)并非類GNU/Linux的,所以其系統(tǒng)庫、系統(tǒng)初始化和編程接口都和標(biāo)準(zhǔn)的Linux系統(tǒng)有所不同的。它沒有采用虛擬內(nèi)存文件系統(tǒng),而是采用YAFFS2文件系統(tǒng)。</p><p> YAFFS(Yet Another Flash File System)文件系統(tǒng)是一個(gè)開源的,專門為NAND Flash設(shè)計(jì)的文件系統(tǒng),具有很好的可移植性,也是一種日志型文件
41、系統(tǒng),能夠在Linux,uCLinux,和Windows CE上運(yùn)行。YAFFS目前有YAFFS和YAFFS2兩個(gè)版本,一般說來,YAFFS小頁面(528字節(jié)/頁)有很好的支持,而更大的頁面(2K+64字節(jié)/頁)就需要YAFFS2為新一代智能手機(jī)平臺(tái),Android需要支持超大容量的NAND Flash,所以采用支持大頁面的YAFFS2文件系統(tǒng)。</p><p> (2)Android運(yùn)行時(shí)庫和其他庫層:And
42、roid運(yùn)行時(shí)庫包含一組核心庫(提供了Java語言核心庫內(nèi)的大部分功能)和Dalvik虛擬機(jī)。同時(shí)Android提供了豐富的庫類支持且大部分為開源代碼,如采用的數(shù)據(jù)庫為SQLite。Android選擇它作為移動(dòng)終端的嵌入式數(shù)據(jù)庫有以下優(yōu)點(diǎn),它無需安裝和管理配置,它是一個(gè)儲(chǔ)存在單一磁盤文件中的完整數(shù)據(jù)庫,體積小只有250KB但支持?jǐn)?shù)據(jù)庫大小至2KB,提供了對(duì)事務(wù)功能和并發(fā)處理的支持,而且比目前流行的大多數(shù)數(shù)據(jù)庫運(yùn)行速度快。</p&g
43、t;<p> (3)應(yīng)用框架層:在應(yīng)用框架層Android開發(fā)人員可以跟那些核心應(yīng)用一樣擁有訪問框架API的全部權(quán)限。應(yīng)用的系結(jié)構(gòu)化設(shè)計(jì)簡(jiǎn)化了各組件之間的重用,任何應(yīng)用都可以分發(fā)自己的組件,任何應(yīng)用也可以使用這些分發(fā)的組件(應(yīng)用的使用方法需遵循框架的安全性約束)。</p><p> (4)應(yīng)用程序?qū)樱篈ndroid本身會(huì)附帶一些核心的應(yīng)用程序,包括e—mail客戶端、短信程序、日歷、地圖、瀏覽器
44、、通訊錄等等,目前所有的應(yīng)用程序都是由Java語言開發(fā)的。</p><p> 2.2Android的內(nèi)核分析</p><p> ?。?)內(nèi)核在操作系統(tǒng)中的地位</p><p> Android基于Linux操作系統(tǒng),由硬件、系統(tǒng)內(nèi)核、系統(tǒng)服務(wù)和應(yīng)用程序等四大部分組成。其中,內(nèi)核Kernel是最核心的部分,其主要作用在于與計(jì)算機(jī)硬件進(jìn)行交互,實(shí)現(xiàn)對(duì)硬件的編程控制和
45、接口操作,調(diào)度訪問硬件資源,同時(shí)向應(yīng)用程序提供一個(gè)高級(jí)的執(zhí)行環(huán)境和對(duì)硬件的虛擬接口。主要功能包括:中斷服務(wù)程序、進(jìn)程調(diào)度程序、進(jìn)程地址空間的內(nèi)存管理、進(jìn)程間通信。</p><p> 內(nèi)核與普通應(yīng)用程序不同,其擁有所有硬件設(shè)備的訪問權(quán)限以及啟動(dòng)時(shí)即劃分的受保護(hù)的內(nèi)存空間同。</p><p> ?。?)Android內(nèi)核</p><p> 和標(biāo)準(zhǔn)的Linux內(nèi)核一樣
46、,Android內(nèi)核主要實(shí)現(xiàn)內(nèi)存管理、進(jìn)程調(diào)度、進(jìn)程間通信等功能。</p><p> Android內(nèi)核是在標(biāo)準(zhǔn)Linux內(nèi)核的基礎(chǔ)上修改而成。為了適應(yīng)嵌入式硬件環(huán)境和移動(dòng)應(yīng)用程序的開發(fā)。Android對(duì)Linux內(nèi)核進(jìn)行了一定的修改。Android內(nèi)核源碼樹根目錄結(jié)構(gòu)如表1所示。</p><p> 表2-2-1 內(nèi)核源碼樹目錄結(jié)構(gòu)</p><p> And
47、roid內(nèi)核與標(biāo)準(zhǔn)Linux內(nèi)核在文件系統(tǒng)、進(jìn)程間通信機(jī)制、內(nèi)存管理、電源管理、驅(qū)動(dòng)和其他方面存在不同。</p><p><b> 文件系統(tǒng)</b></p><p> 不同于桌面系統(tǒng)與服務(wù)器,移動(dòng)設(shè)備大多采用的不是硬盤而是采用Flash作為存儲(chǔ)介質(zhì),因此,Android內(nèi)核中增加了標(biāo)準(zhǔn)Linux內(nèi)核中沒有采納的YAFFs2文件系統(tǒng)。YAFFS2(Yet Anoth
48、er flash File Sy-stem,2nd edition)是專用于flash的文件系統(tǒng),對(duì)NAND,F(xiàn)1ash芯片有著良好的支持。YAFFs2是日志結(jié)構(gòu)的文件系統(tǒng),提供了損耗平衡和掉電保護(hù),可以有效地避免意外斷電對(duì)文件系統(tǒng)一致性和完整性的影響。YAFFS2按層次結(jié)構(gòu)設(shè)計(jì),分為文件管理接口、內(nèi)部實(shí)現(xiàn)層和NAND,簡(jiǎn)化了其本身與系統(tǒng)的接口設(shè)計(jì)能更方便地集成到系統(tǒng)當(dāng)中。經(jīng)過測(cè)試證明YAFFs2性能比支持NOR型閃存的JFFS2文件系
49、統(tǒng)優(yōu)秀。</p><p><b> 程問通信機(jī)制</b></p><p> Android增加了一種進(jìn)程間的通信機(jī)制IPC Binder在內(nèi)核源代碼中,驅(qū)動(dòng)程序文件為coredroid/include/linux/binder.h和coredroid/drivers/android/binder.c。Binder通過守護(hù)進(jìn)程Service Manager管理系統(tǒng)中
50、的服務(wù),負(fù)責(zé)進(jìn)程問的數(shù)據(jù)交換。各進(jìn)程通過Binder訪問同一塊共享內(nèi)存,以達(dá)到數(shù)據(jù)通信的機(jī)制。從應(yīng)用層的角度看.進(jìn)程通過訪問數(shù)據(jù)守護(hù)進(jìn)程獲取用于數(shù)據(jù)交換的程序框架接口,調(diào)用并通過接口共享數(shù)據(jù),而其他進(jìn)程要訪問數(shù)據(jù),也只需與程序框架接口進(jìn)行交互.方便了程序員開發(fā)需要交互數(shù)據(jù)的應(yīng)用程序。</p><p><b> 存管理</b></p><p> 在內(nèi)存管理模塊,An
51、droid內(nèi)核采用了一種不用于標(biāo)準(zhǔn)Linux內(nèi)核的低內(nèi)存管理策略。在標(biāo)準(zhǔn)Linux內(nèi)核當(dāng)中,使用一種叫做00M(0ut of Memorv)的低內(nèi)存管理策略:當(dāng)內(nèi)存不足時(shí),系統(tǒng)檢查所有的進(jìn)程,并對(duì)進(jìn)程進(jìn)行限制評(píng)分.獲得最高分的進(jìn)程將被關(guān)閉(內(nèi)核進(jìn)程除外)。Android系統(tǒng)采用的則是一種叫作LMK(Low Memory Killer)的機(jī)制,這種機(jī)制將進(jìn)程按照重要性進(jìn)行分級(jí)、分組。內(nèi)存不足時(shí),將處于最低級(jí)別組的進(jìn)程關(guān)閉。例如.在移動(dòng)設(shè)備
52、當(dāng)中。UI界面處于最高級(jí)別。所以該進(jìn)程永遠(yuǎn)不會(huì)被中止,這樣,在終端用戶看來,系統(tǒng)是穩(wěn)定運(yùn)行的。在Android內(nèi)核源碼中,LMK的位置是coredroid/drivers/misc/lowmemorykiller.c。</p><p> 與此同時(shí),Android新增加了一種內(nèi)存共享的處理方式Ashmem(Anonvmous Shared Memory,匿名共享內(nèi)存)。通過Ashmem,進(jìn)程間可以匿名自由共享具名
53、的內(nèi)存塊。這種共享方式在標(biāo)準(zhǔn)Linux當(dāng)中不被支持。Ashmem分配和使用情況如下:</p><p> fd=ashhmem_create_region(“my-shm—region”,size);</p><p><b> if(fd<0)</b></p><p> return –l;</p><p>
54、 data=mmap(NUULL,size,PROT_READ︱PROT_WRITE,MAP_SHARED,fd,0);</p><p> if(data==MAP_FAILED)</p><p><b> goto out;</b></p><p> 但出于安全原因,其他進(jìn)程無法訪問此名稱(my_shm—region)區(qū)域。文件描述符指
55、向該共享內(nèi)存區(qū)域,實(shí)際上是通過IPC綁定接口。</p><p> 在Android內(nèi)核源碼中,Ashmem的位置是coredroid/mm/ashmem.c。</p><p><b> 源管理</b></p><p> 由于Android主要用于移動(dòng)設(shè)備,電源管理就顯得尤為重要,因此,在Android內(nèi)核當(dāng)中。增加了一種新的電源管理策略。
56、目前,Android采用的是一種較為簡(jiǎn)單的電源管理策略,通過開關(guān)屏幕、開關(guān)屏幕背光、開關(guān)鍵盤背光、開關(guān)按鈕背光和調(diào)整屏幕亮度來實(shí)現(xiàn)電源管理,并沒有實(shí)現(xiàn)休眠和待機(jī)功能。有三種途徑判斷調(diào)整電源管理策略:RPC調(diào)用、電池狀態(tài)改變和電源設(shè)置。它通過廣播Intent或直接調(diào)用API的方式來與其他模塊進(jìn)行聯(lián)系。電源管理策略同時(shí)還有自動(dòng)關(guān)機(jī)機(jī)制,當(dāng)電力低于最低可接受程度時(shí),系統(tǒng)將自動(dòng)關(guān)機(jī)。Android的電源管理模塊還會(huì)根據(jù)用戶行為,自動(dòng)調(diào)整屏幕亮度
57、。 </p><p><b> 驅(qū)動(dòng)及其它</b></p><p> 相對(duì)于標(biāo)準(zhǔn)內(nèi)核,Android內(nèi)核還添加了字符輸出設(shè)備、圖像顯示設(shè)備、鍵盤輸入設(shè)備、RTC設(shè)備、USB Device設(shè)備等相關(guān)設(shè)備驅(qū)動(dòng)。增加了日志(Logger)系統(tǒng),使應(yīng)用程序可以訪問日志消息。</p><p> 2.3Android應(yīng)用的構(gòu)成與工作機(jī)制</p&
58、gt;<p> 一個(gè)Android應(yīng)用程序是由四種構(gòu)造塊組織而成的,這四種構(gòu)造塊分別是:</p><p><b> Activity</b></p><p> Intent Receiver</p><p><b> Service</b></p><p> Content
59、Provider</p><p> 并不是每一個(gè)Android應(yīng)用程序都需要這四種構(gòu)造塊,這不是必須的,某些時(shí)候,只需要這四種中的幾種就可以組合成應(yīng)用程序。除此以外,還需要在AndroidMainfest.xml中登記這些構(gòu)造塊的清單。這是一個(gè)XML配置文件,這個(gè)配置文件用于定義應(yīng)用程序的組件、組件的功能及必要條件等。這個(gè)配置文件是每個(gè)Android應(yīng)用必需的。而以下為其構(gòu)成與工作流程。</p>
60、<p> 圖2-3-1 Android的構(gòu)成與工作流程</p><p> 以下,對(duì)四種構(gòu)造塊做一些說明:</p><p><b> Activity</b></p><p> Activity是Android構(gòu)造塊中最基本的一種,在應(yīng)用中,一個(gè)activity通常就是一個(gè)單獨(dú)的屏幕。每一個(gè)activity都被實(shí)現(xiàn)為一個(gè)獨(dú)立
61、的類,并且繼承于Activity這個(gè)基類。這個(gè)activity類將會(huì)顯示由幾個(gè)Views控件組成的用戶接口,并對(duì)事件做出響應(yīng)。大部份的應(yīng)用都會(huì)包含多個(gè)的屏幕。例如,一個(gè)通信應(yīng)用程序?qū)?huì)有一個(gè)屏幕用于顯示聯(lián)系人列表,第二個(gè)屏幕用于寫信息,同時(shí)還會(huì)有用于瀏覽信息及進(jìn)行系統(tǒng)設(shè)置的屏幕。每一個(gè)這樣的屏幕,就是一個(gè)activity。從一個(gè)屏幕可以方便的導(dǎo)航到另一個(gè)屏幕。在一些應(yīng)用中,一個(gè)屏幕甚至?xí)祷刂到o前一個(gè)屏幕。當(dāng)一個(gè)新的屏幕打開后,前一個(gè)屏
62、幕將會(huì)暫停,并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的前一個(gè)屏幕。當(dāng)屏幕不再使用時(shí),還可以從歷史堆棧中刪除。默認(rèn)情況下,Android將會(huì)保留從主屏幕到每一個(gè)應(yīng)用的運(yùn)行屏幕。</p><p> Android使用了Intent這個(gè)特殊類,實(shí)現(xiàn)在屏幕與屏幕之間移動(dòng)。Intent類用于描述一個(gè)應(yīng)用將會(huì)做什么事。在Intent的描述結(jié)構(gòu)中,有兩個(gè)最重要的部分:動(dòng)作和動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。典型的動(dòng)作類型有:MAIN(ac
63、tivity的門戶)、VIEW、PICK、EDIT等。而動(dòng)作對(duì)應(yīng)的數(shù)據(jù)則以URI的形式進(jìn)行表示。例如:要查看一個(gè)人的聯(lián)系方式,就需要?jiǎng)?chuàng)建一個(gè)動(dòng)作類型為VIEW的intent,以及一個(gè)表示這個(gè)人的URI。與之有關(guān)系的一個(gè)類叫IntentFilter。相對(duì)于intent是一個(gè)有效的做某事的請(qǐng)求,一個(gè)intent filter則用于描述一個(gè)activity(或者Intent Receiver)能夠操作哪些intent。一個(gè)activity如果
64、要顯示一個(gè)人的聯(lián)系方式時(shí),需要聲明一個(gè)IntentFilter,這個(gè)IntentFilter要知道怎么去處理VIEW動(dòng)作和表示一個(gè)人的URI。IntentFilter需要在AndroidMainfest.xml中定義。通過解析各種intent,完成從一個(gè)屏幕導(dǎo)航到另一個(gè)屏幕。當(dāng)向前導(dǎo)航時(shí),activity將會(huì)調(diào)用startActivity(I</p><p> A、Activities可重復(fù)利用從其它組件中以I
65、ntent的形式產(chǎn)生的一個(gè)請(qǐng)求。</p><p> B、Activities可以在任何時(shí)候被一個(gè)具有相同IntentFilter的新的Activity取代。</p><p> Intent Receiver</p><p> 當(dāng)需要對(duì)一個(gè)外部事件(如當(dāng)電話呼入,或者數(shù)據(jù)網(wǎng)絡(luò)可用)做出響應(yīng)時(shí),可以使用一個(gè)Intent Receiver。</p>&
66、lt;p> Intent Receiver在外部事件發(fā)生時(shí),會(huì)使用NotificationManager通知用戶,但它并不能生成一個(gè)UI。Intent Receiver在AndroidManifest.xml中注冊(cè),也可以在代碼中使用Context.registerReceiver()進(jìn)行注冊(cè)。當(dāng)一個(gè)intent receiver被觸發(fā)時(shí),系統(tǒng)會(huì)在需要的時(shí)候?qū)?yīng)的程序。各種應(yīng)用還可以通過使用Context.broadcastIn
67、tent()將它們的intent receiver廣播給其它應(yīng)用程序。</p><p><b> Service</b></p><p> 一個(gè)Service是一段長(zhǎng)生命周期的,沒有用戶界面的程序。例如,一個(gè)正在從播放列表中播放歌曲的媒體播放器。在一個(gè)媒體播放器的應(yīng)用中,應(yīng)該會(huì)有多個(gè)activity,讓用戶可以選擇歌曲并播放歌曲。然而,音樂重放這個(gè)功能并沒有對(duì)應(yīng)的
68、activity,因?yàn)橛脩魰?huì)認(rèn)為在導(dǎo)航到其它屏幕時(shí)音樂應(yīng)該還在播放的。在這個(gè)例子中,媒體播放器這個(gè)activity會(huì)使用Context.startService()來啟動(dòng)一個(gè)service,從而可以在后臺(tái)保持音樂的播放。同時(shí),系統(tǒng)也將保持這個(gè)service一直執(zhí)行,直到這個(gè)service運(yùn)行結(jié)束。另外,還可以通過使用Context.bindService()方法,連接到一個(gè)service上(如果這個(gè)service還沒有運(yùn)行將啟動(dòng)它)。當(dāng)
69、連接到一個(gè)service之后,使用service提供的接口與它進(jìn)行通訊。拿媒體播放器這個(gè)例子來說,還可以進(jìn)行暫停、重播等操作。</p><p> Content Provider</p><p> 應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件中、SQL數(shù)據(jù)庫中,甚至是任何有效的設(shè)備中。當(dāng)需要將應(yīng)用數(shù)據(jù)與其它的應(yīng)用共享時(shí),使用Content Provider來完成。一個(gè)Content Provid
70、er類實(shí)現(xiàn)了一組標(biāo)準(zhǔn)的方法,從而能夠讓其它的應(yīng)用保存或讀取此Content Provider處理的各種數(shù)據(jù)類型。</p><p> 2.4Android中的Intent</p><p> 在一個(gè)Android應(yīng)用中,主要是由四種組件組成的,這四種組件是獨(dú)立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個(gè)真正的Android應(yīng)用。在這些組件之間的通訊中,主要是由Intent協(xié)助完成的。I
71、ntent負(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在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。</p><p> 2.4.1抽象描述的內(nèi)容</p><p> 在Android參考文檔中,對(duì)
72、Intent的定義是執(zhí)行某操作的一個(gè)抽象描述。</p><p> 首先,是要執(zhí)行的動(dòng)作(action)的一個(gè)簡(jiǎn)要描述。</p><p> 其次,是執(zhí)行動(dòng)作要操作的數(shù)據(jù)(data),Android中采用指向數(shù)據(jù)的一個(gè)URI來表示。</p><p> 另外,除了action和data這兩個(gè)重要屬性外,還有一些附加屬性:</p><p>
73、category(類別),被執(zhí)行動(dòng)作的附加信息。</p><p> type(數(shù)據(jù)類型),顯式指定Intent的數(shù)據(jù)類型(MIME)。一般Intent的數(shù)據(jù)類型能夠根據(jù)數(shù)據(jù)本身進(jìn)行判定,但是通過設(shè)置這個(gè)屬性,可以強(qiáng)制采用顯式指定的類型而不再進(jìn)行推導(dǎo)。</p><p> component(組件),指定Intent的的目標(biāo)組件的類名稱。通常Android會(huì)根據(jù)Intent中包含的其它屬性
74、的信息,比如action、data/type、category進(jìn)行查找,最終找到一個(gè)與之匹配的目標(biāo)組件。但是,如果component這個(gè)屬性有指定的話,將直接使用它指定的組件,而不再執(zhí)行上述查找過程。指定了這個(gè)屬性以后,Intent的其它所有屬性都是可選的。</p><p> extras(附加信息),是其它所有附加信息的集合。使用extras可以為組件提供擴(kuò)展信息,比如,如果要執(zhí)行“發(fā)送電子郵件”這個(gè)動(dòng)作,可
75、以將電子郵件的標(biāo)題、正文等保存在extras里,傳給電子郵件發(fā)送組件。</p><p> 總之,action、data/type、category和extras一起形成了一種語言。這種語言使系統(tǒng)能夠理解諸如“查看某聯(lián)系人的詳細(xì)信息”之類的短語。隨著應(yīng)用不斷的加入到系統(tǒng)中,它們可以添加新的action、data/type、category來擴(kuò)展這種語言。應(yīng)用也可以提供自己的Activity來處理已經(jīng)存在的這樣的“
76、短語”,從而改變這些“短語”的行為。</p><p> 2.4.2 Android解析Intent的過程</p><p> 在應(yīng)用中,我們可以以兩種形式來使用Intent:</p><p> A、直接Intent:</p><p> 指定了component屬性的Intent(調(diào)用setComponent(ComponentName)
77、或者setClass(Context,Class)來指定)。通過指定具體的組件類,通知應(yīng)用啟動(dòng)對(duì)應(yīng)的組件。</p><p> B、間接Intent:</p><p> 沒有指定comonent屬性的Intent。這些Intent需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在在所有的可用組件中,確定滿足此Intent的組件。</p><p> 對(duì)于直接Inte
78、nt,Android不需要去做解析,因?yàn)槟繕?biāo)組件已經(jīng)很明確,Android需要解析的是那些間接Intent,通過解析,將Intent映射給可以處理此Intent的Activity、IntentReceiver或Service。Intent解析機(jī)制主要是通過查找已注冊(cè)在AndroidManifest.xml中的所有IntentFilter及其中定義的Intent,最終找到匹配的Intent。在這個(gè)解析過程中,Android是通過Inten
79、t的action、type、category這三個(gè)屬性來進(jìn)行判斷的,判斷方法如下:</p><p> ● 如果Intent指明定了action,則目標(biāo)組件的IntentFilter的action列表中就必須包含有這個(gè)action,否則不能匹配;</p><p> ● 如果Intent沒有提供type,系統(tǒng)將從data中得到數(shù)據(jù)類型。和action一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包
80、含Intent的數(shù)據(jù)類型,否則不能匹配。</p><p> ● 如果Intent中的數(shù)據(jù)不是content:類型的URI,而且Intent也沒有明確指定它的type,將根據(jù)Intent中數(shù)據(jù)的scheme(比如http:或者mailto:)進(jìn)行匹配。同上,Intent的scheme必須出現(xiàn)在目標(biāo)組件的scheme列表中。</p><p> ● 如果Intent指定了一個(gè)或多個(gè)cat
81、egory,這些類別必須全部出現(xiàn)在組建的類別列表中。比如Intent中包含了兩個(gè)類別:LAUNCHER_CATEGORY和ALTERNATIVE_CATEGORY,解析得到的目標(biāo)組件必須至少包含這兩個(gè)類別。</p><p> 2.5 Eclipse</p><p> Eclipse是一個(gè)集成開發(fā)環(huán)境(IDE)。其前身是IBM的Visual Age for Java(VA4J)。Ecli
82、pse是可擴(kuò)展的體系結(jié)構(gòu),可以集成不同軟件開發(fā)供應(yīng)商開發(fā)的產(chǎn)品,將他們開發(fā)的工具和組件加入到Eclipse平臺(tái)中。隨Java應(yīng)用的廣泛,各大主要軟件供應(yīng)商都參與到Eclipse架構(gòu)開發(fā)中,使得Eclipse插件數(shù)量與日增加。Eclipse平臺(tái)的免費(fèi),架構(gòu)的成熟,行業(yè)協(xié)會(huì)Eclipse基金會(huì)的支持,使得很多的Java開發(fā)采用了Eclipse架構(gòu)。</p><p> 插件(plug-in)是遵循一定規(guī)范的應(yīng)用程序結(jié)
83、構(gòu)編寫出來的程序,也成為擴(kuò)展,不同于組件。Eclipse正是一個(gè)精心設(shè)計(jì)的、可擴(kuò)展的核心結(jié)構(gòu)。通過插件的形式,將根據(jù)自己需要選擇的擴(kuò)展開發(fā)工具集成到Eclipse平臺(tái)核心。因此使得可以避免因過去不兼容工具帶來的麻煩,降低開發(fā)出成本,大幅度提高工作效率。</p><p> Eclipse本身作為一個(gè)開放源碼的軟件項(xiàng)目,它主要包含3個(gè)子項(xiàng)目:①平臺(tái)子項(xiàng)目,②Java開發(fā)工具(JDT-java)子項(xiàng)目,③插件開發(fā)環(huán)境
84、(PDE-plug-in)子項(xiàng)目。其中,Java開發(fā)工具JDT為開發(fā)人員提供大量的集成工具集,主要為Java應(yīng)用程序提供編程接口(API)。Eclipse軟件開發(fā)工具箱(SDK)是主要有Eclipse本身的項(xiàng)目軟件和其他一些開發(fā)源嗎的第三方軟件組成。次者,插件開發(fā)環(huán)境(JDT)則為插件開發(fā)和測(cè)試提供相應(yīng)的環(huán)境,如:創(chuàng)建插件清單文件、定義擴(kuò)展點(diǎn)等。</p><p> 圖2-5-1 Eclipse體系結(jié)構(gòu)圖<
85、;/p><p> 其他的Java集成開發(fā)環(huán)境有Jbuilder、WebSpher Studio、NetBeans。然而Eclipse以其強(qiáng)大的可擴(kuò)展性和開放性脫穎而出,擁有為數(shù)眾多的支持者,也被許多大的企業(yè)所青睞。</p><p> 第三章 Android開發(fā)環(huán)境的搭建</p><p> Android平臺(tái)為開發(fā)者提供了源碼開放的軟件開發(fā)包(SDK),它包含了使用
86、Java語言開發(fā)Android平臺(tái)應(yīng)用的必要工具和組件(API)。進(jìn)行開發(fā)前先要建立合適的開發(fā)環(huán)境,其中基于Java的整合型可擴(kuò)展平臺(tái)Eclipse是我們的首選。</p><p> 3.1 搭建Eclipse開發(fā)環(huán)境</p><p> Eclipse的運(yùn)行建立在JRE之上,因此必須先安裝JRK??梢詮膆ttp://java.suh.com下載JDK5或JDK6,然后按提示進(jìn)行JDK的安
87、裝。</p><p> 安裝完成后,再配置環(huán)境變量:如在WindowsXP或Windows 2000的操作系統(tǒng)中,可右鍵單擊“我的電腦”,然后依次選擇“屬性”\“高級(jí)”\“環(huán)境變量”,新建一個(gè)系統(tǒng)變量JAVA_HOME,變量值為JDK的安裝路徑。如下圖所示:</p><p> 圖3-1-1 JDK的安裝路徑</p><p> 同樣的方法,添加另一個(gè)系統(tǒng)變量C
88、LASSPATH,變量值為:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar ,如下圖所示:</p><p> 圖3-1-2 編輯系統(tǒng)變量1</p><p> 在系統(tǒng)變量PATH后面添加:</p><p> 圖3-1-3 編輯系統(tǒng)變量2</p><p> 至此便完成了JDK的安裝
89、。</p><p> 有了Java運(yùn)行環(huán)境,就可以下載Eclipse ZIP包,解壓后就能直接運(yùn)行Eclipse.exe,下面是eclipse的開發(fā)界面:</p><p> 圖3-1-4 eclipse的開發(fā)界面</p><p> 在Eclipse中安裝一個(gè)名為ADT的Android開發(fā)工具插件,就可以使用SDK進(jìn)行Android應(yīng)用開發(fā)。ADT安裝步驟:首
90、先下載ADT0.9,在Eclipse中依次選擇Help > Software Updates > Available Software,點(diǎn)擊Add Site…,在彈出的對(duì)話框中選擇Achive…,選擇下載的ADT,如下圖所示:</p><p> 圖3-1-5 ADT的安裝界面</p><p> 確定后,會(huì)看到ADT選項(xiàng)出現(xiàn)在對(duì)話框中:</p><p&g
91、t; 圖3-1-6 ADT選項(xiàng)界面</p><p> 選中這個(gè)選項(xiàng),然后點(diǎn)擊install...,一路next下去。最后重啟eclipse完成ADT插件的安裝。</p><p> ADT安裝完畢后,還要配置Eclipse參數(shù),使其指向SDK根目錄,過程如下:下載最新版本的Android SDK,如android-sdk-windows-1.5_r1.zip,解壓。在Eclipse中
92、選擇Window > Preferences打開參數(shù)設(shè)置面板,選擇Android選項(xiàng);在SDK路徑中填入Android的安裝路徑,單擊Apply和ok,完成參數(shù)設(shè)置。如下圖所示:</p><p> 圖3-1-7 SDK路徑中填入Android的安裝路徑界面</p><p> 在環(huán)境變量PATH中添加Android SDK的tools的目錄路徑,如:D:\AndroidSDK\t
93、ools。至此,就能在Eclipse環(huán)境下進(jìn)行Android應(yīng)用的開發(fā)了。</p><p> 3.2 Android應(yīng)用程序組件的使用</p><p> Android應(yīng)用程序以各種組件(API)為基礎(chǔ),API是Android軟件平臺(tái)的重要組成部分,也是開發(fā)Android應(yīng)用的關(guān)鍵所在。下面介紹幾種主要的Android API。</p><p> (1)當(dāng)前活
94、動(dòng)程序Activity:作為最常用的應(yīng)用程序組件,幾乎所有Activity都會(huì)通過創(chuàng)建UI窗口與用戶進(jìn)行交流。Activity具有生命周期,它包含運(yùn)行、暫停、停止等幾個(gè)狀態(tài),狀態(tài)間的轉(zhuǎn)換可通過調(diào)用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop()、onDestory()等方法來實(shí)現(xiàn)。要開啟新的activity,可以調(diào)用startActivit
95、y(Intent),或調(diào)用startSubActivity(Inten,t int),后者通常和onActivityResult(int,int, String Bundle)聯(lián)合使用,以從一個(gè)activity獲取某結(jié)果并返回給打開它的activity。</p><p> (2)圖像顯示View:View是最基本的UI構(gòu)件,它在屏幕中占據(jù)一個(gè)矩形區(qū)域可用來顯示文本、圖像等內(nèi)容,還可完成圖像事件處理。常用的Vie
96、w方法有:inflate()(由XML文件生成View)、onDraw(Canvas)(對(duì)View進(jìn)行填充)、onMeasure( int, int)(測(cè)量View的高度和寬度)、onLayout()(完成View的布局)、onKeyDown(int,KeyEvent)(View中有按鍵操作時(shí)被調(diào)用)、onFocusChanged(boolean,int)(當(dāng)View得到或失去關(guān)注時(shí)被調(diào)用)、setOnClilckListener()(
97、設(shè)置View點(diǎn)擊事件監(jiān)聽器)。View也包含一些子類,如:TextView(布局文件中的文本顯示)、EditText(布局文件中的文本編輯)、Button(按鈕)、ListView(顯示列表)。</p><p> (3)事件Intent: Intent抽象描述了想要執(zhí)行的某種操作,它與startActivity一起使用可以開啟新的activity,與startService一起使用可以開啟后臺(tái)服務(wù)。Intent
98、最重要的作用還是加載activity,它是不同activity間的橋梁。Intent也可以被認(rèn)為是一種概括操作行為的數(shù)據(jù)結(jié)構(gòu),它主要包括action(動(dòng)作)和data(數(shù)據(jù))兩部分,此外它還具有一些附加屬性如category( intent種類)、type(數(shù)據(jù)類型)等。常用的Intent方法有intent()(構(gòu)造intent)、addcategory()(添加intent類型)、getAction()(獲取intent動(dòng)作)、get
99、Data()(獲取intent數(shù)據(jù))等。</p><p> (4)數(shù)據(jù)存取與共享機(jī)制ContentProvider: ContentProvider可實(shí)現(xiàn)應(yīng)用程序的數(shù)據(jù)存取及不同應(yīng)用程序間的數(shù)據(jù)共享。ContentProvider為應(yīng)用程序提供一些訪問方法,包括: Query(Uri,String[],String,String[],String,String, String)(數(shù)據(jù)信息的查詢),insert(
100、Uri,Contentvalues)(在Contentprovider中添加新數(shù)據(jù)), updata(Uri,Contentvalues,String,String[])(更新Conntprovider中的數(shù)據(jù)), delect(Uri,String,String[ ])(刪除數(shù)據(jù)), Gettype(Uri) (獲取數(shù)據(jù)類型)。其中,Uri標(biāo)明了ContentProvider存儲(chǔ)的數(shù)據(jù)類型,在執(zhí)行訪問方法時(shí)都需依據(jù)Uri作為路徑標(biāo)識(shí)來
101、確定要訪問哪個(gè)ContentProvider。</p><p> 第四章 Android短信備份設(shè)計(jì)實(shí)現(xiàn)</p><p> 本章所需要描述的Android短信備份設(shè)計(jì)實(shí)現(xiàn),其內(nèi)容涉及,用戶短信讀取模塊的實(shí)現(xiàn)和用戶短信備份模塊的實(shí)現(xiàn)這四個(gè)模塊。以下就是針對(duì)這兩個(gè)模塊的展開描述。其短信備份基本流程如下:</p><p> 圖4-1 短信備份基本流程</p&
102、gt;<p> 4.1用戶短信讀取模塊的實(shí)現(xiàn)</p><p> Android API支持開發(fā)可以發(fā)送和接收SMS消息的應(yīng)用程序。目前我們開發(fā)過程中使用的Android模擬器還不支持發(fā)送SMS,但它可以接收SMS?,F(xiàn)在我們來探索一下Android對(duì)SMS的支持,我們將會(huì)構(gòu)建一個(gè)小小的應(yīng)用程序來監(jiān)聽移動(dòng)設(shè)備(或模擬器)上接收到的SMS消息,并將它顯示出來。</p><p>
103、 我們來定義一個(gè)Intent接收器來處理SMS接收事件,其java代碼為附錄【1】。</p><p> 我們需要對(duì)這個(gè)Intent接收器進(jìn)行配置以使它能獲取SMS接收事件,' android.provider.Telephony.SMS_RECEIVED’這個(gè)事件狀態(tài)表示了SMS已被接收。我們可以在AndroidManifest.xml中進(jìn)行如下配置,附錄【2】。</p><p&g
104、t; 為了能讓我們能接收SMS,我們得先進(jìn)行權(quán)限的指定,可以在AndroidManifest.xml中如下配置,附錄【3】。</p><p> 現(xiàn)在,我們的Intent接收器就可以在Android設(shè)備接收到SMS的時(shí)候被調(diào)用了,余下的事情就是去獲取和顯示接收到的SMS消息文本了,我們是使用SmsMessage.createFromPdu來讀取短信的,而實(shí)現(xiàn)的獲取和顯示接收的實(shí)現(xiàn)代碼如【附錄4】。</p&
105、gt;<p> Android設(shè)備接收到的SMS是以pdu形式的(protocol description unit)。android.telephony.gsm.SmsMessage這個(gè)類可以儲(chǔ)存SMS的相關(guān)信息,我們也可以從接收到的pdu中創(chuàng)建新的SmsMessage實(shí)例,Toast界面組件可以以系統(tǒng)通知的形式來顯示接收到的SMS消息文本。 </p><p> 運(yùn)行程序,現(xiàn)讓我們來在模擬器中
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android的天氣預(yù)報(bào)短信系統(tǒng)的畢業(yè)設(shè)計(jì)說明書
- 基于短信收發(fā)系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于android的短信播報(bào)系統(tǒng)【畢業(yè)論文】
- android畢業(yè)設(shè)計(jì)--基于android的音樂播放的設(shè)計(jì)與實(shí)現(xiàn)
- 基于android的中國象棋畢業(yè)設(shè)計(jì)
- 基于android平臺(tái)的飛機(jī)游戲畢業(yè)設(shè)計(jì)
- 基于android平臺(tái)的飛機(jī)游戲畢業(yè)設(shè)計(jì)
- 畢業(yè)論文--基于android平臺(tái)的短信通的設(shè)計(jì)與實(shí)現(xiàn)
- 基于 Android的中文語音短信應(yīng)用設(shè)計(jì).pdf
- 畢業(yè)設(shè)計(jì)---基于android的日程管理系統(tǒng)
- 【畢業(yè)設(shè)計(jì)】基于android植物大戰(zhàn)僵尸
- 畢業(yè)設(shè)計(jì)---基于android的移動(dòng)選課系統(tǒng)的設(shè)計(jì)
- android畢業(yè)論文--基于android短信平臺(tái)的管理與開發(fā)(含外文翻譯)
- android相關(guān)畢業(yè)設(shè)計(jì)
- android畢業(yè)設(shè)計(jì)報(bào)告
- android畢業(yè)設(shè)計(jì)論文
- 基于.net短信發(fā)送平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)圖紙備份.dwg
- 基于android平臺(tái)的手機(jī)游戲開發(fā)【畢業(yè)設(shè)計(jì)】
- 基于android平臺(tái)的飛機(jī)游戲畢業(yè)設(shè)計(jì)x
評(píng)論
0/150
提交評(píng)論