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

1.1 Android簡介

Android一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動開發(fā)軟件。

1.1.1 Android起源

Android本是一家公司的名稱,這家公司的創(chuàng)始人名叫Andy Rubin。Andy Rubin創(chuàng)立了兩個手機操作系統(tǒng)公司:Danger和Android。Danger以5億美元賣給微軟,成為了今天的Kin,Android以4千萬美元賣給Google。Android作為Google企業(yè)戰(zhàn)略的重要組成部分,將進一步推進“隨時隨地為每個人提供信息”這一企業(yè)目標的實現(xiàn)。全球為數(shù)眾多的移動電話用戶正在使用各種基于Android的電話。谷歌的目標是讓移動通信不依賴于設(shè)備甚至平臺。出于這個目的,Android將被補充,而不會替代谷歌長期以來奉行的移動發(fā)展戰(zhàn)略:通過與全球各地的手機制造商和移動運營商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動服務(wù),并推廣這些產(chǎn)品。

Android手機就是使用Android操作系統(tǒng)或OMS操作系統(tǒng)的手機,2008年9月22日,美國運營商T-Mobile在紐約正式發(fā)布第一款Android手機——T-Mobile G1,如圖1-1所示。該款手機為臺灣宏達電代工制造,是世界上第一部使用Android操作系統(tǒng)的手機,支持WCDMA/HSPA網(wǎng)絡(luò),理論下載速率7.2Mbps,并支持Wi-Fi。2009年9月初,摩托羅拉坐鎮(zhèn)主場在舊金山舉辦的Giga OM 2009大會上攜手T-Mobile正式發(fā)布了旗下首款搭載Android操作系統(tǒng)的智能手機——MOTO CLIQ(見圖1-2),使其在沉寂許久后的首次爆發(fā)吸引了全球無數(shù)用戶的目光。如果說T-Mobile G1的出世開辟了Android領(lǐng)域先河的話,那么摩托羅拉CLIQ的發(fā)布則更多地被視為昔日手機霸主的強勢回歸!2009 年10 月28 日摩托羅拉和網(wǎng)絡(luò)運營商Verizon共同宣布了首款采用Android 2.0的手機Droid。2010年1月索尼愛立信首款Android機型X10上市。2010年1月7日,Google在其美國總部正式向外界發(fā)布了旗下首款合作品牌手機Nexus One(HTC G5),并同時開始對外發(fā)售。2010年7月9日,美國NDP集團調(diào)查顯示,Android系統(tǒng)已占據(jù)了美國移動系統(tǒng)市場28%的份額。我們相信未來將有越來越多的Android手機握在消費者的手中。

圖1-1 第一款Google手機T-Mobile G1

圖1-2 MOTO CLIQ

1.1.2 Android的優(yōu)點

目前市場上的手機操作系統(tǒng)除了Android,還有Symbian、iPhone等,與這些手機系統(tǒng)相比,Android具有如下的優(yōu)點:

第一,真正開放性。Android是一個真正意義上的開放性移動開發(fā)平臺,它同時包含底層操作系統(tǒng)以及上層的用戶界面和應(yīng)用程序——移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。Google與OHA合作開發(fā)Android,目的就是通過與運營商、設(shè)備廠商、開發(fā)商等結(jié)成深層次的合作伙伴關(guān)系,來建立標準化、開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式的生態(tài)系統(tǒng),這樣應(yīng)用程序之間的通用性和互聯(lián)性將在最大程度上得到保持。另一方面,Android平臺的開放性還體現(xiàn)在不同的廠商可以根據(jù)自己的需求對平臺進行定制和擴展,以及使用這個平臺無須任何授權(quán)許可費用等。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的收益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。

第二,應(yīng)用程序相互平等。所有的Android應(yīng)用程序之間是完全平等的,所有的應(yīng)用程序都運行在一個核心引擎上面,這個核心引擎就是一個虛擬機,它提供了一系列用于應(yīng)用程序和硬件資源間通信的API。拋開這個核心引擎,Android所有其他的東西,包括系統(tǒng)的核心應(yīng)用和第三方應(yīng)用都是完全平等的。

第三,應(yīng)用程序之間溝通無界限。在Android平臺下開發(fā)應(yīng)用程序,能方便實現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享,只需要經(jīng)過簡單的聲明或操作,應(yīng)用程序即可訪問或調(diào)用其他應(yīng)用程序的功能,或者將自己的部分數(shù)據(jù)和功能提供給其他應(yīng)用程序使用。

第四,快速方便的應(yīng)用程序開發(fā)。Android平臺為開發(fā)人員提供了大量的實用庫和工具,開發(fā)人員可以快速創(chuàng)建自己的應(yīng)用程序。如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)走過10年,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。

1.1.3 Android的系統(tǒng)架構(gòu)

Android是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),采用了軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為四部分,如圖1-3所示。第一層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供由操作系統(tǒng)內(nèi)核管理的底層基本功能;第二層為中間件層,包括函數(shù)庫Library和虛擬機Virtual Machine,由C++開發(fā);第三層為應(yīng)用程序框架層,提供了Android平臺基本的管理功能和組件重用機制;第四層為應(yīng)用程序?qū)樱峁┝艘幌盗泻诵膽?yīng)用程序,包括通話程序、短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。

圖1-3 Android體系結(jié)構(gòu)圖

Linux Kernel Android基于Linux 2.6提供核心系統(tǒng)服務(wù),例如:安全、內(nèi)存管理、進程管理、網(wǎng)絡(luò)堆棧、驅(qū)動模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務(wù)。

Android Runtime Android包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個Android應(yīng)用程序都是Dalvik虛擬機中的實例,運行在它們自己的進程中。Dalvik虛擬機設(shè)計成一個設(shè)備可以高效地運行多個虛擬機。Dalvik虛擬機可執(zhí)行的文件格式是.dex,dex格式是專為Dalvik設(shè)計的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。大多數(shù)虛擬機包括JVM都是基于棧的,而Dalvik虛擬機則是基于寄存器的。兩種架構(gòu)各有優(yōu)劣,一般而言,基于棧的機器需要更多指令,而基于寄存器的機器指令更大。dx是一套工具,可以將Java .class轉(zhuǎn)換成 .dex格式的工具。一個dex文件通常會有多個.class。由于dex有時必須進行最佳化,會使文件大小增加1~4倍,以O(shè)DEX結(jié)尾。Dalvik虛擬機依賴于Linux內(nèi)核提供基本功能,如線程和底層內(nèi)存管理。

Libraries Android包含一個C/C++庫的集合,供Android系統(tǒng)的各個組件使用。這些功能通過Android的應(yīng)用程序框架(Application Framework)暴露給開發(fā)者。下面列出一些核心庫:

系統(tǒng)C庫——標準C系統(tǒng)庫(libc)的BSD衍生,調(diào)整為基于嵌入式Linux設(shè)備。

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

界面管理——管理訪問顯示子系統(tǒng)和無縫組合多個應(yīng)用程序的二維和三維圖形層。

LibWebCore——新式的Web瀏覽器引擎,驅(qū)動Android瀏覽器和內(nèi)嵌的Web視圖。

SGL——基本的2D圖形引擎。

3D庫——基于OpenGL ES 1.0 APIs的實現(xiàn)。庫使用硬件3D加速或包含高度優(yōu)化的3D軟件光柵。

FreeType ——位圖和矢量字體渲染。

SQLite ——所有應(yīng)用程序都可以使用的強大而輕量級的關(guān)系數(shù)據(jù)庫引擎。

Application Framework通過提供開放的開發(fā)平臺,Android使開發(fā)者能夠編制極其豐富和新穎的應(yīng)用程序。開發(fā)者可以自由地利用設(shè)備硬件優(yōu)勢、訪問位置信息、運行后臺服務(wù)、設(shè)置鬧鐘、向狀態(tài)欄添加通知等。開發(fā)者可以完全使用核心應(yīng)用程序所使用的框架APIs。應(yīng)用程序的體系結(jié)構(gòu)旨在簡化組件的重用,任何應(yīng)用程序都能發(fā)布它的功能且任何其他應(yīng)用程序都可以使用這些功能(需要服從框架執(zhí)行的安全限制)。這一機制允許用戶替換組件。所有的應(yīng)用程序其實是一組服務(wù)和系統(tǒng),包括:

視圖(View)——豐富的、可擴展的視圖集合,可用于構(gòu)建一個應(yīng)用程序。包括列表、網(wǎng)格、文本框、按鈕,甚至是內(nèi)嵌的網(wǎng)頁瀏覽器。

內(nèi)容提供者(Content Providers)——使應(yīng)用程序能訪問其他應(yīng)用程序(如通訊錄)的數(shù)據(jù),或共享自己的數(shù)據(jù)。

資源管理器(Resource Manager)——提供訪問非代碼資源,如本地化字符串、圖形和布局文件。

通知管理器(Notification Manager)——使所有的應(yīng)用程序能夠在狀態(tài)欄顯示自定義警告。

活動管理器(Activity Manager)——管理應(yīng)用程序生命周期,提供通用的導航回退功能。

Applications Android裝配一個核心應(yīng)用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯(lián)系人和其他設(shè)置。所有應(yīng)用程序都是用Java編程語言寫的。

在本節(jié)中,我們簡單介紹了Android的起源、Android的優(yōu)點和Android的體系架構(gòu)。從技術(shù)層面來講,Android最震撼人心之處在于其開放性和服務(wù)免費。Android是對第三方軟件完全開放的平臺,開發(fā)者在為其開發(fā)程序時擁有更大的自由度,突破了iPhone等只能添加為數(shù)不多的固定軟件的束縛。而且與Windows Mobile、Symbian等廠商不同,Android操作系統(tǒng)可以免費使用。

主站蜘蛛池模板: 博客| 静安区| 新建县| 彭州市| 武威市| 长岭县| 肥城市| 平果县| 绥阳县| 昂仁县| 华池县| 新兴县| 钟祥市| 舟山市| 红桥区| 东光县| 布尔津县| 张家川| 巴青县| 那曲县| 温州市| 台东市| 靖边县| 南靖县| 海丰县| 丰镇市| 彝良县| 庐江县| 工布江达县| 汝南县| 正蓝旗| 通化县| 疏附县| 托克托县| 祁门县| 潜江市| 理塘县| 高尔夫| 抚宁县| 永仁县| 张家口市|