android分為四層:
應用程序?qū)樱ˋpplications)、應用程序框架層(Application Framework)、系統(tǒng)運行庫層(Libraries和Android Runtime)和Linux內(nèi)核層(Linux Kernel)。
1、應用程序?qū)樱?/span>
所有的應用程序都是使用java語言編寫的,通過調(diào)用應用程序框架層(Application Framework)所提供的API來完成。
2、應用程序框架層:
為開發(fā)人員提供了可以完全訪問核心應用程序所使用的API框架。
可以看出,人機交互工程師要具備工程學,數(shù)學,邏輯學,心理學,社會學等諸多方面的專業(yè)素質(zhì),除此之外還要了解設計史、計算機圖形學、用戶調(diào)查研究方法、產(chǎn)品策劃與分析、宏觀經(jīng)濟學、現(xiàn)象分析技術、數(shù)據(jù)篩選技術等等。所以現(xiàn)在行業(yè)內(nèi)缺乏這類高端的人才,一般的美工師也可以通過自身的學習和提高向人機交互工程師邁進。
·活動管理器:管理應用程序生命周期并提供常用的導航回退功能。比如:開啟應用程序需要的資源和退出應用程序時需要的釋放資源。
·窗口管理器:管理所有開啟的窗口程序。
·內(nèi)容提供器:使應用程序可以訪問另一個應用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們的數(shù)據(jù)。
·視圖系統(tǒng):可以用來構建應用程序,它包括列表list、網(wǎng)格grid、文本框text box、按鈕button、圖形繪制等,以及可嵌入的web瀏覽器
·通知管理器:使應用程序可以再狀態(tài)欄中顯示自定義的提示信息。
·包管理器:管理所有安裝在Android系統(tǒng)中的應用程序。比如:信息查看和卸載程序等。
·資源管理器:提供各種資源供應程序使用。比如:字符資源、圖像資源、音頻資源。
·硬件服務:電話撥打和接聽等相關功能、管理地圖服務的相關功能、有關藍牙服務的相關功能、WIFI服務相關功能、USB服務相關功能、傳感器服務相關功能。
3、系統(tǒng)運行時庫:
系統(tǒng)運行庫層包括程序庫和Android運行庫兩部分
1)程序庫:Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中的不同組件使用,它們通過應用程序框架為開發(fā)者提供服務,核心庫的功能介紹:Surface Manager:對顯示子系統(tǒng)進行管理,并且為多個應用程序提供2D和3D圖層的無縫融合。
Media Framework:基于PacketVideo OpenCORE,該庫支持多種格式的音頻和視頻的回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。
SQLite:對于所有應用程序可用、功能強勁的輕型關系型數(shù)據(jù)庫引擎
OpenglES支持OpenGL ES1.x和OpenGL ES 2.0該庫可以使用硬件3D加速或者使用高度優(yōu)化的3D軟加速
FreeType:位圖、矢量和字體顯示
Webkit:新的Web瀏覽器引擎,支持Android瀏覽器和一個可嵌入的Web服務器。
SSL:安全通信相關技術處理,為網(wǎng)絡通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。
Libe:Android并沒有采用glibc作為C庫,而是采用了Google自己開發(fā)的Bionic Lib。它從BSD繼承了標準的C系統(tǒng)函數(shù)庫,是專門為基于嵌入式Linux設備定制的。
2)Android運行庫:
Android運行時庫又分為核心庫和Dalvik虛擬機兩部分。核心庫提供了Java語言核心庫的大多數(shù)功能,這里主要通過JNI的方式向應用程序框架層提供調(diào)用底層程序庫的接口。Dalvik虛擬機是為了能同時高效地運行多個VMs而實現(xiàn)的。
4、Linux內(nèi)核層:
Android依賴于Linux2.6內(nèi)核提供的核心系統(tǒng)服務,例如安全、內(nèi)存管理、進程管理、網(wǎng)絡棧、驅(qū)動模塊等,Android對內(nèi)核進行了增強。