Android應用程序由一些鬆散連繫的組件構成,遵照着一個應用程序清單(manifest),這個清單描述了每一個組件以及它們如何交互,還有包含了應用程序的硬件和平臺需求的元數據(metadata)。數據庫
Android應用由Activites、Services、Content Providers、Intents、Broadcast Receivers、Widgets、Notifications7個模塊構成可是,並非每個Android應用程序都須要這7種構造塊,這不是必須的,某些時候,咱們只須要這7種中的幾種組合成咱們的應用。app
如下是對7種構造塊作一些說明:框架
- Activites(活動)應用程序的表示層,Activites就是一個有生命週期的對象。應用程序的每一個界面都將是Activity類的擴展。Acitvities用視圖(View)構成GUI來顯示信息、響應用戶操做。就桌面開發而言,一個活動(Activity)至關於一個窗體(Form)。
- Services(服務)應用程序中的隱形工做者。Service組件在後臺運行,更新你的數據源和可見的Activities,觸發通知(Notification)。在應用程序的Activities不激活或不可見時,用於執行依然須要繼續的長期處理。
- Content Providers(內容管理器)可共享的數據存儲。Content Providers用於管理和共享應用程序數據庫。是跨應用程序邊界數據共享的優先方式。這表示你能夠配置本身的Content Providers以容許其餘應用程序的訪問,用他人提供的Content Providers來訪問他人存儲的數據。Android設備包括幾個本地Content Providers,提供了像媒體庫和聯繫人明細這樣有用的數據庫。
- Intents(意圖) 一個應用程序間(inter-application)的消息傳遞框架,它表示程序想作某事的「意圖」(intention)。使用Intents你能夠在系統範圍內廣播消息或者對一個目標Activity或Service發送消息,來表示你要執行一個動做。系統將辨別出相應要執行活動的目標(target)。
- Broadcast Receivers(廣播接收器)Intent廣播的消費者。若是你建立並註冊了一個Broadcase Receiver,你的應用程序就能夠監聽匹配了特定過濾標準的廣播Intent。Broadcase Receiver會自動開啓你的應用程序以響應一個收到的Intent,使得能夠用它們完美地建立事件驅動的應用程序。
- Widgets(小組件)能夠添加到主屏幕界面(home screen)的可視應用程序組件。做爲Broadcase Receiver的特殊變種,widgets讓你能夠爲用戶建立可嵌入到主屏幕界面的動態的、交互的應用程序組件。
- Notifications(通知)一 個用戶通知框架。Notification讓你沒必要竊取焦點或中斷當前Activities就能通知用戶,通知將以小圖標的形式呈如今狀態欄裏,用戶經過與圖標的交互式操來接收消息。最多見 的通知包括短信息,通話記錄,語音郵件,可是應用程序也能夠建立它們本身的通知事件。這是在Service和Broadcast Receiver中獲取用戶注意的推薦技術。例如,當設備收到一條短消息或一個電話,它會經過閃光燈、發出聲音、顯示圖標或顯示消息來提醒你。你能夠在你 的應用程序中使用Notifications觸發相同的事件。
經過解耦應用程序組件間的依賴,你能夠和其餘應用程序(你本身的和第三方的)共享和交換單獨的組件,如Content Providers、Services甚至Activities。ide