標籤:war 簡訊 view drive linux系統 audio driver 電源管理 image
Android系統的底層建立在Linux系統之上,整個系統採用軟體疊層(Software Stack)的方式進行構建,包括4層:作業系統層、中介軟體層、使用者介面層和應用軟體層。疊層結構能夠使層與層之間相互分離,明確各自的分工,保證了層與層之間的低耦合。下面根據Android系統的體繫結構圖,對各個部分進行介紹。
一、Linux核心
Android系統建立在Linux2.6之上,Linux核心是系統硬體和軟體疊層之間的抽象層,它提供了安全性、記憶體管理、進程管理、網路通訊協定棧、驅動模型等核心系統服務。驅動模型包括:
Disney Driver:顯示驅動
Camera Driver:網路攝影機驅動
Flash Memory Driver:快閃記憶體驅動
Binder(IPC) Driver:Binder(IPC)驅動
Keypad Driver:鍵盤驅動
WiFi Driver:WiFI驅動
Audio Driver:音頻驅動
Power Management:電源管理
二、系統庫
Surface Manager:管理對顯示子系統的訪問。
Media Framework:媒體庫,基於PacketVideo的OpenCORE,支援查看靜態圖片、支援錄製和播放多種主流格式的音視頻檔案,包括PNG、JPG、MPEG4、H.264、MP3、AAC、AMR等。
SQLite:功能強大的輕量級關聯式資料庫。
OpenGL ES:用於3D開發的系統庫
FreeType:位元影像和向量字型顯示。
WebKit:Web瀏覽器引擎。
SGL:底層的2D圖形引擎。
SSL:網路通訊中進行SSL加密的庫。
libc:標準C系統庫。
三、Android運行時
在Android5.0以前,Android運行時由兩部分組成:Android核心庫和Dalvik虛擬機器。從5.0開始,ART取代了Dalvik虛擬機器。原因在於,Dalvik虛擬機器採用JIT(Just-in-time)解譯器進行動態編譯並執行,導致APP運行時比較慢;而ART模式在使用者安裝APP時進行先行編譯(Ahead-of-time,AOT)操作,將原本在程式運行時的編譯動作提前到使用者安裝時,位元組碼預先編譯成機器碼,使其成為真正的本地應用。ART雖然佔用了更多的儲存空間,延長了應用安裝和系統啟動的時間,但是它可以減少程式運行時動態編譯的開銷,提高APP的運行效率。
四、應用程式架構
開發人員在開發Android應用程式時,就是面向底層的應用程式架構層進行的。應用程式架構層提供了大量API供開發人員使用。應用程式架構既是應用程式開發的基礎,也是軟體複用的重要手段。該層包括:
Activity Manager:Active Manager
Window Manager:視窗管理器
Content Providers:內容提供者
View System:視圖系統
Package Manager:包管理器
Telephony Manager:電話管理器
Resource Manager:資源管理員
Location Manager:位置管理器
Notification Manager:通知管理器
五、應用程式層
該層提供一些核心應用程式套件組合,例如電子郵件、簡訊、日曆、地圖、瀏覽器和連絡人管理等。同時,開發人員可以利用Java語言設計和編寫屬於自己的應用程式。
Android的系統架構