共計 2810 個字符,預計需要花費 8 分鐘才能閱讀完成。
今天丸趣 TV 小編給大家分享一下安卓系統是基于 Linux 系統的嗎的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
安卓系統是基于 Linux 系統;安卓是 Google 于 2007 年 11 月 05 日宣布的基于 Linux 平臺的開源手機操作系統的名稱,該平臺由操作系統、中間件、用戶界面和應用軟件組成。
Android 操作系統介紹
Android 是 Google 于 2007 年 11 月 05 日宣布的基于 Linux 平臺的開源手機操作系統的名稱,該平臺由操作系統、中間件、用戶界面和應用軟件組成。它采用軟件堆層(Software Stack,又名軟件疊層)的架構,主要分為三部分。底層以 Linux 內核工作為基礎,由 C 語言開發,只提供基本功能;中間層包括函數庫 Library 和 虛擬機 Virtual Machine,由 C ++ 開發。最上層是各種應用軟件,包括通話程序,短信程序等,應用軟件則由各公司自行開發,以 Java 作為編寫程序的一部分。
Android 一詞的本義指“機器人”,最初的 Android 主要支持手機,后來經過開發改良,逐漸擴展到平板電腦及其他一些領域上,是首個為移動終端打造的真正的開放和完整的移動軟件。
系統架構:
Android 的系統架構和其操作系統一樣,采用了分層的架構。Android 分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和 Linux 內核層。
一、應用程序
Android 會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS 短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用 JAVA 語言編寫的。
二、應用程序框架
開發人員也可以完全訪問核心應用程序所使用的 API 框架。該應用程序的架構設計簡化了組件的重用; 任何一個應用程序都可以發布它的功能塊并且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。
三、系統運行庫
Android 包含一些 C /C++ 庫,這些庫能被 Android 系統中不同的組件使用。它們通過 Android 應用程序框架為開發者提供服務。
四、Linux 內核層
Android 內核是基于 Linux 內核的修改的內核版本,它提供了用于支持 Android 平臺的設備驅動。
系統結構:
一、系統內核
Android 是運行于 Linux kernel 之上,但并不是 GNU/Linux。因為在一般 GNU/Linux 里支持的功能,Android 大都沒有支持,包括 Cairo、X11、Alsa、FFmpeg、GTK、Pango 及 Glibc 等都被移除掉了。Android 又以 Bionic 取代 Glibc、以 Skia 取代 Cairo、再以 opencore 取代 FFmpeg 等等。Android 為了達到商業應用,必須移除被 GNU GPL 授權證所約束的部份,例如 Android 將驅動程序移到 Userspace,使得 Linux driver 與 Linux kernel 徹底分開。Bionic/Libc/Kernel/ 并非標準的 Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是為了保留常數、數據結構與宏。
二、硬件抽像層
Android 的 HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 Kernel independent 的概念,也讓 Android framework 的開發能在不考量驅動程序實現的前提下進行發展。
三、中介軟件
操作系統與應用程序的溝通橋梁,應用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。Bionic 是 Android 改良 libc 的版本。Android 同時包含了 Webkit,所謂的 Webkit 就是 Apple Safari 瀏覽器背后的引擎。Surface flinger 是就 2D 或 3D 的內容顯示到屏幕上。Android 使用工具鏈(Toolchain) 為 Google 自制的 BionicLibc。
Android 采用 OpenCORE 作為基礎多媒體框架。Open CORE 可分 7 大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用 skia 為核心圖形引擎,搭配 OpenGL/ES。skia 與 LinuxCairo 功能相當,但相較于 Linux Cairo, skia 功能還只是雛形的。2005 年 Skia 公司被 Google 收購,2007 年初,Skia GL 源碼被公開,Skia 也是 Google Chrome 的圖形引擎。
Android 的多媒體數據庫采用 SQLite 數據庫系統。數據庫又分為共用數據庫及私用數據庫。用戶可通過 ContentResolver 類(Column)取得共用數據庫。
Android 的中間層多以 Java 實現,并且采用特殊的 Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik 虛擬機是一種“暫存器型態”(Register Based)的 Java 虛擬機,變量皆存放于暫存器中,虛擬機的指令相對減少。
Dalvik 虛擬機可以有多個實例(Instance),每個 Android 應用程序都用一個自屬的 Dalvik 虛擬機來運行,讓系統在運行程序時可達到優化。Dalvik 虛擬機并非運行 Java 字節碼(Bytecode),而是運行一種稱為.dex 格式的文件。
四、安全權限機制
Android 本身是一個權限分立的操作系統。在這類操作系統中,每個應用都以唯一的一個系統識別身份運行(Linux 用戶 ID 與群組 ID)。系統的各部分也分別使用各自獨立的識別方式。Linux 就是這樣將應用與應用,應用與系統隔離開。
應用組件:
Android 開發四大組件分別是:
一、活動(Activity):用于表現功能。
二、服務(Service):后臺運行服務,不提供界面呈現。
三、廣播接收器(BroadcastReceiver):用于接收廣播。
四、內容提供商(ContentProvider):支持在多個應用中存儲和讀取數據,相當于數據庫。
以上就是“安卓系統是基于 Linux 系統的嗎”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注丸趣 TV 行業資訊頻道。
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!