Android簡介使用方法開發工具開始寫程式視覺化介面視覺元件對話元件核心物件事件處理資料儲存查詢功能影音功能繪圖功能網路功能衛星地圖特殊功能資源管理裝置管理系統核心問題與回答刷機升級常用軟體Eclipse教學錄影訊息相關網站參考文獻最新修改簡體版English |
Android 是一個手機的完整系統,大致上可分為上下兩層,上層採用 Java 撰寫應用程式,而下層則採用 C 語言撰寫系統程式。如果我們將上下兩層再度細分,則可將上面的 Java 應用層分為應用架構 (Application Framework) 與應用程式 (Applications),然後將下面的 C 語言系統層分為系統函式庫 (Libraries) 與 Linux 作業系統層,因而形成如下圖所示的四層式架構。 ![]() 圖一、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 系統中展現得相當淋漓盡致,非常值得學習。 參考文獻
|
Android 的系統架構
page revision: 4, last edited: 24 Dec 2010 07:24
Post preview:
Close preview