android開發(fā)者指南(application_fundamentals)_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、roid開發(fā)者指南(開發(fā)者指南(ApplicationFundamentals)前言前言本章內(nèi)容為開發(fā)者指南(DevGuide)FramewkTopicsApplicationFundamentals,版本為roid2.3r1,翻譯轉(zhuǎn)載并整理自譯言:“biAji“,原文地址:“:article.yeeyan.gview3750334036“,再次感謝“bjAji“!期待你一起參與翻譯roid的相關(guān)資料,聯(lián)系我over140@。正文正文應(yīng)

2、用程序基礎(chǔ)應(yīng)用程序基礎(chǔ)(ApplicationFundamentals)roid應(yīng)用程序使用Java做為開發(fā)語言。aapt工具把編譯后的Java代碼連同其它應(yīng)用程序需要的數(shù)據(jù)和資源文件一起打包到一個roid包文件中,這個文件使用.apk做為擴(kuò)展名,它是分發(fā)應(yīng)用程序并安裝到移動設(shè)備的媒介,用戶只需下載并安裝此文件到他們的設(shè)備。單一.apk文件中的所有代碼被認(rèn)為是一個應(yīng)用程序。從很多方面來看,每個roid應(yīng)用程序都存在于它自己的世界之中:默

3、認(rèn)情況下,每個應(yīng)用程序均運行于它自己的Linux進(jìn)程中。當(dāng)應(yīng)用程序中的任意代碼開始執(zhí)行時,roid啟動一個進(jìn)程,而當(dāng)不再需要此進(jìn)程而其它應(yīng)用程序又需要系統(tǒng)資源時,則關(guān)閉這個進(jìn)程。每個進(jìn)程都運行于自己的Java虛擬機(jī)(VM)中。所以應(yīng)用程序代碼實際上與其它應(yīng)用程序的代碼是隔絕的。默認(rèn)情況下,每個應(yīng)用程序均被賦予一個唯一的Linux用戶ID,并加以權(quán)限設(shè)置,使得應(yīng)用程序的文件僅對這個用戶、這個應(yīng)用程序可見。當(dāng)然,也有其它的方法使得這些文件同

4、樣能為別的應(yīng)用程序所訪問。使兩個應(yīng)用程序共有同一個用戶ID是可行的,這種情況下他們可以看到彼此的文件。從系統(tǒng)資源維護(hù)的角度來看,擁有同一個ID的應(yīng)用程序也將在運行時使用同一個Linux進(jìn)程,以及同一個虛擬機(jī)。應(yīng)用程序組件應(yīng)用程序組件(ApplicationComponents)roid的核心功能之一就是一個應(yīng)用程序可以使用其它應(yīng)用程序的元素(如果那個應(yīng)用程序允許的話)。比如說,如果你的應(yīng)用程序需要一個圖片卷動列表,而另一個應(yīng)用程序已經(jīng)開

5、發(fā)了一個合用的而又允許別人使用的話,你可以直接調(diào)用那個卷動列表來完成工作,而不用自己再開發(fā)一個。你的應(yīng)用程序并沒有吸納或鏈接其它應(yīng)用程序的代碼,它只是在有需求的時候啟動了其它應(yīng)用程序的那個功能部分。為達(dá)到這個目的,系統(tǒng)必須在一個應(yīng)用程序的一部分被需要時啟動這個應(yīng)用程序,并將那個部分的Java對象實例化。與在其它系統(tǒng)上的應(yīng)用程序不同,roid應(yīng)用程序沒有為應(yīng)用準(zhǔn)備一個單獨的程序入口(比如說,沒有main()方法),而是為系統(tǒng)依照需求實例化

6、提供了基本的組件。共有四種組件類型:ActivitiesActivity是為用戶操作而展示的可視化用戶界面。比如說,一個activity可以展示一個菜單項列表供用戶選擇,或者顯示一些包含說明的照片。一個短消息應(yīng)用程序可以包括一個用于顯示做為發(fā)送對象的聯(lián)系人的列表的activity,一個給選定的聯(lián)系人寫短信的activity閃動背燈、震動、播放聲音等等。一般來說是在狀態(tài)欄上放一個持久的圖標(biāo),用戶可以打開它并獲取消息。內(nèi)容提供者內(nèi)容提供者(

7、Contentproviders)內(nèi)容提供者將一些特定的應(yīng)用程序數(shù)據(jù)供給其它應(yīng)用程序使用。數(shù)據(jù)可以存儲于文件系統(tǒng)、SQLite數(shù)據(jù)庫或其它方式。內(nèi)容提供者繼承于ContentProvider基類,為其它應(yīng)用程序取用和存儲它管理的數(shù)據(jù)實現(xiàn)了一套標(biāo)準(zhǔn)方法。然而,應(yīng)用程序并不直接調(diào)用這些方法,而是使用一個ContentResolver對象,調(diào)用它的方法作為替代。ContentResolver可以與任意內(nèi)容提供者進(jìn)行會話,與其合作來對所有相關(guān)交

8、互通訊進(jìn)行管理。參閱獨立的內(nèi)容提供者ContentProviders章節(jié)獲得更多關(guān)于使用內(nèi)容提供者的內(nèi)容。每當(dāng)出現(xiàn)一個需要被特定組件處理的請求時,roid會確保那個組件的應(yīng)用程序進(jìn)程處于運行狀態(tài),或在必要的時候啟動它。并確保那個相應(yīng)組件的實例的存在,必要時會創(chuàng)建那個實例。激活組件激活組件Activatingcomponents:intents當(dāng)接收到ContentResolver發(fā)出的請求后,內(nèi)容提供者被激活。而其它三種組件──acti

9、vity、服務(wù)和廣播接收器被一種叫做intent的異步消息所激活。intent是一個保存著消息內(nèi)容的Intent對象。對于activity和服務(wù)來說,它指明了請求的操作名稱以及作為操作對象的數(shù)據(jù)的URI和其它一些信息。比如說,它可以承載對一個activity的請求,讓它為用戶顯示一張圖片,或者讓用戶編輯一些文本。而對于廣播接收器而言,Intent對象指明了聲明的行為。比如,它可以對所有感興趣的對象聲明照相按鈕被按下。對于每種組件來說,激

10、活的方法是不同的:通過傳遞一個Intent對象至Context.startActivity()或Activity.startActivityFResult()以載入(或指定新工作給)一個activity。相應(yīng)的activity可以通過調(diào)用getIntent()方法來查看激活它的intent。roid通過調(diào)用activity的onNewIntent()方法來傳遞給它繼發(fā)的intent。一個activity經(jīng)常啟動了下一個。如果它期望它所啟

11、動的那個activity返回一個結(jié)果,它會以調(diào)用startActivityFResult()來取代startActivity()。比如說,如果它啟動了另外一個activity以使用戶挑選一張照片,它也許想知道哪張照片被選中了。結(jié)果將會被封裝在一個Intent對象中,并傳遞給發(fā)出調(diào)用的activity的onActivityResult()方法。通過傳遞一個Intent對象至Context.startService()將啟動一個服務(wù)(或給予

12、正在運行的服務(wù)以一個新的指令)。roid調(diào)用服務(wù)的onStart()方法并將Intent對象傳遞給它。與此類似,一個Intent可以被調(diào)用組件傳遞給Context.bindService()以獲取一個正在運行的目標(biāo)服務(wù)的連接。這個服務(wù)會經(jīng)由onBind()方法的調(diào)用獲取這個Intent對象(如果服務(wù)尚未啟動,bindService()會先啟動它)。比如說,一個activity可以連接至前述的音樂回放服務(wù),并提供給用戶一個可操作的(用戶界

13、面)以對回放進(jìn)行控制。這個activity可以調(diào)用bindService()來建立連接,然后調(diào)用服務(wù)中定義的對象來影響回放。后面一節(jié):遠(yuǎn)程方法調(diào)用(Remoteprocedurecalls)將更詳細(xì)的闡明如何綁定至服務(wù)。應(yīng)用程序可以憑借將Intent對象傳遞給Context.sendBroadcast(),Context.sendderedBroadcast(),以及Context.sendStickyBroadcast()和其它類似方

溫馨提示

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

評論

0/150

提交評論