偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Android開發(fā)入門:系統(tǒng)組件介紹

移動開發(fā) Android
Android應用程序由一些零散的有聯(lián)系的組件組成,通過一個工程manifest綁定在一起。在manifest中,描述了每一個組件以及組件的作用,其中有6個組件,它們是Android應用程序的基石。

Activities(活動)

應用程序的顯示層。每一個畫面對應于你的應用程序,將會是Activity類的擴展。Activity使用Views去構建UI來顯示信息和響應用戶的行為。就桌面開發(fā)而言,一個Activity相當于一張Form。

一個Activity通常展現(xiàn)為一個可視化的用戶界面。例如,一個Activity可能展現(xiàn)為一個用戶可以選擇的菜單項列表或者展現(xiàn)一些圖片以及圖片的標題。一個消息服務應用程序可能包含一個顯示聯(lián)系人列表的Activity,一個編寫信息的Activity,以及其它一些查看信息和修改應用程序設置的Activity。雖然這些Activity一起工作,共同組成了一個應用程序,但每一個Activity都是相對獨立的。每一個Activity都是Activity(android.app.Activity)的子類。

一個應用程序可能只包含一個Activity,或者像上面提到的消息服務程序一樣有多個Activity。一個應用程序包含幾個Activity以及各個Activity完成什么樣的功能完全取決于應用程序以及它的設計。通常每個應用程序都包含一個在應用程序啟動后***個展現(xiàn)給用戶的 Activity。在當前展現(xiàn)給用戶的Activity中啟動一個新的Activity,可以實現(xiàn)從一個Activity轉(zhuǎn)換到另外一個 Activity。

每個Activity都會有一個用于繪制用戶界面的窗口。通常這樣一個窗口會填充整個屏幕,當然這個窗口也可以比屏幕小并漂浮在其他窗口之上。 Activity還可以使用一些額外的窗口,例如一個要求用戶響應的彈出式對話框,或者是當用戶在屏幕上選擇一個條目后向用戶展現(xiàn)一些重要信息的窗口。

展示Activity窗口的可視化內(nèi)容區(qū)域是一些具有層次關系(很像數(shù)據(jù)結構中的樹)的視圖,而視圖則是由類View的子類表示的。每個視圖控制窗口中的一個矩形區(qū)域。父視圖包含一些子視圖并管理子視圖的布局。位于葉節(jié)點的視圖直接控制并響應用戶的動作。因此視圖就是Activity與用戶交互的接口。例如,一個顯示圖片的視圖,當用戶單擊的時候它可能會啟動一個動作。Android有許多開發(fā)人員可以直接使用的視圖,包括按鈕,文本域,滾動條,菜單,復選框等。

通過調(diào)用Activity.setContentView()方法來設置展現(xiàn)Activity的窗口的視圖。內(nèi)容視圖則是視圖層次結構中的根節(jié)點視圖。

Services(服務)

Android應用程序中不可見的“工人”。 Service組件運行時不可見,但它負責更新的數(shù)據(jù)源和可見的Activity,以及觸發(fā)通知。它們常用來執(zhí)行一些需要持續(xù)運行的處理,當你的 Activity已經(jīng)不處于激活狀態(tài)或不可見。

Service沒有用戶界面,但它會在后臺一直運行。例如,Service可能在用戶處理其它事情的時候播放背景音樂,或者從網(wǎng)絡上獲取數(shù)據(jù),或者執(zhí)行一些運算,并把運算結構提供給Activity展示給用戶。每個Service都擴展自類Serivce。

多媒體播放器播放音樂是應用Service的一個非常好的例子。多媒體播放器程序可能含有一個或多個Activity,用戶通過這些 Activity選擇并播放音樂。然而,音樂回放并不需要一個Activity來處理,因為用戶可能會希望音樂一直播放下去,即使退出了播放器去執(zhí)行其它程序。為了讓音樂一直播放,多媒體播放器Activity可能會啟動一個Service在后臺播放音樂。Android系統(tǒng)會使音樂回放Service一直運行,即使在啟動這個Service的Activity退出之后。

應用程序可以連接到一個正在運行中的Service。當連接到一個Service后,可以使用這個Service向外暴露的接口與這個Service進行通信。對于上面提到的播放音樂的Service,這個接口可能允許用戶暫停,停止或重新播放音樂。

與activity以及其它組件一樣,Service同樣運行在應用程序進程的主線程中。所以它們不能阻塞其它組件或用戶界面,通常需要為這些Service派生一個線程執(zhí)行耗時的任務。

Content(內(nèi)容)

提供共享的數(shù)據(jù)存儲。Content Provider(內(nèi)容提供器)用來管理和共享應用程序的數(shù)據(jù)庫。在應用程序間,Content Provider是共享數(shù)據(jù)的***方式。這意味著,你可以配置自己的Content Provider去存取其他的應用程序或者通過其他應用程序暴露的Content Provider去存取它們的數(shù)據(jù)。Android設備本身包含了幾個Content Provider來訪問像聯(lián)系人信息等有用的數(shù)據(jù)庫。你將在第6章學習怎樣創(chuàng)建和使用Content Provider。

應用程序可以通過Content Provider訪問其它應用程序的一些私有數(shù)據(jù),這是Android提供的一種標準的共享數(shù)據(jù)的機制。共享的數(shù)據(jù)可以是存儲在文件系統(tǒng)中、SQLite 數(shù)據(jù)庫中或其它的一些媒體中。Content Provider擴展自ContentProvider類,通過實現(xiàn)此類的一組標準的接口可以使其它應用程序存取由它控制的數(shù)據(jù)。然而應用程序并不會直接調(diào)用ContentProvider中的方法,而是通過類ContentResolver。ContentResolver能夠與任何一個 ContentProvider通信,它與ContentProvider合作管理進程間的通信。

任何時候當Android系統(tǒng)收到一個需要某個組件進行處理的請求的時候,Android會確保處理此請求的組件的宿主進程是否已經(jīng)在運行,如果沒有,則立即啟動這個進程,當請求的組件的宿主進程已經(jīng)在運行,它會繼續(xù)查看請求的組件是否可以使用,如果不能立即使用,它會創(chuàng)建一個請求的組件的實例來響應請求

Intents(意圖)

簡單的消息傳遞框架。使用Intent,你可以在整個系統(tǒng)內(nèi)廣播消息或者給特定的Activity或者服務來執(zhí)行你的行為意圖。系統(tǒng)會決定那個(些)目標來執(zhí)行適當?shù)男袨椤?/p>

Broadcast Receivers(廣播接收器)

Intent廣播的“消費者”。通過創(chuàng)建和注冊一個Broadcast Receiver,應用程序可以監(jiān)聽符合特定條件的廣播的Intent。Broadcast Receiver 會自動的啟動你的Android應用程序去響應新來的Intent。Broadcast Receiver是事件驅(qū)動程序的理想手段。

Broadcase Receiver不執(zhí)行任何任務,僅僅是接受并響應廣播通知的一類組件。大部分廣播通知是由系統(tǒng)產(chǎn)生的,例如改變時區(qū),電池電量低,用戶選擇了一幅圖片或者用戶改變了語言***項。應用程序同樣也可以發(fā)送廣播通知,例如通知其他應用程序某些數(shù)據(jù)已經(jīng)被下載到設備上可以使用。

一個應用程序可以包含任意數(shù)量的Broadcase Reveiver來響應它認為很重要的通知。所有的Broadcast Receiver都擴展自類BroadcastReceiver。

Broadcast Receiver不包含任何用戶界面。然而它們可以啟動一個Activity以響應接受到的信息,或者通過NotificationManager通知用戶??梢酝ㄟ^多種方式使用戶知道有新的通知產(chǎn)生:閃動背景燈、震動設備、發(fā)出聲音等等。通常程序會在狀態(tài)欄上放置一個持久的圖標,用戶可以打開這個圖標并讀取通知信息。

Notifications(通知)

用戶通知的框架。Notification用來在不需要焦點或不中斷它們當前Activity的情況下提示用戶。它們是Service或 Broadcast Receiver獲得用戶注意的***方式。例如,當設備收到文本信息或外部來電時,它通過閃光,發(fā)聲,顯示圖標或顯示對話框信息來提醒你。

責任編輯:徐川 來源: net
相關推薦

2013-01-16 14:41:14

Android開發(fā)Android SDK

2023-07-17 16:13:21

組件模塊開發(fā)的鴻蒙

2013-01-17 16:17:33

Android開發(fā)Intent組件

2013-01-10 14:21:24

Android開發(fā)組件Activities

2013-01-17 15:51:42

Android開發(fā)應用程序組件

2013-02-22 14:45:01

.NETC#Xcode

2011-09-09 14:09:17

Android Wid

2013-04-08 14:12:03

Android開發(fā)googleMap入門SDK

2010-01-25 16:58:53

Android組件交互

2015-02-12 10:37:20

Dockerdocker生態(tài)系統(tǒng)

2011-11-29 16:38:58

Knockout

2013-01-16 15:07:30

Android NDKAndroid開發(fā)

2013-12-27 09:54:58

Android開發(fā)NDK

2021-07-27 11:39:40

鴻蒙HarmonyOS應用

2010-02-07 13:55:39

Android圖形

2009-07-10 18:06:59

JTree Swing

2013-05-20 15:42:22

2009-03-11 13:18:57

Android入門Android開發(fā)Android模擬器

2010-02-04 17:59:50

Android SDK

2010-02-06 15:31:18

ibmdwAndroid
點贊
收藏

51CTO技術棧公眾號