Android應(yīng)用程序的構(gòu)成.ppt
《Android應(yīng)用程序的構(gòu)成.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《Android應(yīng)用程序的構(gòu)成.ppt(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
Android應(yīng)用程序的構(gòu)成,趙宏,2,第2章Android應(yīng)用程序的構(gòu)成,本課要點(diǎn):Android工程目錄分析資源的管理與使用Android基本組件重點(diǎn)與難點(diǎn):Android基本組件,3,第2章Android應(yīng)用程序的構(gòu)成,教學(xué)目標(biāo):了解android應(yīng)用程序的基本框架了解android各個(gè)組件的運(yùn)行機(jī)制,4,第2章Android應(yīng)用程序的構(gòu)成,Android應(yīng)用程序的重要組成部分,包括活動(dòng)(Activity)、廣播接收器(BroadcastReceiver)、服務(wù)(Service)、內(nèi)容提供者(ContentProvider)。一個(gè)Android應(yīng)用必定包含至少一個(gè)Activity,其他的3個(gè)組成部分為可選部分。,5,1.Android工程目錄分析,6,2.Android資源文件,Android資源文件主要包含字體、顏色、尺寸、圖片、主題樣式、菜單等等。,7,2.Android資源文件,res目錄是資源目錄,有三個(gè)子目錄用來(lái)保存Android程序所有資源drawable目錄用來(lái)保存圖像文件layout目錄用來(lái)保存與用戶(hù)界面相關(guān)的布局文件valuse目錄保存文件顏色、風(fēng)格、主題和字符串等在HelloAndroid工程中,ADT在drawable目錄中自動(dòng)引入了icon.png文件,作為HelloAndroid程序的圖標(biāo)文件;在layout目錄生成了mail.xml文件,用于描述用戶(hù)界面,8,2.Android資源文件,Android圖片資源,Android中對(duì)圖片資源的存儲(chǔ)使用了分離的管理方式。圖片資源的存儲(chǔ)位于工程目錄下的res-drawable文件夾下,同時(shí)按照不同的顯示分辨率進(jìn)行區(qū)分。,9,2.Android資源文件,Android中的常量資源使用String.xml的形式進(jìn)行保存,該文件位于工程目錄下res-values文件夾中。這種設(shè)計(jì)方便項(xiàng)目中的常量數(shù)據(jù)的維護(hù)、修改和Android國(guó)家化的使用。在res-values目錄下還能夠創(chuàng)建colors.xml、arrays.xml、styles.xml等文件。,Android常量資源-String.xml,10,2.Android資源文件,11,2.Android資源文件,Android布局文件是對(duì)界面組件進(jìn)行設(shè)計(jì),并最終加載顯示在手機(jī)屏幕中,整個(gè)界面中的布局設(shè)計(jì)都可以通過(guò)布局文件進(jìn)行實(shí)現(xiàn)。該文件位于工程目錄下res-layout文件夾下,布局文件中包括多種不同的布局方式,將在后期的專(zhuān)題中進(jìn)行介紹。,Android布局文件,12,2.Android資源文件,13,2.Android資源文件,Android會(huì)為每一種資源在R類(lèi)中生成一個(gè)唯一的ID,這個(gè)ID是int類(lèi)型的值。在一般情況下,開(kāi)發(fā)人員并不需要管這個(gè)類(lèi),更不需要修改這個(gè)類(lèi),只需要直接使用R類(lèi)中的ID即可。為了更好地理解使用資源的過(guò)程,先看一下一個(gè)例子中生成的R類(lèi)的源代碼。,資源的基本使用方法,14,2.Android資源文件,15,2.Android資源文件,從R類(lèi)中很容易看出,ADT為res目錄中每一個(gè)子目錄或標(biāo)簽(例如,標(biāo)簽)都生成了一個(gè)靜態(tài)的子類(lèi),不僅如此,還為XML布局文件中的每一個(gè)指定id屬性的組件生成了唯一的ID,并封裝在id子類(lèi)中。這就意味著在Android應(yīng)用程序中可以通過(guò)ID使用這些組件。R類(lèi)雖然也屬于com.cstp.android包,但在Eclipse工程中為了將R類(lèi)與其他的Java類(lèi)區(qū)分開(kāi),將R類(lèi)放在gen目錄中。,16,2.Android資源文件,既可以在程序中引用資源,也可以在XML文件中引用資源。例如,在應(yīng)用程序中獲得btnShowDate按鈕對(duì)象的代碼如下:ButtonbtnShowDate=(Button)findViewById(R.id.btnShowDate);可以看到,在使用資源時(shí)直接引用了R.id.btnShowDate這個(gè)ID值,當(dāng)然,直接使用0 x7f050000也可以,不過(guò)為了使程序更容易維護(hù),一般會(huì)直接使用在R的內(nèi)嵌類(lèi)中定義的變量名。,17,2.Android資源文件,AndroidSDK中的很多方法都支持直接使用ID值來(lái)引用資源。例如,android.app.Activity類(lèi)的setTitle方法除了支持以字符串方式設(shè)置Activity的標(biāo)題外,還支持以字符串資源ID的方式設(shè)置Activity的標(biāo)簽。例如,下面的代碼使用字符串資源重新設(shè)置了Activity的標(biāo)題。setTitle(R.string.hello);,18,2.Android資源文件,除了可以使用Java代碼來(lái)訪問(wèn)資源外,在XML文件中也可以使用這些資源。例如,引用圖像資源可以使用如下格式:@drawable/icon其中icon就是res\drawable目錄中的一個(gè)圖像文件的文件名。這個(gè)圖像文件可以是任何Android支持的圖像類(lèi)型,例如,gif、jpg等。因此,在drawable目錄中不能存在同名的圖像文件,例如,icon.gif和icon.jpg不能同時(shí)放在drawable目錄中,這是因?yàn)樵谏少Y源ID時(shí)并沒(méi)有考慮文件的擴(kuò)展名,所以會(huì)在同一個(gè)類(lèi)中生成兩個(gè)同名的變量,從而造成Java編譯器無(wú)法成功編譯R.java文件。,19,2.Android資源文件,,20,3.權(quán)限控制,AndroidManifest.xml文件的結(jié)構(gòu),每一個(gè)Android應(yīng)用程序必須有一個(gè)AndroidManifest.xml文件(不能改成其他的文件名),而且該文件必須在應(yīng)用程序的根目錄中。在這個(gè)文件中定義了應(yīng)用程序的基本信息,在運(yùn)行Android應(yīng)用程序之前必須設(shè)置這些信息。下面是AndroidManifest.xml文件在Android應(yīng)用程序中所起的作用。,21,3.權(quán)限控制,在默認(rèn)情況下,Android系統(tǒng)會(huì)限制使用某些API,因此,需要在AndroidManifest.xml文件中為這些API授權(quán)后才可以使用它們。可以為授權(quán)應(yīng)用程序與其他的應(yīng)用程序進(jìn)行交互。可以在AndroidManifest.xml文件中配置一些特殊的類(lèi),這些類(lèi)可以在應(yīng)用程序運(yùn)行時(shí)提供調(diào)試及其他的信息。但這些類(lèi)只在開(kāi)發(fā)和測(cè)試時(shí)使用,當(dāng)應(yīng)用程序發(fā)布時(shí)這些配置將被刪除。,22,3.權(quán)限控制,AndroidManifest.xml,23,3.權(quán)限控制,24,4.Android組件,在開(kāi)發(fā)應(yīng)用時(shí)都是通過(guò)框架來(lái)和Android底層進(jìn)行交互,接觸較多的就是應(yīng)用框架。在AndroidSDK中內(nèi)置了一些對(duì)象,其中最重要的一些組件:ActivityServiceBroadcastreceiverContentProvider,25,4.Android組件,什么是Activity?,Android應(yīng)用程序中最令人振奮的特性是可以利用其他Android應(yīng)用程序中的資源(當(dāng)然,需要這些應(yīng)用程序進(jìn)行授權(quán))。例如,如果應(yīng)用程序恰好需要一個(gè)顯示圖像列表的功能,而另一個(gè)應(yīng)用程序正好有這個(gè)功能,只需要調(diào)用這個(gè)應(yīng)用程序中的圖像列表功能即可。在這一點(diǎn),比iphone的應(yīng)用要靈活很多。在Android程序中沒(méi)有入口點(diǎn)(即Main函數(shù)),取而代之的是一系列的組件,這些組件都可以單獨(dú)實(shí)例化。本節(jié)課將介紹Android支持的4種組件的基本概念。應(yīng)用程序向外共享功能一般也是通過(guò)這4種應(yīng)用程序組件實(shí)現(xiàn)的。,26,4.Android組件,活動(dòng)(Activity)組件,Activity是Android的核心類(lèi),該類(lèi)的全名是android.app.Activity。Activity相當(dāng)于C/S程序中的窗體(Form)或Web程序的頁(yè)面。每一個(gè)Activity提供了一個(gè)可視化的區(qū)域。在這個(gè)區(qū)域可以放置各種Android組件,例如,按鈕、圖像、文本框等。在Activity類(lèi)中有一個(gè)onCreate事件方法,一般在該方法中對(duì)Activity進(jìn)行初始化。通過(guò)setContentView方法可以設(shè)置在Activity上顯示的視圖組件,setContentView方法的參數(shù)一般為XML布局文件的資源ID。,27,4.Android組件,一個(gè)帶界面的Android應(yīng)用程序可以由一個(gè)或多個(gè)Activity組成。至于這些Activity如何工作,或者它們之間有什么依賴(lài)關(guān)系,則完全取決于應(yīng)用程序的業(yè)務(wù)邏輯。例如,一種典型的設(shè)計(jì)方案是使用一個(gè)Activity作為主Activity(相當(dāng)于主窗體,程序啟動(dòng)時(shí)會(huì)首先啟動(dòng)這個(gè)Activity)。在這個(gè)Activity中通過(guò)菜單、按鈕等方式啟動(dòng)其他的Activity。在Android自帶的程序中有很多都是這種類(lèi)型的。每一個(gè)Activity都會(huì)有一個(gè)窗口,在默認(rèn)情況下,這個(gè)窗口是充滿(mǎn)整個(gè)屏幕的,也可以將窗口變得比手機(jī)屏幕小,或者懸浮在其他的窗口上面。Activity窗口中的可視化組件由View及其子類(lèi)組成,這些組件按著XML布局文件中指定的位置在窗口上進(jìn)行擺放。,28,4.Android組件,服務(wù)(Service)組件,服務(wù)沒(méi)有可視化接口,但可以在后臺(tái)運(yùn)行。例如,當(dāng)用戶(hù)進(jìn)行其他操作時(shí),可以利用服務(wù)在后臺(tái)播放音樂(lè),或者當(dāng)來(lái)電時(shí),可以利用服務(wù)同時(shí)進(jìn)行其他操作,甚至阻止接聽(tīng)指定的電話。每一個(gè)服務(wù)是一個(gè)android.app.Service的子類(lèi)。除此之外,其他的程序還可以與服務(wù)進(jìn)行通信。當(dāng)與服務(wù)連接成功后,就可以利用服務(wù)中共享出來(lái)的接口與服務(wù)進(jìn)行通信了。例如,控制音樂(lè)播放的服務(wù)允許用戶(hù)暫停、重放、停止音樂(lè)的播放。,29,4.Android組件,廣播接收者組件(Broadcastreceiver),廣播接收者組件的唯一功能就是接收廣播消息,以及對(duì)廣播消息做出響應(yīng)。有很多時(shí)候,廣播消息是由系統(tǒng)發(fā)出的,例如,時(shí)區(qū)的變化、電池的電量不足、收到短信等。除此之外,應(yīng)用程序還可以發(fā)送廣播消息,例如,通知其他的程序數(shù)據(jù)已經(jīng)下載完畢,并且這些數(shù)據(jù)已經(jīng)可以使用了。一個(gè)應(yīng)用程序可以有多個(gè)廣播接收者,所有的廣播接收者類(lèi)都需要繼承android.content.Broadcast-Receiver類(lèi)。廣播接收者與服務(wù)一樣,都沒(méi)有用戶(hù)接口,但在廣播接收者中可以啟動(dòng)一個(gè)Activity來(lái)響應(yīng)廣播消息,例如,通過(guò)顯示一個(gè)Activity對(duì)用戶(hù)進(jìn)行提醒。當(dāng)然,也可以采用其他的方法或幾種方法的組合來(lái)提醒用戶(hù),例如,閃屏、震動(dòng)、響鈴、播放音樂(lè)等。,30,4.Android組件,內(nèi)容提供者組件(Contentprovider),內(nèi)容提供者可以為其他應(yīng)用程序提供數(shù)據(jù)。這些數(shù)據(jù)可以保存在文件系統(tǒng)中,例如,SQLite數(shù)據(jù)庫(kù)或任何其他格式的文件。每一個(gè)內(nèi)容提供者是一個(gè)類(lèi),這些類(lèi)都需要從android.content.ContentProvider類(lèi)繼承。在ContentProvider類(lèi)中定義了一系列的方法,通過(guò)這些方法可以使其他的應(yīng)用程序獲得和存儲(chǔ)內(nèi)容提供者所支持的數(shù)據(jù)。但在應(yīng)用程序中不能直接調(diào)用這些方法,而需要通過(guò)android.content.ContentResolver類(lèi)的方法來(lái)調(diào)用內(nèi)容提供者類(lèi)中提供的方法。,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- Android 應(yīng)用程序 構(gòu)成
鏈接地址:http://kudomayuko.com/p-3386155.html