Android系統架構圖及各層介紹


寫此本文是為了對Android系統框架有一個整體的認識和了解,對於開發和測試人員腦子里要有整體認識以便對工作有所幫助。

進入正題

首先Android系統架構采用了分層架構的思想,共分為四層由上到下分:應用程序程序層、應用框架層、系統庫和Android運行時、Linux內核

便於大家了解如圖所示及分層說明

 

每層功能簡要說明

一、APPLACTIONS應用程序層

該層提供了一些核心應用程序包,用來存放應用程序,主界面、聯系人、電話、瀏覽器、日歷等

二、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的服務器上。當朱麗葉輸入信息並按下發送鈕之后,一連串的事件就發生了:

  1. 朱麗葉的XMPP客戶端將她的信息發送到Capulet.com XMPP服務器。
  2. Capulet.com XMPP服務器打開與Montague.net XMPP服務器的連接。
  3. Montague.net XMPP服務器將信息寄送給羅密歐。如果他目前不在在線,那么存儲信息以待稍后寄送。

 三、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)的規范,它用於生成二維、三維圖像。

四、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內核。總之,找准切入點,實踐出真知  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM