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