http://www.runoob.com/android/android-application-components.htmlhtml
Android 操做系統是一個軟件組件的棧,在架構圖中它大體能夠分爲五個部分和四個主要層。android
在全部層的最底下是 Linux - 包括大約115個補丁的 Linux 3.6。它提供了基本的系統功能,好比進程管理,內存管理,設備管理(如攝像頭,鍵盤,顯示器)。同時,內核處理全部 Linux 所擅長的工做,如網絡和大量的設備驅動,從而避免兼容大量外圍硬件接口帶來的不便。web
在 Linux 內核層的上面是一系列程序庫的集合,包括開源的 Web 瀏覽器引擎 Webkit ,知名的 libc 庫,用於倉庫存儲和應用數據共享的 SQLite 數據庫,用於播放、錄製音視頻的庫,用於網絡安全的 SSL 庫等。數據庫
這個類別包括了專門爲 Android 開發的基於 Java 的程序庫。這個類別程序庫的示例包括應用程序框架庫,如用戶界面構建,圖形繪製和數據庫訪問。一些 Android 開發者可用的 Android 核心程序庫總結以下:瀏覽器
看過了 Android 運行層內的基於 Java 的核心程序庫,是時候關注一下 Android 軟件棧中的基於 C/C++ 的程序庫。安全
這是架構中的第三部分,自下而上的第二層。這個部分提供名爲 Dalvik 虛擬機的關鍵組件,相似於 Java 虛擬機,但專門爲 Android 設計和優化。網絡
Dalvik 虛擬機使得能夠在 Java 中使用 Linux 核心功能,如內存管理和多線程。Dalvik 虛擬機使得每個 Android 應用程序運行在本身獨立的虛擬機進程。多線程
Android 運行時同時提供一系列核心的庫來爲 Android 應用程序開發者使用標準的 Java 語言來編寫 Android 應用程序。架構
應用框架層以 Java 類的形式爲應用程序提供許多高級的服務。應用程序開發者被容許在應用中使用這些服務。app
頂層中有全部的 Android 應用程序。你寫的應用程序也將被安裝在這層。這些應用程序包括通信錄,瀏覽器,遊戲等。
應用程序組件是一個Android應用程序的基本構建塊。這些組件由應用清單文件鬆耦合的組織。AndroidManifest.xml描述了應用程序的每一個組件,以及他們如何交互。
如下是能夠在Android應用程序中使用的四個主要組件。
組件 | 描述 |
---|---|
Activities | 描述UI,而且處理用戶與機器屏幕的交互。 |
Services | 處理與應用程序關聯的後臺操做。 |
Broadcast Receivers | 處理Android操做系統和應用程序之間的通訊。 |
Content Providers | 處理數據和數據庫管理方面的問題。 |
一個活動標識一個具備用戶界面的單一屏幕。舉個例子,一個郵件應用程序能夠包含一個活動用於顯示新郵件列表,另外一個活動用來編寫郵件,再一個活動來閱讀郵件。當應用程序擁有多於一個活動,其中的一個會被標記爲當應用程序啓動的時候顯示。
一個活動是Activity類的一個子類,以下所示:
public class MainActivity extends Activity { }
服務是運行在後臺,執行長時間操做的組件。舉個例子,服務能夠是用戶在使用不一樣的程序時在後臺播放音樂,或者在活動中經過網絡獲取數據但不阻塞用戶交互。
一個服務是Service類的子類,以下所示:
public class MyService extends Service { }
廣播接收器簡單地響應從其餘應用程序或者系統發來的廣播消息。舉個例子,應用程序能夠發起廣播來讓其餘應用程序指導一些數據已經被下載到設備,而且能夠供他們使用。所以廣播接收器會攔截這些通訊並採起適當的行動。
廣播接收器是BroadcastReceiver類的一個子類,每一個消息以Intent對象的形式來廣播。
public class MyReceiver extends BroadcastReceiver { }
內容提供者組件經過請求從一個應用程序到另外一個應用程序提供數據。這些請求由ContentResolver類的方法來處理。這些數據能夠是存儲在文件系統、數據庫或者其餘其餘地方。
內容提供者是ContentProvider類的子類,並實現一套標準的API,以便其餘應用程序來執行事務。
public class MyContentProvider extends ContentProvider { }
咱們將在獨立的章節中經過這些標籤的細節來涵蓋應用程序組件。
有一些附件的組件用於以上提到的實體、他們之間邏輯、及他們之間連線的構造。這些組件以下:
組件 | 描述 |
---|---|
Fragments | 表明活動中的一個行爲或者一部分用戶界面。 |
Views | 繪製在屏幕上的UI元素,包括按鈕,列表等。 |
Layouts | 控制屏幕格式,展現視圖外觀的View的繼承。 |
Intents | 組件間的消息連線。 |
Resources | 外部元素,例如字符串資源、常量資源及圖片資源等。 |
Manifest | 應用程序的配置文件。 |