1. 程式人生 > >Andorid基礎 Android系統層次框架結構

Andorid基礎 Android系統層次框架結構

3) 系統執行庫
 a)程式庫
    Android包含一些C/C++庫,這些庫能被Android系統中不同的元件使用。它們通過Android應用程式框架為開發者提供服務。
    以下是一些核心庫:
    主要包括基本的C庫、以及多媒體庫以支援各種多媒體格式、點陣圖和向量字型、2D和3D圖形引擎、瀏覽器、資料庫支援。
 1.Bionic系統C庫。
 2.媒體庫,基於PacketVideo OpenCORE。
 3.Surface Manager 顧名思義,用於管理Surface。
 4.Webkit,LibWebCore 瀏覽器,基於Webkit引擎。
 5.SGL 底層的2D圖形引擎
 6.3D libraries 基於OpenGL ES 1.0 APIs實現
 7.FreeType 點陣圖(bitmap)和向量(vector)字型顯示。
 8.SQLite 一個對於所有應用程式可用,功能強勁的輕型關係型資料庫引擎。
 
   另外這裡還有一個硬體抽象層。其實Android並非所有的裝置驅動都放在linux核心裡面,有一部分實現在使用者空間,
   這麼做的主要原因是可以避開Linux所遵循的GPL協議,一般情況下如果要將Android移植到其他硬體去執行,
   只需要實現這部分程式碼即可。包括:顯示器驅動,聲音,相機,GPS,GSM等等。
 
  b)Android 執行庫

  Android 包括了一個核心庫,該核心庫提供了JAVA程式語言核心庫的大多數功能。
  每一個 Android應用程式都在它自己的程序中執行,都擁有一個獨立的Dalvik虛擬機器例項。
  Dalvik被設計成一個裝置可以同時高效地執行多個虛擬系統。   
  Dalvik虛擬機器執行(.dex)的Dalvik可執行檔案,該格式檔案針對小記憶體使用做了優化。
  同時虛擬機器是基於暫存器的,所有的類都經由JAVA編譯器編譯,然後通過SDK中的 "dx" 工具轉化成.dex格式由虛擬機器執行。
  Dalvik虛擬機器依賴於linux核心的一些功能,比如執行緒機制和底層記憶體管理機制。
 
4) Linux 核心

Android 的核心繫統服務依賴於 Linux 2.6 核心 ,如安全性,記憶體管理,程序管理, 網路協議棧和驅動模型。
Linux 核心也同時作為硬體和軟體棧之間的抽象層。其外還對其做了部分修改,主要涉及兩部分修改:
   a)Binder   
  (IPC):提供有效的程序間通訊,雖然linux核心本身已經提供了這些功能,但Android系統很多服務都需要用到該功能,為了某種原因
  其實現了自己的一套。
   b)電源管理:為手持裝置節省能耗。