Andoird Overview

分析:

第一層:Linux操作系統和驅動(Linux kernel):C語言實現。

Android核心系統服務依賴於Linux2.6內核,包括:安全性、內存管理、進程管理、網絡協議、驅動模型Linux內核也作爲硬件和軟件棧之間的抽象層。

除了標準的Linux內核外,Android還增加了內核的驅動程序:Binder(IPC)驅動、顯示驅動、輸入設備驅動、音頻系統驅動、攝像頭驅動、WiFi驅動、藍牙驅動、電源管理。

第二層:本地框架和Java運行環境(LIBRARIES ANDROID RUNTIME)

本地框架是有C/C++實現。包含C/C++庫,被Android系統中不同組件使用,它們通過Android應用程序框架爲開發者進行服務。

系統C(libc)BSD繼承過來的標準的C系統函數庫,專門是爲基於嵌入式Linux的設備定製的庫。

多媒體庫:基於PackerVideoOpenCore;該庫支持多種常用的音頻、視頻格式回放和錄製,支持多種媒體格式的編和解碼格式。

Suface Manager:顯示子系統管理器,並且爲多個應用程序提供2D3D圖層的無縫融合。

LibWebCore:一個最新的Web瀏覽器引擎,支持Android瀏覽器,以及一個可嵌入式的Web視圖。

SGLSkia圖形庫,底層的2D圖形引擎。

3D libraries:基於OpenGL ES1.0 API的實現;該庫可以使用硬件3D加速(如果可用),或者使用高度優化的3D軟加速。

FreeType:位圖(bitmap)和矢量(vector)字體顯示。

Android運行環境(ANDROID RUNTIME):提供了Java編程語言核心庫的大多數功能,Dalvik Java虛擬機和基礎的Java類庫組成

DalvikAndroid中使用的Java虛擬機,每個Android應用程序都在自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。

Dalvik被設計成一個可以同時高效運行多個虛擬機實例的虛擬系統。執行後綴名爲.dexDalvik可執行文件,該格式的文件

針對小內存使用做出了優化。同時虛擬機是基於寄存器的,所有的類都是有Java編譯器編譯,然後通過SDK中的“dx”工具

轉化爲.dex格式由虛擬機執行。

Dalvik虛擬機依賴於Linux內核的一些功能,比如線程機制和底層內存管理機制。


  Android包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個Android應用程序是Dalvik虛擬機中的實例,運行在他們自己的進程中。Dalvik虛擬機設計成,在一個設備可以高效地運行多個虛擬機。Dalvik虛擬機可執行文件格式是.dex,dex格式是專爲Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統大多數虛擬機包括JVM都是基於棧的,而Dalvik虛擬機則是基於寄存器的。兩種架構各有優劣,一般而言,基於棧的機器需要更多指令,而基於寄存器的機器指令更大。dx 是一套工具,可以將 Java .class 轉換成 .dex 格式。一個dex文件通常會有多個.class。由於dex有時必須進行最佳化,會使文件大小增加1-4倍,以ODEX結尾。 Dalvik虛擬機依賴於Linux 內核提供基本功能,如線程和底層內存管理。

  Android包含一個C/C++庫的集合,供Android系統的各個組件使用。這些功能通過Android的應用程序框架(application framework)暴露給開發者。下面列出一些核心庫:系統C庫——標準C系統庫(libc)的BSD衍生,調整爲基於嵌入式Linux設備媒體庫——基於PacketVideoOpenCORE。這些庫支持播放和錄製許多流行音頻視頻格式,以及靜態圖像文件,包括MPEG4H.264MP3AACAMRJPGPNG界面管理——管理訪問顯示子系統和無縫組合多個應用程序的二維和三維圖形層 LibWebCore——新式的Web瀏覽器引擎,驅動Android 瀏覽器和內嵌的web視圖SGL——基本的2D圖形引擎 3D庫——基於OpenGL ES 1.0 APIs的實現。庫使用硬件3D加速或包含高度優化的3D軟件光柵FreeType ——位圖和矢量字體渲染 SQLite ——所有應用程序都可以使用的強大而輕量級的關係數據庫引擎


第三層:Android應用框架(ANDROIDFRAMEWORK)


Android系統中,開發人員也可以完全訪問核心應用程序所使用的API框架。

包含的框架入上圖(不在陳述)

第四層:Android應用程序(APPLICATIONS)

注意:Android應用程序都是有Java語言編寫的。用戶開發的Android應用程序和Android的核心應用程序是同一層次的,它們都是基於Android的系統API構建的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章