1. 程式人生 > Android入門教學 >Android 系統背景及結構概述

Android 系統背景及結構概述

谷歌 Android 系統

1. Android 的歷史

Android 一詞的本意指“人形機器人”,安迪•魯賓 (Andy Rubin) 在 2003 年以此名創辦了 Android 公司並開始召集團隊研發 Android 系統。後於 2005 年被 Google 收購,安迪•魯賓隨後任 Google 工程部副總裁,繼續負責 Android 專案的研發工作。

安卓系統(Android)是一款基於 Linux 核心的自由開源的作業系統,主要使用於移動裝置,如智慧手機和平板電腦。 Google 在 2007 年 11 月 5 日正式對外公佈的了這款系統,並以“綠色機器人”的形狀作為其 Logo。早期由 Google 開發,後由開放手機聯盟(Open Handset Alliance)負責開發。

2. Android 的層級結構

Android 從系統架構上可分為四層結構,自下而上分別是:

  • Linux 核心

  • 系統執行庫

  • 應用程式框架

  • 應用程式

Android 架構圖

2.1 Linux 核心

這一層是 Android 的核心繫統服務,位於 Android 系統的最底層,直接與硬體裝置互動。它依賴於 Linux,負責記憶體管理、程序管理、裝置管理、網路協議棧、安全性和驅動模型等系統級服務。

Linux 核心作為 Android 硬體和軟體之間的抽象層,為了更好的為 Android上層應用服務,Google 基於 Linux 做了一些的定製化的修改,具體的修改內容及原因會在後續的教程中陸續提到。

2.2 系統執行庫

這一層包含兩大塊:系統庫及 Android 執行時。

  • 系統庫
    這一部分其實就是 C/C++ 庫,這些庫在 Android 系統中通常以 so 的形式供不同的元件使用,開發者可以通過自己的應用程式使用這些庫提供的服務。

  • Android 執行時
    Android 採用 Java 作為開發語言,在其執行時中包含了 Java 核心庫的大多數功能,並使每一個  Android 應用程式都在它自己的程序中執行,都擁有一個獨立的 Dalvik 虛擬機器例項。Dalvik 可以保證一個裝置可以同時高效地執行多個虛擬系統。

2.3 應用程式框架

這一層是會和使用者直接打交道的一層,也是開發者最需要關注的一層。它包含了一系列的服務和系統,其中包括:

  • 豐富而又可擴充套件的檢視(Views)

  • 內容提供器(Content Providers)

  • 資源管理器(Resource Manager)

  • 通知管理器(Notification Manager)

  • 活動管理器(Activity Manager)

2.4 應用程式

開發者的絕大部分工作都是在這一層完成,通過 Java 編寫的應用程式我們可以使用 Android 系統提供的服務來實現我們預期的功能。

每一個應用程式都對應一個 Dalvik 虛擬機器,利用跨平臺性質,基於  Android 框架開發的應用程式可以運行於任何一臺安裝有 Android 系統的平臺。

本教程的大多數內容也是針對這一層,我們將帶領你建立屬於自己的第一個 Android 應用程式,並一步步由淺入深的學習 Android 各個細枝末節,讓你可以更好的掌握 Android 應用程層序開發。

3. Android 各個版本、代號及 API 級別

從 Android 1.5 開始,Google 髮型每一個 Android 版本都用一個甜品的名稱作為代號,而代號首字母是從 C 開始以此按照字母順序排列,而直到 19 年釋出的 Android Q 開始,Google 棄用了這一傳統,改名為 Android 10。

名稱版本號API等級釋出時間BuildVersion
Q10.0292019-09BuildVersionCodes.Q
Pie9.0282018-08BuildVersionCodes.P
Oreo8.1272017-12BuildVersionCodes.OMr1
Oreo8.0262017-08BuildVersionCodes.O
Nougat7.1252016-12BuildVersionCodes.NMr1
Nougat7.0242016-08BuildVersionCodes.N
Marshmallow6.0232015-08BuildVersionCodes.M
Lollipop5.1222015-03BuildVersionCodes.LollipopMr1
Lollipop5.0212014-11BuildVersionCodes.Lollipop
Kitkat Watch4.4W202014-06BuildVersionCodes.KitKatWatch
Kitkat4.4192013-10BuildVersionCodes.KitKat
Jelly Bean4.3182013-07BuildVersionCodes.JellyBeanMr2
Jelly Bean4.2-4.2.2172012-11BuildVersionCodes.JellyBeanMr1
Jelly Bean4.1-4.1.1162012-06BuildVersionCodes.JellyBean
Ice Cream Sandwich4.0.3-4.0.4152011-12BuildVersionCodes.IceCreamSandwichMr1
Ice Cream Sandwich4.0-4.0.2142011-10BuildVersionCodes.IceCreamSandwich
Honeycomb3.2132011-06BuildVersionCodes.HoneyCombMr2
Honeycomb3.1.x122011-05BuildVersionCodes.HoneyCombMr1
Honeycomb3.0.x112011-02BuildVersionCodes.HoneyComb
Gingerbread2.3.3-2.3.4102011-02BuildVersionCodes.GingerBreadMr1
Gingerbread2.3-2.3.292010-11BuildVersionCodes.GingerBread
Froyo2.2.x82010-06BuildVersionCodes.Froyo
Eclair2.1.x72010-01BuildVersionCodes.EclairMr1
Eclair2.0.162009-12BuildVersionCodes.Eclair01
Eclair2.052009-11BuildVersionCodes.Eclair
Donut1.642009-09BuildVersionCodes.Donut
Cupcake1.532009-05BuildVersionCodes.Cupcake
Base1.122009-02BuildVersionCodes.Base11
Base1.012008-10BuildVersionCodes.Base

4. 小結

本節對 Android 系統的背景及結構做了一個簡單的講解,旨在讓大家有一個基本的認識,如果感興趣的話可以查閱相關資料進行深入瞭解。下一章我們將帶著大家完成開發環境的搭建,這也是進入開發之前的必經之路。