若是你有過開發 Android 應用程序的經驗,即便你對 Android Framework 掌握得不深,經過谷歌提供的 Android SDK,也能很是容易地開發出基於Android的交互應用程序。這得益於 Android 爲開發者提供了一套定義良好的軟件框架,開發者即便不具有特別高深的專業知識,在短期內一樣能開發出強大的 Android 應用程序。android
如上圖所示是 Android 系統框架圖,由下往上分爲5層,依次爲Linux內核層、硬件抽象層、系統運行庫層、Java API 框架層和應用程序層。架構
觀察 Android 系統框架圖能夠發現,其提供的系統應用程序(Dialer、Email、Calendar、Camera等)都運行在 Java API 框架層之上。一樣,開發者藉助 Android SDK 開發出的應用程序也運行在Java API 框架層之上。app
若是你想成爲一名優秀的 Android 平臺應用程序開發者,那麼你頗有必要深刻了解學習 Android 框架。Android 是一個真正開放的移動開發平臺,訪問其網站(http://source.android.com)便可輕鬆獲取源代碼。每一個硬件廠商能夠根據自身須要定製基本的 Android 框架,開發出與競爭對手不一樣的產品。這樣,若想構建基於 Android 框架的個性化移動終端系統,則必須對 Android 框架進行系統、全面地學習與研究。框架
Android 主要源代碼組成以下:ionic
abi abi(application binary interface,應用程序二進制接口)相關代碼,描述了應用程序和操做系統之間,應用程序和它的庫之間,以及應用程序各組成部分之間的接口ide
art Android Runtime,Android 4.4 以後支持函數
bionic Android 標準C運行支持庫工具
bootable Android 啓動引導相關代碼學習
build 存放 Android 系統編譯規則及generic等基礎開發包配置開發工具
cts Android 兼容性測試源
dalvik Dalvik 虛擬機
development 應用程序開發相關
device Android 對要編譯產品的配置目錄
docs 介紹開源的相關文檔
external Android 使用的開放源
frameworks Android核心框架
hardware Android HAL(Hardware Abstraction Layer,硬件抽象層)庫源
libcore Android 的核心庫
libnativehelper Android 類庫的支持函數
ndk Android NDK(Android Native Development Kit)是一系列的開發工具,容許程序開發人員在Android應用程序中嵌入C/C++語言編寫的非託管代碼
packages 包含 Android 基本應用,Content Provider 等
pdk Android pdk(Platform Development Kit,平臺開發套件),僅包含開發 Android HAL 的必要組件,用於幫助芯片提供商和 OEM 廠商順利遷移到新的 Android 版本
prebuilts x86 和 arm 架構下預編譯的一些資源
sdk sdk 及模擬器
system Android 初始化進程、藍牙工具集等
toolchain Android 的交叉編譯工具
tools Android 工具包