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

來源:互聯網
上載者:User

標籤:大致   views   ext   table   activity   阻塞   src   head   span   

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

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

 

Android 架構

Android 作業系統是一個軟體組件的棧,在架構圖中它大致可以分為五個部分和四個主要層。

Linux核心

在所有層的最底下是 Linux - 包括大約115個補丁的 Linux 3.6。它提供了基本的系統功能,比如進程管理,記憶體管理,裝置管理(如網路攝影機,鍵盤,顯示器)。同時,核心處理所有 Linux 所擅長的工作,如網路和大量的裝置驅動,從而避免相容大量外圍硬體介面帶來的不便。

程式庫

在 Linux 核心層的上面是一系列程式庫的集合,包括開源的 網頁瀏覽器引擎 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 - 一系列類的集合,允許為應用程式提供內建的 網頁瀏覽能力。

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

Android運行時

這是架構中的第三部分,自下而上的第二層。這個部分提供名為 Dalvik 虛擬機器的關鍵組件,類似於 JAVA 虛擬機器,但專門為 Android 設計和最佳化。

Dalvik 虛擬機器使得可以在 Java 中使用 Linux 核心功能,如記憶體管理和多線程。Dalvik 虛擬機器使得每一個 Android 應用程式運行在自己獨立的虛擬機器進程。

Android 運行時同時提供一系列核心的庫來為 Android 應用程式開發人員使用標準的 Java 語言來編寫 Android 應用程式。

應用程式框架

應用程式框架層以 Java 類的形式為應用程式提供許多進階的服務。應用程式開發人員被允許在應用中使用這些服務。

  • 活動管理者 - 控制應用程式生命週期和活動棧的所有方面。
  • 內容提供者 - 允許應用程式之間發布和分享資料。
  • 資源管理員 - 提供對非代碼嵌入資源的訪問,如字串,顏色設定和使用者介面布局。
  • 通知管理器 - 允許應用程式顯示對話方塊或者通知給使用者。
  • 視圖系統 - 一個可擴充的視圖集合,用於建立應用程式使用者介面。
應用程式

頂層中有所有的 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 應用程式的設定檔。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.