Android 的系統架構

Android

簡介

使用方法

開發工具

開始寫程式

視覺化介面

視覺元件

對話元件

核心物件

事件處理

資料儲存

查詢功能

影音功能

繪圖功能

網路功能

衛星地圖

特殊功能

資源管理

裝置管理

系統核心

問題與回答

刷機升級

常用軟體

Eclipse

教學錄影

訊息

相關網站

參考文獻

最新修改

簡體版

English

Android 是一個手機的完整系統,大致上可分為上下兩層,上層採用 Java 撰寫應用程式,而下層則採用 C 語言撰寫系統程式。如果我們將上下兩層再度細分,則可將上面的 Java 應用層分為應用架構 (Application Framework) 與應用程式 (Applications),然後將下面的 C 語言系統層分為系統函式庫 (Libraries) 與 Linux 作業系統層,因而形成如下圖所示的四層式架構。

system-architecture.jpg

圖一、Android 的系統架構圖

Android 的這種設系方式,主要是為了能同時吸收 Java 與 C 語言雙方的開放原始碼資源,讓 Google 可以快速的利用這些資源建構出一個足以與微軟和蘋果抗衡的手機系統。Google 利用 C 語言吸收了 Linux、OpenGL、SQLite、WebKit 等系統方面的資源,然後利用 Java 吸收了 Apache 函式庫等 Java 方面的資源,最後再利用 Dalvik 虛擬機 (DVM) 繞過昇陽 (Sun) 在 Java 上的專利,因而吸收了大量的開放原始碼程式,卻又巧妙的避開了商業上的某些智財權障礙。

另外,為了避免商業公司因為必須公開原始碼而不敢投入 Android 手機的開發,並且讓許多擴充與驅動程式能不需要開放原始碼,因此採用了規定較寬鬆的 Apache Software License 2.0,這種設計讓商業公司可以放心的投入 Android 手機的開發,而不需要太過擔心開放原始碼的問題。

當然,Google 仍然必須遵守這些開放原始碼的約定,像是 Linux 核心就使用了 GPL 2.0 的授權方式,並非 Android 所採用的 Apache 2.0 授權,因此 Android 的開發者仍然必須謹慎的辨認各個層次的授權屬性,以免侵犯開放原始碼的授權規範。

整個 Android 系統的架構,除了展現了 Google 的程式技術之外,還是一種精巧的法律規避設計。Google 在程式與法律雙方面的能力,在 Android 系統中展現得相當淋漓盡致,非常值得學習。

參考文獻

  1. 史丹利部落格 (Android Architecture 2) — http://stenlyho.blogspot.com/2008/09/android-architecture.html

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License