

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、roid開(kāi)發(fā)者指南(開(kāi)發(fā)者指南(ApplicationFundamentals)前言前言本章內(nèi)容為開(kā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做為開(kāi)發(fā)語(yǔ)言。aapt工具把編譯后的Java代碼連同其它應(yīng)用程序需要的數(shù)據(jù)和資源文件一起打包到一個(gè)roid包文件中,這個(gè)文件使用.apk做為擴(kuò)展名,它是分發(fā)應(yīng)用程序并安裝到移動(dòng)設(shè)備的媒介,用戶(hù)只需下載并安裝此文件到他們的設(shè)備。單一.apk文件中的所有代碼被認(rèn)為是一個(gè)應(yīng)用程序。從很多方面來(lái)看,每個(gè)roid應(yīng)用程序都存在于它自己的世界之中:默
3、認(rèn)情況下,每個(gè)應(yīng)用程序均運(yùn)行于它自己的Linux進(jìn)程中。當(dāng)應(yīng)用程序中的任意代碼開(kāi)始執(zhí)行時(shí),roid啟動(dòng)一個(gè)進(jìn)程,而當(dāng)不再需要此進(jìn)程而其它應(yīng)用程序又需要系統(tǒng)資源時(shí),則關(guān)閉這個(gè)進(jìn)程。每個(gè)進(jìn)程都運(yùn)行于自己的Java虛擬機(jī)(VM)中。所以應(yīng)用程序代碼實(shí)際上與其它應(yīng)用程序的代碼是隔絕的。默認(rèn)情況下,每個(gè)應(yīng)用程序均被賦予一個(gè)唯一的Linux用戶(hù)ID,并加以權(quán)限設(shè)置,使得應(yīng)用程序的文件僅對(duì)這個(gè)用戶(hù)、這個(gè)應(yīng)用程序可見(jiàn)。當(dāng)然,也有其它的方法使得這些文件同
4、樣能為別的應(yīng)用程序所訪(fǎng)問(wèn)。使兩個(gè)應(yīng)用程序共有同一個(gè)用戶(hù)ID是可行的,這種情況下他們可以看到彼此的文件。從系統(tǒng)資源維護(hù)的角度來(lái)看,擁有同一個(gè)ID的應(yīng)用程序也將在運(yùn)行時(shí)使用同一個(gè)Linux進(jìn)程,以及同一個(gè)虛擬機(jī)。應(yīng)用程序組件應(yīng)用程序組件(ApplicationComponents)roid的核心功能之一就是一個(gè)應(yīng)用程序可以使用其它應(yīng)用程序的元素(如果那個(gè)應(yīng)用程序允許的話(huà))。比如說(shuō),如果你的應(yīng)用程序需要一個(gè)圖片卷動(dòng)列表,而另一個(gè)應(yīng)用程序已經(jīng)開(kāi)
5、發(fā)了一個(gè)合用的而又允許別人使用的話(huà),你可以直接調(diào)用那個(gè)卷動(dòng)列表來(lái)完成工作,而不用自己再開(kāi)發(fā)一個(gè)。你的應(yīng)用程序并沒(méi)有吸納或鏈接其它應(yīng)用程序的代碼,它只是在有需求的時(shí)候啟動(dòng)了其它應(yīng)用程序的那個(gè)功能部分。為達(dá)到這個(gè)目的,系統(tǒng)必須在一個(gè)應(yīng)用程序的一部分被需要時(shí)啟動(dòng)這個(gè)應(yīng)用程序,并將那個(gè)部分的Java對(duì)象實(shí)例化。與在其它系統(tǒng)上的應(yīng)用程序不同,roid應(yīng)用程序沒(méi)有為應(yīng)用準(zhǔn)備一個(gè)單獨(dú)的程序入口(比如說(shuō),沒(méi)有main()方法),而是為系統(tǒng)依照需求實(shí)例化
6、提供了基本的組件。共有四種組件類(lèi)型:ActivitiesActivity是為用戶(hù)操作而展示的可視化用戶(hù)界面。比如說(shuō),一個(gè)activity可以展示一個(gè)菜單項(xiàng)列表供用戶(hù)選擇,或者顯示一些包含說(shuō)明的照片。一個(gè)短消息應(yīng)用程序可以包括一個(gè)用于顯示做為發(fā)送對(duì)象的聯(lián)系人的列表的activity,一個(gè)給選定的聯(lián)系人寫(xiě)短信的activity閃動(dòng)背燈、震動(dòng)、播放聲音等等。一般來(lái)說(shuō)是在狀態(tài)欄上放一個(gè)持久的圖標(biāo),用戶(hù)可以打開(kāi)它并獲取消息。內(nèi)容提供者內(nèi)容提供者(
7、Contentproviders)內(nèi)容提供者將一些特定的應(yīng)用程序數(shù)據(jù)供給其它應(yīng)用程序使用。數(shù)據(jù)可以存儲(chǔ)于文件系統(tǒng)、SQLite數(shù)據(jù)庫(kù)或其它方式。內(nèi)容提供者繼承于ContentProvider基類(lèi),為其它應(yīng)用程序取用和存儲(chǔ)它管理的數(shù)據(jù)實(shí)現(xiàn)了一套標(biāo)準(zhǔn)方法。然而,應(yīng)用程序并不直接調(diào)用這些方法,而是使用一個(gè)ContentResolver對(duì)象,調(diào)用它的方法作為替代。ContentResolver可以與任意內(nèi)容提供者進(jìn)行會(huì)話(huà),與其合作來(lái)對(duì)所有相關(guān)交
8、互通訊進(jìn)行管理。參閱獨(dú)立的內(nèi)容提供者ContentProviders章節(jié)獲得更多關(guān)于使用內(nèi)容提供者的內(nèi)容。每當(dāng)出現(xiàn)一個(gè)需要被特定組件處理的請(qǐng)求時(shí),roid會(huì)確保那個(gè)組件的應(yīng)用程序進(jìn)程處于運(yùn)行狀態(tài),或在必要的時(shí)候啟動(dòng)它。并確保那個(gè)相應(yīng)組件的實(shí)例的存在,必要時(shí)會(huì)創(chuàng)建那個(gè)實(shí)例。激活組件激活組件Activatingcomponents:intents當(dāng)接收到ContentResolver發(fā)出的請(qǐng)求后,內(nèi)容提供者被激活。而其它三種組件──acti
9、vity、服務(wù)和廣播接收器被一種叫做intent的異步消息所激活。intent是一個(gè)保存著消息內(nèi)容的Intent對(duì)象。對(duì)于activity和服務(wù)來(lái)說(shuō),它指明了請(qǐng)求的操作名稱(chēng)以及作為操作對(duì)象的數(shù)據(jù)的URI和其它一些信息。比如說(shuō),它可以承載對(duì)一個(gè)activity的請(qǐng)求,讓它為用戶(hù)顯示一張圖片,或者讓用戶(hù)編輯一些文本。而對(duì)于廣播接收器而言,Intent對(duì)象指明了聲明的行為。比如,它可以對(duì)所有感興趣的對(duì)象聲明照相按鈕被按下。對(duì)于每種組件來(lái)說(shuō),激
10、活的方法是不同的:通過(guò)傳遞一個(gè)Intent對(duì)象至Context.startActivity()或Activity.startActivityFResult()以載入(或指定新工作給)一個(gè)activity。相應(yīng)的activity可以通過(guò)調(diào)用getIntent()方法來(lái)查看激活它的intent。roid通過(guò)調(diào)用activity的onNewIntent()方法來(lái)傳遞給它繼發(fā)的intent。一個(gè)activity經(jīng)常啟動(dòng)了下一個(gè)。如果它期望它所啟
11、動(dòng)的那個(gè)activity返回一個(gè)結(jié)果,它會(huì)以調(diào)用startActivityFResult()來(lái)取代startActivity()。比如說(shuō),如果它啟動(dòng)了另外一個(gè)activity以使用戶(hù)挑選一張照片,它也許想知道哪張照片被選中了。結(jié)果將會(huì)被封裝在一個(gè)Intent對(duì)象中,并傳遞給發(fā)出調(diào)用的activity的onActivityResult()方法。通過(guò)傳遞一個(gè)Intent對(duì)象至Context.startService()將啟動(dòng)一個(gè)服務(wù)(或給予
12、正在運(yùn)行的服務(wù)以一個(gè)新的指令)。roid調(diào)用服務(wù)的onStart()方法并將Intent對(duì)象傳遞給它。與此類(lèi)似,一個(gè)Intent可以被調(diào)用組件傳遞給Context.bindService()以獲取一個(gè)正在運(yùn)行的目標(biāo)服務(wù)的連接。這個(gè)服務(wù)會(huì)經(jīng)由onBind()方法的調(diào)用獲取這個(gè)Intent對(duì)象(如果服務(wù)尚未啟動(dòng),bindService()會(huì)先啟動(dòng)它)。比如說(shuō),一個(gè)activity可以連接至前述的音樂(lè)回放服務(wù),并提供給用戶(hù)一個(gè)可操作的(用戶(hù)界
13、面)以對(duì)回放進(jìn)行控制。這個(gè)activity可以調(diào)用bindService()來(lái)建立連接,然后調(diào)用服務(wù)中定義的對(duì)象來(lái)影響回放。后面一節(jié):遠(yuǎn)程方法調(diào)用(Remoteprocedurecalls)將更詳細(xì)的闡明如何綁定至服務(wù)。應(yīng)用程序可以憑借將Intent對(duì)象傳遞給Context.sendBroadcast(),Context.sendderedBroadcast(),以及Context.sendStickyBroadcast()和其它類(lèi)似方
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- sap netweaver開(kāi)發(fā)者指南
- 應(yīng)用內(nèi)付費(fèi)開(kāi)發(fā)者指南-能力開(kāi)放平臺(tái)版-中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)
- 2022開(kāi)發(fā)者大會(huì)
- 蘋(píng)果開(kāi)發(fā)者協(xié)議
- 移動(dòng)開(kāi)發(fā)者000期
- 微信公眾平臺(tái)開(kāi)發(fā)者文檔
- Linux內(nèi)核開(kāi)發(fā)者協(xié)作模式研究.pdf
- ios開(kāi)發(fā)者面試題庫(kù)
- 2022百度ai開(kāi)發(fā)者大會(huì)
- 微信開(kāi)放平臺(tái)開(kāi)發(fā)者服務(wù)協(xié)議
- 2022百度ai開(kāi)發(fā)者大會(huì)
- 2022百度ai開(kāi)發(fā)者大會(huì)[001]
- 開(kāi)源軟件社區(qū)開(kāi)發(fā)者推薦的研究.pdf
- 2022百度ai開(kāi)發(fā)者大會(huì)[001]
- 微軟開(kāi)發(fā)者文檔網(wǎng)絡(luò)(Docs)閱讀體驗(yàn)設(shè)計(jì).pdf
- 中東游戲界生態(tài)開(kāi)發(fā)者挑戰(zhàn)與機(jī)遇!
- 2022百度ai開(kāi)發(fā)者大會(huì) 知乎將出席2022ai開(kāi)發(fā)者大會(huì),分享知識(shí)內(nèi)容平臺(tái)ai應(yīng)用創(chuàng)新
- sdata-2018年q2開(kāi)發(fā)者報(bào)告(英文)
- 基于開(kāi)發(fā)者合作網(wǎng)絡(luò)的軟件質(zhì)量研究.pdf
- app開(kāi)發(fā)者在當(dāng)前環(huán)境下如何提高廣告收入
評(píng)論
0/150
提交評(píng)論