android程序基本構(gòu)成(基礎(chǔ)篇).ppt_第1頁
android程序基本構(gòu)成(基礎(chǔ)篇).ppt_第2頁
android程序基本構(gòu)成(基礎(chǔ)篇).ppt_第3頁
android程序基本構(gòu)成(基礎(chǔ)篇).ppt_第4頁
android程序基本構(gòu)成(基礎(chǔ)篇).ppt_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Android 應(yīng)用程序的基本構(gòu)成,我們的資源在哪里 資源的類別 資源的基本使用方法 活動(Activity)組件 服務(wù)(Service)組件 廣播接收者(Broadcast receivers) 內(nèi)容提供者(Content providers) AndroidManifest.xml文件的結(jié)構(gòu),資源的存放,任何類型的程序都需要使用資源(例如:文件、XML、數(shù)據(jù)庫等),Android應(yīng)用程序也不例外。Android應(yīng)用程序使用的資源有很多都被封裝在apk文件中,并隨apk文件一起發(fā)布。 這個文件我們上次的課中,已經(jīng)生成了。位置放在工作目錄中的BIN目錄下,既然要將資源封裝在apk文件中,那么這些資源一定是放在Eclipse工程的某處。在上節(jié)課實現(xiàn)的應(yīng)用程序中可以看到,在Eclipse工程中有一個res目錄。在該目錄下有3個子目錄:drawable、layout、values。,這3個子目錄中分別包含icons.png、main.xml和strings.xml。 從drawable目錄中包含icons.png文件這一點可以初步斷定,這個目錄是用來保存圖像文件的。 layout目錄從名字可以看出,該目錄是用來保存布局文件的。 通過打開values目錄中的strings.xml文件可以看出,在strings.xml文件中都是基于XML格式的key-value對,因此,也可以斷定values目錄是用來保存字符串資源的。,資源類別,Android支持3種類型的資源:XML文件、圖像以及任意類型的資源(例如,音頻、視頻文件)。這些資源文件分別放在res目錄的不同子目錄中。在編譯Android應(yīng)用程序的同時,系統(tǒng)會使用一個資源文件編譯程序(aapt)對這些資源文件進行編譯。,Android支持的資源列表,在表中所示的目錄中放入資源文件后,ADT會在gen目錄中建立一個R.java文件,該文件中有一個R類,該類為每一個資源定義了唯一的ID,通過這個ID可以引用這些資源。,資源的基本使用方法,Android會為每一種資源在R類中生成一個唯一的ID,這個ID是int類型的值。在一般情況下,開發(fā)人員并不需要管這個類,更不需要修改這個類,只需要直接使用R類中的ID即可。為了更好地理解使用資源的過程,先看一下在上一節(jié)課的例子中生成的R類的源代碼。,從R類中很容易看出,ADT為res目錄中每一個子目錄或標簽(例如,標簽)都生成了一個靜態(tài)的子類,不僅如此,還為XML布局文件中的每一個指定id屬性的組件生成了唯一的ID,并封裝在id子類中。這就意味著在Android應(yīng)用程序中可以通過ID使用這些組件。 R類雖然也屬于com.cstp.android包,但在Eclipse工程中為了將R類與其他的Java類區(qū)分開,將R類放在gen目錄中。,既可以在程序中引用資源,也可以在XML文件中引用資源。例如,在應(yīng)用程序中獲得btnShowDate按鈕對象的代碼如下: Button btnShowDate = (Button) findViewById(R.id.btnShowDate); 可以看到,在使用資源時直接引用了R.id.btnShowDate這個ID值,當然,直接使用0x7f050000也可以,不過為了使程序更容易維護,一般會直接使用在R的內(nèi)嵌類中定義的變量名。,Android SDK中的很多方法都支持直接使用ID值來引用資源。例如,android.app.Activity類的setTitle方法除了支持以字符串方式設(shè)置Activity的標題外,還支持以字符串資源ID的方式設(shè)置Activity的標簽。例如,下面的代碼使用字符串資源重新設(shè)置了Activity的標題。 setTitle(R.string.hello);,除了可以使用Java代碼來訪問資源外,在XML文件中也可以使用這些資源。例如,引用圖像資源可以使用如下格式: drawable/icon 其中icon就是resdrawable目錄中的一個圖像文件的文件名。這個圖像文件可以是任何Android支持的圖像類型,例如,gif、jpg等。因此,在drawable目錄中不能存在同名的圖像文件,例如,icon.gif和icon.jpg不能同時放在drawable目錄中,這是因為在生成資源ID時并沒有考慮文件的擴展名,所以會在同一個類中生成兩個同名的變量,從而造成Java編譯器無法成功編譯R.java文件。,什么是Activity,Android應(yīng)用程序中最令人振奮的特性是可以利用其他Android應(yīng)用程序中的資源(當然,需要這些應(yīng)用程序進行授權(quán))。例如,如果應(yīng)用程序恰好需要一個顯示圖像列表的功能,而另一個應(yīng)用程序正好有這個功能,只需要調(diào)用這個應(yīng)用程序中的圖像列表功能即可。在這一點,比iphone的應(yīng)用要靈活很多。 在Android程序中沒有入口點(即Main函數(shù)),取而代之的是一系列的組件,這些組件都可以單獨實例化。本節(jié)課將介紹Android支持的4種組件的基本概念。應(yīng)用程序向外共享功能一般也是通過這4種應(yīng)用程序組件實現(xiàn)的。,活動(Activity)組件,Activity是Android的核心類,該類的全名是android.app.Activity 。Activity相當于C/S程序中的窗體(Form)或Web程序的頁面。每一個Activity提供了一個可視化的區(qū)域。在這個區(qū)域可以放置各種Android組件,例如,按鈕、圖像、文本框等。 在Activity類中有一個onCreate事件方法,一般在該方法中對Activity進行初始化。通過setContentView方法可以設(shè)置在Activity上顯示的視圖組件,setContentView方法的參數(shù)一般為XML布局文件的資源ID。,一個帶界面的Android應(yīng)用程序可以由一個或多個Activity組成。至于這些Activity如何工作,或者它們之間有什么依賴關(guān)系,則完全取決于應(yīng)用程序的業(yè)務(wù)邏輯。例如,一種典型的設(shè)計方案是使用一個Activity作為主Activity(相當于主窗體,程序啟動時會首先啟動這個Activity)。在這個Activity中通過菜單、按鈕等方式啟動其他的Activity。在Android自帶的程序中有很多都是這種類型的。 每一個Activity都會有一個窗口,在默認情況下,這個窗口是充滿整個屏幕的,也可以將窗口變得比手機屏幕小,或者懸浮在其他的窗口上面。 Activity窗口中的可視化組件由View及其子類組成,這些組件按著XML布局文件中指定的位置在窗口上進行擺放。,服務(wù)(Service)組件,服務(wù)沒有可視化接口,但可以在后臺運行。例如,當用戶進行其他操作時,可以利用服務(wù)在后臺播放音樂,或者當來電時,可以利用服務(wù)同時進行其他操作,甚至阻止接聽指定的電話。每一個服務(wù)是一個android.app.Service的子類。 除此之外,其他的程序還可以與服務(wù)進行通信。當與服務(wù)連接成功后,就可以利用服務(wù)中共享出來的接口與服務(wù)進行通信了。例如,控制音樂播放的服務(wù)允許用戶暫停、重放、停止音樂的播放。,廣播接收者組件 (Broadcast receivers),廣播接收者組件的唯一功能就是接收廣播消息,以及對廣播消息做出響應(yīng)。有很多時候,廣播消息是由系統(tǒng)發(fā)出的,例如,時區(qū)的變化、電池的電量不足、收到短信等。除此之外,應(yīng)用程序還可以發(fā)送廣播消息,例如,通知其他的程序數(shù)據(jù)已經(jīng)下載完畢,并且這些數(shù)據(jù)已經(jīng)可以使用了。 一個應(yīng)用程序可以有多個廣播接收者,所有的廣播接收者類都需要繼承android.content. Broadcast- Receiver類。 廣播接收者與服務(wù)一樣,都沒有用戶接口,但在廣播接收者中可以啟動一個Activity來響應(yīng)廣播消息,例如,通過顯示一個Activity對用戶進行提醒。當然,也可以采用其他的方法或幾種方法的組合來提醒用戶,例如,閃屏、震動、響鈴、播放音樂等。,內(nèi)容提供者組件 (Content providers),內(nèi)容提供者可以為其他應(yīng)用程序提供數(shù)據(jù)。這些數(shù)據(jù)可以保存在文件系統(tǒng)中,例如,SQLite數(shù)據(jù)庫或任何其他格式的文件。每一個內(nèi)容提供者是一個類,這些類都需要從android.content.ContentProvider類繼承。 在ContentProvider類中定義了一系列的方法,通過這些方法可以使其他的應(yīng)用程序獲得和存儲內(nèi)容提供者所支持的數(shù)據(jù)。但在應(yīng)用程序中不能直接調(diào)用這些方法,而需要通過android.content.ContentResolver類的方法來調(diào)用內(nèi)容提供者類中提供的方法。,AndroidManifest.xml 文件的結(jié)構(gòu),每一個Android應(yīng)用程序必須有一個AndroidManifest.xml文件(不能改成其他的文件名),而且該文件必須在應(yīng)用程序的根目錄中。在這個文件中定義了應(yīng)用程序的基本信息,在運行Android應(yīng)用程序之前必須設(shè)置這些信息。下面是AndroidManifest.xml文件在Android應(yīng)用程序中所起的作用。,在默認情況下,Android系統(tǒng)會限制使用某些API,因此,需要在AndroidManifest.xml文件中為這些API授權(quán)后才可以使用它們。 可以為授權(quán)應(yīng)用程序與其他的應(yīng)用程序進行交互。 可以在AndroidManifest.xml文件中配置一些特殊的類,這些類可以在應(yīng)用程序運行時提供調(diào)試及其他的信息。但這些類只在開發(fā)和測試時使用,當應(yīng)用程序發(fā)布時這些配置將被刪除。,小結(jié),本節(jié)主要介紹了Android應(yīng)用程序的架構(gòu)。在Android應(yīng)用程序中,資源一般都放在res目錄的子目錄中,特定的子目錄代表不同的資源類型, 例如,drawable目錄表示圖像資源,layout目錄表示布局資源等。 由于一個Android應(yīng)用程序需要調(diào)用其他的Android應(yīng)用程序的部分資源,這就需要Android應(yīng)用程序中任何組件都可以被

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論