97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠(yuǎn)見教育科技集團(tuán) >> 新聞動(dòng)態(tài) >> Android資料 >> Android系統(tǒng)架構(gòu)  
 
Android系統(tǒng)架構(gòu)
分享到:

本文關(guān)鍵字:android系統(tǒng)架構(gòu),android架構(gòu),android系統(tǒng)架構(gòu)圖,android培訓(xùn),Android系統(tǒng)下Java編程詳解

Android系統(tǒng)架構(gòu)

如圖1所示,Android系統(tǒng)從下至上分為4層:Linux內(nèi)核、Android程序庫(kù)及Android運(yùn)行時(shí)、Android應(yīng)用程序框架,以及應(yīng)用程序等。

Android系統(tǒng)框架
圖1 Android系統(tǒng)框架

1 Linux內(nèi)核(Linux Kernel)

Android的核心系統(tǒng)服務(wù)依賴于Linux 2.6,例如安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧、驅(qū)動(dòng)模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細(xì)節(jié)而為上層提供統(tǒng)一的服務(wù)。

除了標(biāo)準(zhǔn)的Linux內(nèi)核之外,Android系統(tǒng)還增加了內(nèi)核的驅(qū)動(dòng)程序,例如,顯示驅(qū)動(dòng)、藍(lán)牙驅(qū)動(dòng)、相機(jī)驅(qū)動(dòng)、閃存卡驅(qū)動(dòng)、Binder IPC驅(qū)動(dòng)、輸入設(shè)備驅(qū)動(dòng)、USB驅(qū)動(dòng)、Wi-Fi驅(qū)動(dòng)、音頻系統(tǒng)驅(qū)動(dòng)、電源管理等,這些驅(qū)動(dòng)程序?yàn)锳ndroid系統(tǒng)的運(yùn)行提供基礎(chǔ)性支持。

這樣分層的好處是在使用下層提供的服務(wù)的同時(shí)也為上層提供統(tǒng)一的服務(wù),屏蔽本層及以下層的差異,當(dāng)本層及以下層發(fā)生了變化不會(huì)影響到上層。也就是說,各層各盡其職,各層提供固定的SAP(Service Access Point),即高內(nèi)聚、低耦合。

2 Android程序庫(kù)(Libraries)

Android包含一個(gè)C/C++庫(kù)的集合,以供Android系統(tǒng)的各個(gè)組件使用。這些功能通過Android的應(yīng)用程序框架(Application Framework)展現(xiàn)給開發(fā)者。下面列出一些核心庫(kù):
    ● 系統(tǒng)C庫(kù)——由BSD繼承衍生的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù)(libc),調(diào)整為基于嵌入式Linux設(shè)備的庫(kù)。
    ● 媒體庫(kù)——基于PacketVideo的OpenCORE。這些庫(kù)支持播放和錄制多種常見的音頻和視頻格式,以及多種媒體的編碼/解碼格式,包括MPEG-4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG。
    ● 界面管理——顯示子系統(tǒng)的管理器,管理訪問顯示子系統(tǒng)和無縫組合多個(gè)應(yīng)用程序的二維和三維圖形層。
    ● LibWebCore——新式的Web瀏覽器引擎,驅(qū)動(dòng)Android 瀏覽器和可嵌入的Web視圖。
    ● SGL——Skia圖形庫(kù),基本的2D圖形引擎。
    ● 3D libraries——基于OpenGL ES 1.0 APIs的實(shí)現(xiàn)。該庫(kù)使用硬件3D加速或使用高度優(yōu)化的3D軟加速。
    ● FreeType ——位圖(bitmap)和矢量(vector)字體渲染。
    ● SQLite ——所有應(yīng)用程序都可以使用的強(qiáng)大而輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù)引擎。

3 Android運(yùn)行時(shí)(Android Runtime)

在Linux內(nèi)核層上還有一個(gè)Android運(yùn)行時(shí)層,該層包括Dalvik虛擬機(jī)及Java核心庫(kù),提供了Java編程語(yǔ)言核心庫(kù)的大多數(shù)功能。

Dalvik虛擬機(jī)是Android使用的Java虛擬機(jī)。每一個(gè)Android應(yīng)用程序都是Dalvik虛擬機(jī)中的實(shí)例,運(yùn)行在它們自己的進(jìn)程中。Dalvik虛擬機(jī)設(shè)計(jì)成在一個(gè)設(shè)備中可以高效地運(yùn)行多個(gè)虛擬機(jī)。Dalvik虛擬機(jī)可執(zhí)行文件格式是.dex,.dex格式是專為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。

大多數(shù)虛擬機(jī)包括JVM都是基于棧的,而Dalvik虛擬機(jī)則是基于寄存器的。兩種架構(gòu)各有優(yōu)劣。一般而言,基于棧的機(jī)器需要更多指令,而基于寄存器的機(jī)器指令更大。dex 是一套工具,可以將 Java的.class格式轉(zhuǎn)換成 .dex 格式。一個(gè).dex文件通常會(huì)有多個(gè).class。由于.dex有時(shí)必須進(jìn)行佳化,會(huì)使文件大小增加1~4倍,以odex結(jié)尾。

Dalvik虛擬機(jī)依賴于Linux 內(nèi)核提供基本功能,如線程和底層內(nèi)存管理。

4 Android應(yīng)用程序框架(Application Framework)

位于Android程序庫(kù)和運(yùn)行時(shí)上面的是應(yīng)用程序框架層。通過提供開放的開發(fā)平臺(tái),Android使開發(fā)者能夠訪問核心應(yīng)用程序所使用的API框架,這樣使得組件的重用得以簡(jiǎn)化,任何應(yīng)用程序都能發(fā)布它的功能且任何其他應(yīng)用程序可以使用這些功能(需要服從框架執(zhí)行的安全限制),從而使開發(fā)者可以編制極其豐富和新穎的應(yīng)用程序,自由地利用設(shè)備硬件優(yōu)勢(shì)訪問位置信息、運(yùn)行后臺(tái)服務(wù)、設(shè)置鬧鐘、向狀態(tài)欄添加通知等。

每個(gè)應(yīng)用程序其實(shí)是一組服務(wù)和系統(tǒng),包括如下內(nèi)容。
    ● 視圖(View)——豐富的、可擴(kuò)展的視圖集合,用來構(gòu)建應(yīng)用程序。包括列表(Lists)、網(wǎng)格(grids)、文本框(Textboxs)、按鈕(Buttons),甚至是可嵌入的網(wǎng)頁(yè)瀏覽器。
    ● 內(nèi)容提供器(Content Providers)——使應(yīng)用程序可以訪問其他應(yīng)用程序(如通訊錄)的數(shù)據(jù),或共享自己的數(shù)據(jù)。
    ● 資源管理器(Resource Manager)——提供對(duì)于非代碼資源的訪問,如本地化字符串、圖形和布局文件。
    ● 消息管理器(Notification Manager)——使得應(yīng)用程序能夠在狀態(tài)欄顯示自定義的提示信息。
    ● 活動(dòng)管理器(Activity Manager)——管理應(yīng)用程序生命周期,并提供常用的導(dǎo)航回退功能。

5 Android應(yīng)用程序和小部件

Android裝配一個(gè)核心應(yīng)用程序集合,連同系統(tǒng)一起發(fā)布,這些應(yīng)用程序包括電子郵件、客戶端、SMS程序、日歷、地圖、瀏覽器、聯(lián)系人和其他設(shè)置等。而所有應(yīng)用程序都是用Java語(yǔ)言編寫的,由用戶開發(fā)的Android應(yīng)用程序和Android核心應(yīng)用程序是同一層次的。

本文選自華清遠(yuǎn)見android開發(fā)培訓(xùn)教材《Android系統(tǒng)下Java編程詳解》

 更多相關(guān)文章

·Android系統(tǒng)介紹及平臺(tái)特性
·Android系統(tǒng)層次結(jié)構(gòu)及分析
·Android系統(tǒng)提供內(nèi)置的媒體格式
·Android系統(tǒng)菜單之快捷菜單
·Android系統(tǒng)菜單之子菜單