2011年9月6日 星期二

android 核心模組


在這篇文章中將會具體針對Android核心模組的相關概念進行詳細介紹。 

Androidg
是一個移動設備的系統平台,其軟體層次結構包括了一個作業系統(OS),中間層(MiddleWare)和應用程式(Application)。 

根據Android的軟體框架,其Android核心模組結構自下而上分為以下幾個層次: 

第一、作業系統層(OS 

第二、各種函式庫(Libraries)和Android 運行環境(RunTime 

第三、應用程式框架(Application Framework 

第四、應用程式(Application 

以下分別介紹Andoid各個層次的軟體的重點及其相關技術: 

Android
核心模塊之作業系統層(OS 

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

顯示驅動(Display Driver):常用基於Linux的圖像緩衝(Frame Buffer)驅動。 

Flash
內存驅動(Flash Memory Driver 

照相機驅動(Camera Driver):常用基於Linuxv4lVideo for Linux)驅動。 

音頻驅動(Audio Driver):常用基於ALSAAdvanced Linux Sound Architecture,高級Linux聲音)驅動。 

WiFi
驅動(Camera Driver):基於IEEE 802.11標準的驅動程式 

鍵盤驅動(KeyBoard Driver 

藍牙驅動(Bluetooth Driver 

Binder IPC
驅動: Andoid一個特殊的驅動程式,具有單獨的設備節點,提供程式之間通訊的功能。 

Power Management
(能源管理) 

Android
核心模組之各種函式庫(Libraries)和Android 運行環境(RunTime 

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

在其中,各種庫包括: 

C
程式庫:C語言的標準程式庫,這也是系統中一個最為底層的程式庫,C程式庫是通過Linux的系統調用來實現。 多媒體框架(MediaFrameword):這部分內容是Android多媒體的核心部分,基於PacketVideo(即PV)的OpenCORE,從功能上本程式庫一共分為兩大部分,一個部分是聲音、影像的回放(PlayBack),另一部分是則是聲音影像的紀錄(Recorder)。 
SGL
2D圖像引擎。 

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

OpenGL ES 1.0
:本部分提供了對3D的支持。 

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

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

WebKit
:網路瀏覽器的核心 

FreeType
是一個用C語言實現的字型光柵化引擎製作的的一個函式庫。它可以用來將字元柵格化並對映成點陣圖以及提供其他字體相關業務的支援。

Android
的各種程式庫一般是以系統中間件的形式提供的,它們均有的一個顯著特點就是與移動設備的平台的應用密切相關。 

Android
運行環境主要指的虛擬機技術——Dalvik Dalvik虛擬機和一般JAVA虛擬機(Java VM)不同,它執行的不是JAVA標準的字節碼(bytecode )而是Dalvik可執行格式(.dex)中執行文件。在執行的過程中,每一個應用程式即一個進程(Linux的一個Process)。二者最大的區別在於Java VM是以基於棧的虛擬機(Stack-based),而Dalvik是基於寄存器的虛擬機(Register-based)。顯然,後者最大的好處在於可以根據硬件實現更大的優化,這更適合移動設備的特點。 

Android
核心模組之應用程式框架(Application Framework 

Android
的應用程式框架為應用程式層的開發者提供APIs,它實際上是一個應用程式的框架。由於上層的應用程式是以JAVA構建的,因此本層次提供的首先包含了UI程式中所需要的各種控件: 
例如: Views (視圖組件)包括lists(列表), grids(柵格), text boxes(文本框), buttons(按鈕)等。甚至一個嵌入式的Web瀏覽器。 

一個Andoid的應用程式可以利用應用程式框架中的以下幾個部分: 

Activity
(活動) 

Broadcast Intent Receiver
(廣播意圖接收者) 

Service
(服務) 

Content Provider
(內容提供者) 

Android
核心模塊之應用程式(Application 

Android
的應用程式主要是用戶界面(User Interface)方面的,通常以JAVA程式編寫,其中還可以包含各種資源文件(放置在res目錄中)JAVA程式及相關資源經過編譯後,將生成一個APKAndroid本身提供了主螢幕(Home),聯絡人(Contact),電話(Phone),瀏覽器(Browers)等眾多的核心應用。同時應用程式的開發者還可以使用應用程式框架層的API實現自己的程式。這也是Android開放原始碼的巨大潛力的表現。

沒有留言:

張貼留言