国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩


Android系統(tǒng)框架圖詳解

分享到:
           

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


圖1-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ù)。(推薦閱讀:Linux內(nèi)核模塊程序結(jié)構(gòu)

    除了標(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程序庫(Libraries)

    Android包含一個(gè)C/C++庫的集合,以供Android系統(tǒng)的各個(gè)組件使用。這些功能通過Android的應(yīng)用程序框架(Application Framework)展現(xiàn)給開發(fā)者。下面列出一些核心庫:

    ·系統(tǒng)C庫——由BSD繼承衍生的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(libc),調(diào)整為基于嵌入式Linux設(shè)備的庫。

    ·媒體庫——基于PacketVideo的OpenCORE。這些庫支持播放和錄制多種常見的音頻和視頻格式,以及多種媒體的編碼/解碼格式,包括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圖形庫,基本的2D圖形引擎。

    ·3D libraries——基于OpenGL ES 1.0 APIs的實(shí)現(xiàn)。該庫使用硬件3D加速或使用高度優(yōu)化的3D軟加速。

    ·FreeType ——位圖(bitmap)和矢量(vector)字體渲染。

    ·SQLite ——所有應(yīng)用程序都可以使用的強(qiáng)大而輕量級(jí)的關(guān)系數(shù)據(jù)庫引擎。

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

    在Linux內(nèi)核層上還有一個(gè)Android運(yùn)行時(shí)層,該層包括Dalvik虛擬機(jī)及Java核心庫,提供了Java編程語言核心庫的大多數(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程序庫和運(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)頁瀏覽器。

    ·內(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語言編寫的,由用戶開發(fā)的Android應(yīng)用程序和Android核心應(yīng)用程序是同一層次的。

華清遠(yuǎn)見Android開發(fā)教程免費(fèi)下載

   熱點(diǎn)鏈接:

   1、Android模擬器與真機(jī)的區(qū)別
   2、給Android初學(xué)者的八個(gè)忠告
   3、嵌入式Android系統(tǒng)移植

更多新聞>>