應(yīng)用程序組件是一個(gè)Android應(yīng)用程序的基本構(gòu)建塊。這些組件由應(yīng)用清單文件松耦合的組織。AndroidManifest.xml描述了應(yīng)用程序的每個(gè)組件,以及他們?nèi)绾谓换ァ?/p>
以下是可以在Android應(yīng)用程序中使用的四個(gè)主要組件。
組件 | 描述 |
---|---|
Activities | 描述UI,并且處理用戶與機(jī)器屏幕的交互。 |
Services | 處理與應(yīng)用程序關(guān)聯(lián)的后臺(tái)操作。 |
Broadcast Receivers | 處理Android操作系統(tǒng)和應(yīng)用程序之間的通信。 |
Content Providers | 處理數(shù)據(jù)和數(shù)據(jù)庫管理方面的問題。 |
一個(gè)活動(dòng)標(biāo)識(shí)一個(gè)具有用戶界面的單一屏幕。舉個(gè)例子,一個(gè)郵件應(yīng)用程序可以包含一個(gè)活動(dòng)用于顯示新郵件列表,另一個(gè)活動(dòng)用來編寫郵件,再一個(gè)活動(dòng)來閱讀郵件。當(dāng)應(yīng)用程序擁有多余一個(gè)活動(dòng),其中的一個(gè)會(huì)被標(biāo)記為當(dāng)應(yīng)用程序啟動(dòng)的時(shí)候顯示。
一個(gè)活動(dòng)是Activity類的一個(gè)子類,如下所示:
public class MainActivity extends Activity {
}
服務(wù)是運(yùn)行在后臺(tái),執(zhí)行長(zhǎng)時(shí)間操作的組件。舉個(gè)例子,服務(wù)可以是用戶在使用不同的程序時(shí)在后臺(tái)播放音樂,或者在活動(dòng)中通過網(wǎng)絡(luò)獲取數(shù)據(jù)但不阻塞用戶交互。
一個(gè)服務(wù)是Service類的子類,如下所示:
public class MyService extends Service {
}
廣播接收器簡(jiǎn)單地響應(yīng)從其他應(yīng)用程序或者系統(tǒng)發(fā)來的廣播消息。舉個(gè)例子,應(yīng)用程序可以發(fā)起廣播來讓其他應(yīng)用程序指導(dǎo)一些數(shù)據(jù)已經(jīng)被下載到設(shè)備,并且可以供他們使用。因此廣播接收器會(huì)攔截這些通信并采取適當(dāng)?shù)男袆?dòng)。
廣播接收器是BroadcastReceiver類的一個(gè)子類,每個(gè)消息以Intent對(duì)象的形式來廣播。
public class MyReceiver extends BroadcastReceiver {
}
內(nèi)容提供者組件通過請(qǐng)求從一個(gè)應(yīng)用程序到另一個(gè)應(yīng)用程序提供數(shù)據(jù)。這些請(qǐng)求由ContentResolver類的方法來處理。這些數(shù)據(jù)可以是存儲(chǔ)在文件系統(tǒng)、數(shù)據(jù)庫或者其他其他地方。
內(nèi)容提供者是ContentProvider類的子類,并實(shí)現(xiàn)一套標(biāo)準(zhǔn)的API,以便其他應(yīng)用程序來執(zhí)行事務(wù)。
public class MyContentProvider extends ContentProvider {
}
我們將在獨(dú)立的章節(jié)中通過這些標(biāo)簽的細(xì)節(jié)來涵蓋應(yīng)用程序組件。
有一些附件的組件用于以上提到的實(shí)體、他們之間邏輯、及他們之間連線的構(gòu)造。這些組件如下:
組件 | 描述 |
---|---|
Fragments | 代表活動(dòng)中的一個(gè)行為或者一部分用戶界面。 |
Views | 繪制在屏幕上的UI元素,包括按鈕,列表等。 |
Layouts | 控制屏幕格式,展示視圖外觀的View的繼承。 |
Intents | 組件間的消息連線。 |
Resources | 外部元素,例如字符串資源、常量資源及圖片資源等。 |
Manifest | 應(yīng)用程序的配置文件。 |
更多建議: