上一篇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應用開發少走彎路。
轉自:http://www.cnblogs.com/vaiyanzi/archive/2010/05/15/1736280.html