android 開發概述以及相關背景知識

參考連接:http://www.runoob.com/android/android-architecture.html

              http://www.runoob.com/android/android-application-components.htmlhtml

 

Android 架構

Android 操做系統是一個軟件組件的棧,在架構圖中它大體能夠分爲五個部分和四個主要層。android

Android 架構


Linux內核

在全部層的最底下是 Linux - 包括大約115個補丁的 Linux 3.6。它提供了基本的系統功能,好比進程管理,內存管理,設備管理(如攝像頭,鍵盤,顯示器)。同時,內核處理全部 Linux 所擅長的工做,如網絡和大量的設備驅動,從而避免兼容大量外圍硬件接口帶來的不便。web


程序庫

在 Linux 內核層的上面是一系列程序庫的集合,包括開源的 Web 瀏覽器引擎 Webkit ,知名的 libc 庫,用於倉庫存儲和應用數據共享的 SQLite 數據庫,用於播放、錄製音視頻的庫,用於網絡安全的 SSL 庫等。數據庫


Android程序庫

這個類別包括了專門爲 Android 開發的基於 Java 的程序庫。這個類別程序庫的示例包括應用程序框架庫,如用戶界面構建,圖形繪製和數據庫訪問。一些 Android 開發者可用的 Android 核心程序庫總結以下:瀏覽器

  • android.app - 提供應用程序模型的訪問,是全部 Android 應用程序的基石。
  • android.content - 方便應用程序之間,應用程序組件之間的內容訪問,發佈,消息傳遞。
  • android.database - 用於訪問內容提供者發佈的數據,包含 SQLite 數據庫管理類。
  • android.opengl - OpenGL ES 3D 圖片渲染 API 的 Java 接口。
  • android.os - 提供應用程序訪問標註操做系統服務的能力,包括消息,系統服務和進程間通訊。
  • android.text - 在設備顯示上渲染和操做文本。
  • android.view - 應用程序用戶界面的基礎構建塊。
  • android.widget - 豐富的預置用戶界面組件集合,包括按鈕,標籤,列表,佈局管理,單選按鈕等。
  • android.webkit - 一系列類的集合,容許爲應用程序提供內建的 Web 瀏覽能力。

看過了 Android 運行層內的基於 Java 的核心程序庫,是時候關注一下 Android 軟件棧中的基於 C/C++ 的程序庫。安全


Android運行時

這是架構中的第三部分,自下而上的第二層。這個部分提供名爲 Dalvik 虛擬機的關鍵組件,相似於 Java 虛擬機,但專門爲 Android 設計和優化。網絡

Dalvik 虛擬機使得能夠在 Java 中使用 Linux 核心功能,如內存管理和多線程。Dalvik 虛擬機使得每個 Android 應用程序運行在本身獨立的虛擬機進程。多線程

Android 運行時同時提供一系列核心的庫來爲 Android 應用程序開發者使用標準的 Java 語言來編寫 Android 應用程序。架構


應用框架

應用框架層以 Java 類的形式爲應用程序提供許多高級的服務。應用程序開發者被容許在應用中使用這些服務。app

  • 活動管理者 - 控制應用程序生命週期和活動棧的全部方面。
  • 內容提供者 - 容許應用程序之間發佈和分享數據。
  • 資源管理器 - 提供對非代碼嵌入資源的訪問,如字符串,顏色設置和用戶界面佈局。
  • 通知管理器 - 容許應用程序顯示對話框或者通知給用戶。
  • 視圖系統 - 一個可擴展的視圖集合,用於建立應用程序用戶界面。

應用程序

頂層中有全部的 Android 應用程序。你寫的應用程序也將被安裝在這層。這些應用程序包括通信錄,瀏覽器,遊戲等。

 

 

Android 應用程序組件

應用程序組件是一個Android應用程序的基本構建塊。這些組件由應用清單文件鬆耦合的組織。AndroidManifest.xml描述了應用程序的每一個組件,以及他們如何交互。

如下是能夠在Android應用程序中使用的四個主要組件。

組件 描述
Activities 描述UI,而且處理用戶與機器屏幕的交互。
Services 處理與應用程序關聯的後臺操做。
Broadcast Receivers 處理Android操做系統和應用程序之間的通訊。
Content Providers 處理數據和數據庫管理方面的問題。

Activities

一個活動標識一個具備用戶界面的單一屏幕。舉個例子,一個郵件應用程序能夠包含一個活動用於顯示新郵件列表,另外一個活動用來編寫郵件,再一個活動來閱讀郵件。當應用程序擁有多於一個活動,其中的一個會被標記爲當應用程序啓動的時候顯示。

一個活動是Activity類的一個子類,以下所示:

public class MainActivity extends Activity {

}

Services

服務是運行在後臺,執行長時間操做的組件。舉個例子,服務能夠是用戶在使用不一樣的程序時在後臺播放音樂,或者在活動中經過網絡獲取數據但不阻塞用戶交互。

一個服務是Service類的子類,以下所示:

public class MyService extends Service {

}

Broadcast Receivers

廣播接收器簡單地響應從其餘應用程序或者系統發來的廣播消息。舉個例子,應用程序能夠發起廣播來讓其餘應用程序指導一些數據已經被下載到設備,而且能夠供他們使用。所以廣播接收器會攔截這些通訊並採起適當的行動。

廣播接收器是BroadcastReceiver類的一個子類,每一個消息以Intent對象的形式來廣播。

public class MyReceiver  extends  BroadcastReceiver {

}

Content Providers

內容提供者組件經過請求從一個應用程序到另外一個應用程序提供數據。這些請求由ContentResolver類的方法來處理。這些數據能夠是存儲在文件系統、數據庫或者其餘其餘地方。

內容提供者是ContentProvider類的子類,並實現一套標準的API,以便其餘應用程序來執行事務。

public class MyContentProvider extends  ContentProvider {

}

咱們將在獨立的章節中經過這些標籤的細節來涵蓋應用程序組件。

附件組件

有一些附件的組件用於以上提到的實體、他們之間邏輯、及他們之間連線的構造。這些組件以下:

組件 描述
Fragments 表明活動中的一個行爲或者一部分用戶界面。
Views 繪製在屏幕上的UI元素,包括按鈕,列表等。
Layouts 控制屏幕格式,展現視圖外觀的View的繼承。
Intents 組件間的消息連線。
Resources 外部元素,例如字符串資源、常量資源及圖片資源等。
Manifest 應用程序的配置文件。
相關文章
相關標籤/搜索