資源描述:
《android開發(fā)者指南(application fundamentals)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Android開發(fā)者指南(ApplicationFundamentals)前言 本章內(nèi)容為開發(fā)者指南(DevGuide)/FrameworkTopics/ApplicationFundamentals,版本為Android2.3r1,翻譯轉(zhuǎn)載并整理自譯言:"biAji",原文地址:"http://article.yeeyan.org/view/37503/34036",再次感謝"bjAji"!期待你一起參與翻譯Android的相關(guān)資料,聯(lián)系我over140@gmail.com。?正文 應(yīng)用程序基礎(chǔ)(ApplicationFundame
2、ntals)Android應(yīng)用程序使用Java做為開發(fā)語言。aapt工具把編譯后的Java代碼連同其它應(yīng)用程序需要的數(shù)據(jù)和資源文件一起打包到一個Android包文件中,這個文件使用.apk做為擴展名,它是分發(fā)應(yīng)用程序并安裝到移動設(shè)備的媒介,用戶只需下載并安裝此文件到他們的設(shè)備。單一.apk文件中的所有代碼被認(rèn)為是一個應(yīng)用程序。??從很多方面來看,每個Android應(yīng)用程序都存在于它自己的世界之中:??*默認(rèn)情況下,每個應(yīng)用程序均運行于它自己的Linux進(jìn)程中。當(dāng)應(yīng)用程序中的任意代碼開始執(zhí)行時,Android啟動一個進(jìn)程,而當(dāng)不再需要此進(jìn)程
3、而其它應(yīng)用程序又需要系統(tǒng)資源時,則關(guān)閉這個進(jìn)程。*每個進(jìn)程都運行于自己的Java虛擬機(VM)中。所以應(yīng)用程序代碼實際上與其它應(yīng)用程序的代碼是隔絕的。*默認(rèn)情況下,每個應(yīng)用程序均被賦予一個唯一的Linux用戶ID,并加以權(quán)限設(shè)置,使得應(yīng)用程序的文件僅對這個用戶、這個應(yīng)用程序可見。當(dāng)然,也有其它的方法使得這些文件同樣能為別的應(yīng)用程序所訪問。??使兩個應(yīng)用程序共有同一個用戶ID是可行的,這種情況下他們可以看到彼此的文件。從系統(tǒng)資源維護(hù)的角度來看,擁有同一個ID的應(yīng)用程序也將在運行時使用同一個Linux進(jìn)程,以及同一個虛擬機。應(yīng)用程序組件(Ap
4、plicationComponents)????Android的核心功能之一就是一個應(yīng)用程序可以使用其它應(yīng)用程序的元素(如果那個應(yīng)用程序允許的話)。比如說,如果你的應(yīng)用程序需要一個圖片卷動列表,而另一個應(yīng)用程序已經(jīng)開發(fā)了一個合用的而又允許別人使用的話,你可以直接調(diào)用那個卷動列表來完成工作,而不用自己再開發(fā)一個。你的應(yīng)用程序并沒有吸納或鏈接其它應(yīng)用程序的代碼,它只是在有需求的時候啟動了其它應(yīng)用程序的那個功能部分。??????為達(dá)到這個目的,系統(tǒng)必須在一個應(yīng)用程序的一部分被需要時啟動這個應(yīng)用程序,并將那個部分的Java對象實例化。與在其它系統(tǒng)
5、上的應(yīng)用程序不同,Android應(yīng)用程序沒有為應(yīng)用準(zhǔn)備一個單獨的程序入口(比如說,沒有main()方法),而是為系統(tǒng)依照需求實例化提供了基本的組件。共有四種組件類型:??????Activities*Activity是為用戶操作而展示的可視化用戶界面。比如說,一個activity可以展示一個菜單項列表供用戶選擇,或者顯示一些包含說明的照片。一個短消息應(yīng)用程序可以包括一個用于顯示做為發(fā)送對象的聯(lián)系人的列表的activity,一個給選定的聯(lián)系人寫短信的activity以及翻閱以前的短信和改變設(shè)置的activity。盡管它們一起組成了一個內(nèi)聚的
6、用戶界面,但其中每個activity都與其它的保持獨立。每個都是以Activity類為基類的子類實現(xiàn)。*一個應(yīng)用程序可以只有一個activity,或者,如剛才提到的短信應(yīng)用程序那樣,包含很多個。每個activity的作用,以及其數(shù)目,自然取決于應(yīng)用程序及其設(shè)計。一般情況下,總有一個應(yīng)用程序被標(biāo)記為用戶在應(yīng)用程序啟動的時候第一個看到的。從一個activity轉(zhuǎn)向另一個的方式是靠當(dāng)前的activity啟動下一個。*每個activity都被給予一個默認(rèn)的窗口以進(jìn)行繪制。一般情況下,這個窗口是滿屏的,但它也可以是一個小的位于其它窗口之上的浮動窗口
7、。一個activity也可以使用超過一個的窗口──比如,在activity運行過程中彈出的一個供用戶反應(yīng)的小對話框,或是當(dāng)用戶選擇了屏幕上特定項目后顯示的必要信息。*窗口顯示的可視內(nèi)容是由一系列視圖構(gòu)成的,這些視圖均繼承自?View?基類。每個視圖均控制著窗口中一塊特定的矩形空間。父級視圖包含并組織它子視圖的布局。葉節(jié)點視圖(位于視圖層次最底端)在它們控制的矩形中進(jìn)行繪制,并對用戶對其直接操作做出響應(yīng)。所以,視圖是activity與用戶進(jìn)行交互的界面。比如說,視圖可以顯示一個小圖片,并在用戶指點它的時候產(chǎn)生動作。Android有很多既定的
8、視圖供用戶直接使用,包括按鈕、文本域、卷軸、菜單項、復(fù)選框等等。*視圖層次是由Activity.setContentView()?方法放入activity的窗口之中的。上下文視圖是位于視圖層次