




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Android 系統(tǒng)簡介,Android 系統(tǒng)簡介,Android的前世今生 Android的優(yōu)勢 Android系統(tǒng)架構,Android的前世今生,Android的誕生,Android 發(fā)展,2007.11.5 Android 平臺發(fā)布 2008.9.22 T-Mobile G1上市 2009年1季度 G1銷售100萬支 2009.3 MWC華為發(fā)布Android手機 Moto,三星,LG計劃2009年下半年推出Android手機 2009 獲得Orange, Vodafone, O2, Telefonica支持 2009進軍上網本,Android的前世今生,Nokia/Apple/Goog
2、le的戰(zhàn)爭,Android的優(yōu)勢,開放性 所有的應用是平等的 應用間無界限 快速方便的應用開發(fā),開放性,谷歌與開放手機聯盟合作開發(fā)了 Android,這個聯盟由包括中國移動、摩托羅拉、高通、宏達和 T-Mobile 在內的 30 多家技術和無線應用的領軍企業(yè)組成。 Android 是一個真正意義上的開放性移動設備綜合平臺。 通過與運營商、設備制造商、開發(fā)商和其他有關各方結成深層次的合作伙伴關系,來建立標準化、開放式的移動電話軟件平臺,在移動產業(yè)內形成一個開放式的生態(tài)系統(tǒng),這樣應用之間的通用性和互聯性將在最大程度上得到保持。,應用平等,所有的Android應用之間是完全平等的。 所有的應用都運行
3、在一個核心的引擎上面,這個核心引擎其實就是一個虛擬機,它提供了一系列用于應用和硬件資源間進行通訊的API。 撇開這個核心引擎,Android的所有其他的東西都是”應用”。,應用平等,應用無界限,Android打破了應用之間的界限,比如開發(fā)人員可以把Web上的數據與本地的聯系人,日歷,位置信息結合起來,為用戶創(chuàng)造全新的用戶體驗。,快速方便的開發(fā)應用,Android平臺為開發(fā)人員提供了大量的實用庫和工具,開發(fā)人員可以很快速的創(chuàng)建自己的應用。例如在別的手機平臺上要進行基于位置的應用的開發(fā)是相當的復雜的,而Android將Google Map集成了進來,開發(fā)人員通過簡單的幾行代碼就可以實現一個如圖 1
4、 6的一個地圖應用,更詳細的介紹可以參見第八章。,Android系統(tǒng)架構,建立Android 開發(fā)環(huán)境,建立Android 開發(fā)環(huán)境,JDK安裝 Android SDK安裝以及系統(tǒng)設置 Eclipse安裝以及ADT工具的安裝,第一個Android應用,第一個Android應用,分析Hello Android Android程序的結構 添加編輯框與按鈕,Android程序基礎,Android 程序基礎,Android程序的構成 應用的生命周期,Android應用程序的構成,Android應用程序的構成,應用生命周期,Android引入了一個全新的機制-應用程序生命周期(Life Cycle)。
5、多數情況下,一個Android應用運行在一個獨立的Linux進程中 應用進程的的生命周期(存活時間)不是由進程自己控制,而是由Android系統(tǒng)決定 影響應用生命周期的主要因素包括:該進程對于用戶的重要性,以及當前系統(tǒng)中還剩多少可用內存。,應用生命周期,應用生命周期,應用生命周期,應用生命周期,應用生命周期,應用生命周期,應用生命周期,Intent與Activity,Intent與Actitity,Intent 與 Intent filters Broadcast Intent Receiver 添加新的Activity,Activity,何謂Activity:最簡單的就是你可以把Activi
6、ty看成一個User Interface Program,原則上它會提供使用者一個交互式的接口功能,那一個activity只有一個UI嗎?非也,舉例來說:一個email程序,就可能 包含三個activity 郵件列表的activity 顯示郵件內容的activity 寫新郵件或回復郵件的activity 所 有的Activity在系統(tǒng)里由Activity堆棧所管理,當一個新的Activity被執(zhí)行后,它將會被放置到堆棧的最頂端,并且變 成running activity, 而先前的Activity原則上還是會存在于堆棧中,但它此時不會是在前景的情況,除非剛剛那個新的Activity離開。,In
7、tent,Android使用了一個很特別的類別叫Intent, 用來從一個畫面跳到另一個畫面。 Intent是用來描述一個程序想要作些什么事情。 在Intent的數據結構里有兩個很重要的部份,一個是動作 (action)及對數據產生反應(data to act upon)。action主要的內容有MAIN(程序的進入點),VIEW,PICK,EDIT等等。data則是用URI的形示來表示。比如:想要查看 一個人的聯絡數據時,你需要建立一個Intent,它包含了VIEW的動作(action)及指向該人數據的URI描述句。,Intent Filter,當Intent要求做某些事情時,IntentF
8、ilter被用來描述這個activity能夠做些什么事情。比如 一個activity要能夠顯示個人聯絡數據,你就必需要在IntentFilter說明你要如何處理個人聯絡數據并用ACTION_VIEW呈現出來。 IntentFilter都會在AndroidManifest.xml清單里面聲明。,Broadcast Intent Receiver,當你想要寫一個程序來對外部的事件做些處理時,可以使用Broadcast Intent Receiver。比如:當電話響時,有短信時。Broadcast Intent Receiver它并不能拿來顯示UI畫面,它必需利用NotificationManage
9、r來通知使用者他們感興趣的事件發(fā)生了。 Broadcast Intent Receiver同樣的可以在AndroidManifest.xml中聲明,但你也可以用寫 Context.registerReceiver()程序的方式來注冊你自己的Broadcast Intent Receiver。你自己的程序并不會因為BroadcastReceivers被呼叫而被它執(zhí)行起來。而是當BroadcastReceiver被觸發(fā) 時系統(tǒng)會依需求來執(zhí)行相對應的程序。程序可以利用Context.sendBroadcast()來發(fā)出他們自己的intent broadcast給其它的程序。,Intent 與 Act
10、ivity,畫面的切來切去則是由resolving intent來實現的。當你想產生新的畫面時,現行的activity就使用startActivity(myIntent)。 系統(tǒng)會根據所有已安裝的程序所定義的intent filter來看那個程序是最適合myIntent。 當startActivity被呼叫時,resolving Intents的處理過程是伴隨而來的。resolving intent提供我們兩個好處: 讓Activities可以很容易的利用Intent的方式去使用別的程序的功能。 Activities可以很容易的在任何情況下由新Activity所取代。,Activity生命周期
11、,Activity生命周期,使用Bundle在Activity間傳遞數據 Log與DDMS Activity生命周期,Activity,何謂Activity:最簡單的就是你可以把Activity看成一個User Interface Program,原則上它會提供使用者一個交互式的接口功能,那一個activity只有一個UI嗎?非也,舉例來說:一個email程序,就可能 包含三個activity 郵件列表的activity 顯示郵件內容的activity 寫新郵件或回復郵件的activity 所 有的Activity在系統(tǒng)里由Activity堆棧所管理,當一個新的Activity被執(zhí)行后,它將會
12、被放置到堆棧的最頂端,并且變 成running activity, 而先前的Activity原則上還是會存在于堆棧中,但它此時不會是在前景的情況,除非剛剛那個新的Activity離開。,Activity狀態(tài),當一個Activity在屏幕的最上層時(堆棧的最頂端),它就是屬于active或running的狀態(tài) 如果一個Activity失去焦點(focus)但還看得到它的畫面(比如:一個新的Activity畫面并不是全屏幕或者它是一個半透明的情況),那失去焦點的這個Activity則處在paused的狀態(tài)。像這個失去焦點的Activity它還是完全活著的,并沒有消失。(活著的意思是指,Activi
13、ty自已本身所有的狀態(tài)及數據都還是存在的,也跟窗口管理程序window manager保持連系著),像這種paused的activity,會在一種情況下消失,那就是當系統(tǒng)的內存不夠用之時,系統(tǒng)會自動判斷,把不重要的 activity移除。,Activity狀態(tài)-cont,如果一個Activity被其它的Activity完全的遮住時,這個被遮的Activity處于stop的狀態(tài),它仍然保有全部的狀態(tài)及數據,但因為它已不再被使用者看見,所以它的畫面是被隱藏起來的(畫面不需要更新),當系統(tǒng)內存不足時,這種stop狀態(tài)的activity是最先被系統(tǒng)考慮拿來釋放內存的。,Activity狀態(tài)-cont,
14、當一個Activity處于pause或stop的狀態(tài)時,系統(tǒng)可以要求Activity結束(finish)或直接移除(kill)它。當它需要再度呈現在使用者面前時,它必需要能完整的重新啟動及回復先前的狀態(tài),使用Service,使用Service,什么是服務(service) 如何使用服務 使用服務進行音樂播放,Service,服務是運行在后臺的一段代碼。它可以運行在它自己的進程,也可以運行在其他應用程序進程的上下文(context)里面,這取決于自身的需要。其它的組件可以綁定到一個服 務(Service)上面,通過遠程過程調用(RPC)來調用這個方法。例如媒體播放器的服務, 當用戶退出媒體選擇用
15、戶界面,仍然希望音樂依然可以繼續(xù)播放,這時就是由服務 (service)來保證當用戶界面關閉時音樂繼續(xù)播放的。,如何使用Service,第一種是通過調用Context.startService()啟動,調用Context.stopService()結束,startService()可以傳遞參數給Service。 第二種方式是通過調用Context.bindService()啟動,調用Context.unbindservice()結束,還可以通過ServiceConnection訪問Service。二者可以混合使用,比如說我可以先startService再bindservice。,Service
16、的生命周期,startService后,即使調用startService的進程結束了Service仍然還存在,直到有進程調用stopService,或者Service自己自殺(stopSelf())就沒法了 bindService后,Service就和調用bindService的進程同生共死了,也就是說當調用bindService的進程死了,那么它bind的Service也要跟著被結束,當然期間也可以調用unbindservice讓 Service結束。 兩種方式混合使用時,比如說你startService了,我bindService了,那么只有你stopService了而且我也unbinds
17、ervice了,這個Service才會被結束。,進程生命周期,Android系統(tǒng)將會嘗試保留那些啟動了的或者是綁定了服務的進程 如果該服務正在進程的onCreate(), onStart(), 或者 onDestroy() 這些方法中執(zhí)行時, 那么主進程將會成為一個前臺進程,以確保此代碼不會被停止 如果服務已經開始,那么它的主進程會就重要性而言低于所有可見的進程但高于不可見的進程, 由于只有少數幾個進程是用戶可見的,所以只要不是內存特別低,該服務不會停止. 如果有多個客戶端綁定了服務, 只要客戶端中的一個對于用戶是可見的,即認為該服務可見,Content Provider,Content Pr
18、ovider,為什么需要Content Provider 如何使用Content Provider,為什么需要Content Provider,為在 Android 中,每個應用程序都是用自己的 user ID 及在自己的 process 中執(zhí)行 當應用程序彼此間要分享數據時,這樣的架構勢必要提供一個好的解決方案才行 為了解決應用程序間,彼此要分享數據的需求,Android 提供了 Content Provider 這個機制。,使用Content Provider,每一種Content Provider都提供一個唯一公共URI(由ContentURI封裝),它將被客戶端用于從內容提供器請求/添加/更新/刪除數據。 vider.Contacts.Phones.CONTENT_URI vider.Contacts.Photos.CONTENT_URI and
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 材料質量培訓效果評估支持合同
- 餐飲企業(yè)員工勞動合同簽訂與備案指南
- 產業(yè)鏈上下游循環(huán)額度融資合同范例
- 餐飲品牌拓展店鋪面房屋租賃及培訓合同
- 老人和兒童教學課件
- 大學反詐考試試題及答案
- 美術課件介紹作家
- 美術欣賞兒童課件圖片
- 安全月度例會總結
- 安全生產報告 sitegovcn
- GB/T 4909.3-2009裸電線試驗方法第3部分:拉力試驗
- GB/T 41093-2021機床安全車床
- GB/T 31158-2014電離層電子總含量(TEC)擾動分級
- 新教材北師大版高中英語必修第二冊全冊重點單詞短語句型歸納總結
- 電解加工和電解磨削課件
- 小紅書運營方案
- 深藍科技風智能醫(yī)療衛(wèi)生系統(tǒng)模板課件整理
- 中藥奄包-外源性熱敷療法課件
- 造價咨詢作難點解決辦法及措施
- 商務禮儀3-2辦公室禮儀 中職高職《商務禮儀》教學教案
- 沈陽機床并購德國希斯公司的臺前幕后
評論
0/150
提交評論