寫此本文是爲了對Android系統框架有一個總體的認識和了解,對於開發和測試人員腦子裏要有總體認識以便對工做有所幫助。java
進入正題android
首先Android系統架構採用了分層架構的思想,共分爲四層由上到下分:應用程序程序層、應用框架層、系統庫和Android運行時、Linux內核web
便於你們瞭解如圖所示及分層說明數據庫
每層功能簡要說明編程
1、APPLACTIONS應用程序層瀏覽器
該層提供了一些核心應用程序包,用來存放應用程序,主界面、聯繫人、電話、瀏覽器、日曆等安全
2、APPLANCTION FRAMEWORK應用程序框架層服務器
用來支持應用層中的程序的運行,包括 Activity Manager活動管理、Window Manager窗口管理、Content Providers內容提供者、View System視圖系統、Notification Manager通知管理、Package Manager包管理、Telephony Manager電話管理、Resource Manager 資源管理、Location Manager位置管理器、XMPP Services XMPP服務一共十個部分網絡
XMPP((Extensible Messaging and Presence Protocol,前稱Jabber)是一種以XML爲基礎的開放式實時通訊協議,XMPP網絡是基於服務器的(即客戶端之間彼此不直接交談),可是也是分散式的。不像AOL實時通或MSN Messenger等服務,XMPP沒有中央官方服務器。Jabber.org的公衆服務器上有大量的用戶,因此有些人誤解了,覺得它是官方服務器,不過事實上任何人均可以在本身的域名上運行XMPP服務器。架構
Jabber識別符(JID)是用戶登陸時所使用的帳號,看起來一般像一個電子郵件地址,如someone@example.com;前半部分爲用戶名,後半部分爲XMPP服務器域名,兩個字段以@符號區隔。
假設朱麗葉(juliet@capulet.com)想和羅密歐(romeo@montague.net)通話,他們兩人的帳號分別在Capulet.com及Montague.net的服務器上。當朱麗葉輸入信息並按下發送鈕以後,一連串的事件就發生了:
3、
(1)LABRARIES系統庫
系統庫包括九個子系統,分別是Surface Manager圖層管理、Media Manager媒體管理、SQLite小型數據庫、OpenGLESate開放圖形庫用來支持3D效果、FreeType位圖和矢量、WebKit瀏覽器內核、SGL 2D圖形引擎庫、SSL爲數據通訊提供支持、libc C語言的函數庫
(2)ANDROID RUNTIME安卓運行環境
core Labraries安卓開發核心庫、DaLvik Virtual Machine Dalvik虛擬機
前者既兼容了大多數Java語言所須要調用的功能函數,又包括了Android的核心庫,好比android.os、android.net、android.media等等。後者是一種基於寄存器的java虛擬機,Dalvik虛擬機主要是完成對生命週期的管理、堆棧的管理、線程的管理、安全和異常的管理以及垃圾回收等重要功能。--SQLite是遵照ACID的關係數據庫管理系統,它包含在一個相對小的C程序庫中;OpenGL-開放圖形庫(英語:Open Graphics Library,縮寫爲 OpenGL)是個定義了一個跨編程語言、跨平臺的應用程序接口(API)的規範,它用於生成二維、三維圖像。
4、Linux Kernel 內核
提供各類驅動程序 Display Driver 顯示驅動、Camra Driver 相機驅動、Bluetooth Driver 藍牙驅動、Flash Memory Driver 內存驅動、Binder (pc)Driver 進程驅動、USB Driver、Audio Driver 音頻驅動、Power Managemnet 電源管理、WIFI Driver 無線驅動、Keypad Driver 鍵盤驅動
總結:
1. 應用層:應用是用java語言編寫的運行在虛擬機上的程序,好比Email客戶端,SMS短消息程序,日曆等。
2. 應用框架層:這一層是編寫Google發佈的核心應用時所使用的API框架,開發人員一樣可使用這些框架來開發本身的應用,這樣便簡化了程序開發的結構設計,可是必需要遵照其框架的開發原則。
3. 系統運行庫(C/C++庫以及Android運行庫)層:當使用Android應用框架時,Android系統會經過一些C/C++庫來支持咱們使用的各個組件,使其更好的爲咱們服務,好比其中的SQLite(關係數據庫),Webkit(Web瀏覽器引擎)。
4. Linux內核層:Android的核心繫統服務給予Linux2.6內核,如安全性、內存管理、進程管理、網絡協議棧和驅動模型等都依賴於該內核,好比Binder IPC(Internet Process Connection進程間通訊)驅動,android的一個特殊驅動程序,具備單獨的設備節點,提供進程間通訊的功能。
Android的系統架構採用分層架構的思想,架構清晰,井井有條,協同工做
Android的系統架構不只從宏觀上認識了Android系統,同時,也給咱們的學習與實踐指明瞭方向。如果從事Android應用開發,那應該研究Android的應用框架層和應用程序層;如果從事Android系統開發,那應該研究Android的系統庫和Android運行時;如果從事Android驅動開發,那應該研究Android的Linux內核。總之,找準切入點,實踐出真知