Android 系统构架(转)
一、Aplications(應(yīng)用層)
Android 將會有一些核心的應(yīng)用,比如郵件客戶端、SMS程序、計算器、地圖、瀏覽器、聯(lián)系人等等。所有的應(yīng)用程序都用Java語言開發(fā)。
二、Application Framework(應(yīng)用框架層)
這一層是編寫Google發(fā)布的核心應(yīng)用時所使用的API框架,開發(fā)人員可以使用這些框架來開發(fā)自己的應(yīng)用。
View System:可以用來構(gòu)建應(yīng)用程序,它包括列表、網(wǎng)格、文本框、按鈕以及可嵌入的Web瀏覽器。
Content Providers:它可以讓一個應(yīng)用訪問另一個應(yīng)用的數(shù)據(jù),或共享它們自己的數(shù)據(jù)。
Resource Manager:提供非代碼資源的訪問,如本地字符串、圖形和布局文件。
Notification Manager:應(yīng)用可以在狀態(tài)欄中顯示自定義的提示信息。
Activity Manager:用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航退回功能。
Window Manager:管理所有的窗口程序。
Package Manager:Android系統(tǒng)內(nèi)的程序管理。
三、Libraries、Android Runtime(系統(tǒng)運行庫層)
當(dāng)使用Android應(yīng)用框架時,Android系統(tǒng)會通過一些C/C++庫賴支持我們使用的各個組件,使其能更好地為我們服務(wù)。
Bionic系統(tǒng)C庫:C語言標(biāo)準(zhǔn)庫,系統(tǒng)最底層的的庫,C庫通過Linux系統(tǒng)來調(diào)用。
多媒體庫(MediaFramework):Android系統(tǒng)多媒體庫,基于PackerVideo OpenCORE,該庫支持多種常見格式的音頻、視頻的回放和錄制,以及圖片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。
SGL:2D圖形引擎庫。
SSL:位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通信提供支持。
OpenGL ES 1.0:3D效果的支持。
SQLite:關(guān)系數(shù)據(jù)庫。
Webkit:Web瀏覽器引擎。
FreeType:位圖(bitmap)及矢量(vector)。
在Android操作系統(tǒng)中,每個Java程序都運行在Dalvik虛擬機上,其只能執(zhí)行.dex的可執(zhí)行文件,當(dāng)Java程序通過編譯后,最后還需要通過SDK中的dx工具轉(zhuǎn)為成.dex格式才能正常在虛擬機上執(zhí)行,Java虛擬機運行的是Java字節(jié)碼,而Dalvik虛擬機運行的則是其專有的文件格式dex(Dalvik Exceutable)的文件。
Dalvik虛擬機有如下幾個主要特征:
1.專有的dex文件格式。
2.dex的優(yōu)化,dex文件的結(jié)構(gòu)是緊湊的。
3.基于寄存器。
4.一個應(yīng)用,一個虛擬機實例,一個進(jìn)程。每一個Android應(yīng)用度運行在一個Dalvik虛擬機實例中,每一個虛擬機實例都是一個獨立的進(jìn)程空間。
四、Linux Kernel(Linux內(nèi)核層)
顯示驅(qū)動(Display Driver):基于Linux的幀緩沖(Frame Buffer)驅(qū)動。
鍵盤驅(qū)動(KeyBoard Driver):作為輸入設(shè)備的鍵盤驅(qū)動。
Flash內(nèi)存驅(qū)動(Flase Memory Driver):基于MTD的Flash驅(qū)動程序。
照相機驅(qū)動(Camera Driver):常用的基于Linux的v412(Video for Linux)的驅(qū)動。
音頻驅(qū)動(Audio Driver):常用的基于ALSA的高級Linux聲音體系驅(qū)動。
藍(lán)牙驅(qū)動(Bluetooth Driver):基于IEEE 802.15.1標(biāo)準(zhǔn)的無線傳輸技術(shù)。
WiFi驅(qū)動:基于IEEE 802.11標(biāo)準(zhǔn)的驅(qū)動程序。
Binder IPC驅(qū)動:Android的一個特殊的驅(qū)動程序,具有單獨的設(shè)備節(jié)點,提供進(jìn)程間通信的功能。
Power Management(電源管理):比如電池電量等。
五、Android應(yīng)用程序框架
android.app:提供高層的程序模型和基本的運行環(huán)境。
android.content:包含對各種設(shè)備上的數(shù)據(jù)進(jìn)行訪問和發(fā)布。
android.database:通過內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫。
android.graphics:底層的圖形庫,包含畫布i、顏色過濾、點、矩形,可以將它們直接繪制到屏幕上。
android.location:定位和相關(guān)服務(wù)的類。
android.media:提供一些類管理多種音頻、視頻的媒體接口。
android.net:提供幫助網(wǎng)絡(luò)訪問的類,超過通常的java.net.*接口。
android.os:提供了系統(tǒng)服務(wù)、消息傳輸和IPC機制。
android.opengl:提供OpenGL的工具。
android.provider:提供訪問Android內(nèi)容提供者的類。
android.telephony:提供與撥打電話相關(guān)的API交互。
android.view:提供基礎(chǔ)的用戶界面接口框架。
android.util:涉及工具性的方法,例如時間日期的操作。
android.webkit:默認(rèn)瀏覽器操作接口。
android.widget:包含各種UI元素在應(yīng)用程序的布局中使用。
posted on 2013-05-14 22:24 coder_new 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/mr-redrum/archive/2013/05/14/3078821.html
總結(jié)
以上是生活随笔為你收集整理的Android 系统构架(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 更改mysql的数据库目录
- 下一篇: 任信用逾期会怎么样