Android 操作系統(tǒng)介紹
Android是Google于2007年11月05日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成。它采用軟件堆層(Software Stack,又名軟件疊層)的架構,主要分為三部分。底層以Linux內核工作為基礎,由C語言開發(fā),只提供基本功能;中間層包括函數庫Library和 虛擬機Virtual Machine,由C++開發(fā)。上層是各種應用軟件,包括通話程序,短信程序等,應用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。
Android一詞的本義指機器人,初的Android主要支持手機,后來經過開發(fā)改良,逐漸擴展到平板電腦及其他一些領域上,是為移動終端打造的真正的開放和完整的移動軟件。
系統(tǒng)架構:
Android的系統(tǒng)架構和其操作系統(tǒng)一樣,采用了分層的架構。Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統(tǒng)運行庫層和Linux內核層。
一、應用程序
Android會同一系列核心應用程序包一起發(fā)布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。
二、應用程序框架
開發(fā)人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。
三、系統(tǒng)運行庫
Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應用程序框架為開發(fā)者提供服務。
四、Linux內核層
Android內核是基于Linux 內核的修改的內核版本,它提供了用于支持Android平臺的設備驅動。
系統(tǒng)結構:
一、系統(tǒng)內核
Android 是運行于Linux kernel之上,但并不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達到商業(yè)應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。Bionic/Libc/Kernel/ 并非標準的Kernel [[head]]er files。Android 的 Kernel [[head]]er 是利用工具由 Linux Kernel [[head]]er 所產生的,這樣做是為了保留常數、數據結構與宏。
二、硬件抽像層
Android 的HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 Kernel independent 的概念,也讓 Android framework 的開發(fā)能在不考量驅動程序實現(xiàn)的前提下進行發(fā)展。
三、中介軟件
操作系統(tǒng)與應用程序的溝通橋梁,應用分為兩層:函數層(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數據庫系統(tǒng)。數據庫又分為共用數據庫及私用數據庫。用戶可通過ContentResolver類(Column)取得共用數據庫。
Android的中間層多以Java 實現(xiàn),并且采用特殊的Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是一種暫存器型態(tài)(Register Based)的Java虛擬機,變量皆存放于暫存器中,虛擬機的指令相對減少。
Dalvik虛擬機可以有多個實例(Instance), 每個Android應用程序都用一個自屬的Dalvik虛擬機來運行,讓系統(tǒng)在運行程序時可達到優(yōu)化。Dalvik 虛擬機并非運行Java字節(jié)碼(Bytecode),而是運行一種稱為.dex格式的文件。
特別提醒:本頁面所展現(xiàn)的公司、產品及其它相關信息,均由用戶自行發(fā)布。
購買相關產品時務必先行確認商家資質、產品質量以及比較產品價格,慎重作出個人的獨立判斷,謹防欺詐行為。