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

下載本文檔

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

文檔簡(jiǎn)介

1、.,1,Android系統(tǒng)架構(gòu),.,2,目錄,1.關(guān)于Android 2.Android系統(tǒng)的優(yōu)勢(shì) 3.Android的系統(tǒng)架構(gòu) 4.Android系統(tǒng)的四大組件 5.Android的系統(tǒng)包,.,3,1.關(guān)于Android,2007年11月5日谷歌公司宣布與其他一些手機(jī)制造廠商、移動(dòng)運(yùn)營(yí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)、中間件、用戶界面以及應(yīng)用程序組成,并且對(duì)外開(kāi)

2、放源代碼,一經(jīng)推出便引起世界各地開(kāi)源愛(ài)好者的關(guān)注。同時(shí),谷歌與各大廠商的大力合作也大大的促進(jìn)了Android新的手機(jī)的業(yè)務(wù)的不斷推出,同時(shí)也使得Android更加的標(biāo)準(zhǔn)。,.,4,1.關(guān)于Android,第一款搭載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è)版本代表的

3、甜點(diǎn)的尺寸越變?cè)酱?,然后按?6個(gè)字母數(shù)序:,.,5,1.關(guān)于Android,紙杯蛋糕Android1.5-upcake,甜甜圈Android1.6 Donut,松餅Android2.0 Eclair,凍酸奶Android2.2 Froyo,姜餅Android2.3 Gingerbread,蜂巢Android3.0,3.1,3.2 Honeycomb,冰激凌三明治Android4.0 Ice Cream Sandwich,根據(jù)最新消息新一代Android版本將命名為果凍豆(Android5.0-Jelly Bean),2009 . 5,2009.9 2009.10 2010.1 2010.12

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

5、d系統(tǒng)的優(yōu)勢(shì),(3)與google應(yīng)用的無(wú)縫結(jié)合 由于android系統(tǒng)是由google主導(dǎo) 研發(fā)的,因此android操作系統(tǒng)手機(jī) 將無(wú)縫結(jié)合這些優(yōu)秀的Google互聯(lián)服務(wù),如大家熟知的Google Map,Google Search,Gmail等,在手機(jī)上都可以使用。 支持google全方位服務(wù),豐富最新的網(wǎng)絡(luò)體驗(yàn)。,.,10,3.Android的系統(tǒng)架構(gòu),.,11,3.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ū)?Android平臺(tái)不僅僅是操作系

6、統(tǒng),也包含了許多應(yīng)用程序,諸如SMS短信客戶端程序、電話撥號(hào)程序、圖片瀏覽器、Web瀏覽器等應(yīng)用程序。這些應(yīng)用程序都是用Java語(yǔ)言編寫(xiě)的,并且這些應(yīng)用程序都是可以被開(kāi)發(fā)人員開(kāi)發(fā)的其他應(yīng)用程序所替換,這點(diǎn)不同于其他手機(jī)操作系統(tǒng)固化在系統(tǒng)內(nèi)部的系統(tǒng)軟件,更加靈活和個(gè)性化。,.,12,3.Android的系統(tǒng)架構(gòu),2)應(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)管理器)

7、 管理各個(gè)應(yīng)用程序生命周期以及通常的導(dǎo)航回退功能 b) Window Manager(窗口管理器) 管理所有的窗口程序 c) Content Provider(內(nèi)容提供器) 使不同應(yīng)用程序之間存取或者分享數(shù)據(jù),.,13,3.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(電話管理器) 管理所有的移動(dòng)設(shè)備功能 h)Resou

8、rce Manager(資源管理器) 提供應(yīng)用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等,.,14,3.Android的系統(tǒng)架構(gòu),i)Location Manager(位置管理器) 提供位置服務(wù) j)XMPP Service(XMPP服務(wù)) 提供Google Talk服務(wù) 3)系統(tǒng)運(yùn)行庫(kù)層 從圖中可以看出,系統(tǒng)運(yùn)行庫(kù)層可以分成兩部分,分別是系統(tǒng)庫(kù)和Android運(yùn)行時(shí),分別介紹如下: a)系統(tǒng)庫(kù) 系統(tǒng)庫(kù)是應(yīng)用程序框架的支撐,是連接應(yīng)用程序框架層與Linux內(nèi)核層的重要紐帶。其主要分為如下幾個(gè):,.,15,3.Android的系統(tǒng)架構(gòu),Surface Manager:

9、執(zhí)行多個(gè)應(yīng)用程序時(shí)候,負(fù)責(zé)管理顯示與存取操作間的互動(dòng),另外也負(fù)責(zé)2D繪圖與3D繪圖進(jìn)行顯示合成。 Media Framework: 多媒體庫(kù),基于PacketVideo OpenCore;支持多種常用的音頻、視頻格式錄制和回放,編碼格式包括MPEG4、MP3、H.264、AAC、ARM。 SQLite: 小型的關(guān)系型數(shù)據(jù)庫(kù)引擎 OpenGL|ES: 根據(jù)OpenGL ES 1.0API標(biāo)準(zhǔn)實(shí)現(xiàn)的3D繪圖函數(shù)庫(kù),.,16,3.Android的系統(tǒng)架構(gòu),FreeType: 提供點(diǎn)陣字與向量字的描繪與顯示 WebKit: 一套網(wǎng)頁(yè)瀏覽器的軟件引擎 SGL: 底層的2D圖形渲染引擎 SSL: 在And

10、roid上通信過(guò)程中實(shí)現(xiàn)握手 Libc: 從BSD繼承來(lái)的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù),專門(mén)為基于embedded linux的設(shè)備定制,.,17,3.Android的系統(tǒng)架構(gòu),b)Android runtime Android應(yīng)用程序采用Java語(yǔ)言編寫(xiě),程序在Android runtime中執(zhí)行,其運(yùn)行時(shí)分為核心庫(kù)和Dalvik虛擬機(jī)兩部分。 核心庫(kù) 核心庫(kù)提供了Java語(yǔ)言API中的大多數(shù)功能,同時(shí)也包含了Android的一些核心API,如android.os、android.media等等。 Dalvik虛擬機(jī) Android程序不同于J2me程序,每個(gè)Android應(yīng)用程序都有一個(gè)專有的進(jìn)程,并

11、且不是多個(gè)程序運(yùn)行在一個(gè)虛擬機(jī)中,而是每個(gè)Android程序都有一個(gè)Dalvik虛擬機(jī)的實(shí)例,并在該實(shí)例,.,18,3.Android的系統(tǒng)架構(gòu),中執(zhí)行。Dalvik虛擬機(jī)是一種基于寄存器的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)Linux內(nèi)核層 Android是基于Linux2.6內(nèi)核,其核心系統(tǒng)服務(wù)如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)路協(xié)議以及驅(qū)動(dòng)模型都依賴于Linux內(nèi)核。,.,19,4.

12、Android系統(tǒng)的四大組件,在Android中,一個(gè)應(yīng)用程序可以使用其它應(yīng)用程序的組件,這是Android系統(tǒng)一個(gè)非常重要的特性。在需要的時(shí)候Android會(huì)啟動(dòng)另外一個(gè)程序的部分代碼,這部分代碼實(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í)例化的組件。這些組件主要包括以下四種類型:,.,20,4.Android系統(tǒng)的四大組件,1)Activity 一個(gè)Ac

13、tivity通常展現(xiàn)為一個(gè)可視化的用戶界面。每個(gè)Activity都會(huì)有一個(gè)用于繪制用戶界面的窗口。通常這樣一個(gè)窗口會(huì)填充整個(gè)屏幕,當(dāng)然這個(gè)窗口也可以比屏幕小并漂浮在其他窗口之上。展示Activity窗口的可視化內(nèi)容區(qū)域是一些具有層次關(guān)系的視圖,而視圖則是由類View的子類表示的。視圖就是Activity與用戶交互的接 口。例如,一個(gè)顯示圖片的視圖,當(dāng)用戶單擊的時(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)容視圖則是視圖

14、層次結(jié)構(gòu)中的根節(jié)點(diǎn)視圖。,.,21,4.Android系統(tǒng)的四大組件,2)Service service沒(méi)有用戶界面,但它會(huì)在后臺(tái)一直運(yùn)行。例如,service可能在用戶處理其它事情的時(shí)候播放背景音樂(lè),或者從網(wǎng)絡(luò)上獲取數(shù)據(jù),或者執(zhí)行一些運(yùn)算,并把運(yùn)算結(jié)構(gòu)提供給Activity展示給用戶。每個(gè)service都擴(kuò)展自類Serivce。 應(yīng)用程序可以連接到一個(gè)正在運(yùn)行中的service。當(dāng)連接到一個(gè)service后,可以使用這個(gè)service向外暴露的接口與這個(gè)service進(jìn)行通信。對(duì)于上面提到的播放音樂(lè)的service,這個(gè)接口可能允許用戶暫停,停止或重新播放音樂(lè)。 與activity以及其它組

15、件一樣,service同樣運(yùn)行在應(yīng)用程序進(jìn)程的主線程中。所以它們不能阻塞其它組件或用戶界面,通常需要為這些service派生一個(gè)線程執(zhí)行耗時(shí)的任務(wù)。,.,22,4.Android系統(tǒng)的四大組件,3)Broadcase receiver broadcase receiver不執(zhí)行任何任務(wù),僅僅是接受并響應(yīng)廣播通知的一類組件。大部分廣播通知是由系統(tǒng)產(chǎn)生的,例如改變時(shí)區(qū),電池電量低,用戶選擇了一幅圖片或 者用戶改變了語(yǔ)言首選項(xiàng)。應(yīng)用程序同樣也可以發(fā)送廣播通知,例如通知其他應(yīng)用程序某些數(shù)據(jù)已經(jīng)被下載到設(shè)備上可以使用。 broadcast receiver不包含任何用戶界面。然而它們可以啟動(dòng)一個(gè)acti

16、vity以響應(yīng)接受到的信息,或者通過(guò)NotificationManager通知用 戶。可以通過(guò)多種方式使用戶知道有新的通知產(chǎn)生:閃動(dòng)背景燈、震動(dòng)設(shè)備、發(fā)出聲音等等。通常程序會(huì)在狀態(tài)欄上放置一個(gè)持久的圖標(biāo),用戶可以打開(kāi)這個(gè)圖標(biāo)并 讀取通知信息。,.,23,4.Android系統(tǒng)的四大組件,4)Content provider 應(yīng)用程序可以通過(guò)content provider訪問(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

17、類,通過(guò)實(shí)現(xiàn)此類的一組標(biāo)準(zhǔn)的接口可以使其它應(yīng)用程序存取由它控制的數(shù)據(jù)。然而應(yīng)用程序并不會(huì)直接 調(diào)用ContentProvider中的方法,而是通過(guò)類ContentResolver。ContentResolver能夠與任何一個(gè) ContentProvider通信,它與ContentProvider合作管理進(jìn)程間的通信。,.,24,4.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)求的組件是否可以使

18、用,如果不能立即使用,它會(huì)創(chuàng)建一個(gè)請(qǐng)求的組件的實(shí)例來(lái)響應(yīng)請(qǐng)求。,.,25,5.Android的系統(tǒng)包,開(kāi)發(fā)Android應(yīng)用程序基本上使用的都是Java語(yǔ)言。那么要想靈活的應(yīng)用這一系統(tǒng),就應(yīng)當(dāng)熟悉其中的Android Java包的各種功能。一般的JAVA應(yīng)用中,如果需用引用基礎(chǔ)類庫(kù),通常需要使用如下的方式: import javax.swing.*; 以上代碼表示了引用JAVA的GUI組件Swing,javax.swing即JAVA中的一個(gè)包。 Adroid提供一些擴(kuò)展的JAVA類庫(kù),類庫(kù)分為若干個(gè)包,每個(gè)包中包含若干個(gè)類。例如:在Android中計(jì)算器是一個(gè)相對(duì)簡(jiǎn)單的程序,其入口程序文件為C

19、alculator.java,.,26,5.Android的系統(tǒng)包,Android.app:提供高層的程序模型,提供基本的運(yùn)行環(huán)境。 Android.content:包含各種對(duì)設(shè)備上的數(shù)據(jù)進(jìn)行訪問(wèn)和發(fā)布的類。 Android.database:通過(guò)內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫(kù)。 Android.graphics:底層的圖形庫(kù),包含畫(huà)布,顏色過(guò)濾,點(diǎn),矩形,可以將他們直接繪制到屏幕上。 Android.location:定義android的位置和相關(guān)服務(wù)的類。 Android.media:提供一些管理多種音頻,視頻的媒體接口。 A:提供幫助網(wǎng)絡(luò)訪問(wèn)的類,除了普通的.*APIs. Android.animation:提供動(dòng)畫(huà)系統(tǒng)的功能屬性。,.,27,5.Android的系統(tǒng)包,Android.app:包含高層次的類,封裝整體的android應(yīng)用程序模型。 Android.appwidget:包含必要的組件,以創(chuàng)建“應(yīng)用程序部件”,用戶可以嵌入在其他應(yīng)用程序快

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論