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

1.3 Android系統架構概覽

Android系統是一個移動設備的開發平臺,其軟件層次結構包括操作系統(OS)、中間件(MiddleWare)和應用程序(Application)。根據Android的軟件框圖,其軟件層次結構自下而上分為以下四層。

(1)操作系統層(OS)。

(2)各種庫(Libraries)和Android運行環境(RunTime)。

(3)應用程序框架(Application Framework)。

(4)應用程序(Application)。

上述各個層的具體結構如圖1-2所示。

圖1-2 Android操作系統的組件結構圖

在本節的內容中,將詳細介紹Android操作系統的幾本組件結構方面的知識。

1.3.1 底層操作系統層(OS)

因為Android源于Linux,使用Linux內核,所以Android使用Linux 2.6作為操作系統。Linux2.6是一種標準的技術,Linux也是一個開放的操作系統。Android對操作系統的使用包括核心和驅動程序兩部分,Android的Linux核心為標準的Linux 2.6內核,Android更多的是需要一些與移動設備相關的驅動程序。主要的驅動如下所示。

顯示驅動(Display Driver):是常用的基于Linux的幀緩沖(Frame Buffer)驅動。

Flash內存驅動(Flash Memory Driver):是基于MTD的Flash驅動程序。

照相機驅動(Camera Driver):常用基于Linux的V4L(Video for Linux)驅動。

音頻驅動(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高級Linux聲音體系)驅動。

Wi-Fi驅動(Camera Driver):基于IEEE 802.11標準的驅動程序。

鍵盤驅動(KeyBoard Driver):作為輸入設備的鍵盤驅動。

藍牙驅動(Bluetooth Driver):基于IEEE 802.15.1標準的無線傳輸技術。

Binder IPC驅動:Android一個特殊的驅動程序,具有單獨的設備節點,提供進程間通信的功能。

Power Management(能源管理):用于管理電池電量等信息。

1.3.2 運行庫(Libraries)和Android運行環境(RunTime)

本層次對應一般嵌入式系統,相當于中間件層次。Android的本層次分成兩個部分,一個是各種庫,另一個是Android運行環境。本層次的內容大多是使用C和C++實現的,其中包含了如下所示的各種庫。

C庫:C語言的標準庫,也是系統中一個底層的庫,C庫是通過Linux的系統調用來實現的。

多媒體框架(MediaFrameword):這部分內容是Android多媒體的核心部分,基于PacketVideo(即PV)的OpenCORE,從功能上本庫一共分為兩大部分,一部分是音頻、視頻的回放(PlayBack),另一部分是音視頻的記錄(Recorder)。

SGL:2D圖像引擎。

SSL:即Secure Socket Layer位于TCP/IP協議與各種應用層協議之間,為數據通信提供安全支持。

OpenGL ES:提供對3D的支持。

界面管理工具(Surface Management):提供對管理顯示子系統等功能。

SQLite:一個通用的嵌入式數據庫。

WebKit:網絡瀏覽器的核心。

FreeType:位圖和矢量字體的功能。

一般情況下,Android的各種庫是以系統中間件的形式提供的,它們的顯著特點是與移動設備平臺的應用密切相關。另外,Android的運行環境主要是指Dalvik(虛擬機)技術。Dalvik和一般的Java虛擬機(Java VM)是有區別的。

Java虛擬機:執行的是Java標準的字節碼(Bytecode)。在最新的Android 6.0版本中,將使用ART為默認的運行環境,Java虛擬機只是作為一個備選項即將被淘汰。

Dalvik:執行的是Dalvik可執行格式(.dex)中執行文件。在執行的過程中,每一個應用程序即一個進程(Linux的一個Process)。兩者最大的區別在于Java VM是基于棧的虛擬機(Stack-based),而Dalvik是基于寄存器的虛擬機(Register-based)。顯然,后者最大的好處是可以根據硬件實現更大的優化,這更適合移動設備的特點。

1.3.3 Application Framework(應用程序框架)

在整個Android系統中,和應用開發最相關的是Application Framework,在這一層上,Android為應用程序層的開發者提供了各種功能強大的APIs,這實際上是一個應用程序的框架。由于上層的應用程序是以Java構建的。在本層提供了程序中所需要的各種控件,例如:Views(視圖組件),List(列表),Grid(柵格),Text Box(文本框),Button(按鈕),甚至還有一個嵌入式的Web瀏覽器。

一個基本的Android應用程序可以利用應用程序框架中的以下五個部分。

Activity:活動。

Broadcast Intent Receiver:廣播意圖接收者。

Service:服務。

Content Provider:內容提供者。

Intent and Intent Filter:意圖和意圖過濾器。

1.3.4 頂層應用程序(Application)

Android的應用程序主要是用戶界面(User Interface)方面的,本層通常使用Java語言編寫,其中還可以包含各種被放置在“res”目錄中的資源文件。Java程序和相關資源在經過編譯后,會生成一個APK包。Android本身提供了主屏幕(Home)、聯系人(Contact)、電話(Phone)、瀏覽器(Browers)等眾多核心應用。同時應用程序的開發者還可以使用應用程序框架層的API實現自己的程序。這也是Android開源的巨大潛力的體現。

主站蜘蛛池模板: 普安县| 镇原县| 泽库县| 随州市| 格尔木市| 洞头县| 平舆县| 达日县| 中西区| 松滋市| 南漳县| 古田县| 万安县| 宝应县| 三门县| 安康市| 通山县| 遂昌县| 吉隆县| 古田县| 昆明市| 高邮市| 屯昌县| 衡南县| 平昌县| 镇江市| 五华县| 满洲里市| 安多县| 朝阳县| 丁青县| 海淀区| 金堂县| 淳化县| 绩溪县| 巴中市| 保山市| 玛沁县| 玛曲县| 株洲市| 越西县|