Android系統架構


Android系統架構師安卓系統的體系機構,Android的系統架構和其他操作系統一樣,采用了分層的架構,共分為4層,從高到低分別是Android應用層,Android應用架構層,Android系統運行層和Linux內核層。

1.  應用程序

頂層中有所有的Android應用程序,包括通訊錄、瀏覽器等,你寫的應用程序也被安裝在這層;所有的的應用程序都是使用Java語言編寫的。

2.   應用框架層

這一層主要提供構建應用程序是可能用到的各種API,Android自帶的一些核心應用就是使用這些API完成的,開發者也可以通過使用API來構建自己的應用程序

活動管理者(Activity Manager):控制應用程序生命周期和活動棧的所有方面

內容提供器(Content Providers):允許程序之間發布和分享數據。

資源管理器(Resource Manager):提供對非代碼嵌入資源的訪問,如字符串、顏色設置和用戶界面布局。

通知管理器(Notification Manager):允許應用程序顯示對話框或者通知給用戶

視圖系統(View System):一個可拓展的視圖集合,用於創建應用程序用戶界面

3.  系統運行庫層

1)  程序庫

Android包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。他們通過Android應用程序框架為開發者提供服務,以下是一些核心庫:

*系統C庫(libc):一個從BSD繼承來的標准C系統函數庫,他是專門為基於embedded linux的設備定制的媒體庫(Media Framework):基於Packet Video opencore; 該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態圖像文件。編碼格式包括 MPEG4。H264、MP3、AAC、AMR、JPG、PNG。

* Surface Manager:對顯示子系統的管理,並且為多個應用程序提供了2D和3D圖層的無縫融合。

* SGL:底層的2D圖形引擎

*3D libraries:基於OpenFLES1.0 APLs實現,該庫可以使用硬件3D加速或者使用高度優化3D軟加速。

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

*SQLite:一個對於所有應用程序可用,功能強勁的輕型關系型數據庫引擎。

2) Android運行庫

Android包括了一個核心庫,該核心庫提供了Java編程語言核心庫的大多數功能。

每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個設備可以同時高效地運行多個虛擬系統。Dalvik虛擬機執行(.dex)的Dalvik可執行文件,該個稅文件針對小內存使用做了優化。同時虛擬機是基於寄存器的,所有的類都經由java編譯器編譯,然后通過SDK中的”dx”工具轉化成 .dex格式由虛擬機執行

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

4. Linux內核層

Android系統基於Linux2.6內核,這一層為Android設備各種硬件提供了底層驅動,如顯示驅動,音頻驅動,照相機驅動,藍牙驅動,WIFI驅動,電源管理等

區別DVM與JVM

1.  首要差別

1Dalvik:基於寄存器,編譯和運行都會更快些

JVM:基於棧,編譯和運行都會慢一些

2.  字節碼的區別

Dalvik:執行.dex格式的字節碼,是對.class文件進行壓縮后產生的,文件變小

JVM:執行.class格式的字節碼

3.  運行環境的區別

Dalvik: 一個應用啟動都運行一個單獨的虛擬機運行在一個單獨的進程中

JVM:只能運行一個實例,也就是所有應用都運行在同一個JVM中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM