版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、;.北方民族大學英文文獻翻譯 論文題目: Android環(huán)境及Activity介紹 院(部)名 稱: 計算機科學與工程學院 學 生 姓 名: 陳 忠 專 業(yè): 軟件工程 學 號: 20060466 指導教師姓名: 于千城 論文提交時間: 年 月 日 北方民族大學教務處制.;.Android的運行環(huán)境Android環(huán)境下的應用程序與你平時常用的桌面環(huán)境應用和服務器環(huán)境應用有點不同。這些不同主要在于唯一的手機環(huán)境和Android環(huán)境下的一些關鍵概念。當你要為Android平臺的手持設備寫應用程序時,你將用到這些概念指導應用程序的設計和執(zhí)行:有限的資源在今天,手機已經是一個非常強大的手持電腦,但是它
2、們還是非常有限。最基本的手機設備限制就是電池的續(xù)航能力。每一秒鐘的處理,每一次的內存更新,每一次屏幕背光的點亮等,這些都要手機電池提供能量。手機的大小是有限的,并且用戶也不喜歡頻繁的為電池充電。結果就是,手持電腦的資源有限芯片的處理能力在幾百兆赫茲,內存最多在千兆,數據存儲最多再十千兆。當然,在這本書中,我們會討論如何高效率利用Android手持設備的有限資源。移動混搭在當今桌面網絡世界里,混搭使得開發(fā)者很容易通過重用現(xiàn)有應用程序中含有的數據和用戶接口進行新的應用程序開發(fā)。谷歌地圖就是一個很好的例子,你只要在網頁中運用一些JavaScript代碼就可以很容易地創(chuàng)建一個網上地圖應用程序。Andr
3、oid包含了一些手機概念。在其他手機環(huán)境中,應用程序都是分開的,除了瀏覽器應用程序,你期望所編寫的應用程序是獨立于其它應用程序運行在手持設備上的。在Android平臺下,你可以很容易創(chuàng)建一個新的程序,并加入已經存在的程序。交互式應用程序在其它手機軟件環(huán)境下,應用程序接受數據是通過特殊的數據提供程序。如果你需要應用Windows Mobile環(huán)境下的應用程序發(fā)送一個電子郵件,例如,你編寫的代碼具體引用了Pocket Outlook的電子郵件接口,并通過這種方式發(fā)送郵件。但是,假如用戶希望應用其它郵件客戶端了?Android包含了一些基礎獨立于特殊應用程序接口的機制(Intents),在Andro
4、id應用程序中,你不是僅僅只能用特殊的應用程序進行發(fā)送郵件,而是,你可以應用任何有效的應用程序進行郵件的發(fā)送。操作系統(tǒng)只關注什么應用程序可以發(fā)送郵件,并在你需要使用時啟動它,并連接到你請求位置將郵件發(fā)送出去。用戶可以應用不同的瀏覽器,不同的MP3播放器以及不同的郵件客戶端等等,Android將為你啟動相應的程序。一個Android應用程序的組成你通過Android框架所創(chuàng)建的Android應用程序,有四種基本的類型。ActivitiesActivities類似于桌面系統(tǒng)下的獨立應用程序,例如:office辦公軟件。Activities是由許多需要及時運行的可執(zhí)行代碼組成,用戶或者操作系統(tǒng)都可以
5、通過實例化,運行Activities。Activities可以與用戶進行交互,并且可以通過使用query或Intent對象(在稍后討論)向其它的Activities或服務請求數據或服務。你寫的很多Android可執(zhí)行代碼將在Activity的環(huán)境下執(zhí)行。Activities通常相當于一個顯示器:每個Activity都有一個界面提供給用戶。當一個Activity當前不再運行時,操作系統(tǒng)會將其殺死以保護內存。ServicesServices類似于桌面操作系統(tǒng)和服務器操作系統(tǒng)的服務或守護程序。Services是由一些可執(zhí)行代碼組成,通過實例化運行在后臺,并且直到手持設備關閉后才結束。Services
6、一般沒有用戶界面。舉一個典型的Service應用例子,一個MP3播放器需要有一個文件隊列,從而可以進行后臺播放,這樣可以讓用戶繼續(xù)運行其他應用程序。你的應用程序需要繼承Services類,從而可以不需要用戶界面在后臺執(zhí)行工作。Broadcast and Intent Receivers這些接收器是對其它應用程序的服務請求作出響應。一個廣播信息接收器是在系統(tǒng)做大規(guī)模廣播一個事件時作出響應。這個廣播信息可以來自Android系統(tǒng)自身(如:電量低)或者來自運行在該系統(tǒng)上的一些程序。一個Activity或者Service給其它應用提供了執(zhí)行一個Intent接收器來訪問自己功能的途徑,該Intent接收
7、器是由一段可以向其它Activities請求數據或服務的可執(zhí)行代碼組成。請求Activity創(chuàng)建一個Intent,并由Android框架通過分析作出決定是哪個應用程序接收并應用它。Intents在Android中是一個關鍵結構元素,可以使從已存在的應用總創(chuàng)建新的應用(移動混搭)。在你的應用程序中,你可以通過使用Intent對象與那些可以提供你所需要的信息的其它應用程序和服務相互配合。更多Intent和Intent接收器的詳細介紹在第13章。Content providersContent提供器是用來創(chuàng)建與其他Activity和Service共享數據的對象。一個Content Provider使
8、用一個用URI組成的標準接口來實現(xiàn)向其它應用程序請求數據,即使那些應用程序可能不知道使用的是哪個Content Provider。例如:當一個應用程序執(zhí)行一個Query對象來查找數據,它所執(zhí)行的URI結構如下:content:/contacts/people操作系統(tǒng)依靠觀察哪個應用程序將自己作為一個Content Provider來提供URI,并且發(fā)送請求給對應的應用程序(必須保證該應用程序當前是處在運行中)。如果不止一個Content Provider注冊提供URI,操作系統(tǒng)將詢問用戶將使用哪個。一個應用程序沒有要求必須使用所有的Android組件,但是一個編寫優(yōu)秀的應用程序將使用其提供的構
9、建機制,這樣就不會出現(xiàn)代碼重復或者引用其它應用程序很困難的情況。URI和Intent一起為用戶提供了靈活的Android環(huán)境。你可以很簡單的添加、刪除和取代一個應用程序,并且在Intent和URI的松耦合配合下,可以保證所有的事情一起進行。Android中Activity的生命周期Android是圍繞移動應用的唯一需求進行設計。在特定情況下,Android可以識別出移動設備上受限制的資源(如內存和電量),以及提供相應的機制保護這些資源。這些機制在Android的Activity生命周期體現(xiàn)得很明顯,定義了Activity從創(chuàng)建到銷毀的過程狀態(tài)和事件。你對那些事件的Activity監(jiān)視器和作用是
10、通過初始化每個事件對應的Activity類中重寫后的方法:onCreate:onCreate方法是在Activity第一次被創(chuàng)建的時候被調用。在這個方法中,你可以正常創(chuàng)建你的視圖和打開Activity需要用到的所有數據文件,以及初始化你的Activity。當調用onCreate方法時,Android框架在Activity運行之前會通過創(chuàng)建一個Bundle對象來保存Activity的狀態(tài)。onStart:onStart方法在Activity顯示在屏幕之前被調用。一次onStart調用完成時,如果你的Activity變成前端Activity顯示在屏幕上,控制權將交給onResume方法,onRes
11、ume將等待被調用。如果你的Activity由于某些原因不能變成前端Activity,控制權將交給onStop方法,onStop將等待被調用。onResume:onResume方法是在調用onStart方法之后使得Activity變成前端Activity時可以調用。在這個狀態(tài)下,Activity是正在運行地,并且與用戶進行交互。Activity接收鍵盤和觸摸的輸入,以及在屏幕上顯示Activity的用戶界面。onResume也可以在當前Activity失去前端焦點,且前端被另外一個Activity占用時調用,占據前端的Activity最終會在你的Activity調用onResume后失去前端焦
12、點,同時你的Activity會重新回到前端。這就是在你的Activity開始(或者恢復)的位置做更新用戶界面的工作(例如:接受本地更新或者是運行一個動畫)。onPause:onPause在Android打算恢復另一個Actrivity到前端的時候調用。在調用onPause后,你的Activity不再有權使用屏幕,因此,你將停止那些不必要消耗電量和占用CPU使用權的事務。如果你的Activity是在運行一個動畫,那樣沒有人將可以看到它,所以你也不妨在你的Activity未重新獲得前端前終止動畫的播放。你的Activity需要使用一個好的方法去存儲一些狀態(tài),以便使你的Activity可以重新獲得前
13、端當然,這也并一定能保證你的Activity可以恢復。如果移動設備的存儲空間全部被你的Activity占用,已經沒有足夠的存儲空間給別的程序使用,這樣你的Activity將釋放所占有存儲空間,給系統(tǒng)進程使用。一旦你退出這個方法,Android會在任何時候將你的Activity殺死,你最終將失去對它的控制。onStop:onStop在你的Activity很久沒有被響應,或者由于另外一個Activity占用前端,再或者你的Activity被銷毀時被調用。onDestroy:在你的Activity被銷毀之前,可以有機會去進行任何的操作。通常情況下,onDestroy被調用時因為你的Activity已
14、經完成所有的工作,然后系統(tǒng)調用這個結束方法。但是如果在沒有完成所有工作之前,這個方法被調用時因為Android需要搶占你的Activity所占用的資源。Android中Service的生命周期Service的生命周期與Activity的生命周期是類似的,但是在一些重要的地方還是有些不同的:onCreate和onStart的不同:當客戶端調用Context.startService(Intent)方法時,Service才啟動。如果一個Service當前沒有運行,Android會啟動它,并且緊跟著onStart方法后調用onCreate方法。如果一個Service當前正在運行,它的onStart方
15、法會通過一個新的Intent對象再次被調用。因此,對于在一個單獨運行著的Service來說,不斷重復的調用onStart方法是很有可能,也是很正常的。onResume,onPause和onStop是不需要的:一般來說,Service是沒有用戶界面的,因此,就不需要onPause、onResume和onStop方法。一個Service任何時候在運行,它總是在后臺。onBind:如果一個客戶端需要持久地與一個Service保持連接,可以調用Context.bindService方法。如果Service當前沒有運行,可以調用onCreate方法進行創(chuàng)建,而不是onStart方法。反之,通過創(chuàng)建一個客戶端的Intent,才可以調用Service的onBind方法,并在調用后返回一個IBind對象,客戶端就可以通過這個對象進一步來調用Serv
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冀少版八年級生物上冊第四單元復習提升課件
- 人教版五年級下冊分數的計算練習題
- 電路初探單元復習教案
- 安全教案 三年級
- 《陋室銘》教學反思
- 太陽能電站改造簡易施工合同
- 蘇教版一年級語文下冊全冊教案
- 咨詢公司噪聲污染治理實施方案
- 煙草產品庫存調配方案
- 游戲開發(fā)項目協(xié)議
- 熱交換器的定期檢驗-全國壓力容器檢驗員RQ-1
- GB/T 13611-2018城鎮(zhèn)燃氣分類和基本特性
- 融資擔保機構擔保代償管理指引
- GB 14194-1993永久氣體氣瓶充裝規(guī)定
- FZ/T 93074-2011熔噴法非織造布生產聯(lián)合機
- 高中生物課程標準2022
- 如何做好行政執(zhí)法與刑事司法相銜接課件
- 引發(fā)火災的原因課件
- 汽車點火系實訓項目
- 注氮機司機講義
- 數據庫工程師考試大綱
評論
0/150
提交評論