Andorid基礎 Android系統層次框架結構
阿新 • • 發佈:2019-01-06
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)電源管理:為手持裝置節省能耗。
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)電源管理:為手持裝置節省能耗。