Android 架構(gòu)
Android 操作系統(tǒng)是一個軟件組件的棧,在架構(gòu)圖中它大致可以分為五個部分和四個主要層。
Linux內(nèi)核
在所有層的最底下是 Linux - 包括大約115個補(bǔ)丁的 Linux 3.6。它提供了基本的系統(tǒng)功能,比如進(jìn)程管理,內(nèi)存管理,設(shè)備管理(如攝像頭,鍵盤,顯示器)。同時,內(nèi)核處理所有 Linux 所擅長的工作,如網(wǎng)絡(luò)和大量的設(shè)備驅(qū)動,從而避免兼容大量外圍硬件接口帶來的不便。
程序庫
在 Linux 內(nèi)核層的上面是一系列程序庫的集合,包括開源的 Web 瀏覽器引擎 Webkit ,知名的 libc 庫,用于倉庫存儲和應(yīng)用數(shù)據(jù)共享的 SQLite 數(shù)據(jù)庫,用于播放、錄制音視頻的庫,用于網(wǎng)絡(luò)安全的 SSL 庫等。
Android程序庫
這個類別包括了專門為 Android 開發(fā)的基于 Java 的程序庫。這個類別程序庫的示例包括應(yīng)用程序框架庫,如用戶界面構(gòu)建,圖形繪制和數(shù)據(jù)庫訪問。一些 Android 開發(fā)者可用的 Android 核心程序庫總結(jié)如下:
- android.app - 提供應(yīng)用程序模型的訪問,是所有 Android 應(yīng)用程序的基石。
- android.content - 方便應(yīng)用程序之間,應(yīng)用程序組件之間的內(nèi)容訪問,發(fā)布,消息傳遞。
- android.database - 用于訪問內(nèi)容提供者發(fā)布的數(shù)據(jù),包含 SQLite 數(shù)據(jù)庫管理類。
- android.opengl - OpenGL ES 3D 圖片渲染 API 的 Java 接口。
- android.os - 提供應(yīng)用程序訪問標(biāo)注操作系統(tǒng)服務(wù)的能力,包括消息,系統(tǒng)服務(wù)和進(jìn)程間通信。
- android.text - 在設(shè)備顯示上渲染和操作文本。
- android.view - 應(yīng)用程序用戶界面的基礎(chǔ)構(gòu)建塊。
- android.widget - 豐富的預(yù)置用戶界面組件集合,包括按鈕,標(biāo)簽,列表,布局管理,單選按鈕等。
- android.webkit - 一系列類的集合,允許為應(yīng)用程序提供內(nèi)建的 Web 瀏覽能力。
看過了 Android 運行層內(nèi)的基于 Java 的核心程序庫,是時候關(guān)注一下 Android 軟件棧中的基于 C/C++ 的程序庫。
Android運行時
這是架構(gòu)中的第三部分,自下而上的第二層。這個部分提供名為 Dalvik 虛擬機(jī)的關(guān)鍵組件,類似于 Java 虛擬機(jī),但專門為 Android 設(shè)計和優(yōu)化。
Dalvik 虛擬機(jī)使得可以在 Java 中使用 Linux 核心功能,如內(nèi)存管理和多線程。Dalvik 虛擬機(jī)使得每一個 Android 應(yīng)用程序運行在自己獨立的虛擬機(jī)進(jìn)程。
Android 運行時同時提供一系列核心的庫來為 Android 應(yīng)用程序開發(fā)者使用標(biāo)準(zhǔn)的 Java 語言來編寫 Android 應(yīng)用程序。
應(yīng)用框架
應(yīng)用框架層以 Java 類的形式為應(yīng)用程序提供許多高級的服務(wù)。應(yīng)用程序開發(fā)者被允許在應(yīng)用中使用這些服務(wù)。
- 活動管理者 - 控制應(yīng)用程序生命周期和活動棧的所有方面。
- 內(nèi)容提供者 - 允許應(yīng)用程序之間發(fā)布和分享數(shù)據(jù)。
- 資源管理器 - 提供對非代碼嵌入資源的訪問,如字符串,顏色設(shè)置和用戶界面布局。
- 通知管理器 - 允許應(yīng)用程序顯示對話框或者通知給用戶。
- 視圖系統(tǒng) - 一個可擴(kuò)展的視圖集合,用于創(chuàng)建應(yīng)用程序用戶界面。
應(yīng)用程序
頂層中有所有的 Android 應(yīng)用程序。你寫的應(yīng)用程序也將被安裝在這層。這些應(yīng)用程序包括通訊錄,瀏覽器,游戲等。
Android 應(yīng)用程序組件
應(yīng)用程序組件是一個Android應(yīng)用程序的基本構(gòu)建塊。這些組件由應(yīng)用清單文件松耦合的組織。AndroidManifest.xml描述了應(yīng)用程序的每個組件,以及他們?nèi)绾谓换ァ?/p>
以下是可以在Android應(yīng)用程序中使用的四個主要組件。
組件 | 描述 |
---|---|
Activities | 描述UI,并且處理用戶與機(jī)器屏幕的交互。 |
Services | 處理與應(yīng)用程序關(guān)聯(lián)的后臺操作。 |
Broadcast Receivers | 處理Android操作系統(tǒng)和應(yīng)用程序之間的通信。 |
Content Providers | 處理數(shù)據(jù)和數(shù)據(jù)庫管理方面的問題。 |
Activities
一個活動標(biāo)識一個具有用戶界面的單一屏幕。舉個例子,一個郵件應(yīng)用程序可以包含一個活動用于顯示新郵件列表,另一個活動用來編寫郵件,再一個活動來閱讀郵件。當(dāng)應(yīng)用程序擁有多余一個活動,其中的一個會被標(biāo)記為當(dāng)應(yīng)用程序啟動的時候顯示。
一個活動是Activity類的一個子類,如下所示:
public class MainActivity extends Activity {
}
Services
服務(wù)是運行在后臺,執(zhí)行長時間操作的組件。舉個例子,服務(wù)可以是用戶在使用不同的程序時在后臺播放音樂,或者在活動中通過網(wǎng)絡(luò)獲取數(shù)據(jù)但不阻塞用戶交互。
一個服務(wù)是Service類的子類,如下所示:
public class MyService extends Service {
}
Broadcast Receivers
廣播接收器簡單地響應(yīng)從其他應(yīng)用程序或者系統(tǒng)發(fā)來的廣播消息。舉個例子,應(yīng)用程序可以發(fā)起廣播來讓其他應(yīng)用程序指導(dǎo)一些數(shù)據(jù)已經(jīng)被下載到設(shè)備,并且可以供他們使用。因此廣播接收器會攔截這些通信并采取適當(dāng)?shù)男袆印?/p>
廣播接收器是BroadcastReceiver類的一個子類,每個消息以Intent對象的形式來廣播。
public class MyReceiver extends BroadcastReceiver {
}
Content Providers
內(nèi)容提供者組件通過請求從一個應(yīng)用程序到另一個應(yīng)用程序提供數(shù)據(jù)。這些請求由ContentResolver類的方法來處理。這些數(shù)據(jù)可以是存儲在文件系統(tǒng)、數(shù)據(jù)庫或者其他其他地方。
內(nèi)容提供者是ContentProvider類的子類,并實現(xiàn)一套標(biāo)準(zhǔn)的API,以便其他應(yīng)用程序來執(zhí)行事務(wù)。
public class MyContentProvider extends ContentProvider {
}
我們將在獨立的章節(jié)中通過這些標(biāo)簽的細(xì)節(jié)來涵蓋應(yīng)用程序組件。
附件組件
有一些附件的組件用于以上提到的實體、他們之間邏輯、及他們之間連線的構(gòu)造。這些組件如下:文章來源:http://www.zghlxwxcb.cn/news/detail-637788.html
組件 | 描述 |
---|---|
Fragments | 代表活動中的一個行為或者一部分用戶界面。 |
Views | 繪制在屏幕上的UI元素,包括按鈕,列表等。 |
Layouts | 控制屏幕格式,展示視圖外觀的View的繼承。 |
Intents | 組件間的消息連線。 |
Resources | 外部元素,例如字符串資源、常量資源及圖片資源等。 |
Manifest | 應(yīng)用程序的配置文件。 |
?文章來源地址http://www.zghlxwxcb.cn/news/detail-637788.html
到了這里,關(guān)于Android入門教程||Android 架構(gòu)||Android 應(yīng)用程序組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!