上一篇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應用開發少走彎路。