2009年7月5日 星期日

認識 Android 程式架構 (2)

在進入程式內容分析之前, 先了解一下 Android 軟體架構
在Android架構,總共是由5個部份來組成。分別是:

(1)Applications (應用程式)
(2)Application Framework (應用程式架構)
(3)Libraries (函式庫)
(4)Android Runtime (Android執行環境)
(5)Linux Kernel (Linux核心)








上面的圖很清楚的表達了Android 的架構.
從圖上看來, Android像是一種 software stack 的 架構, 雖然可能常跟 WinCE、Linux 之類的 OS 來做比較, 但是感覺上 Android 不像是是個 OS. (但是也有人主張他是一個 OS).

我們從底層開始向上說明:

Android 最底層還是拿 Linux 做為 Kernel. (Linux Kernal 是什麼, 先不討論)

然後中間有一些 Libraries (使用的是C/C++的函式庫). 屬系統元件, 開發者可以透過 Application Framwork 來使用這些功能.


在同一層有個 Android Runtime, 其中有 Core Libraries 是專門為手機的應用而發展的, 裡頭已經包含了絕大多數Java所需要呼用的函式.
而 Dalvik Virtual Machine (Dalvik虛擬機器, 簡稱 DVM) , 是一種暫存器型態(Register Based)的虛擬機器. 這樣的安排可以讓應用程式具有移植性. 要注意的是而且Android不是用一個 DVM來同時執行多個應用程式,而是每個應用程式都用一個自已的DVM來執行。



再上一層的的 Application Framwork 是讓開發者在寫應用程式時可以完整的使用標準的應用程式介面. 這樣的架構可以很容易的去重覆使用各個元件; 應用程式可以提供出它自己的特殊功能, 也可以較容易的去使用其它程式的特殊功能。這樣的機制有助於開發者去改寫自己新的軟體元件.
以大方向來看,加入新的 library 時需要擴充 application framework;Android framework 以 JNI 呼叫下一層的 library,但是 application 不直接呼叫 library,因此讓 Android framework 的設計更嚴謹。(這一部分較為進階, 以後慢慢會懂)


而最上層的 Applications 都是以以Java語言撰寫的應用程式,電子郵件程式、簡訊程式、日曆、地圖、瀏覽器、聯絡人... 等都屬於application (應用程式). 簡單的說就是讓使用者使用這些applications來操作及應用手機功能.

初學 Android 就是要在 在Android SDK(軟體開發套件)所用提供的開發環境下, 用Java 語言撰寫Application。

沒有留言:

張貼留言