Android系統(tǒng)架構(gòu)-文檔資料_第1頁(yè)
Android系統(tǒng)架構(gòu)-文檔資料_第2頁(yè)
Android系統(tǒng)架構(gòu)-文檔資料_第3頁(yè)
Android系統(tǒng)架構(gòu)-文檔資料_第4頁(yè)
Android系統(tǒng)架構(gòu)-文檔資料_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1Android系統(tǒng)架構(gòu)2目錄1.關(guān)于A(yíng)ndroid2.Android系統(tǒng)的優(yōu)勢(shì)3.Android的系統(tǒng)架構(gòu)4.Android系統(tǒng)的四大組件5.Android的系統(tǒng)包31.關(guān)于A(yíng)ndroid 2007年11月5日谷歌公司宣布與其他一些手機(jī)制造廠(chǎng)商、移動(dòng)運(yùn)營(yíng)商、芯片制造商等廠(chǎng)商聯(lián)合組成開(kāi)發(fā)手機(jī)聯(lián)盟(Open Handset Alliance,OHA),并發(fā)布了基于Linux內(nèi)核的開(kāi)源的手機(jī)開(kāi)發(fā)平臺(tái)Android,Android不僅僅是一款手機(jī)操作系統(tǒng),而更像是一個(gè)對(duì)任何開(kāi)發(fā)人員開(kāi)放的移動(dòng)終端開(kāi)發(fā)平臺(tái)。該平臺(tái)是由操作系統(tǒng)、中間件、用戶(hù)界面以及應(yīng)用程序組成,并且對(duì)外開(kāi)放源代碼,一經(jīng)推出便引起世界各地

2、開(kāi)源愛(ài)好者的關(guān)注。同時(shí),谷歌與各大廠(chǎng)商的大力合作也大大的促進(jìn)了Android新的手機(jī)的業(yè)務(wù)的不斷推出,同時(shí)也使得Android更加的標(biāo)準(zhǔn)。41.關(guān)于A(yíng)ndroid 第一款搭載Android操作系統(tǒng)的手機(jī)應(yīng)該是T-mobile G1手機(jī)了,該款手機(jī)是2008年9月22日由美國(guó)移動(dòng)運(yùn)營(yíng)商T-mobile USA在紐約發(fā)布的,該款手機(jī)由臺(tái)灣宏達(dá)電子HTC制造,支持WCDMA/HSPA網(wǎng)絡(luò),理論下載速率到達(dá)7.2Mbit/s,并支持Wi-Fi功能。 Android用甜點(diǎn)作為它們系統(tǒng)版本的代號(hào)的命名方法開(kāi)始于 Android 1.5 發(fā)布的時(shí)候。作為每個(gè)版本代表的甜點(diǎn)的尺寸越變?cè)酱?,然后按?6個(gè)字母數(shù)

3、序:51.關(guān)于A(yíng)ndroid紙杯蛋糕Android1.5-upcake甜甜圈Android1.6Donut松餅Android2.0Eclair凍酸奶Android2.2Froyo姜餅Android2.3Gingerbread蜂巢Android3.0,3.1,3.2Honeycomb冰激凌三明治Android4.0Ice Cream Sandwich根據(jù)最新消息新一代Android版本將命名為果凍豆(Android5.0-Jelly Bean)2009 . 52009.9 2009.10 2010.1 2010.12 2011.5 2011.1062.Android系統(tǒng)的優(yōu)勢(shì)72.Android

4、系統(tǒng)的優(yōu)勢(shì)(1)良好的開(kāi)放性平臺(tái)lAndroid系統(tǒng)最震撼人心之處在于它的開(kāi)放性和服務(wù)免費(fèi)。對(duì)第三方軟件完全開(kāi)放的平臺(tái),開(kāi)發(fā)者在為其開(kāi)發(fā)程序時(shí)擁有更大的自由度,突破了iphone等只能添加為數(shù)不多的固定軟件的枷鎖。l開(kāi)放的海量市場(chǎng)網(wǎng)站下載:安卓網(wǎng),機(jī)峰網(wǎng),91助手等支持所有.apk文件82.Android系統(tǒng)的優(yōu)勢(shì)(2)個(gè)性化界面設(shè)置多種插件,快捷方式和文件夾,打造個(gè)性化的屏幕以滿(mǎn)足個(gè)性需求。 輕松添加,得心應(yīng)手,您可以隨意更新排列主屏幕項(xiàng)目92.Android系統(tǒng)的優(yōu)勢(shì)(3)與google應(yīng)用的無(wú)縫結(jié)合l由于android系統(tǒng)是由google主導(dǎo)研發(fā)的,因此android操作系統(tǒng)手機(jī) 將無(wú)縫

5、結(jié)合這些優(yōu)秀的Google互聯(lián)服務(wù),如大家熟知的Google Map,Google Search,Gmail等,在手機(jī)上都可以使用。l支持google全方位服務(wù),豐富最新的網(wǎng)絡(luò)體驗(yàn)。103.Android的系統(tǒng)架構(gòu)113.Android的系統(tǒng)架構(gòu) 從上圖中可以看出,Android系統(tǒng)架構(gòu)為四層結(jié)構(gòu),從上層到下層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層以及Linux內(nèi)核層,分別介紹如下: 1)應(yīng)用程序?qū)討?yīng)用程序?qū)?Android平臺(tái)不僅僅是操作系統(tǒng),也包含了許多應(yīng)用程序,諸如SMS短信客戶(hù)端程序、電話(huà)撥號(hào)程序、圖片瀏覽器、Web瀏覽器等應(yīng)用程序。這些應(yīng)用程序都是用Java語(yǔ)言編寫(xiě)的,并且這

6、些應(yīng)用程序都是可以被開(kāi)發(fā)人員開(kāi)發(fā)的其他應(yīng)用程序所替換,這點(diǎn)不同于其他手機(jī)操作系統(tǒng)固化在系統(tǒng)內(nèi)部的系統(tǒng)軟件,更加靈活和個(gè)性化。123.Android的系統(tǒng)架構(gòu)2)應(yīng)用程序框架層應(yīng)用程序框架層 應(yīng)用程序框架層是我們從事Android開(kāi)發(fā)的基礎(chǔ),很多核心應(yīng)用程序也是通過(guò)這一層來(lái)實(shí)現(xiàn)其核心功能的,該層簡(jiǎn)化了組件的重用,開(kāi)發(fā)人員可以直接使用其提供的組件來(lái)進(jìn)行快速的應(yīng)用程序開(kāi)發(fā),也可以通過(guò)繼承而實(shí)現(xiàn)個(gè)性化的拓展。 a) Activity Manager(活動(dòng)管理器) 管理各個(gè)應(yīng)用程序生命周期以及通常的導(dǎo)航回退功能b) Window Manager(窗口管理器)管理所有的窗口程序c) Content Pro

7、vider(內(nèi)容提供器)使不同應(yīng)用程序之間存取或者分享數(shù)據(jù)133.Android的系統(tǒng)架構(gòu)d) View System(視圖系統(tǒng))構(gòu)建應(yīng)用程序的基本組件e) Notification Manager(通告管理器)使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息f) Package Manager(包管理器)Android系統(tǒng)內(nèi)的程序管理g)Telephony Manager(電話(huà)管理器)管理所有的移動(dòng)設(shè)備功能h)Resource Manager(資源管理器)提供應(yīng)用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等143.Android的系統(tǒng)架構(gòu)i)Location Manag

8、er(位置管理器)提供位置服務(wù)j)XMPP Service(XMPP服務(wù))提供Google Talk服務(wù)3)系統(tǒng)運(yùn)行庫(kù)層系統(tǒng)運(yùn)行庫(kù)層 從圖中可以看出,系統(tǒng)運(yùn)行庫(kù)層可以分成兩部分,分別是系統(tǒng)庫(kù)和Android運(yùn)行時(shí),分別介紹如下:a a)系統(tǒng)庫(kù))系統(tǒng)庫(kù)系統(tǒng)庫(kù)是應(yīng)用程序框架的支撐,是連接應(yīng)用程序框架層與Linux內(nèi)核層的重要紐帶。其主要分為如下幾個(gè):153.Android的系統(tǒng)架構(gòu)u Surface Manager:執(zhí)行多個(gè)應(yīng)用程序時(shí)候,負(fù)責(zé)管理顯示與存取操作間的互動(dòng),另外也負(fù)責(zé)2D繪圖與3D繪圖進(jìn)行顯示合成。u Media Framework: 多媒體庫(kù),基于PacketVideo OpenCo

9、re;支持多種常用的音頻、視頻格式錄制和回放,編碼格式包括MPEG4、MP3、H.264、AAC、ARM。u SQLite:小型的關(guān)系型數(shù)據(jù)庫(kù)引擎u OpenGL|ES:根據(jù)OpenGL ES 1.0API標(biāo)準(zhǔn)實(shí)現(xiàn)的3D繪圖函數(shù)庫(kù)163.Android的系統(tǒng)架構(gòu)u FreeType:提供點(diǎn)陣字與向量字的描繪與顯示uWebKit:一套網(wǎng)頁(yè)瀏覽器的軟件引擎uSGL:底層的2D圖形渲染引擎uSSL:在A(yíng)ndroid上通信過(guò)程中實(shí)現(xiàn)握手u Libc:從BSD繼承來(lái)的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù),專(zhuān)門(mén)為基于embedded linux的設(shè)備定制173.Android的系統(tǒng)架構(gòu)b b)Android runtimeA

10、ndroid runtime Android應(yīng)用程序采用Java語(yǔ)言編寫(xiě),程序在A(yíng)ndroid runtime中執(zhí)行,其運(yùn)行時(shí)分為核心庫(kù)和Dalvik虛擬機(jī)兩部分。u核心庫(kù)核心庫(kù)提供了Java語(yǔ)言API中的大多數(shù)功能,同時(shí)也包含了Android的一些核心API,如android.os、android.media等等。uDalvik虛擬機(jī)Android程序不同于J2me程序,每個(gè)Android應(yīng)用程序都有一個(gè)專(zhuān)有的進(jìn)程,并且不是多個(gè)程序運(yùn)行在一個(gè)虛擬機(jī)中,而是每個(gè)Android程序都有一個(gè)Dalvik虛擬機(jī)的實(shí)例,并在該實(shí)例183.Android的系統(tǒng)架構(gòu) 中執(zhí)行。Dalvik虛擬機(jī)是一種基于寄

11、存器的Java虛擬機(jī),而不是傳統(tǒng)的基于棧的虛擬機(jī),并進(jìn)行了內(nèi)存資源使用的優(yōu)化以及支持多個(gè)虛擬機(jī)的特點(diǎn)。需要注意的是,不同于J2me,Android程序在虛擬機(jī)中執(zhí)行的并非編譯后的字節(jié)碼,而是通過(guò)轉(zhuǎn)換工具dx將Java字節(jié)碼轉(zhuǎn)成dex格式的中間碼。4)LinuxLinux內(nèi)核層內(nèi)核層 Android是基于Linux2.6內(nèi)核,其核心系統(tǒng)服務(wù)如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)路協(xié)議以及驅(qū)動(dòng)模型都依賴(lài)于Linux內(nèi)核。194.Android系統(tǒng)的四大組件 在A(yíng)ndroid中,一個(gè)應(yīng)用程序可以使用其它應(yīng)用程序的組件,這是Android系統(tǒng)一個(gè)非常重要的特性。在需要的時(shí)候Android會(huì)啟動(dòng)另外一個(gè)程序的

12、部分代碼,這部分代碼實(shí)現(xiàn)了你請(qǐng)求執(zhí)行的動(dòng)作的功能,而不是在你的應(yīng)用程序中直接包含另外一個(gè)應(yīng)用程序的代碼。為了實(shí)現(xiàn)這樣的功能,Android系統(tǒng)必須能夠在其它應(yīng)用程序有請(qǐng)求的時(shí)候啟動(dòng)一個(gè)應(yīng)用程序進(jìn)程并實(shí)例化部分java對(duì)象。因此,Android應(yīng)用程序包含一些運(yùn)行應(yīng)用程序所必須的能夠被Android系統(tǒng)實(shí)例化的組件。這些組件主要包括以下四種類(lèi)型:204.Android系統(tǒng)的四大組件1)Activity 一個(gè)Activity通常展現(xiàn)為一個(gè)可視化的用戶(hù)界面。每個(gè)Activity都會(huì)有一個(gè)用于繪制用戶(hù)界面的窗口。通常這樣一個(gè)窗口會(huì)填充整個(gè)屏幕,當(dāng)然這個(gè)窗口也可以比屏幕小并漂浮在其他窗口之上。展示Act

13、ivity窗口的可視化內(nèi)容區(qū)域是一些具有層次關(guān)系的視圖,而視圖則是由類(lèi)View的子類(lèi)表示的。視圖就是Activity與用戶(hù)交互的接 口。例如,一個(gè)顯示圖片的視圖,當(dāng)用戶(hù)單擊的時(shí)候它可能會(huì)啟動(dòng)一個(gè)動(dòng)作。Android有許多開(kāi)發(fā)人員可以直接使用的視圖,包括按鈕,文本域,滾動(dòng)條,菜 單,復(fù)選框等。通過(guò)調(diào)用Activity.setContentView()方法來(lái)設(shè)置展現(xiàn)Activity的窗口的視圖。內(nèi)容視圖則是視圖層次結(jié)構(gòu)中的根節(jié)點(diǎn)視圖。214.Android系統(tǒng)的四大組件2)Serviceservice沒(méi)有用戶(hù)界面,但它會(huì)在后臺(tái)一直運(yùn)行。例如,service可能在用戶(hù)處理其它事情的時(shí)候播放背景音樂(lè),

14、或者從網(wǎng)絡(luò)上獲取數(shù)據(jù),或者執(zhí)行一些運(yùn)算,并把運(yùn)算結(jié)構(gòu)提供給Activity展示給用戶(hù)。每個(gè)service都擴(kuò)展自類(lèi)Serivce。應(yīng)用程序可以連接到一個(gè)正在運(yùn)行中的service。當(dāng)連接到一個(gè)service后,可以使用這個(gè)service向外暴露的接口與這個(gè)service進(jìn)行通信。對(duì)于上面提到的播放音樂(lè)的service,這個(gè)接口可能允許用戶(hù)暫停,停止或重新播放音樂(lè)。與activity以及其它組件一樣,service同樣運(yùn)行在應(yīng)用程序進(jìn)程的主線(xiàn)程中。所以它們不能阻塞其它組件或用戶(hù)界面,通常需要為這些service派生一個(gè)線(xiàn)程執(zhí)行耗時(shí)的任務(wù)。224.Android系統(tǒng)的四大組件3)Broadcase

15、 receiverbroadcase receiver不執(zhí)行任何任務(wù),僅僅是接受并響應(yīng)廣播通知的一類(lèi)組件。大部分廣播通知是由系統(tǒng)產(chǎn)生的,例如改變時(shí)區(qū),電池電量低,用戶(hù)選擇了一幅圖片或 者用戶(hù)改變了語(yǔ)言首選項(xiàng)。應(yīng)用程序同樣也可以發(fā)送廣播通知,例如通知其他應(yīng)用程序某些數(shù)據(jù)已經(jīng)被下載到設(shè)備上可以使用。broadcast receiver不包含任何用戶(hù)界面。然而它們可以啟動(dòng)一個(gè)activity以響應(yīng)接受到的信息,或者通過(guò)NotificationManager通知用 戶(hù)??梢酝ㄟ^(guò)多種方式使用戶(hù)知道有新的通知產(chǎn)生:閃動(dòng)背景燈、震動(dòng)設(shè)備、發(fā)出聲音等等。通常程序會(huì)在狀態(tài)欄上放置一個(gè)持久的圖標(biāo),用戶(hù)可以打開(kāi)這個(gè)

16、圖標(biāo)并 讀取通知信息。234.Android系統(tǒng)的四大組件4)Content provider應(yīng)用程序可以通過(guò)content provider訪(fǎng)問(wèn)其它應(yīng)用程序的一些私有數(shù)據(jù),這是Android提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制。共享的數(shù)據(jù)可以是存儲(chǔ)在文件系統(tǒng)中、SQLite 數(shù)據(jù)庫(kù)中或其它的一些媒體中。content provider擴(kuò)展自ContentProvider類(lèi),通過(guò)實(shí)現(xiàn)此類(lèi)的一組標(biāo)準(zhǔn)的接口可以使其它應(yīng)用程序存取由它控制的數(shù)據(jù)。然而應(yīng)用程序并不會(huì)直接 調(diào)用ContentProvider中的方法,而是通過(guò)類(lèi)ContentResolver。ContentResolver能夠與任何一個(gè) Con

17、tentProvider通信,它與ContentProvider合作管理進(jìn)程間的通信。244.Android系統(tǒng)的四大組件備注:任何時(shí)候當(dāng)Android系統(tǒng)收到一個(gè)需要某個(gè)組件進(jìn)行處理的請(qǐng)求的時(shí)候,Android會(huì)確保處理此請(qǐng)求的組件的宿主進(jìn)程是否已經(jīng)在運(yùn)行,如果沒(méi)有,則立即啟動(dòng)這個(gè)進(jìn)程,當(dāng)請(qǐng)求的組件的宿主進(jìn)程已經(jīng)在運(yùn)行,它會(huì)繼續(xù)查看請(qǐng)求的組件是否可以使用,如果不能立即使用,它會(huì)創(chuàng)建一個(gè)請(qǐng)求的組件的實(shí)例來(lái)響應(yīng)請(qǐng)求。255.Android的系統(tǒng)包開(kāi)發(fā)Android應(yīng)用程序基本上使用的都是Java語(yǔ)言。那么要想靈活的應(yīng)用這一系統(tǒng),就應(yīng)當(dāng)熟悉其中的Android Java包的各種功能。一般的JAVA

18、應(yīng)用中,如果需用引用基礎(chǔ)類(lèi)庫(kù),通常需要使用如下的方式:import javax.swing.*;以上代碼表示了引用JAVA的GUI組件Swing,javax.swing即JAVA中的一個(gè)包。Adroid提供一些擴(kuò)展的JAVA類(lèi)庫(kù),類(lèi)庫(kù)分為若干個(gè)包,每個(gè)包中包含若干個(gè)類(lèi)。例如:在A(yíng)ndroid中計(jì)算器是一個(gè)相對(duì)簡(jiǎn)單的程序,其入口程序文件為Calculator.java265.Android的系統(tǒng)包uAndroid.app:提供高層的程序模型,提供基本的運(yùn)行環(huán)境。uAndroid.content:包含各種對(duì)設(shè)備上的數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn)和發(fā)布的類(lèi)。uAndroid.database:通過(guò)內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫(kù)。uAndroid.graphics:底層的圖形庫(kù),包含畫(huà)布,顏色過(guò)濾,點(diǎn),矩形,可以將他們直接繪制到屏幕上。uAndroid.location:定義android的位置和相關(guān)服務(wù)的類(lèi)。uAndroid.media:提供一些管理多種音頻,視頻的媒體接口。uA:提供幫助網(wǎng)絡(luò)訪(fǎng)問(wèn)的類(lèi),除了普通的.*APIs.uAndroid.animation:提供動(dòng)畫(huà)系統(tǒng)的功能屬性。275.Android的系統(tǒng)包uAndroid.app:包含高層次的類(lèi),封裝整體的android應(yīng)用程序模型。uAndroid.appwidget:包含必要的組件,以創(chuàng)建“應(yīng)用程序部件”,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論