天天看點

android 入門之二【android 體系架構】

上一篇android 入門之一【開發環境搭建】搭建好了開發android的開發環境,現在首先從大體上了解一下android的架構體系。

     android 平台大的方面的層次可以劃分成三個層次,包括一個作業系統,中間件和應用程式,android 的系統架構圖如下:

android 入門之二【android 體系架構】

圖中的軟體層次自上而下分成4個層次

應用程式(application)

用用程式架構(application framework)

各種類庫(libraries)和android運作時(adnorid runtime)

作業系統(os)

一.應用程式(application)

        應用層是和使用者互動的一個層次,使用者可以看得見的一些應用,使用者可以操作。這類應用基本都是通過java語言編寫的獨立的能夠完成某些功能的應用程式。android本身提供了桌面(home),聯系人(contacts),撥打電話(phone),浏覽器(browers)等很多基本的應用程式。開發人員可以使用應用架構提供的api編寫自己的應用程式,普通開發人員要做的事情就是開應用層的程式提供該廣大消費者使用。

二.應用程式架構(application framework)

       普通開發者可以使用android基本應用程式使用的系統api,android 應用架構中的各個子產品都可以被複用,各種服務也可以被複用,了解了這個機制,開發人員可以更好的更輕松的開發出優秀的android應用。開發過程中常用到的基本架構元件如下:

一組view(ui 元件),這些ui元件包括button(按鈕),eidtview(文本框),textview(标簽),list(清單)等等,靈活運用這些元件可以快速友善的建立良好的使用者互動界面。

content providers(内容提供者),聽起來有點抽象,通俗的了解content provider 就是提供一種服務,通過這種服務應用程式之間可以實作資料的互相 通路和共享,比如通訊錄的存儲就使用了這種服務,其它應用也可以通路通訊錄中存儲的聯系人資訊。

resource manager 顧名思義就是資源管理,android中的資源很多包括圖檔,使用者界面(layout xml),字型,顔色,ui元件的id等等都可以稱之為資源,這些豐富的資源,都是通過resource manager來統一進行管理。

notification manager(消息通知管理),它在不影響使用者正常操作和使用裝置的時候在狀态欄上提供消息的提示。比如有短信來的時候,android自動會将這個消息提示在狀态欄上,使用者可以及時的看到。

activity manager(活動管理),activity管理着應用程式的生命周期,并且控制着應用的導航,扮演控制器的角色。每個activity類似于windows應用中的一個wendow。一般的應用都是通過一個個activity互動構成的。

window manager(視窗管理),管理所有啟動的視窗。

location manager(位置管理),用來管理地圖服務的相關功能。

telephoney manager(電話管理),用來管理有關的電話的相關功能。

package manager(包管理),管理所有的安裝在android系統内的應用程式。

三.庫(libraries)和運作環境(runtime)

     這部分内容開始涉及底層,開發普通的應用不會直接對這個層進行操作。這層中包含了一組類庫(libraries)和運作時(runtime),

系統c庫(libc),一個從bsd內建來的标準c系統函數庫(libc)它是專門為基于嵌入式linux的裝置定制的。

媒體庫(media framework),基于packevideo opencore,該庫支援多種常用的音頻,視訊格式以及回放和錄制,同時支援靜态圖像檔案。編碼格式包括:mpeg4、h.264,mp3、aac、amr、jpg、png。

surface manager 對顯示子系統的管理,并且為多個應用提供2d,3d圖層的無縫融合。

webkit,一個最新的web浏覽器引擎,用來支援andiroid浏覽器或者嵌入的web視圖。

sgl 底層的2d圖形引擎。

opengl|es,基于opengl es 1.0 apis實作,該庫可以使用硬體3d加速或者使用高度優化的3d軟加速。

freetype,位圖(bitmap)和适量(vector)字圖顯示支援。

sqlite,一個對所有應用程式可用,功能強大的輕量級關系型資料庫引擎。

core libraries 該核心庫提供了java程式設計語言核心庫的大多數功能。

dalvik vm, android平台的一個虛拟機,它相當于pc中java的虛拟機jvm。

四、作業系統(os)

     android 的核心系統服務依賴于linux 2.6 核心,作業系統為android提供的服務包括:

安全性(security)。

記憶體管理(memory management)

程序管理(process management)

網絡堆棧(network stack)

驅動程式模型(driver model)包含以下這些正常的驅動程式:

(1)display driver

(2)keypad driver

(3)camera driver

(4)wifi driver

(5)flash memory driver

(6)audio driver

(7)binder(ipc) driver

(8)power management

對android的整體架構有一定的了解後對與了解android的一些機制和應用開發有很大的幫助,隻有了解了android架構才能更好的使用android提供的功能和服務。進而使學習android應用開發少走彎路。