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

1.2 掀起Android的蓋頭來

自從Android發(fā)布以來,越來越多的人關(guān)注Android的發(fā)展,越來越多的開發(fā)人員在Android系統(tǒng)平臺上開發(fā)應用,是什么使Android備受青睞,在眾多移動平臺中脫穎而出呢?

1.2.1 選擇Android的理由

與其他手機平臺上的操作系統(tǒng)相比,Android具有如下優(yōu)點:

· 開放性;

· 平等性;

· 無界性;

· 方便性;

· 硬件的豐富性。

下面將對以上各個優(yōu)點進行簡單介紹。

1.開放性

提到Android的優(yōu)勢,首先想到的一定是其真正的開放,其開放性包含底層的操作系統(tǒng)及上層的應用程序等。Google與開放手機聯(lián)盟合作開發(fā)Android的目的就是建立標準化、開放式的移動軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式的生態(tài)系統(tǒng)。

Android的開放性也同樣會使大量的程序開發(fā)人員投入Android程序的開發(fā)中,這將為Android平臺帶來大量新的應用。

2.平等性

在Android的系統(tǒng)上,所有的應用程序完全平等,系統(tǒng)默認自帶的程序與自己開發(fā)的程序沒有任何區(qū)別,程序開發(fā)人員可以開發(fā)個人喜愛的應用程序來替代系統(tǒng)的程序,構(gòu)建個性化的Android手機系統(tǒng),這些功能在其他的手機平臺是沒有的。

在開發(fā)之初,Android平臺就被設(shè)計成由一系列應用程序組成的平臺,所有的應用程序都運行在一個虛擬機上面。該虛擬機提供了系列應用程序之間和硬件資源通信的API。

3.無界性

Android平臺的無界性表現(xiàn)在應用程序之間的無界,開發(fā)人員可以很輕松地將自己開發(fā)的程序與其他應用程序進行交互,如應用程序需要播放聲音的模塊,而正好你的手機中已經(jīng)有一個成熟的音樂播放器,此時就不需要再重復開發(fā)音樂播放功能,只需簡單地加上幾行代碼即可將成熟的音樂播放功能添加到自己的程序中。

4.方便性

在Android平臺中開發(fā)應用程序是非常方便的,如果對Android平臺比較熟悉,想開發(fā)一個功能全面的應用程序并不是什么難事。Android平臺為開發(fā)人員提供了大量的實用庫及方便的工具,同時也將Google Map等強大的功能集成了進來,只需簡單的幾行調(diào)用代碼即可將強大的地圖功能添加到自己的程序中。

5.硬件的豐富性

由于平臺的開放,眾多的硬件制造商推出了各種各樣的產(chǎn)品,但這些產(chǎn)品功能上的差異并不影響數(shù)據(jù)的同步與軟件的兼容,例如,原來在諾基亞手機上的應用程序,可以很輕松地被移植到摩托羅拉手機上使用,且聯(lián)系人、短信息等資料更是可以方便地轉(zhuǎn)移。

1.2.2 Android的應用程序框架

從軟件分層的角度來說,Android平臺由應用程序、應用程序框架、Android運行時庫層及Linux內(nèi)核共4部分構(gòu)成,本節(jié)將分別介紹各層的功能,分層結(jié)構(gòu)如圖1-1所示。

▲圖1-1 Android平臺架構(gòu)圖

1.應用程序?qū)?/p>

本層的所有應用程序都是用Java編寫的,一般情況下,很多應用程序都是在同一系列的核心應用程序包中一起發(fā)布的,主要有撥號程序、瀏覽器、音樂播放器、通訊錄等。該層的程序是完全平等的,開發(fā)人員可以任意將Android自帶的程序替換成自己的應用程序。

2.應用程序框架層

對于開發(fā)人員來說,接觸最多的就是應用程序框架層。該應用程序的框架設(shè)計簡化了組件的重用,其中任何一個應用程序都可以發(fā)布自身的功能供其他應用程序調(diào)用,這也使用戶可以很方便地替換程序的組件而不影響其他模塊的使用。當然,這種替換需要遵循框架的安全性限制。

該層主要包含以下9部分,如圖1-2所示。

▲圖1-2 應用程序框架

· 活動管理(Activity Manager)。用來管理程序的生命周期,以及提供最常用的導航回退功能。

· 窗口管理(Window Manager)。用來管理所有的應用程序窗口。

· 內(nèi)容供應商(Content Providers)。通過內(nèi)容供應商,可以使一個應用程序訪問另一個應用程序的數(shù)據(jù),或者共享數(shù)據(jù)。

· 視圖系統(tǒng)(View System)。用來構(gòu)建應用程序的基本組件,包括列表、網(wǎng)格、按鈕、文本框,甚至是可嵌入的Web瀏覽器。

· 包管理(Package Manager)。用來管理Android系統(tǒng)內(nèi)的程序。

· 電話管理(Telephony Manager)。所有的移動設(shè)備的功能統(tǒng)一歸電話管理器管理。

· 資源管理(Resource Manager)。資源管理器可以為應用程序提供所需要的資源,包括圖片、文本、聲音、本地字符串,甚至是布局文件。

· 位置管理(Location Manager)。該管理器是用來提供位置服務的,如GPRS定位等。

· 通知管理(Notification Manager)。主要是對手機頂部狀態(tài)欄的管理,開發(fā)人員在開發(fā)Android程序時會經(jīng)常使用,如來短信提示、電量低提示,還有后臺運行程序的提示等。

3.Android運行時庫

該層包含兩部分,程序庫及Android運行時庫。

程序庫為一些C/C++庫,這些庫能夠被Android系統(tǒng)中不同的應用程序調(diào)用,并通過應用程序框架為開發(fā)者提供服務。而Android運行時庫包含了Java編程語言核心庫的大部分功能,提供了程序運行時所需調(diào)用的功能函數(shù)。

程序庫主要包含的功能庫如圖1-3所示。

▲圖1-3 程序庫框架

· libc。是一個從BSD繼承來的標準C系統(tǒng)函數(shù)庫,專門針對移動設(shè)備優(yōu)化過的。

· Media Framework。基于PacketVideo公司的OpenCORE。支持多種常用音頻、視頻格式回放和錄制,并支持多種圖像文件,如MPEG-4、H.264、MP3、AAC、AMR、JPG、PNG等。

· Surface Manager。Surface Manager主要管理多個應用程序同時執(zhí)行時,各個程序之間的顯示與存取,并且為多個應用程序提供了2D和3D圖層無縫的融合。

· SQLite。所有應用程序都可以使用的輕量級關(guān)系型數(shù)據(jù)庫引擎。

· WebKit。是一套最新的網(wǎng)頁瀏覽器引擎。同時支持Android瀏覽器和一個可嵌入的Web視圖。

· OpenGLIES。是基于OpenGL ES 1.0 API標準來實現(xiàn)的3D繪制函數(shù)庫。該函數(shù)庫支持軟件和硬件兩種加速方式執(zhí)行。

· FreeType。提供位圖(bitmap)和矢量圖(vector)兩種字體顯示。

· SGL。提供了2D圖形繪制的引擎。

Android運行時庫包括核心庫及Dalivik虛擬機,如圖1-4所示。

▲圖1-4 Android運行時庫

· 核心庫(Core Libraries)。該核心庫包括Java語言所需要的基本函數(shù)及Android的核心庫。與標準Java不一樣的是,系統(tǒng)為每個Android的應用程序提供了單獨的Dalvik虛擬機來執(zhí)行,即每個應用程序擁有自己單獨的線程。

· Dalvik虛擬機(Dalvik Virtual Machine)。大多數(shù)的虛擬機(包括JVM)都是基于棧的,而Dalvik虛擬機則是基于寄存器的,它可以支持已轉(zhuǎn)換為.dex格式的Java應用程序的運行。.dex格式是專門為Dalvik虛擬機設(shè)計的,更適合內(nèi)存和處理器速度有限的系統(tǒng)。

4.Linux內(nèi)核

Android平臺中操作系統(tǒng)采用的是Linux 2.6內(nèi)核,其安全性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型等基本依賴于Linux。對于程序開發(fā)人員,該層為軟件與硬件之間增加了一層抽象層,使開發(fā)過程中不必時時考慮底層硬件的細節(jié)。而對于手機開發(fā)商而言,對此層進行相應的修改即可將Android平臺運行到自己的硬件平臺之上。

主站蜘蛛池模板: 柳州市| 乌拉特中旗| 广水市| 永吉县| 鄂托克旗| 缙云县| 怀安县| 故城县| 新巴尔虎左旗| 旬邑县| 错那县| 茂名市| 潮州市| 东源县| 姚安县| 文安县| 穆棱市| 江门市| 从江县| 读书| 鸡东县| 无棣县| 三亚市| 丹巴县| 大化| 清苑县| 任丘市| 同德县| 三亚市| 潍坊市| 南汇区| 青浦区| 灵丘县| 城固县| 新乡市| 顺义区| 洛宁县| 四会市| 阿合奇县| 易门县| 嵊州市|