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

1.3 Android系統架構

圖1.1是Android操作系統的架構,架構包括4層,由上到下依次是應用程序層、應用程序框架層、核心類庫和Linux內核。其中核心類庫中包含了系統庫及Android運行環境。

圖1.1 Android操作系統的架構

1.3.1 應用程序層(Applications)

Android裝配一個核心應用程序集合,包括E-mail客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯系人管理程序和其他設置,所有應用程序都是用Java編程語言編寫的。用戶開發的Android應用程序和Android的核心應用程序是同一層次的,它們都是基于Android的系統API構建的。

1.3.2 應用程序框架層(Application Framework)

應用程序的體系結構旨在簡化組件的重用,任何應用程序都能發布它的功能且任何其他應用程序都可以使用這些功能(需要服從框架執行的安全限制),這一機制允許用戶替換組件。開發者完全可以訪問核心應用程序所使用的API框架。通過提供開放的開發平臺,Android使開發者能夠編寫非常豐富和新穎的應用程序。開發者可以自由地利用設備硬件優勢訪問位置信息,運行后臺服務,設置鬧鐘,向狀態欄添加通知等。

所有的應用程序都是由一系列的服務和系統組成的,主要包括以下幾種:


●視圖(Views)。這里的視圖指的是豐富的、可擴展的視圖集合,可用于構建一個應用程序,包括列表(Lists)、網格(Grids)、文本框(TextBoxes)、按鈕(Buttons),甚至是內嵌的Web瀏覽器。

●內容管理器(Content Providers)。內容管理器使得應用程序可以訪問另一個應用程序的數據(如聯系人數據庫)或者共享自己的數據。

●資源管理器(Resource Manager)。資源管理器提供訪問非代碼資源,如本地字符串、圖形和分層文件(layout files)。

●通知管理器(Notification Manager)。通知管理器使得所有的應用程序都能夠在狀態欄顯示通知信息。

●活動管理器(Activity Manager)。在大多數情況下,每個Android應用程序都運行在自己的Linux進程中。當應用程序的某些代碼需要運行時,這個進程就被創建并一直運行下去,直到系統認為該進程不再有用為止,然后系統將回收該進程占用的內存以便分配給其他的應用程序。活動管理器管理應用程序生命周期,并且提供通用的導航回退功能。

1.3.3 系統庫(Libraries)

Android本地框架是由C/C++實現的,包含了C/C++庫,以供Android系統的各個組件使用。這些功能通過Android的應用程序框架為開發者提供服務。

這里只介紹C/C++庫中的一些核心庫:


●系統C庫。標準C系統庫(libc)的BSD衍生,調整為基于嵌入式Linux設備。

●媒體庫。基于PacketVideo的OpenCORE,這些庫支持播放和錄制許多流行的音頻和視頻格式,以及靜態圖像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。

●界面管理。管理訪問顯示子系統,并且為多個應用程序提供2D和3D圖層的無縫融合。

●LibWebCore。新式的Web瀏覽器引擎,支持Android瀏覽器和內嵌的web視圖。

●SGL。一個內置的2D圖形引擎。

●3D庫。基于OpenGL ES 1.0 APIs的實現,該庫可以使用硬件3D加速或包含高度優化的3D軟件光柵。

●FreeType。位圖和矢量字體顯示渲染。

●SQLite。SQLite是一個所有應用程序都可以使用的強大而輕量級的輕型關系數據庫引擎。

1.3.4 Android運行環境(Android Runtime)

Android包含一個核心庫的集合,該核心庫提供了Java編程語言核心庫的大多數功能。幾乎每一個Android應用程序都在自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。

Dalvik是Google公司自己設計用于Android平臺的Java虛擬機。Dalvik虛擬機是Google等廠商合作開發的Android移動設備平臺的核心組成部分之一。它可以支持已轉換為.dex(即Dalvik Executable)格式的Java應用程序的運行,.dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。Dalvik經過優化,允許在有限的內存中同時運行多個虛擬機的實例,并且每一個Dalvik應用作為一個獨立的Linux進程執行。Dalvik虛擬機依賴于Linux內核提供基本功能,如線程和底層內存管理。

1.3.5 Linux內核(Linux Kernel)

Android基于Linux提供核心系統服務,例如:安全、內存管理、進程管理、網絡堆棧、驅動模型。除了標準的Linux內核外,Android還增加了內核的驅動程序:Binder(IPC)驅動、顯示驅動、輸入設備驅動、音頻系統驅動、攝像頭驅動、WiFi驅動、藍牙驅動、電源管理。

Linux內核也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節而為上層提供統一的服務。分層的好處就是使用下層提供的服務而為上層提供統一的服務,屏蔽本層及以下層的差異,當本層及以下層發生了變化而不會影響到上層,可以說是高內聚、低耦合。

主站蜘蛛池模板: 鞍山市| 确山县| 南阳市| 任丘市| 江口县| 石台县| 磐石市| 确山县| 来宾市| 静乐县| 宜春市| 罗田县| 长海县| 福安市| 奉新县| 吴江市| 莲花县| 榆中县| 巨鹿县| 苏尼特右旗| 中西区| 山西省| 阿巴嘎旗| 怀集县| 台东县| 红河县| 高雄市| 公主岭市| 陵川县| 桦甸市| 仁布县| 广东省| 宁河县| 肥西县| 聂拉木县| 油尖旺区| 简阳市| 伊通| 宣恩县| 泽州县| 乡宁县|