Android系統介紹與框架

一、Andriod是什麼?

Android系統是Google開發的一款開源移動OSAndroid中文名被國內用戶俗稱安卓Android操作系統基於Linux內核設計,使用了Google公司自己開發的Dalvik Java虛擬機。Android操作系統已經成爲全球最大的智能手機操作系統。

1)、開放性

Android完全開源,且該平臺從底層操作系統到上層的用戶界面和應用程序都不存在任何阻礙產業創新的專有權障礙。同時開源的最大好處是,使得Android平臺會擁有越來越壯大的開發者隊伍,並且隨着用戶與應用的日益豐富,必然會使得Android這個嶄新的平臺走向成熟與穩定。

2)、廠商支持

Android陣營

HTC、三星、摩托羅拉、LG、索愛、華碩、宏碁、華爲、中興、夏普、聯想、魅族等數百家巨頭推出了基於Android操作系統的智能手機或平板電腦。

Symbian陣營

目前僅有諾基亞一家支持,主要有N系列,E系列和X系列的手機。

iOS陣營

僅有蘋果公司一家支持,主要有iPhoneiPad

WebOS陣營

僅有RIM黑莓公司一家支持

類似Android陣營的還有Windows Phone 7,但由於WP7並不是開源系統很多廠商沒有機會參與,僅有幾個手機製造商支持,同時沒有相對應的平板電腦操作系統,Android123作爲多年資深移動開發者,通過SDK對比,Windows Phone 7  Android有很大的差距,從目前微軟的戰略和封閉的API,可以說很難和Android抗衡。

3)、Dalvik虛擬機

Dalvik虛擬機是Google開發的一款Java VM,相對於Sun VM來說對文件作了優化,比如將多個class文件合併爲一個dex文件,Android應用程序主要由Java語言開發,但Google提供了系統級別的Java API,這和非智能手機支持的Sun J2ME Java VM有很大的不同,我們可以看到Android軟件可以支持來電防火牆顯示歸屬地這樣的底層應用,這些是Windows Phone 7  iPhone所不具備的。

4)、多元化

目前Android系統除了應用在智能手機外,還有平板電腦以及智能電視,目前摩托羅拉、三星、LGHTC、宏碁、華碩等公司均推出了平板電腦,同時國內的創維、TCL等廠商已經推出了Android智能電視,最終將會有更多的智能家電、機頂盒、車載電子設備的出現。

5)、應用程序間的無界限

Android打破了應用程序間的界限,開發人員可以將在自己開發的程序與本地的聯繫人、日曆、位置信息等很好的聯繫起來。此外,應用程序可以自申明其功能可以被其他應用程序所使用。

6)、緊密結合Google應用

全球最大的在線搜索服務商Google在過去的10年中,已經逐漸的滲透進人們的日常生活中了。人們不再僅僅滿足於使用電腦終端來享受諸如Gamil、谷歌地圖、在線翻譯等在線服務,PC到移動終端的延伸成了一種必然的趨勢。而Android與Google服務的無縫集成,則可以十足的滿足人們的願望。

二、Android框架

 

從上圖中可以看出,Android系統架構爲四層結構,從上層到下層分別是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層,分別介紹如下:

1應用程序層

Android平臺不僅僅是操作系統,也包含了許多應用程序,諸如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等應用程序。這些應用程序都是 用Java語言編寫的,並且這些應用程序都是可以被開發人員開發的其他應用程序所替換,這點不同於其他手機操作系統固化在系統內部的系統軟件,更加靈活和個 性化。

2應用程序框架層

應用程序框架層是我們從事Android開發的基礎,很多核心應用程序也是通過這一層來實現其核心功能的,該層簡化了組件的重用,開發人員可以直接使用其提供的組件來進行快速的應用程序開發,也可以通過繼承而實現個性化的拓展。

aActivity Manager(活動管理器)

管理各個應用程序生命週期以及通常的導航回退功能

bWindow Manager(窗口管理器)

管理所有的窗口程序

cContent Provider(內容提供器)

使得不同應用程序之間存取或者分享數據

dView System(視圖系統)

構建應用程序的基本組件

eNotificationManager(通告管理器)

使得應用程序可以在狀態欄中顯示自定義的提示信息

fPackage Manager(包管理器)

Android系統內的程序管理

gTelephonyManager(電話管理器)

管理所有的移動設備功能

hResource Manager(資源管理器)

提供應用程序使用的各種非代碼資源,如本地化字符串、圖片、佈局文件、顏色文件等

iLocationManager(位置管理器)

提供位置服務

jXMPP Service(XMPP服務)

提供GoogleTalk服務

3系統運行庫層

從圖中可以看出,系統運行庫層可以分成兩部分,分別是系統庫和Android運行時,分別介紹如下:

a系統庫

系統庫是應用程序框架的支撐,是連接應用程序框架層與Linux內核層的重要紐帶。其主要分爲如下幾個:

Surface Manager

執行多個應用程序時候,負責管理顯示與存取操作間的互動,另外也負責2D繪圖與3D繪圖進行顯示合成。

Media Framework

多媒體庫,基於PacketVideo OpenCore;支持多種常用的音頻、視頻格式錄製和回放,編碼格式包括MPEG4、MP3、H.264、AAC、ARM。

SQLite:

小型的關係型數據庫引擎

OpenGL|ES

根據OpenGLES 1.0API標準實現的3D繪圖函數庫

FreeType

提供點陣字與向量字的描繪與顯示

WebKit

一套網頁瀏覽器的軟件引擎

SGL

底層的2D圖形渲染引擎

SSL

在Andorid上通信過程中實現握手

Libc

從BSD繼承來的標準C系統函數庫,專門爲基於embedded linux的設備定製

bAndroid運行時

Android應用程序時採用Java語言編寫,程序在Android運行時中執行,其運行時分爲核心庫和Dalvik虛擬機兩部分。

核心庫

核心庫提供了Java語言API中的大多數功能,同時也包含了Android的一些核心API,如android.os、android.net、android.media等等。

Dalvik虛擬機

Android程序不同於J2me程序,每個Android應用程序都有一個專有的進程,並且不是多個程序運行在一個虛擬機中,而是每個Android程序都有一個Dalivik虛擬機的實例,並在該實例中執行。Dalvik虛擬機是一種基於寄存器的Java虛擬機,而不是傳統的基於棧的虛擬機,並進行了內存資源使用的優化 以及支持多個虛擬機的特點。需要注意的是,不同於J2me,Android程序在虛擬機中執行的並非編譯後的字節碼,而是通過轉換工具dx將Java字節碼轉成dex格 式的中間碼。

4Linux內核層

Android是基於Linux2.6內核,其核心繫統服務如安全性、內存管理、進程管理、網路協議以及驅動模型都依賴於Linux內核。

5)特別的Apps

在圖中有些基於Dalvik虛擬機的Apps看起來像是Android的一部分,其實是由Google提供,這些應用包括Dialer、Contact、Calendar、Gmail和Chat等。它們中的絕大部分是開源並可複用的。只有少部分例外,比如Google Maps和Android Market.

發佈了32 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章