標籤:span linux 記憶體回收機制 ons 一個 分組 抽象 pack 運行
1. 說到Android的架構,大家第一眼想到的可能都是下面這張眾所周知的圖
(1) 應用程式層(applications):應用程式層主要是一些核心的應用程式套件組合,比如電話,簡訊,地圖,電子郵件等等。對應的源碼包在 packages/apps 下,裡麵包含了各種應用程式的源碼
(2) 應用程式框架層(application framework):這層是Android應用開發的基礎,包含了視圖管理器,電話管理器,等等,也提供了Android的四大組件。這個層主要就是提供了類似與各種組件使用的API。對應的源碼直接在 frameworks 下,裡麵包含了base包,包含了framework的一些基礎的代碼,大量使用C++編寫
(3) 系統庫層:該層主要由兩部分組成,一個是系統庫,一個是android運行時。
android運行時比較簡單,主要包括了核心庫以及Dalvik虛擬機器,核心庫包含了大多數java語言需要的功能函數,同時包含了Android的核心庫。Dalvik虛擬機器主要完成了對生命週期的管理,線程的管理,堆棧的管理,記憶體回收機制以及相應的安全和異常的管理
系統庫主要包含了9個子系統,就是所示的系統
android運行時中的core libraries對應的源碼包在根目錄下的libcore
android下的Dalvik虛擬機器對應的源碼包在根目錄下的dalvik
系統庫對應的源碼包是根目錄下的bionic
(4) linux核心層:Android的核心系統服務都是依賴與linux核心的,比如記憶體,進程等的管理,驅動模型以及網路通訊協定棧。核心層也是硬體和軟體的抽象層,一些驅動,比如顯卡,鍵盤,網路攝影機,wifi等等
該層對應的源碼是在根目錄下的kernel中
硬體抽象層(HAL)則對應的是根目錄下的hardware
更加詳細的目錄可以去看這個部落格:http://blog.csdn.net/fengliang191/article/details/40678731
Android——架構和源碼包介紹