Androjd手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
Androjd手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
Androjd手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
Androjd手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
Androjd手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、文檔供參考,可復(fù)制、編制,期待您的好評(píng)與關(guān)注! Andro j d手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要隨著科技的不斷發(fā)展,計(jì)算機(jī)與軟件的進(jìn)步,新一代的移動(dòng)終端用戶針對(duì)應(yīng)用軟件的可操作性以及軟件操作的舒適性等方面提出了更高的要求。除期望所用的軟件擁有強(qiáng)大的功能外,更期望應(yīng)用軟件能盡可能的為他們提供一個(gè)輕松、愉快、感覺(jué)良好的操作環(huán)境。這表明友好的手機(jī)界面設(shè)計(jì)已經(jīng)成為手機(jī)應(yīng)用開(kāi)發(fā)的一個(gè)重要組成部分。而手機(jī)界面在手機(jī)應(yīng)用軟件中占用了大量的開(kāi)發(fā)時(shí)間,提高手機(jī)界面的開(kāi)發(fā)效率,無(wú)疑是提高整個(gè)手機(jī)應(yīng)用件開(kāi)發(fā)效率非常有效的手段。本文研究了Google與開(kāi)放手機(jī)聯(lián)盟合作開(kāi)發(fā)的Android手機(jī)平臺(tái)的用戶界面管理系統(tǒng)。

2、通過(guò)該系統(tǒng)開(kāi)發(fā)人員可以使用拖拽的方式生成自己需要的圖形用戶界面,并將生成的界面保存成)(ML格式的文件。系統(tǒng)還支持打開(kāi)一個(gè)已完成的江L界面程序,讀取界面信息并在PC機(jī)上顯示界面。針對(duì)界面中的每一個(gè)組件,以圖形界面的方式將組件的屬性顯示出來(lái),以方便不熟悉Android界面語(yǔ)言的美工或設(shè)計(jì)師對(duì)界面進(jìn)行修改完善。如果用戶不滿意在PC機(jī)端通過(guò)圖片單純模擬Android操作系統(tǒng)窗口組件的顯示效果,可以將最終生成的L界面程序發(fā)送至Android手機(jī)或Amdroid模擬器端,通過(guò)An(hid應(yīng)用程序?qū)ζ溥M(jìn)行解析,將界面顯示出來(lái)。該系統(tǒng)分為界面在PC機(jī)上的開(kāi)發(fā)和界面在Android模擬器端顯示兩個(gè)部分。界面在

3、PC機(jī)上的開(kāi)發(fā)部分是基于MVC設(shè)計(jì)模式的總體框架設(shè)計(jì)的,該模塊基本上是由界面組件、界面控制、組件屬性和界面顯示四個(gè)部分組成。界面組件和界面控制相當(dāng)于MVC中的Model;組件屬性和界面顯示相當(dāng)于MVC中的View;系統(tǒng)中負(fù)責(zé)組件和界面顯示之間各種監(jiān)聽(tīng)相當(dāng)于MVC中的Con仃ol。界面在Android模擬器端顯示模塊實(shí)現(xiàn)了Android應(yīng)用程序中的L界面程序在Android模擬器上的顯示。該模塊將通過(guò)帆界面文件創(chuàng)建界面組件,通過(guò)解析L資源文件為適配器提供信息,然后通過(guò)Android框架結(jié)構(gòu)預(yù)定好的調(diào)用機(jī)制,將適配器中的信息填充到界面組件中。本文通過(guò)Android手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的介紹

4、,希望能為今后開(kāi)發(fā)類似的功能更強(qiáng)大的界面管理系統(tǒng)提供有益的借鑒。關(guān)鍵字:用戶界面,Android,XML解析,可視化操作11本文的研究背景和意義111研究背景隨著科技的不斷發(fā)展,手機(jī)的功能越來(lái)越強(qiáng)大,手機(jī)系統(tǒng)的相關(guān)軟件應(yīng)運(yùn)而生,手機(jī)設(shè)計(jì)的人性化已不僅僅局限于硬件的外觀,手機(jī)的軟件系統(tǒng)已成為用戶直接操作和應(yīng)用的主體,它應(yīng)該以美觀實(shí)用、操作便捷為用戶所青睞。因此,用戶界面設(shè)計(jì)的規(guī)范性顯得尤為重要。由于受傳統(tǒng)觀念的影響,很長(zhǎng)一段時(shí)間里,手機(jī)界面的設(shè)計(jì)一直不為軟件開(kāi)發(fā)人員所重視,認(rèn)為這純粹是為了取悅用戶而進(jìn)行的低級(jí)活動(dòng)沒(méi)有任何實(shí)用價(jià)值,而評(píng)價(jià)一個(gè)應(yīng)用軟件質(zhì)量高低的唯一標(biāo)準(zhǔn),就是看它是否具有強(qiáng)大的功能,

5、能否順利的幫助用戶完成他們的任務(wù)。近年來(lái),隨著嵌入式硬件技術(shù)的迅猛發(fā)展,手持設(shè)備的存儲(chǔ)容量、運(yùn)行速度和可靠性等技術(shù)性能指標(biāo)有了顯著的提高,手持設(shè)備硬件的生產(chǎn)成本卻大幅度下跌,手持設(shè)備日益普及。新一代的移動(dòng)終端用戶,在應(yīng)用軟件的可操作性以及軟件操作的舒適性等方面對(duì)應(yīng)用軟件提出了更高的要求,除期望所用的軟件擁有強(qiáng)大的功能外,更期望應(yīng)用軟件能盡可能的為他們提供一個(gè)輕松、愉快、感覺(jué)良好的操作環(huán)境。這表明,手機(jī)界面的質(zhì)量已成為一個(gè)重要問(wèn)題,友好的手機(jī)界面設(shè)計(jì)已經(jīng)成為手機(jī)應(yīng)用開(kāi)發(fā)的一個(gè)重要組成部分。112意義如上所述,手機(jī)界面對(duì)于手機(jī)應(yīng)用軟件有很重要的作用。而手機(jī)界面在手機(jī)應(yīng)用軟件中占用了大量的開(kāi)發(fā)時(shí)間,

6、提高手機(jī)界面的開(kāi)發(fā)效率,無(wú)疑是提高整個(gè)手機(jī)應(yīng)用軟件開(kāi)發(fā)效率非常有效的手段。因此需要通過(guò)專門(mén)的技術(shù),為開(kāi)發(fā)者提供可視化的手段來(lái)開(kāi)發(fā)用戶界面。隨著人們對(duì)用戶體驗(yàn)要求的不斷提高,要設(shè)計(jì)出受用戶喜愛(ài)的界面,僅靠開(kāi)發(fā)人員是不夠的,可能還會(huì)請(qǐng)專門(mén)的美工或設(shè)計(jì)師對(duì)界面做修改。而這些專門(mén)的美工或UI設(shè)計(jì)師可能對(duì)手機(jī)界面程序并不熟悉。這樣,開(kāi)發(fā)一個(gè)基于可視化的手機(jī)界面管理系統(tǒng),使不熟悉界面語(yǔ)言的美工或Ul設(shè)計(jì)師也能對(duì)界面進(jìn)行修改完善,可以減少他們與開(kāi)發(fā)人員的溝通時(shí)間,減少開(kāi)發(fā)人員開(kāi)發(fā)界面的工作量。因此,開(kāi)發(fā)一個(gè)基于可視化的手機(jī)界面管理系統(tǒng)勢(shì)在必行。其系統(tǒng)總的設(shè)計(jì)思想是以組成界面的元素為對(duì)象,用構(gòu)件的形式加以描述

7、,組織并提供一個(gè)可視化的生成環(huán)境,使開(kāi)發(fā)人員能快速的進(jìn)行界面設(shè)計(jì),使美工或UI設(shè)計(jì)師能方便的對(duì)界面進(jìn)行修改完善。_21 Android手機(jī)操作系統(tǒng)2'1 Andr0Id簡(jiǎn)介1Android介紹鋤droid一詞的本義指“機(jī)器人",同時(shí)也是G00西e于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。Android包括操作系統(tǒng)、用戶界面和應(yīng)用程序移動(dòng)電話工作所需的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。G00西e與開(kāi)放手機(jī)聯(lián)盟合作開(kāi)發(fā)了齜id

8、,這個(gè)聯(lián)盟由包括中國(guó)移動(dòng)、摩托羅拉、高通、宏達(dá)電和T-M0bile在內(nèi)的30多家技術(shù)和無(wú)線應(yīng)用的領(lǐng)軍企業(yè)組成。G00西e通過(guò)與運(yùn)營(yíng)商、設(shè)備制造商、開(kāi)發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開(kāi)放式的移動(dòng)電話軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開(kāi)放式的生態(tài)系統(tǒng)。Android作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)“隨時(shí)隨地為每個(gè)人提供信息這一企業(yè)目標(biāo)的實(shí)現(xiàn)。谷歌的目標(biāo)是讓(移動(dòng)通訊)不依賴于設(shè)備甚至平臺(tái)。出于這個(gè)目的,Android將補(bǔ)充而不會(huì)替代谷歌長(zhǎng)期以來(lái)奉行的移動(dòng)發(fā)展戰(zhàn)略一通過(guò)與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開(kāi)發(fā)既有用又有吸引力的移動(dòng)務(wù),并推廣這些產(chǎn)品

9、。2Android的未來(lái)發(fā)展對(duì)于消費(fèi)者來(lái)說(shuō),G00酉e手機(jī)將是一款通用的、功能強(qiáng)大的、設(shè)備完整的手機(jī)產(chǎn)品。與礬one相似,An如id采用W曲曬t瀏覽器引擎,具備觸摸屏、高級(jí)圖形顯示和上網(wǎng)功能,用戶能夠在手機(jī)上查看電子郵件、搜索網(wǎng)址和觀看視頻節(jié)目等,比iPhone等其他手機(jī)更強(qiáng)調(diào)搜索功能,界面更強(qiáng)大,可以說(shuō)是一種融入全部w曲應(yīng)用的單一平臺(tái)。但其最震撼人心之處在于Am(hDid手機(jī)系統(tǒng)的開(kāi)放性和服務(wù)免費(fèi)。Android是一個(gè)對(duì)第三方軟件完全開(kāi)放的平臺(tái),開(kāi)發(fā)者在為其開(kāi)發(fā)程序時(shí)擁有更大的自由度,突破了iPhone等只能添加為數(shù)不多的固定軟件的枷鎖。同時(shí)與Windows、M0bile、S)IInbi紐等

10、廠商不同,Android操作系統(tǒng)免費(fèi)向開(kāi)發(fā)人員提供,這樣可節(jié)省近三成成本。Android項(xiàng)目目前正在從手機(jī)運(yùn)營(yíng)商、手機(jī)廠商、開(kāi)發(fā)者和消費(fèi)者那里獲得大力支持。212 Android用戶界面因?yàn)楸疚闹v解的系統(tǒng)主要是對(duì)Android手機(jī)L界面程序文件的管理,所以下面簡(jiǎn)單介紹一下Android的用戶界面【3】。1關(guān)鍵類在一個(gè)Android應(yīng)用中,用戶界面是由View和ew咖對(duì)象構(gòu)建的。View與ewGr01印都有很多種類。View對(duì)象是Android平臺(tái)中用戶界面體現(xiàn)的基礎(chǔ)單位。View類是它稱為“widgetS(工具)的子類的基礎(chǔ),它們提供了諸如文本輸入框和按鈕之類的UI對(duì)象的完整實(shí)現(xiàn)。vicwGr

11、oup類同樣為其被稱為“Layouts(布局)"的子類奠定了基礎(chǔ),它們提供了像流式布局、表格布局以及相對(duì)布局之類的布局架構(gòu)。ew對(duì)象是一個(gè)數(shù)據(jù)體,它的屬性存儲(chǔ)了用于屏幕上一塊矩形區(qū)域的布局參數(shù)及內(nèi)容,并負(fù)責(zé)這個(gè)矩形區(qū)域之中的所有測(cè)量、布局、焦點(diǎn)轉(zhuǎn)換、卷動(dòng)以及按鍵觸摸手勢(shì)的處理。作為一個(gè)用戶界面對(duì)象,ew同時(shí)也擔(dān)任著用戶交互關(guān)鍵點(diǎn)以及交互事件接受者的角色。2視圖層次在Android平臺(tái)上,你可以用圖21所示的ew和ewGroup層次圖來(lái)定義一個(gè)A血vity的UI。這個(gè)層次樹(shù)可隨你所愿的簡(jiǎn)單或者復(fù)雜化。為了把一個(gè)視圖層次樹(shù)展現(xiàn)到屏幕上,你的Acti啊鑼必須調(diào)用setContentVieW

12、O方法,并傳給它一個(gè)根節(jié)點(diǎn)對(duì)象的引用。Android系統(tǒng)將接受此引用,并用來(lái)進(jìn)行界面的廢止、測(cè)量并繪制這棵樹(shù)。層次的根結(jié)點(diǎn)會(huì)要求它的子節(jié)點(diǎn)進(jìn)行自我繪制,而且,每個(gè)視圖組節(jié)點(diǎn)也負(fù)責(zé)調(diào)用它的子視圖進(jìn)行自我繪制。子節(jié)點(diǎn)將向父節(jié)點(diǎn)申請(qǐng)繪制的位置以及大小,而其次樹(shù)頂層開(kāi)始)解析你布局中的元素,實(shí)例化View并將它們添加到它們的父節(jié)點(diǎn)中。因個(gè)繪制的元素將位于所有重疊元素之上顯現(xiàn)。3布局定義并展現(xiàn)你的視圖層次的最常用的方法是使用XML布局文件。如同H俐L一樣,L為布局提供了一種可讀的結(jié)構(gòu)。XML中的每個(gè)元素是ew 或ew螄對(duì)象(或者是它們的子類)。ew對(duì)象是樹(shù)的葉節(jié)點(diǎn),而ViewGroup對(duì)象是樹(shù)的分支。X

13、ML元素的名稱與它體現(xiàn)的Java類相對(duì)應(yīng)。所以一個(gè)q溆tew>元素將在你的UI中生成一個(gè)TeXtvi蹦,而<LinearLayout>則創(chuàng)建一個(gè)“nearLayout視圖組。當(dāng)你載入一個(gè)布局資源時(shí),Android系統(tǒng)會(huì)根據(jù)布局中的元素初始化這些運(yùn)行時(shí)對(duì)象。請(qǐng)注意:LinearLayout元素包含了Texfview和Button對(duì)象。你可以在其中另外安置一個(gè)LinearLayout(或其它類型的視圖組),以延展這個(gè)視圖層次,構(gòu)建更復(fù)雜的布局。可以用Java代碼來(lái)繪制view和ewGroup對(duì)象,并用addewmew)方法動(dòng)態(tài)的插入新的View和Viewmup對(duì)象。有相當(dāng)多的方法

14、來(lái)對(duì)視圖進(jìn)行布局。使用大量不同種類的視圖組,可以有近乎無(wú)窮的方式來(lái)構(gòu)建子視圖和視圖組。Android提供了一些預(yù)定義的視圖組,其中包括LiIlearLayoutRelatiVeLayoutAbsoluteLayout、TableLayout、G打dLayout等。每個(gè)都為定義子視圖和布局結(jié)構(gòu)提供了一套獨(dú)特的布局參數(shù)。4組件組件是為用戶交互界面提供服務(wù)的視圖對(duì)象。缸droid提供了一套完整的組件實(shí)現(xiàn),包括按鈕、復(fù)選框、文本輸入框等。Android還提供了一些更高級(jí)的組件,比如日期選擇、時(shí)鐘以及縮放控制。如果想創(chuàng)建一些定制動(dòng)作元素,可以通過(guò)定義自己的視圖對(duì)象或者擴(kuò)展或合并現(xiàn)有的組件實(shí)現(xiàn)。5用戶界面

15、事件使用戶界面中的視圖和工具與用戶交互,進(jìn)而實(shí)現(xiàn)動(dòng)作,如欲獲得用戶界面事件通知,有如下兩種實(shí)現(xiàn)方式。第一種實(shí)現(xiàn)方式:定義一個(gè)事件偵聽(tīng)器并將其注冊(cè)至視圖。通常情況下,這是偵聽(tīng)事件的主要方式。view類包含了許多命名類似O一木奉“steller的接口,每個(gè)接口都有一個(gè)。礦奉宰事O的回調(diào)方法。比如:ViewOnClicl(LiSteller用于處理視圖中ewOnTouchListeIler用于處理視圖中的觸屏事件、ewOr吐沁vListeIler用于處理視圖中的設(shè)備按鍵事件等等。如果希望視圖在被“點(diǎn)擊”比如選擇了一個(gè)按鈕的時(shí)候獲得通知,需要實(shí)現(xiàn)OnClick“steIler接口,定義其0nClick

16、0回調(diào)方法并在其中進(jìn)行相應(yīng)處理,并將它secOnclickListenero方法注冊(cè)到視圖上。第二種實(shí)現(xiàn)方式:為視圖覆寫(xiě)一個(gè)現(xiàn)有的回調(diào)方法。這種方法主要用于你自己實(shí)現(xiàn)了一個(gè)ew類,并想偵聽(tīng)其上發(fā)生的特定事件。比如說(shuō)當(dāng)屏幕被觸摸onToucllEv鋤tO,當(dāng)軌跡球發(fā)生了移動(dòng)onTrackbaJlEv印tO或者是設(shè)備上的按鍵被按下onKeyD伽mO。這種方式為定制的視圖中發(fā)生的每個(gè)事件定義默認(rèn)的行為,并決定是否需要將事件傳遞給其它的子視圖。6菜單應(yīng)用程序菜單是應(yīng)用程序用戶界面中另外一個(gè)重要的組成部分。菜單為展現(xiàn)應(yīng)用程序功能和設(shè)置提供了一個(gè)可靠的界面。按下設(shè)備上的M咖鍵會(huì)調(diào)出最普通的應(yīng)用程序菜單,也

17、可以加入當(dāng)用戶長(zhǎng)按一個(gè)項(xiàng)目時(shí)調(diào)出的上下文菜單。菜單也是用視圖層次進(jìn)行構(gòu)架的,但不必自己定義這個(gè)架構(gòu)。只要為Activ時(shí)定義onCreateolptionsMe姍O和0nCreatcContex廿訂enuO回調(diào)方法,并聲明想要包含在菜單中的項(xiàng)目即可。Android將為菜單自動(dòng)創(chuàng)建視圖層次,并在其中繪入菜單項(xiàng)。菜單會(huì)自行處理它們的事件,所以不必為菜單中的項(xiàng)目注冊(cè)事件偵聽(tīng)器。當(dāng)菜單中的一項(xiàng)被選定時(shí),框架將自動(dòng)調(diào)用onoptionsIt鋤SelectedO或0nConteXtemSelectedO方法。如同應(yīng)用程序布局一樣,也可以在一個(gè))剛L文件中定義菜單中的項(xiàng)目。7適配器(Adaptef)如果要用一

18、些無(wú)法硬編碼的信息來(lái)填充視圖組,比如將源于外部的數(shù)據(jù)綁定到視圖中。為達(dá)到這個(gè)目的,可以使用Adapterew作為視圖組,并用通過(guò)Adapter傳遞的數(shù)據(jù)初始化每個(gè)子視圖并填入其中。適配器(Adapter)類在Andmid框架中扮演轉(zhuǎn)接器的角色,其主要用途是改變界面。界面相當(dāng)于純粹的抽象類別(PurcAbs仃act Cl弱s),適合在框架中定義。Adapter組件讓框架里的抽象類別能誕生Adapter應(yīng)用類別的組件,來(lái)實(shí)現(xiàn)定義框架的新界面。Android中提供了大量的適配器(Adapter),常見(jiàn)的有BascAdapter、SimpleCurSorAdapter、Cu瑙DrAdapter等等,其

19、中包含CurSor可以自動(dòng)和數(shù)據(jù)庫(kù)關(guān)聯(lián)。一般在List'vie中我們需要定義一些顯示的內(nèi)容,需要用到繼承Adapter一實(shí)現(xiàn)窗口的子類化。一般我們需要重寫(xiě)Adapter類的四個(gè)方法即可,分別是public iIlt getCouIlt0、public objoCt getIt鋤(int posi廿on)、public 10ng getIteInId(int position)和publicewgetew(i11t position,View conv洲iew,ewGroup p搠lt),調(diào)用時(shí)仍然是在List、ew或“s認(rèn)ctiv時(shí)中直接se認(rèn)dapt呱CuSto蛐蜘apt砷即可,比較

20、典型的方法參考Andmid的自帶控件Gall叫的實(shí)現(xiàn),詳細(xì)的在API D鋤。中查找即可。213 Android模擬器Android SDK自帶一個(gè)移動(dòng)設(shè)備模擬器,它是一個(gè)可以運(yùn)行在電腦上的虛擬設(shè)備。Android模擬器可以讓你不需使用物理設(shè)備即可預(yù)覽、開(kāi)發(fā)和測(cè)試Android應(yīng)用程序。Android模擬器能夠模擬除了接聽(tīng)和撥打電話外的所有移動(dòng)設(shè)備上的典型功能和行為。如圖2-2所示,觸id模擬器提供了大量的導(dǎo)航和控制鍵,你可以通過(guò)鼠標(biāo)或鍵盤(pán)點(diǎn)擊這些按鍵來(lái)為你的應(yīng)用程序產(chǎn)生事件。同時(shí)它還有一個(gè)屏幕用于顯示捌d自帶應(yīng)用程序和你自己的應(yīng)用程序。為了便于模擬和測(cè)試應(yīng)用程序,向鰣d模擬器允許應(yīng)用程序通過(guò)A

21、ndIod平臺(tái)服務(wù)調(diào)用其他程序、訪問(wèn)網(wǎng)絡(luò)、播放音頻和視頻、保存和接收數(shù)據(jù)、通知用戶、渲染圖像過(guò)渡和場(chǎng)景。Alldfold模擬器同樣具有強(qiáng)丈的調(diào)試能力,例如能夠記錄內(nèi)核輸出的控制臺(tái)、模擬程序中斷(比如接收短信或打入電話)、模擬數(shù)據(jù)通道中的延時(shí)效果和遺失。21 4Andr。甜資源Andro討資源系統(tǒng)能跟蹤所有非代碼相關(guān)的應(yīng)用程序。你可以使用資源類來(lái)訪問(wèn)應(yīng)用程序的資源,資源的實(shí)例通常和應(yīng)用程序聯(lián)系在一起,你可毗通過(guò)cont白n gnR鶴011rcO來(lái)訪問(wèn)。血d“d支持字符串,圖片以及很多其他類型的資源。通常情況下可以通過(guò)三種類型的文件來(lái)創(chuàng)建贅源:“L文件(賒位圖以及原數(shù)據(jù)文件),位圖文件(對(duì)于圖片)

22、毗及原始數(shù)據(jù)(其它類型:例如聲音文件等等)。事實(shí)上,有兩種不同類型的xML文件,一種是編譯到包里的,另外一種是通過(guò)齟pl來(lái)產(chǎn)生的資源文件, 這里有一張包含所有資源類型、文件格式、文件描述以及所有xML文件的詳細(xì)信息的列表。在項(xiàng)目里,你可以在子目錄r蝦創(chuàng)建和存儲(chǔ)資源文件。AdIoid有一個(gè)資源編譯工具(aapt),它可以編譯在這個(gè)目錄下所有的子目錄中的資源,Android中各種資源的列表。你可以從資源引用這里看到各種類型的對(duì)象,包含其語(yǔ)法以及格式。215 And巾id系統(tǒng)架構(gòu)Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。如圖23所示,Android分為五個(gè)部分,分別是:應(yīng)用程序(A

23、pplication)、應(yīng)用程序框架(Application F姍cwork)、程序庫(kù)(Lib礎(chǔ)es)、Android運(yùn)行環(huán)境(AndroidRIlll血ne)、l衄核心(“nux K鋤e1)m。開(kāi)發(fā)人員也可以完全訪問(wèn)核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過(guò)得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。1應(yīng)用程序(Application)A皿h0id平臺(tái)將預(yù)置一些核心應(yīng)用程序,包括鋤ail客戶端、短消息程序、日歷、地圖、瀏覽器、通訊錄等等。

24、所有的這些程序都是用J撇開(kāi)發(fā)的。2應(yīng)用程序框架(AppIica“on Fr蜘ework)應(yīng)用程序標(biāo)準(zhǔn)接口,實(shí)際上就是開(kāi)發(fā)者在開(kāi)發(fā)程序時(shí)需要調(diào)用的一些接口a開(kāi)發(fā)者開(kāi)發(fā)的程序可以與核心應(yīng)用程序一樣,平等地使用框架的API。應(yīng)用程序框架是為了要建好組件的重新利用而設(shè)計(jì)的,它被設(shè)計(jì)成易于重甩的組件,使任何應(yīng)用程序都可以發(fā)布它的庫(kù)或包,并且其它的應(yīng)用也可以使用其發(fā)布的庫(kù)或包,但是要受限于架構(gòu)的安全限制。使用者也可以用同樣的機(jī)制來(lái)新增、替換Androld的組件。目前所有的應(yīng)用程序都是山服務(wù)(s州ices)和系統(tǒng)(sys鋤10組成,包)豐富而又可擴(kuò)展的視圖(views sysi1)可以用來(lái)構(gòu)建應(yīng)用程序,它包

25、括在開(kāi)發(fā)系統(tǒng)界面時(shí)常用的列表(1lm0、網(wǎng)格(印ds)、文本框(t既lbox曲、按鈕fbunonsl以及嵌入式的web瀏覽器等。_2) 內(nèi)容提供器(Content Pr0啊dcrs)使得應(yīng)用程序可以訪問(wèn)另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫(kù)), 或者共享它們自己的數(shù)據(jù)。3)資源管理器(Resource M鋤ag神提供各種非代碼資源的訪問(wèn),如本地字符串、圖形或布局文件(1ayout矗les)。4)通知管理器(Noti6cation Mallag哪使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。5)活動(dòng)管理器(Activity Mallag哪用來(lái)管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。6)窗口

26、管理器(Window M鋤ager)用來(lái)管理所有啟動(dòng)的窗口程式。7)位置管理器(L0cation Mallager)用來(lái)管理地圖服務(wù)的相關(guān)功能。8)電話管理器(Telephony Manager)用來(lái)管理有關(guān)用戶撥打或接聽(tīng)電話的相關(guān)功能。9)包管理器(Package Manager)管理所有安裝在Android系統(tǒng)內(nèi)的程序。3函式庫(kù)(I,ibr撕eS)Android包含一些CC抖庫(kù),這些庫(kù)能被Amdroid系統(tǒng)中不同的組件使;:用。它們通過(guò)Android應(yīng)用程序框架為開(kāi)發(fā)者提供服務(wù)。1)系統(tǒng)C庫(kù):一個(gè)從BSD繼承來(lái)的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù)(1ibc),它是專門(mén)為基于embedded linux的設(shè)備

27、定制的。2)媒體庫(kù):基于Packetdco 0pellCORE。該庫(kù)支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4、H264、MP3、AAC、AMR、JPG、PNG。3)Su概e Manager:對(duì)顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提供了2D和3D圖層的無(wú)縫融合。鍆LibW曲Core:一個(gè)最新的web瀏覽器引擎用,支持An(1roid瀏覽器和一個(gè)可嵌入的web視圖。5)SGL:底層的2D圖形引擎。4A1droid運(yùn)行環(huán)境(Android R嘶tiIlle)雖然Android是用J繃來(lái)開(kāi)發(fā)、編寫(xiě)應(yīng)用程序的,但卻不使用JavaRuntime來(lái)執(zhí)行Java應(yīng)用

28、程序,而是自行研發(fā)Android RuIltime來(lái)執(zhí)行應(yīng)用程序。在Android SDK的Android運(yùn)行環(huán)境分成兩個(gè)重要的部分來(lái)執(zhí)行系統(tǒng),這兩個(gè)重要部分分劇是核心函數(shù)庫(kù)(Corc Lib灑es)和Dalvm虛擬機(jī)(D小ikItIIal Machine)。1)核心函數(shù)庫(kù)(Core Libr撕es)核心函數(shù)庫(kù)里面已經(jīng)包含了絕大多數(shù)Java所需要調(diào)用的程序。加ldI-0id不是用一個(gè)Dalvik虛擬機(jī)來(lái)同時(shí)執(zhí)行多個(gè)Android應(yīng)用程序,而每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的DaLlvik虛擬機(jī)實(shí)例。2)Dalvik虛擬機(jī)(Dalviknual Machinc)

29、DalVik虛擬機(jī)被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。D撕k虛擬機(jī)執(zhí)行(dex)的D小il(可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由JA、,A編譯器編譯,然后通過(guò)SDK中的“dx”工具轉(zhuǎn)化成dex格式由虛擬機(jī)執(zhí)行。Dalvilc虛擬機(jī)依賴于liIlu)【內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。5 Linu)【核心(“nuXl(鋤e1)Andmid的核心系統(tǒng)服務(wù)依賴于Linux 26內(nèi)核,而所提供的核心系統(tǒng)服務(wù)如下所述:1)安全性(Se訓(xùn)劬2)內(nèi)存管理(M鋤。巧Managelnenl3l3)進(jìn)程管理(Pr0CeSS M柚agcII

30、lent)4)網(wǎng)絡(luò)協(xié)議棧(N釀帕rk Stack)5)驅(qū)動(dòng)模型(】蹦ver Model)。LiIlu)【內(nèi)核也同時(shí)作為硬件與軟件架構(gòu)之間的抽象層(Abs缸-action Layer)。_2。2 XML技術(shù)221 XML簡(jiǎn)介可擴(kuò)展標(biāo)記語(yǔ)言(eXtenSible Markup L鋤guage,L)是全面描述的SGML的子集,其目標(biāo)是在網(wǎng)絡(luò)上,以類似于HTML的方式實(shí)現(xiàn)SGML的發(fā)送、接收和處理。簡(jiǎn)單的說(shuō),兒是一種受限制的SGML形式,從結(jié)構(gòu)上看,XML文檔符合SGML文檔規(guī)范,而且江L與HTML兼容。刪L是一種元標(biāo)記語(yǔ)言,使用者可按需創(chuàng)建新的標(biāo)記。捌L的可擴(kuò)展性就在于此。帶標(biāo)記的元素是訂L文檔的構(gòu)

31、造塊,如表23所示。這種元素可以有若干個(gè)屬性,并可以包含零個(gè)或多個(gè)子元素,這些子元素可以是文本數(shù)據(jù),也可以是帶標(biāo)記的元素。XML語(yǔ)言作為一種標(biāo)準(zhǔn)語(yǔ)言得到廣泛應(yīng)用和各大廠家的支持,必然有它自身優(yōu)點(diǎn)存在??偟膩?lái)說(shuō),刪L的優(yōu)點(diǎn)主要體現(xiàn)在如下幾個(gè)方面:> 可擴(kuò)展性(ExteIlsibili啪lL繼承了SGML的許多關(guān)鍵特性,首先是良好的可擴(kuò)展性。xML允許使用者創(chuàng)建和使用自己的標(biāo)記而不是HTML的有限詞匯表,用戶可以根據(jù)應(yīng)用需要定義自己的標(biāo)記語(yǔ)言,也可以建立起一套特定行業(yè)標(biāo)記語(yǔ)言,做為信息共享和數(shù)據(jù)交換的基礎(chǔ)。> 內(nèi)容與形式分離(Content Separated From Fom)XML

32、的形式和內(nèi)容是分離的,這樣可以讓數(shù)據(jù)的收集者專注于數(shù)據(jù)處理,相同的數(shù)據(jù)無(wú)需改動(dòng)即可在不同的XSLML Style hguage)頁(yè)面下呈現(xiàn)不同的風(fēng)格。同時(shí),內(nèi)容和形式的分離使刪L文檔在不同應(yīng)用系統(tǒng)之間的轉(zhuǎn)換變得非常簡(jiǎn)單,用戶要做的只是將兩個(gè)不同煳L文檔的DTD(DocumeIlt聊eDefi血tion)或江LSChema進(jìn)行映射。>靈活性(Flexibili劬H例L之所以很難進(jìn)一步發(fā)展,是因?yàn)樗歉袷?、超文本和圖形用戶界面語(yǔ)義的混合,要同時(shí)發(fā)展這些混合在一起的功能是非常困難的。L提供了一種結(jié)構(gòu)化的數(shù)據(jù)表示方式,使得用戶界面分離于結(jié)構(gòu)化數(shù)據(jù),w曲用戶所追求的許多先進(jìn)功能在XML環(huán)境下易于實(shí)

33、現(xiàn)。> 自描述性(Selfmes謝ption)由于XML文檔是自描述的,江L文檔中的數(shù)據(jù)可以被任何能夠?qū)ML數(shù)據(jù)進(jìn)行解析的應(yīng)用所提取、分析和處理,并以所需格式顯示。刪L表示數(shù)據(jù)的方式做到了獨(dú)立于應(yīng)用系統(tǒng),并且可以實(shí)現(xiàn)數(shù)據(jù)的重用。)(ML還能用來(lái)表示那些以前不被看作文檔,但是對(duì)傳統(tǒng)的數(shù)據(jù)庫(kù)來(lái)說(shuō)又過(guò)于復(fù)雜而難以處理的數(shù)據(jù),例如樹(shù)狀結(jié)構(gòu)在刪L中得到了很好的體現(xiàn)。 平臺(tái)無(wú)關(guān)性(Flathd印endellcy)L是純文本的,不存在平臺(tái)問(wèn)題,能通過(guò)各種網(wǎng)絡(luò)協(xié)議在各種網(wǎng)絡(luò)平臺(tái)13和應(yīng)用平臺(tái)上傳輸和使用。XML處理工具可以輕松地讀取并利用這些數(shù)據(jù),這使得刪L成為一種非常理想的網(wǎng)際語(yǔ)言。>簡(jiǎn)明性(

34、Concis衄髂S)XML具有簡(jiǎn)明性,它只有SGML約20的復(fù)雜性,但卻具有SGML功能的約80的功能。XML比完整的SGML簡(jiǎn)單,易學(xué)易用。> 健壯性(Ibbus缸1e豁)XML不同于普通的文件格式,由于采用封閉式標(biāo)簽的辦法將數(shù)據(jù)組織成樹(shù)型結(jié)構(gòu),以及DTD和vIL SChema的存在,L文檔具有很強(qiáng)的健壯性。即使文件內(nèi)容部分丟失,剩下的部分仍然可以讀取。此外,捌L要求標(biāo)記配對(duì)、嵌套、嚴(yán)格遵守DTD的規(guī)定,非常注重準(zhǔn)確性。嚴(yán)格的語(yǔ)法要求使XML具有良好的可讀性和可維護(hù)性。正是由于xML的技術(shù)先進(jìn)性,業(yè)界很快接受了這項(xiàng)由W3C推薦、允許在未知平臺(tái)下進(jìn)行數(shù)據(jù)通信和信息存儲(chǔ)的技術(shù)。例如,微軟在

35、NET中廣泛的應(yīng)用了L技術(shù)。作為一種通用數(shù)據(jù)格式,x】L被用于從配置文件到元數(shù)據(jù)、從IUC到對(duì)象串行化的多種應(yīng)用場(chǎng)合。222 XML語(yǔ)法規(guī)則L數(shù)據(jù)具有高度的層次化結(jié)構(gòu),嚴(yán)格的語(yǔ)法規(guī)則,其在XMLl0中就有了明確的規(guī)范。如果文檔內(nèi)容和結(jié)構(gòu)不符合這種規(guī)范,它就不可能被任何L處理器所處理。下面是一些基本的語(yǔ)法規(guī)則【2】: o1)每個(gè)文檔有且僅有一個(gè)根元素(Root),其他所有元素都是它的子元素。2)每個(gè)元素對(duì)的上下文(context)關(guān)系要正確。即元素之間必須正確的嵌套。因?yàn)閄ML是半結(jié)構(gòu)化數(shù)據(jù),可以用xML描述樹(shù)來(lái)表示其結(jié)構(gòu),所以它的邏輯結(jié)構(gòu)和語(yǔ)法都有嚴(yán)格定義(如使用DTD或SCh鋤a)。3)每個(gè)

36、元素(El鋤eIlt)都必須有開(kāi)始和結(jié)束標(biāo)記(<和>)。元素的內(nèi)容可以是其它的元素、字符數(shù)據(jù)、字符引用、實(shí)體引用、PI、注釋和CDATA(CharacterD觸rA,字符數(shù)據(jù))節(jié),元素也是能夠擁有屬性的唯一基本類型。4)元素的屬性值必須由單引號(hào)(¨)或雙引號(hào)(“)包含。222XML解析技術(shù)應(yīng)用程序使用)Q詛L文檔的時(shí)候,需要對(duì)其進(jìn)行解析,將其從文件的格式轉(zhuǎn)變成為程序中可直接使用的數(shù)據(jù)結(jié)構(gòu)。換句話說(shuō),解析程序讀入XML文檔,識(shí)別出各個(gè)語(yǔ)法單元,然后將語(yǔ)法單元封裝成一定的數(shù)據(jù)結(jié)構(gòu)報(bào)告給應(yīng)用程序,目前主要的XML處理技術(shù)主要有兩種:DoM和SAX。1DOM解析DoM(Docum鋤t Object Model)是用與平臺(tái)和語(yǔ)言無(wú)關(guān)的方式表示XML文檔的官方W3C標(biāo)準(zhǔn),其不僅提供了對(duì)存儲(chǔ)在內(nèi)存中的訌L文檔的一個(gè)完全的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論