官术网_书友最值得收藏!

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協議約束的部分進行了取代。

主站蜘蛛池模板: 房山区| 洞口县| 孟津县| 天长市| 扶沟县| 三门县| 呼和浩特市| 玛纳斯县| 轮台县| 墨竹工卡县| 永春县| 城固县| 芦溪县| 潢川县| 宜川县| 衡东县| 祁门县| 漠河县| 广灵县| 大埔区| 富川| 夏津县| 绥滨县| 无为县| 南木林县| 沁源县| 东兴市| 景谷| 德庆县| 玛纳斯县| 长泰县| 江口县| 柏乡县| 崇信县| 达拉特旗| 汕头市| 嘉兴市| 茂名市| 呈贡县| 佳木斯市| 台安县|