- Android經典應用
- 趙書蘭編著
- 1158字
- 2018-12-30 05:22:48
1.3 Android系統框架
Android系統是以Linux系統為基礎的,Google將其按照功能特性劃分為4層,自下而上分別是Linux內核、中間件、應用程序框架和應用程序,如圖1-3所示。

圖1-3 Android系統框架圖
1.應用程序
Android系統內置了一些常用的應用程序,包括Home視圖、聯系人、電話、瀏覽器等。這些應用程序和用戶自己編寫的應用程序是完全并列的,都是采用Java語言編寫的。而且,用戶可以根據需要增加自己的應用程序,或者替換系統自帶的應用程序。
2.應用程序框架
應用程序框架提供了程序開發人員的接口,這是與Android程序員直接相關的部分。開發者可以用它開發應用,其中包括:
● 豐富而又可擴展的視圖(Views):可以用來構建應用程序,它包括列表(Lists),網格(Grids),文本框(Text Boxes),按鈕(Buttons),甚至可嵌入的Web瀏覽器。
● 內容提供器(Content Providers):使得應用程序可以訪問另一個應用程序的數據(如聯系人數據庫),或者共享它們自己的數據。
● 資源管理器(Resource Manager):提供非代碼資源的訪問,如本地字符串、圖形、布局文件(Layoutfiles)。
● 通知管理器(Notification Manager):使得應用程序可以在狀態欄中顯示自定義的提示信息。
● 活動管理器(Activity Manager):用來管理應用程序生命周期并提供常用的導航回退功能。
3.中間件
中間件包括兩部分:核心庫(Libraries)和Android運行時環境(Android Runtime)。
1)核心庫
核心庫中主要包括一些C/C++核心庫,方便開發者進行應用的開發。
① 界面管理器:對顯示子系統的管理,并且為多個應用程序提供了2D和3D圖層的無縫融合。
② 媒體框架:支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態圖像文件。編碼格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。
③ SQLite:輕型關系型數據庫引擎。
④ OpenGLES:是OpenGL三維圖形API的子集,針對手機,PDA和游戲主機等嵌入式設備而設計。
⑤ FreeType:位圖(Bitmap)和矢量(Vector)字體顯示。
⑥ WebKit(LibWebCore):Web瀏覽引擎,支持Android瀏覽器和一個可嵌入的Web視圖。
⑦ SGL:底層的2D圖形引擎。
⑧ SSL:網絡通信提供安全及數據完整性的一種安全協議。
⑨ libc(系統C庫):專門為基于Embedded Linux的設備定制的。
2)Android運行時環境
Android運行時環境主要包括:
● Android核心庫:提供了Java庫的大多數功能。
● Dalvik虛擬機:依賴于linux內核的一些功能,比如線程機制和底層內存管理機制。同時虛擬機是基于寄存器的,Dalvik采用簡練、高效的byte code格式運行,它能夠在低資耗和沒有應用相互干擾的情況下并行執行多個應用,每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik虛擬機中可執行文件為.dex文件,該格式文件針對小內存使用做了優化。所有的類都經由Java編譯器編譯,然后通過SDK中的“dx”工具轉化成.dex格式并由虛擬機執行。
4.Linux內核
Android平臺運行在Linux 2.6之上,其Linux內核部分相當于手機硬件層和軟件層之間的一個抽象層。Android的內核提供了顯示驅動、攝像頭驅動、閃存驅動、Binder驅動、鍵盤驅動、Wi-Fi驅動、音頻驅動和電源管理等多項功能。此外,Android為了讓Android程序可以用于商業目的,將Linux系統中受GNU協議約束的部分進行了取代。