一、Android系統架構 java
二、Linux android
Linux層,Android最底層最核心的部分。咱們打款手機Setting,選擇about phone選項,這一選項所顯示的內核版本,就是咱們所用的Linux內核的版本。 安全
Linux層包含了Android系統的核心服務,包括硬件驅動、進程管理、安全系統,等等。 架構
三、Dalvik 與 ART
Dalvik 包含了一整套的Android運行環境虛擬機,每一個App都會分配Dalvik虛擬機來保證互相之間不受干擾,並保持獨立。它的特色是在運行時編譯。 框架
打個比方,就比如你買了一輛可摺疊的自行車,平時是摺疊的,只有騎的時候,才須要組裝起來用。 ionic
而在Android5.x版本開始,ART模式已經取代了Dalvik, ART採用的是安裝時就進行編譯,之後運行時就不用編譯了。 測試
就比如你買了輛組裝好了的自行車,裝好就能夠騎了。 網站
固然,對在其虛擬機環境中運行的大部分App來講,它們都運行着一樣的代碼。 ui
四、Framework google
包含了整個Android Framework的重點。
五、Standard libraries
包含的是Android的一些標準庫,就是開發者在開源環境中可使用的開發庫
六、Application
七、Android系統源碼
查看系統源碼的一個網站:http://androidxref.com/
http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/
Android源碼結構:
- Makefile
- bionic (bionic C庫)
-bootable (啓動引導相關代碼)
- build (存放系統編譯規則等基礎開發包配置)
- cts (Google兼容性測試標準)
- dalvik (dalvik虛擬機)
- development (應用程序開發相關)
- external (android使用的一些開源的模塊)
- frameworks (Framework框架核心)
- hardware (廠商硬件適配層HAL代碼)
- out (編譯完成後的代碼輸出目錄)
- packages (應用程序包)
- prebuilt (x86和arm架構下預編譯資源)
- sdk (sdk及模擬器)
- system (底層文件系統庫、應用及組件)
- vendor (廠商定製代碼)