標籤:
轉載請標明出處:
http://blog.csdn.net/yujun411522/article/details/46334057
本文出自:【yujun411522的部落格】
1.2 Android體繫結構
體繫結構按照兩種視角來分析:靜態和動態視角
1.2.1 靜態視角的體繫結構
可以分為四層application、application framework、lib和runtime、linux 核心1.app,可以理解為我們平常使用的app。包括系統的和第三方app,系統的包括Home(對,其實就是一個app)、Contacts連絡人、Alarm鬧鐘等等;第三方app就更多了,qq、、uc瀏覽器等等。這一層次主要使用java語言編寫。當然一些需要高效能部分,可以使用NDK開發,有必要看一下
2.Framework,包括為app開發提供API介面,為app提供可複用的組件,規範app的開發。這一層可以使用java和JNI實現,主要組件:
View System:app開發過程中都遇到過,各種UI控制項Button,textView,ListVIew等等。Content Provider:四大組件,不同app之間資料共用的介面Resource Manager:用來管理各種資源檔:layout,drawable,string等。Activity Manager:管理Activity的,很重要Window Manager:管理所有視窗,這裡的視窗可以是activity,dialog,menu等等。Package Manager:apk包管理器,比如查詢當前裝置安裝資訊 3 Lib和RunTime也稱為中介軟體,包括各種庫以及運行時環境庫:為framework層做支撐的,android系統內建的多媒體,瀏覽器,資料庫,圖形引擎都依靠這些lib的實現:
這一部分的作用是非常重要的,比如在開發瀏覽器裝置時,系統預設使用的是webkit(開源瀏覽器引擎);我們在使用Sqlite相關介面操作sqlite資料庫就需要sqlite庫的支援;對於遊戲開發來說openGL ES更是不可缺少。這些庫的存在不只是在android系統中,就像是一個第三方庫一樣,所以也成為中介軟體。
運行時環境:因為裡面涉及有java語言,就需要java運行環境。這裡使用的是為android系統開發的Dalvik虛擬機器(5.0版本之後有ART):
core Library:對j2se中重要的庫進行保留,並加入一些android特有的api。Dalvik VM:android中啟動並執行java虛擬機器。
4 Linux核心對硬體的管理。這部分內容太多。不做過多介紹
1.2.2動態視角體繫結構將android系統分成兩個空間:上層是使用者空間,下層是核心空間使用者控制項:可以分成兩個部分:Native子系統和Java子系統,兩者通過JNI串連在一起。Native子系統有NDK開發的app,架構層的native部分以及標準庫c/c++組成Java子系統有SDK開發的app,系統內建的app,架構層java部分以及java介面組成
核心空間:linux核心以及android擴充,其中android擴充部分有Binder,Logger,OOM等機制,這些都是非常重要的東西。
如何搭建下載、編譯環境不做介紹,網上有解決方案,如果官網下載有問題,可以訪問這裡android源碼百度網盤分享
第一章 android體繫結構以及原始碼閱讀環境搭建