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