轉自:http://blog.csdn.net/finewind/article/details/46324507html
1. Android系統架構:java
android系統架構採用了分層架構的思想,以下圖所示,從上到下共4層,分別爲:應用程序層、應用程序框架層、系統庫和android運行時層、linux內核層。linux
每層功能簡要介紹以下:android
應用程序層(JAVA應用程序):c++
該層提供一些核心應用程序包,例如電子郵件、短信、日曆、地圖、瀏覽器和聯繫人管理等。同時,開發者能夠利用Java語言設計和編寫屬於本身的應用程序,而這些程序與那些核心應用程序彼此平等、友好共處。apache
應用程序框架層(JAVA框架):瀏覽器
該層是Android應用開發的基礎,開發人員大部分狀況是在和她打交道。應用程序框架層包括活動管理器、窗口管理器、內容提供者、視圖系統、包管理器、電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務十個部分。在Android平臺上,開發人員能夠徹底訪問核心應用程序所使用的API框架。而且,任何一個應用程序均可以發佈自身的功能模塊,而其餘應用程序則能夠使用這些已發佈的功能模塊。基於這樣的重用機制,用戶就能夠方便地替換平臺自己的各類應用程序組件。安全
系統庫和android運行時層(本地框架和JAVA運行環境):服務器
系統庫包括九個子系統,分別是圖層管理、媒體庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。網絡
Android運行時包括核心庫和Dalvik虛擬機,前者既兼容了大多數Java語言所須要調用的功能函數,又包括了Android的核心庫,好比android.os、android.net、android.media等等。後者是一種基於寄存器的java虛擬機,Dalvik虛擬機主要是完成對生命週期的管理、堆棧的管理、線程的管理、安全和異常的管理以及垃圾回收等重要功能。
LINUX內核層:
Android核心系統服務依賴於Linux內核,如安全性、內存管理、進程管理、網絡協議棧和驅動模型。Linux內核也是做爲硬件與軟件棧的抽象層。
驅動:顯示驅動、攝像頭驅動、鍵盤驅動、WiFi驅動、Audio驅動、flash內存驅動、Binder(IPC)驅動、電源管理等。
2. android源碼目錄結構:
參考資料:
android系統架構: http://blog.csdn.net/wangloveall/article/details/8033725
android源碼結構: http://www.cnblogs.com/shaweng/p/4043573.html