1. 程式人生 > >淺析Android Framework框架層

淺析Android Framework框架層

Android系統從底向上一共分了4層,每一層都把底層實現封裝,並暴露呼叫介面給上一層。

1. Linux核心(Linux Kernel)

       1)Android執行在linux kernel 2.6之上,但是把linux內受GNU協議約束的部分做了取代,這樣在Android的程式可以用於商業目的。

       2)Linux 核心是硬體和軟體層之間的抽象層。

       3)系統總是需要作業系統的支援的,比如記憶體管理、程序管理、網路協議棧等

 2. 中介軟體(即android 的C/C++框架)

       1)中介軟體包括兩部分:核心庫和執行時(libraries & Android runtime)

       2)核心庫包括,SurfaceManager 顯示系統管理庫,負責把2D或3D內容顯示到螢幕;Media Framework 媒體庫,負責支援影象,支援多種視訊和音訊的錄製和回放;SQlite 資料庫,一個功能強大的輕量級嵌入式關係資料庫;WebKit 瀏覽器引擎等。

       3)Dalvik虛擬機器:區別於Java虛擬機器的是,每一個Android 應用程式都在它自己的程序中執行,都有一個屬於自己的Dalvik 虛擬機器,這一點可以讓系統在執行時可以達到優化,程式間的影響大大降低。Dalvik虛擬機器並非執行Java位元組碼,而是執行自己的位元組碼。 

其中

    SurFace Manager:顯示子系統的管理器
    LibWebCore:web 瀏覽器引擎,支援android 瀏覽器
    SGL:skia 圖形庫,底層的2D 圖形引擎
   3D 庫:OpenGL
   FreeType:字型顯示 

 3. 應用程式框架(Application Framework)

       1)豐富而又可擴充套件性的檢視(Views),可以用來構建應用程式, 它包括列表(lists),網格(grids), 文字框(text boxes),按鈕(buttons), 可嵌入的web 瀏覽器。

       2)內容提供者(Content Providers)使得應用程式可以訪問另一個應用程式的資料(如聯絡人資料庫), 或者共享它們自己的資料。

       3)資源管理器(Resource Manager)提供非程式碼資源的訪問,如本地字串,圖形,和佈局檔案( 

       4)通知管理器(Notification Manager) 使得應用程式可以在狀態列中顯示自定義的提示資訊。

       5)活動管理器(Activity Manager) 用來管理應用程式生命週期並提供常用的導航回退功能。

4. 應用程式 (Applications)

       Android 系統會內建一些應用程式包包括email 客戶端,SMS 短訊息程式,日曆,地圖,瀏覽器,聯絡人管理程式等。所有的應用程式都是使用JAVA 語言編寫的,不支援C 開發,所謂支援C 開發是指jni 的形式。