




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、理工大學(xué)學(xué)士學(xué)位論文摘 要目前的幻燈片播放系統(tǒng),大部分采用將計(jì)算機(jī)與投影儀有線連接,在計(jì)算機(jī)中使用微軟開發(fā)的PowerPoint軟件進(jìn)行幻燈片的播放并將播放數(shù)據(jù)通過有線傳輸?shù)酵队皟x,投影儀經(jīng)過數(shù)據(jù)處理將幻燈片投射到幕布等顯示設(shè)備上。此類幻燈片的播放系統(tǒng)無法讓演講者在展示的時(shí)候隨意走動(dòng),有一定的限制性。在各種商務(wù)場(chǎng)合,PPT演示成為不可缺少的溝通方式,例如客戶見面會(huì)、商務(wù)會(huì)談或私人會(huì)務(wù)。通過演示PPT文稿,可讓對(duì)方更清晰直觀了解你要表達(dá)的意圖,增加商務(wù)談判的成功率。在WIFI局域網(wǎng)下,手機(jī)可以和電腦通過Socket通信。手機(jī)做服務(wù)端,電腦做客戶端;而本系統(tǒng)通過一臺(tái)平板電腦即可實(shí)現(xiàn)幻燈片的無線播放
2、功能,并且不需要復(fù)雜的布線和連接,使用簡(jiǎn)單、維護(hù)方便。而且通過平板電腦的多媒體顯示功能還可以提升企業(yè)形象,甚至通過播放廣告信息還可為企業(yè)增加額外收入。不少商務(wù)精英經(jīng)常要在移動(dòng)辦公環(huán)境中為客戶演示PPT文稿,例如咖啡館、商務(wù)會(huì)館或辦公室。不同于正襟危坐的會(huì)議形式的是,講演者借助裝有Android的平板電腦,及內(nèi)置的“自動(dòng)播放”功能,無論在何種場(chǎng)合都可以召開小型會(huì)議。在會(huì)議室里,只需將平板與顯示器、投影儀、智能電視等顯示設(shè)備連接,就可通過大屏幕將PPT內(nèi)容同步播放給觀眾。讓觀眾可以更直觀清晰了解PPT內(nèi)容,讓PPT演示更精彩。關(guān)鍵詞: PPT;無線同步;Socket通信AbstractSlides
3、 of broadcasting system at present, most of them adopt the computer and projector cable connection, in a computer using Microsoft PowerPoint software to play slides and will play data by wire transfer to the projector, projector through data processing to slide onto a screen display devices, etc. Th
4、ese slides playback system can't let the speaker walked on, have certain restriction.In all kinds of business occasions, PowerPoint presentations to become indispensable means of communication, such as customer meeting, business talks or private affairs. Through the presentation PPT presentation
5、, can let each other more clearly understand what do you want to express intentions, increase the success rate of business negotiation.The WIFI local area net, a cell phone and computer can be through the Socket communication. Phone do server-side, client computers do. But this system through a tabl
6、et slides wireless display function can be realized, and does not require complex wiring and connection, simple to use, easy maintenance. And a multimedia display by tablet can promote the enterprise image, and even from the advertising information still can increase additional income for the enterp
7、rise.Many businessmen often have to demo PPT for clients in the mobile environment, such as cafe, business center, or office. Unlike sit is in the form of meeting, the speaker using Android tablet, and built-in "autoplay" function, can hold a small meeting in any occasion. In the room, jus
8、t put the tablet and display equipment such as monitors, projectors, intelligent TV connection, can be shown to PPT content synchronization through the screen to the audience. Let the audience can be more intuitive and clear understand the PPT content, make PPT presentation better.Key words: PPT, wi
9、reless synchronization, Socket communication目 錄1 緒論11.1 課題簡(jiǎn)介11.2 研究背景11.3 Android 平臺(tái)發(fā)展?fàn)顩r21.4 論文的主要工作和論文結(jié)構(gòu)41.4.1 課題主要完成的工作41.4.2 論文結(jié)構(gòu)52 幻燈片無線傳輸客戶端相關(guān)技術(shù)62.1 Android平臺(tái)介紹62.1.1 Android簡(jiǎn)介62.1.2 Android 系統(tǒng)架構(gòu)62.1.3 Android應(yīng)用組件類型分析82.1.4 Android應(yīng)用程序開發(fā)工具102.2 Socket網(wǎng)絡(luò)通信112.2.1 Socket協(xié)議概述112.2.2 Socket網(wǎng)絡(luò)通信的工作原
10、理123 需求分析143.1 系統(tǒng)說明143.1.1 系統(tǒng)名稱及說明143.1.2 系統(tǒng)開發(fā)背景143.2 系統(tǒng)任務(wù)143.2.1 系統(tǒng)設(shè)計(jì)要求和目標(biāo)143.2.2 系統(tǒng)設(shè)計(jì)原則153.3 系統(tǒng)用戶需求分析153.3.1 系統(tǒng)用戶定義及關(guān)系153.4 Android平臺(tái)技術(shù)選型及開發(fā)環(huán)境163.4.1 Android平臺(tái)技術(shù)選型163.4.2 Android開發(fā)環(huán)境搭建164 Android系統(tǒng)的幻燈片無線播放系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)184.1 手機(jī)端的設(shè)計(jì)與實(shí)現(xiàn)184.1.1 手機(jī)端界面的設(shè)計(jì)184.1.2 手機(jī)端界面的實(shí)現(xiàn)204.2 WLAN下的Android手機(jī)與電腦的Socket通信254.2
11、.1 WiFi技術(shù)的研究254.2.2 Socket網(wǎng)絡(luò)通信的設(shè)計(jì)與實(shí)現(xiàn)265 系統(tǒng)測(cè)試325.1 測(cè)試環(huán)境搭建325.2 功能和性能測(cè)試32結(jié) 論34致 謝35參考文獻(xiàn)36附錄A:英文原文37附錄B:漢語翻譯49581 緒論1.1 課題簡(jiǎn)介 隨著移動(dòng)互聯(lián)網(wǎng)帶寬的增長(zhǎng),即時(shí)多媒體應(yīng)用成為新的應(yīng)用熱點(diǎn)。在各種商務(wù)場(chǎng)合,PPT演示成為不可缺少的溝通方式,例如客戶見面會(huì)、商務(wù)會(huì)談或私人會(huì)務(wù)。通過演示PPT文稿,可讓對(duì)方更清晰直觀了解你要表達(dá)的意圖,增加商務(wù)談判的成功率。不同于正襟危坐的會(huì)議形式的是,講演者借助裝有Android的平板電腦,無論在何種場(chǎng)合都可以召開小型會(huì)議。在會(huì)議室里,只需將平板與顯示
12、器、投影儀、智能電視等顯示設(shè)備連接,就可通過大屏幕將PPT內(nèi)容同步播放給觀眾。讓觀眾可以更直觀清晰了解PPT內(nèi)容,讓PPT演示更精彩。本課題主要是致力于基于Android系統(tǒng)的幻燈片無線播放系統(tǒng)研究。1.2 研究背景 隨著全球信息化不斷發(fā)展,Internet及其相關(guān)通信技術(shù)已經(jīng)大大突破了時(shí)空阻礙,改變著人們?nèi)粘5纳?。特別是電信網(wǎng)、廣播電視網(wǎng)和計(jì)算機(jī)通信網(wǎng)的相互滲透、互相兼容、并逐步整合成為全世界統(tǒng)一的信息通信網(wǎng)絡(luò)。TCP/IP協(xié)議的普遍采用,使得各種以IP為基礎(chǔ)的業(yè)務(wù)都能在不同的網(wǎng)絡(luò)上實(shí)現(xiàn)互通。 人類首次具有統(tǒng)一的為三大網(wǎng)都能接受的通信協(xié)議,從技術(shù)上為三網(wǎng)融合奠定了最堅(jiān)實(shí)的基礎(chǔ)。使得運(yùn)行在原
13、有三個(gè)網(wǎng)絡(luò)上的設(shè)備得以互通互聯(lián)。隨著以智能手機(jī)為代表的移動(dòng)互聯(lián)網(wǎng)終端的發(fā)展,移動(dòng)終端設(shè)備已經(jīng)跨越了僅僅將通信作為唯一目標(biāo)的模式,而變成具有更多市場(chǎng)的微型計(jì)算機(jī)平臺(tái)。在移動(dòng)設(shè)備的革命中,移動(dòng)互聯(lián)網(wǎng)將融入到人們?nèi)粘I畹姆椒矫婷妫苿?dòng)互聯(lián)網(wǎng)終端將為我們提供多元化的資訊與服務(wù)。Google為此于2007年11月推出了一個(gè)專為移動(dòng)設(shè)備設(shè)計(jì)的軟件平臺(tái)Android.Android是一個(gè)真正意義上的開放性移動(dòng)設(shè)備綜合平臺(tái)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序移動(dòng)互聯(lián)網(wǎng)終端工作所需的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。其強(qiáng)大的企業(yè)聯(lián)盟,以及其極具前瞻性的選擇Linux作為操作系統(tǒng),整合性
14、能優(yōu)秀的JAVA虛擬機(jī)以及業(yè)界領(lǐng)先的瀏覽器,以及新穎的Android Market軟件分享方式。因此具有很大的市場(chǎng)開發(fā)潛力。1.3 Android 平臺(tái)發(fā)展?fàn)顩r Android 平臺(tái)在2010年里發(fā)展勢(shì)頭迅猛,迅速占領(lǐng)了智能手機(jī)操作系統(tǒng) 30%以上的市場(chǎng)份額。Android平臺(tái)不再局限于手機(jī)操作系統(tǒng),更向平板電腦其他移動(dòng)互聯(lián)網(wǎng)終端發(fā)展。標(biāo)準(zhǔn)化和跨平臺(tái)是Android平臺(tái)的一大優(yōu)勢(shì)。作為源開發(fā)平臺(tái),任何手機(jī)廠商可以自由選擇對(duì)代碼做出修改, 同時(shí)修改的結(jié)果也迅速返回到Google,保持系統(tǒng)的統(tǒng)一性。其次是Java語言作為Android應(yīng)用程序的開發(fā)語言。Java具有一次編寫、到處運(yùn)行的跨平臺(tái)屬性,
15、也就是說,開發(fā)者只要用Java語言編寫一遍程序,就能夠在所有裝有Android操作系統(tǒng)的設(shè)備上運(yùn)行,做到了與硬件的無關(guān)性,這大幅度降低了開發(fā)者的開發(fā)周期和開發(fā)經(jīng)費(fèi)。 再者,Google為Android提供標(biāo)準(zhǔn)化的API和SDK開發(fā)套件,開發(fā)廠商可以根據(jù)自行的需求開發(fā)或收納已有的Android應(yīng)用程序,從而打造出富有自身特色的Android平臺(tái)。這對(duì)開發(fā)廠商來說,軟件技術(shù)之類的問題他完全可以不管,并且也能快速整合出適合自己的一套軟件平臺(tái),然后在硬件設(shè)計(jì)集中主要精力,也可以在較短的時(shí)間內(nèi)快速推出新的移動(dòng)互聯(lián)網(wǎng)產(chǎn)品。 對(duì)開發(fā)廠商來說, 標(biāo)準(zhǔn)化的Android絕對(duì)是一個(gè)理想的選擇,現(xiàn)在Android應(yīng)
16、用程序的開發(fā)者只需編寫一次代碼,就可以實(shí)現(xiàn)在所有Android平臺(tái)上的順利運(yùn)行。 Android和操作系統(tǒng)進(jìn)行了緊密的整合,從而可以方便地使用操作系統(tǒng)的功能。這與難于使用操作系統(tǒng)功能的J2ME相比,無疑對(duì)開發(fā)者有很大的吸引力。 雖然都是使用Java語言進(jìn)行開發(fā),但是Android使用的Dalvik虛擬機(jī)和 J2ME使用的標(biāo)準(zhǔn)的Java虛擬機(jī)(JVM)存在以下區(qū)別:1. 在移動(dòng)模擬器方面:Dalvik在Android平臺(tái)上的模擬器為Qemu,而J2ME 官方的是WTK,同時(shí)摩托羅拉、索尼愛立信、諾基亞都有自己的模擬器,同時(shí) Symbian J2ME有更多的擴(kuò)展類,諾基亞的擴(kuò)展類兼容性最差。2.
17、在程序兼容性方面:兼容性算是Android Dalvik和J2ME相比最大的突破了,在J2ME上開發(fā)的程序,在各個(gè)公司不同型號(hào)設(shè)備間的移植就很繁瑣,除了硬件差異和屏幕分辨率要考慮外, 還有很多其他的問題。而Android Dalvik背后是Google的開放手機(jī)聯(lián)盟在支持,所以可以完全脫離硬件標(biāo)準(zhǔn)的困擾。3. 在運(yùn)行效率方面:Android Dalvik會(huì)把Java Class編碼轉(zhuǎn)變?yōu)镈ex,Dex是Dalvik VM executes的縮寫, 內(nèi)存和運(yùn)行效率都經(jīng)過優(yōu)化, 而J2ME的為 KJAVA,千字節(jié)的Java VM所以在資源上控制的也很好。Dalvik是基于寄存器,而JVM是基于堆棧
18、。Android選擇采用寄存器的方式是因?yàn)樗鼘?duì)提前優(yōu)化,提供了更好的支持,而這對(duì)類似于移動(dòng)電話這樣的受限環(huán)境是頗有裨益的。 針對(duì)基于寄存器虛擬機(jī)和基于堆棧的虛擬機(jī)更深入的比較分析指出,基于寄存器的虛擬機(jī)對(duì)于程序來說,在它們編譯時(shí)花費(fèi)的時(shí)間更短。4. 安全性方面:安全性一向Java所注重的, 無論是在內(nèi)存分配還是高層上不會(huì)有太多危險(xiǎn)的操作,這是在J2ME平臺(tái)來看。而Dalvik作為Android平臺(tái)級(jí)開發(fā)語言,系統(tǒng)權(quán)限問題必然會(huì)涉及,如用戶控制、Linux的盤等,不過Android平臺(tái)通過一個(gè)WPF的模型,AndroidManifestxml文件統(tǒng)一管理應(yīng)用程序中的各個(gè)組成部分,與Symbian
19、有點(diǎn)類似,所以大體上可以放心使用。5. 類庫(kù)完整性方面:可以說在這一點(diǎn)上 Sun做的比較全面,但是我們看到 Dalvik實(shí)際上是對(duì)J2ME的補(bǔ)充,并不是做重復(fù)性工作,除了界面UI系統(tǒng)有變革比較大以外,其他方面兼容性還是很好的,所以目前版本的Dalvik已經(jīng)包含了一些重要的特性,如:Base64編碼、XMLDOM、MD5處理、影音解碼器(部分為可選包)。其實(shí),Android也是將J2ME未競(jìng)的事業(yè)進(jìn)一步完成。J2ME提供了統(tǒng)一的編程平臺(tái),但是J2ME不能調(diào)用操作系統(tǒng)資源,也沒有提供相對(duì)豐富的應(yīng)用工具,最終J2ME處在一個(gè)非常尷尬的位置上。 而Android從底層的操作系統(tǒng)內(nèi)核, 到上層的現(xiàn)成的應(yīng)
20、用軟件,加之免費(fèi)、開源和普及較廣的Java開發(fā)語言,為開發(fā)人員編寫軟件提供了極大的便利。這一切都表明了Android是J2ME十分有利的競(jìng)爭(zhēng)對(duì)手,并且有望引領(lǐng)未來的移動(dòng)終端市場(chǎng)。Android具有以下幾個(gè)特點(diǎn) 無界限的應(yīng)用程序,Android上的應(yīng)用程序可以通過標(biāo)準(zhǔn)API訪問核心移動(dòng)設(shè)備功能。通過互聯(lián)網(wǎng),應(yīng)用程序可以聲明它們的功能可以供其他應(yīng)用程序使用。應(yīng)用程序是在平等的條件下創(chuàng)建的,移動(dòng)設(shè)備上的應(yīng)用程序可以被替換或擴(kuò)展,即使撥號(hào)程序或主屏幕這樣的核心組件也可以。 應(yīng)用程序可以輕松地嵌入網(wǎng)絡(luò),應(yīng)用程序可以輕松地嵌入HTML、JavaScript和樣式表。應(yīng)用程序可以通過Web View顯示網(wǎng)絡(luò)
21、內(nèi)容。 應(yīng)用程序可以并行運(yùn)行,Android作為種完整的多任務(wù)環(huán)境,其中應(yīng)用程序可以并行運(yùn)行。在后臺(tái)運(yùn)行時(shí),應(yīng)用程序可以生成通知以引起用戶的注意。 以Android豐富的功能支持和全面的計(jì)算服務(wù),它完全有能力拓展到移動(dòng)電話以外的市場(chǎng),比如掌上電腦、平板電腦和上網(wǎng)本,Android同樣也可以用于其他的移動(dòng)終端。由于Google對(duì)Android系統(tǒng)強(qiáng)有力的后續(xù)支持,2011將會(huì)是Android系統(tǒng)井噴之年。Android原本就是Google為擴(kuò)展其龐大的移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)應(yīng)運(yùn)而生的?,F(xiàn)在Google給我們呈現(xiàn)了一個(gè)無限大的平臺(tái)。供我們自由揮灑創(chuàng)造力和想象力,挖掘互聯(lián)網(wǎng)的無窮潛力。隨著3G技術(shù)的發(fā)展,越
22、來越多的應(yīng)用開始轉(zhuǎn)向移動(dòng)平臺(tái)和移動(dòng)互聯(lián)網(wǎng)。智能手機(jī)將逐步取代電腦成為我們獲取信息的首要平臺(tái)。當(dāng)手機(jī)平臺(tái)和云計(jì)算結(jié)合之后我們的生活將會(huì)發(fā)生天翻地覆的變化。1.4 論文的主要工作和論文結(jié)構(gòu)1.4.1 課題主要完成的工作 1. 在介紹課題背景及研究意義的基礎(chǔ)上,分析智能移動(dòng)終端的特征和發(fā)展趨勢(shì),并對(duì)Android平臺(tái)的發(fā)展進(jìn)行了更進(jìn)一步的分析,說明Android平臺(tái)是一個(gè)很有價(jià)值的智能移動(dòng)終端平臺(tái)。 2. 對(duì)Android平臺(tái)的系統(tǒng)架構(gòu)及在其之上開發(fā)的應(yīng)用程序結(jié)構(gòu)進(jìn)行了深入的分析。內(nèi)容主要有:Android平臺(tái)的系統(tǒng)架構(gòu);Android平臺(tái)應(yīng)用組件類型分析和Android應(yīng)用程序開發(fā)工具。 3. 對(duì)
23、Android開發(fā)環(huán)境進(jìn)行搭建,分析在進(jìn)行應(yīng)用程序設(shè)計(jì)時(shí)需要解決的問題。 4. 完成Android平臺(tái)幻燈片無線傳輸客戶端軟件的需求分析,并對(duì)各功能模塊進(jìn)行了劃分和實(shí)現(xiàn)。 5. 完成對(duì)Android平臺(tái)幻燈片無線傳輸客戶端軟件測(cè)試平臺(tái)的搭建,并對(duì)軟件進(jìn)行了功能和性能方面的測(cè)試。1.4.2 論文結(jié)構(gòu) 第一章:緒論,給出了本文的選題背景和相關(guān)技術(shù)在國(guó)內(nèi)外研究現(xiàn)狀。 第二章:對(duì)Android平臺(tái)的架構(gòu)、應(yīng)用組件和開發(fā)工具進(jìn)行了介紹。首先分析了Android操作系統(tǒng)的系統(tǒng)架構(gòu), 接著對(duì)Android組件進(jìn)行了分析, 以及對(duì)Android開發(fā)工具的描述。 第三章:首先介紹了幻燈片無線傳輸總體項(xiàng)目,然后具
24、體介紹的本課題的網(wǎng)絡(luò)模型,進(jìn)而對(duì)Android幻燈片無線傳輸客戶端進(jìn)行了功能和非功能的需求分析,下來對(duì)客戶端進(jìn)行了總體設(shè)計(jì),并對(duì)實(shí)現(xiàn)設(shè)計(jì)進(jìn)行了技術(shù)選型,最后搭建了開發(fā)Android應(yīng)用軟件的開發(fā)環(huán)境。 第四章:在上一章分析的基礎(chǔ)上,進(jìn)一步對(duì)各個(gè)模塊功能進(jìn)行了分析,并對(duì)各模塊進(jìn)行了功能設(shè)計(jì)與實(shí)現(xiàn)。 第五章:完成了測(cè)試平臺(tái)的搭建,對(duì)Android平臺(tái)幻燈片無線傳輸傳輸客戶端軟件功能和性能方面的測(cè)試。 第六章:結(jié)束語,本章總結(jié)了本文的工作,討論了工作中還有待改進(jìn)的地方。2 幻燈片無線傳輸客戶端相關(guān)技術(shù)本章主要介紹了Android幻燈片無線傳輸客戶端所涉及的相關(guān)的技術(shù)。主要包括Android平臺(tái)的系統(tǒng)
25、架構(gòu)、Android應(yīng)用程序的組件類型、對(duì)Android開發(fā)工具的介紹以及對(duì)Socket通信的介紹。2.1 Android平臺(tái)介紹 2.1.1 Android簡(jiǎn)介 Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。Android包括操作系統(tǒng)、用戶界面和應(yīng)用程序移動(dòng)電話工作所需的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。Google與開放手機(jī)聯(lián)盟合作開放了Android,這個(gè)聯(lián)盟由包括中國(guó)移動(dòng)、摩托羅拉、高通、宏達(dá)電和T-Mobile在內(nèi)的30多
26、家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成。Google通過與運(yùn)營(yíng)商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動(dòng)電話軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開放式的生態(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)期以來奉行的移動(dòng)發(fā)展戰(zhàn)略一通過與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動(dòng)服務(wù),并推廣這些產(chǎn)品。2.1.2 Android 系統(tǒng)架構(gòu) Android的系統(tǒng)架構(gòu)和其
27、操作系統(tǒng)一樣,采用了分層的架構(gòu)。如圖2.1 Android系統(tǒng)架構(gòu)所示,Android分為五個(gè)部分,分別是:應(yīng)用程序(Application)、應(yīng)用程序框架(Application Framework)、程序庫(kù)(Libraries)、Android運(yùn)行時(shí)庫(kù)(AndroidRuntime) 、linux核心(Linux Kernel)。應(yīng)用程序:Android將包含一套核心應(yīng)用程序,其中包括E-Mai l客戶端,短信程序,日歷,地圖,瀏覽器,通訊錄等等。所有的應(yīng)用程序都是由Java語言完成的。應(yīng)用程序框架:開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用
28、;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。程序庫(kù):Android包含套C/C+開發(fā)庫(kù),主要包括:Libc、Media、Framework、WebKit、SGL、OpenGL ES、FreeType、SQLite等。它們被用于Android系統(tǒng)的各種組件中。這些功能通過Android應(yīng)用框架展現(xiàn)給開發(fā)人員。Android運(yùn)行時(shí)庫(kù):Android運(yùn)行時(shí)庫(kù)包含一組核心庫(kù)(提供了Java語言核心庫(kù)內(nèi)的大部分功能)和Dalvik虛擬機(jī)。同時(shí) Android 提供了豐富的庫(kù)類
29、支持且大部分為開源代碼,如2D和3D圖像庫(kù)OpenGL ES、數(shù)據(jù)庫(kù)SQLite。Linux核心:Android基于Linux 2.6內(nèi)核來提供系統(tǒng)的核心服務(wù),如安全機(jī)制,內(nèi)存管理,進(jìn)程管理網(wǎng)絡(luò)堆棧和驅(qū)動(dòng)模型,如圖2.1所示。內(nèi)核還作為硬件和其余的軟件應(yīng)用之間的一個(gè)抽象層。圖2.1 Android系統(tǒng)架構(gòu)圖從總體架構(gòu)中看,Android相比其他平臺(tái)顯示出了自身的特點(diǎn),比如WebKit 瀏覽器、Dalvik虛擬機(jī)等模塊。這些模塊的應(yīng)用也成了Android的焦點(diǎn),開發(fā)者可以充分利用Android提供的這些模塊的接口。開發(fā)出更具有特色的應(yīng)用程序。2.1.3 Android應(yīng)用組件類型分析 Andro
30、id應(yīng)用組件對(duì)象主要由四個(gè)部分構(gòu)成:Activity、Intent、Service、ContentProvider。如圖2.2所示的是Android應(yīng)用組件類型。1、AndroidManifest.xml文件是整個(gè)應(yīng)用程序的配置文件,所有下面的組件都必須在AndroidManifest.xml中聲明。AndroidManifest.xml負(fù)責(zé)把Activity、Intent、Service、Content Provider有機(jī)的組合起來,形成一個(gè)整體的應(yīng)用程序。圖2.2 Android應(yīng)用組件類型圖2. Activity:基本模塊,通常代表一個(gè)單獨(dú)的屏幕,主要用于處理應(yīng)用程序的整體性工作,如監(jiān)
31、聽系統(tǒng)事件、為用戶顯示指定的View、啟動(dòng)其他Activity等。在Android軟件環(huán)境中,應(yīng)用程序由一系列的Acitivity組成,Activity不但能提供給應(yīng)用程序本身,也可以提供給系統(tǒng)內(nèi)任何一個(gè)外部應(yīng)用,開發(fā)者可以通過Activity組成形成應(yīng)用程序。圖2.3 Activity棧流程圖Activity類的應(yīng)用程序有其默認(rèn)的運(yùn)行方式,它有自己的生命周期,即它的產(chǎn)生、運(yùn)行、銷毀的一個(gè)過程。如圖2.3所示的是Activity棧流程,在系統(tǒng)中的 Activity被一個(gè)Activity棧所管理。當(dāng)一個(gè)新的屏幕打開后,前一個(gè)屏幕將會(huì)暫停,并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的前一個(gè)屏幕。
32、當(dāng)屏幕不再使用時(shí),還可以從歷史堆棧中刪除。默認(rèn)情況下,Android將會(huì)保留從主屏幕到每一個(gè)應(yīng)用的運(yùn)行屏幕。3. Intent:執(zhí)行某操作的一個(gè)抽象描述,用于協(xié)調(diào)應(yīng)用程序內(nèi)部和應(yīng)用程序間的交互與通訊。Intent的結(jié)構(gòu)包括動(dòng)作和動(dòng)作所對(duì)應(yīng)的數(shù)據(jù)。動(dòng)作表示一般的操作行為,典型動(dòng)作的值有MAIN(活動(dòng)的入口),VIEW、PICK、EDIT和其他一些。動(dòng)作所對(duì)應(yīng)的數(shù)據(jù)URI表示。Intent常用來實(shí)現(xiàn)Activity的切換,并傳遞相關(guān)信息。Intent的解析機(jī)制主要是通過查找已注冊(cè)在AndroidManifest.xml中的所有IntentFilter及其中定義的Intent,最終找到匹配的Inte
33、nt。4. Service:一個(gè)無固定期限在后臺(tái)運(yùn)行的應(yīng)用組件,它沒有 UI,也不與用戶進(jìn)行交互。在activity中我們可以用Context.startService()來啟動(dòng)一個(gè)service。同時(shí),系統(tǒng)也將保持這個(gè)service一直執(zhí)行,直到這個(gè)service運(yùn)行結(jié)束。另外,我們還可以通過使用Context.bindService()的方法,連接到另一個(gè)service上(如果這個(gè)service還沒有運(yùn)行將啟動(dòng)它)。當(dāng)連接到另一個(gè)service之后,我們還可以為service提供的接口與它進(jìn)行通訊。5. Content Provider:在 Android中,Content Provide
34、r是一個(gè)特殊的存儲(chǔ)數(shù)據(jù)的類型,它提供了一套標(biāo)準(zhǔn)的接口來獲取和儲(chǔ)存數(shù)據(jù),以方便其他的應(yīng)用保存和讀取此內(nèi)容提供器處理的各種數(shù)據(jù)類型。當(dāng)某個(gè)應(yīng)用程序希望與其它的應(yīng)用共享其數(shù)據(jù)時(shí),Android提供的Content Provider就可以發(fā)揮作用了。在實(shí)現(xiàn)Content Provider的抽象接口以后,程序可以將自己的數(shù)據(jù)暴露出去,其他程序只要有權(quán)限,就可以通過這一套標(biāo)準(zhǔn)而統(tǒng)一的接口,讀取或是刪除該程序的數(shù)據(jù)。2.1.4 Android應(yīng)用程序開發(fā)工具Android平臺(tái)上的應(yīng)用程序都是由Java開發(fā)的。Android一般選用Eclipse作為應(yīng)用程序開發(fā)環(huán)境。并為Eclipse編寫了專門的ADT插件,
35、此外還有一個(gè)專門用于Android開發(fā)的Android SDK,Android SDK指的是Android專屬的軟件開發(fā)工具包。調(diào)試工具:Android SDK 自帶一個(gè)移動(dòng)設(shè)備模擬器,它可以讓開發(fā)者不需使用物理設(shè)備就可以預(yù)覽、開發(fā)和測(cè)試Android應(yīng)用程序。Android模擬器能夠模擬除了接聽和撥打電話外的所有移動(dòng)設(shè)備上的典型功能和行為。如圖2.4所示,Android模擬器提供了大量的導(dǎo)航和控制鍵, 開發(fā)者可以通過鼠標(biāo)或鍵盤點(diǎn)擊這些按鍵來為你的應(yīng)用程序產(chǎn)生事件。同時(shí)它還有一個(gè)屏幕用于顯示Android自帶應(yīng)用程序和開發(fā)的應(yīng)用程序。圖2.4 Android移動(dòng)設(shè)備模擬器圖2.2 Socket
36、網(wǎng)絡(luò)通信2.2.1 Socket協(xié)議概述Socket的英文原義是“孔”或“插座”。在這里作為4BDS UNIX的進(jìn)程通信機(jī)制,取后一種意思。Socket非常類似于電話插座。以一個(gè)國(guó)家級(jí)電話網(wǎng)為例。電話的通話雙方相當(dāng)于相互通信的兩個(gè)進(jìn)程,區(qū)號(hào)是它的網(wǎng)絡(luò)地址;區(qū)內(nèi)一個(gè)單位的交換機(jī)相當(dāng)于一臺(tái)主機(jī),主機(jī)分配給每個(gè)用戶的局內(nèi)號(hào)碼相當(dāng)于Socket號(hào)。任何用戶在通話之前,首先要占有一部電話機(jī),相當(dāng)于申請(qǐng)一個(gè)Socket;同時(shí)要知道對(duì)方的號(hào)碼,相當(dāng)于對(duì)方有一個(gè)固定的Socket。然后向?qū)Ψ綋芴?hào)呼叫,相當(dāng)于發(fā)出連接請(qǐng)求(假如對(duì)方不在同一區(qū)內(nèi),還要撥對(duì)方區(qū)號(hào),相當(dāng)于給出網(wǎng)絡(luò)地址)。對(duì)方假如在場(chǎng)并空閑(相當(dāng)于通信
37、的另一主機(jī)開機(jī)且可以接受連接請(qǐng)求),拿起電話話筒,雙方就可以正式通話,相當(dāng)于連接成功。雙方通話的過程,是一方向電話機(jī)發(fā)出信號(hào)和對(duì)方從電話機(jī)接收信號(hào)的過程,相當(dāng)于向Socket發(fā)送數(shù)據(jù)和從Socket接收數(shù)據(jù)。通話結(jié)束后,一方掛起電話機(jī)相當(dāng)于關(guān)閉Socket,撤消連接。在電話系統(tǒng)中,一般用戶只能感受到本地電話機(jī)和對(duì)方電話號(hào)碼的存在,建立通話的過程,話音傳輸?shù)倪^程以及整個(gè)電話系統(tǒng)的技術(shù)細(xì)節(jié)對(duì)他都是透明的,這也與Socket機(jī)制非常相似。Socket利用網(wǎng)間網(wǎng)通信設(shè)施實(shí)現(xiàn)進(jìn)程通信,但它對(duì)通信設(shè)施的細(xì)節(jié)毫不關(guān)心,只要通信設(shè)施能提供足夠的通信能力,它就滿足了。至此,我們對(duì)Socket進(jìn)行了直觀的描述。抽
38、象出來,Socket實(shí)質(zhì)上提供了進(jìn)程通信的端點(diǎn)。進(jìn)程通信之前,雙方首先必須各自創(chuàng)建一個(gè)端點(diǎn),否則是沒有辦法建立聯(lián)系并相互通信的。正如打電話之前,雙方必須各自擁有一臺(tái)電話機(jī)一樣。在網(wǎng)間網(wǎng)內(nèi)部,每一個(gè)Socket用一個(gè)半相關(guān)描述:(協(xié)議,本地地址,本地端口),一個(gè)完整的Socket有一個(gè)本地唯一的Socket號(hào),由操作系統(tǒng)分配。最重要的是,Socket是面向客戶/服務(wù)器模型而設(shè)計(jì)的,針對(duì)客戶和服務(wù)器程序提供不同的Socket系統(tǒng)調(diào)用??蛻綦S機(jī)申請(qǐng)一個(gè)Socket(相當(dāng)于一個(gè)想打電話的人可以在任何一臺(tái)入網(wǎng)電話上撥號(hào)呼叫),系統(tǒng)為之分配一個(gè)Socket號(hào);服務(wù)器擁有全局公認(rèn)的 Socket ,任何客戶
39、都可以向它發(fā)出連接請(qǐng)求和信息請(qǐng)求(相當(dāng)于一個(gè)被呼叫的電話擁有一個(gè)呼叫方知道的電話號(hào)碼)。"01"時(shí),將通過80端口來呼叫主機(jī)上由Web服務(wù)軟件提供的Socket,與其建 立連接并對(duì)話。在Internet上有很多這樣的主機(jī),這些主機(jī)一般運(yùn)行了多個(gè)服務(wù)軟件,同時(shí)提供幾種服務(wù)。每種服務(wù)都打開一個(gè)Socket,并綁定到一個(gè)端口上,不同的端口對(duì)應(yīng)于不同的服務(wù)。Socket正如其英文原意那樣,像一個(gè)多孔插座。一臺(tái)主機(jī)猶如布滿各種插座的房間,每個(gè)插座有一個(gè)編號(hào),有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節(jié)目??蛻糗浖⒉?/p>
40、頭插到不同編號(hào)的插座,就可以得到不同的服務(wù)。2.2.2 Socket網(wǎng)絡(luò)通信的工作原理服務(wù)器端的步驟如下。1、首先,在實(shí)用Socket之前,要首先初始化Socket,就是使用AfxSocketInit()函數(shù);2、在初始化完成以后,就可以建立服務(wù)端的Socket,然后使用該Socket開始偵聽整個(gè)網(wǎng)絡(luò)中的連接請(qǐng)求;3、當(dāng)檢測(cè)到來自客戶端的連接請(qǐng)求時(shí),向客戶端發(fā)送收到連接請(qǐng)求的信息,并建立與客戶端之間的連接。連接的過程中,在MFC的框架中會(huì)觸發(fā)一個(gè)前面創(chuàng)建的服務(wù)端Socket的消息響應(yīng)函數(shù)OnAccept(),我們將建立的連接的代碼放到該響應(yīng)函數(shù)里面,在建立連接的過程中,會(huì)產(chǎn)生一個(gè)新的Socke
41、t,我們使用找個(gè)Socket來進(jìn)行數(shù)據(jù)的通信;4、在通信的過程中,服務(wù)器端的產(chǎn)生的新的Socket會(huì)通過一個(gè)消息響應(yīng)函數(shù)OnReceive()來接受到達(dá)的數(shù)據(jù)。數(shù)據(jù)的發(fā)送可以使用Send()來完成;5、當(dāng)完成通信后,服務(wù)器關(guān)閉與客戶端的Socket連接。客戶端的步驟如下。1、同樣的,初始化Socket,并建立客戶端的Socket,確定要連接的服務(wù)器的主機(jī)名和端口。2、發(fā)送連接請(qǐng)求到服務(wù)器,并等待服務(wù)器的回饋信息。3、連接成功后,與服務(wù)器進(jìn)行數(shù)據(jù)的交互。4、數(shù)據(jù)的讀取同服務(wù)端一樣,也是通過OnReceive()來完成的,數(shù)據(jù)的發(fā)送通過Send()即可。5、數(shù)據(jù)處理完畢后,關(guān)閉自身的Socket連
42、接。Socket網(wǎng)絡(luò)通信的流程圖2.5所示:圖2.5 Socket通信流程3 需求分析3.1 系統(tǒng)說明3.1.1 系統(tǒng)名稱及說明本研究開發(fā)的系統(tǒng)名為基于Android系統(tǒng)的幻燈片無線播放系統(tǒng)研究,系統(tǒng)需在下Android平臺(tái)下開發(fā),采用無線通信技術(shù),具有Android截圖實(shí)現(xiàn)功能和Android客戶端與PC服務(wù)端實(shí)時(shí)通信的功能。3.1.2 系統(tǒng)開發(fā)背景在各種商務(wù)場(chǎng)合,PPT演示成為不可缺少的溝通方式,例如客戶見面會(huì)、商務(wù)會(huì)談或私人會(huì)務(wù)。通過演示PPT文稿,可讓對(duì)方更清晰直觀了解你要表達(dá)的意圖,增加商務(wù)談判的成功率。在WIFI局域網(wǎng)下,手機(jī)可以和電腦通過Socket通信。手機(jī)做服務(wù)端,電腦做客戶
43、端;而本系統(tǒng)通過一臺(tái)平板電腦即可實(shí)現(xiàn)幻燈片的無線播放功能,并且不需要復(fù)雜的布線和連接,使用簡(jiǎn)單、維護(hù)方便。3.2 系統(tǒng)任務(wù)3.2.1 系統(tǒng)設(shè)計(jì)要求和目標(biāo)開發(fā)一套基于Android系統(tǒng)的幻燈片無線播放系統(tǒng),要求在Android平臺(tái)下給出詳細(xì)的設(shè)計(jì)方案,具有完備的截圖功能、客戶端與服務(wù)端實(shí)現(xiàn)Socket網(wǎng)絡(luò)通信功能,通信方式為Wi-Fi。系統(tǒng)設(shè)計(jì)要達(dá)到如下目標(biāo)。1、功能完善,系統(tǒng)要具有完備的截圖功能、客戶端與服務(wù)端實(shí)現(xiàn)Socket網(wǎng)絡(luò)通信功能,各功能的子功能需要完全實(shí)現(xiàn)。2、通用性強(qiáng),通用性包括兩方面,一是程序通用性,便于其他模塊調(diào)用和系統(tǒng)改進(jìn)升級(jí),當(dāng)系統(tǒng)數(shù)據(jù)量大時(shí)可以方便地?cái)U(kuò)展到多臺(tái)服務(wù)器,二是
44、業(yè)務(wù)通用性,系統(tǒng)支持的業(yè)務(wù)以及窗口類型可以由后臺(tái)配置,以便于業(yè)務(wù)添加、變更,系統(tǒng)可以支持不同行業(yè)的業(yè)務(wù)。3、靈活性強(qiáng),系統(tǒng)可以靈活配置,以適應(yīng)不同的業(yè)務(wù)場(chǎng)景。4、安全性強(qiáng),系統(tǒng)數(shù)據(jù)集中管理,只能由服務(wù)器程序修改。3.2.2 系統(tǒng)設(shè)計(jì)原則為了構(gòu)建一個(gè)功能完備、高性能的Android系統(tǒng)的幻燈片無線播放系統(tǒng),需要遵循如下設(shè)計(jì)原則。1、充分考慮系統(tǒng)性能,減少數(shù)據(jù)冗余,充分考慮各實(shí)體的構(gòu)成和各字段的屬性,力求最優(yōu)設(shè)計(jì)。2、完整性原則,系統(tǒng)設(shè)計(jì)保證數(shù)據(jù)的完整性、準(zhǔn)確性,系統(tǒng)功能完備,支持所有功能服務(wù)項(xiàng)目,同時(shí)便于配置管理、升級(jí)。3、簡(jiǎn)單性原則,系統(tǒng)程序要求在保證完整性原則的情況下從簡(jiǎn)設(shè)計(jì),系統(tǒng)必須易于使
45、用,學(xué)習(xí)成本低。4、在風(fēng)格方面,應(yīng)該盡量做到程序結(jié)構(gòu)簡(jiǎn)單明了,思路條理清晰,功能實(shí)用,使系統(tǒng)整體風(fēng)格趨于統(tǒng)一。 5、在界面上,應(yīng)該在設(shè)計(jì)、構(gòu)思力求巧妙,布局要求合理、簡(jiǎn)單、明了,達(dá)到界面友好的效果。 6、可擴(kuò)展性,系統(tǒng)要具備良好的可擴(kuò)展性,有助于系統(tǒng)的維護(hù)和升級(jí)。整個(gè)系統(tǒng)采用松耦合的架構(gòu)進(jìn)行設(shè)計(jì),降低需求變更后程序修改的代碼量。3.3 系統(tǒng)用戶需求分析3.3.1 系統(tǒng)用戶定義及關(guān)系操作方和系統(tǒng)管理方廣義上都是為客戶方工作的的,下面分別給出三個(gè)模塊的定義。客戶方:指觀看幻燈片播放的觀眾,系統(tǒng)操作方和系統(tǒng)管理方的對(duì)象,客戶會(huì)觀看到由PC服務(wù)端所連接到的大屏幕上所顯示的幻燈片內(nèi)容。操作方:操作And
46、roid終端平臺(tái),為客戶操作幻燈片,會(huì)用到系統(tǒng)的登錄模塊、截圖模塊。系統(tǒng)管理方:系統(tǒng)管理方負(fù)責(zé)系統(tǒng)的Socket網(wǎng)絡(luò)通信,實(shí)時(shí)的將Android終端平臺(tái)所顯示的幻燈片內(nèi)容傳輸?shù)絇C端。3.4 Android平臺(tái)技術(shù)選型及開發(fā)環(huán)境3.4.1 Android平臺(tái)技術(shù)選型這款軟件既然是基于Android平臺(tái),所以肯定要Andriod開發(fā)平臺(tái)上強(qiáng)大的技術(shù)支持。由于Android主線程發(fā)生阻塞后等待5秒后就會(huì)顯示強(qiáng)制關(guān)閉的對(duì)話框,所以在發(fā)送和接受所截取的幻燈片圖片時(shí),考慮用多線程技術(shù)。線程之間有著十分便利的數(shù)據(jù)共享模式。在不同的進(jìn)程間,進(jìn)程的存儲(chǔ)空間是相互獨(dú)立的,要傳遞參數(shù)只能通過通信的方法來進(jìn)行,這樣
47、做不僅浪費(fèi)了大量的時(shí)間,而且便利性不夠。但是對(duì)于線程來說,在同一進(jìn)程之下的各個(gè)線程數(shù)據(jù)是共享的,所以其他線程可以直接用另一個(gè)線程的數(shù)據(jù),這樣既省時(shí)又方便。當(dāng)然,這樣的數(shù)據(jù)共享也會(huì)帶來一些麻煩,比如有時(shí)變量代表臨界資源,兩個(gè)線程不能同時(shí)修改這個(gè)變量,這個(gè)也正是編寫多線程程序時(shí)最需要注意的地方。3.4.2 Android開發(fā)環(huán)境搭建Android通常選用Eclipse作為應(yīng)用程序開發(fā)環(huán)境,并為Eclipse編寫了專門的ADT插件,此外還有一個(gè)專門用于Android開發(fā)的AndroidSDK開發(fā)包。下面來讓我們一步一步搭建起這個(gè)開發(fā)環(huán)境。 1安裝JDK:安裝Eclipse的開發(fā)環(huán)境需要JRE的支持。
48、先在Oracle的官方網(wǎng)站上下載Windows版本的JDK6,在安裝進(jìn)行完后,需要設(shè)置JDK的環(huán)境變量。2配置Eclipse:Eclipse的下載地址為:/downloads,選擇“Eclipse IDE for Java Development”下載 Eclipse3.4。Eclipse只需要解壓就可以使用。3配置Android SDK:安裝好JDK和Eclipse后,打開Android開發(fā)者,對(duì)應(yīng)的網(wǎng)址是: SDK的最新版本為2.2。下載完成以后,一樣不需要安裝,解壓之后就可以直接使用了。為了在控制臺(tái)中直接使用SDK中的工具,把SDK下的tools
49、目錄添加到Windows的PATH環(huán)境變量中。4安裝Android Development Tools(ADT)插件:(a)啟動(dòng)Eclipse,選擇HelpSoftwareUpdates項(xiàng)。(b)在彈出的一個(gè)對(duì)話框中,點(diǎn)擊“Available Software”選項(xiàng)。點(diǎn)擊上面的“Add Site.”,鍵入“http:/dl-(c)在展開的“Developer Tools”中選中“Android DDMS”和”“Android Developer Tools”,單擊“Install”按鈕,然后安裝。安裝完成后,提示用戶重啟Eclipse。5配置Android SDK Home:在將ADT插件安裝
50、好以后,還需要將Eclipse與Android SDK綁定在一起。在Eclipse下設(shè)置Android SDK的主目錄。依次單擊“WindowsPreferencesAndroid”,然后將Android SDK所在目錄填入在右側(cè)的SDK Location框中,單擊“OK”按鈕后,綁定完成。到此,Android應(yīng)用程序開發(fā)平臺(tái)的搭建就完成了。 到目前為止,由于Android SDK自帶的移動(dòng)設(shè)備模擬器不支持?jǐn)z像頭采集真實(shí)的圖像畫面,所以除了上述搭建的Android應(yīng)用程序開發(fā)環(huán)境外,在編程和后面還用到了真實(shí)的基于Android平臺(tái)的智能手機(jī),這樣通過移動(dòng)設(shè)備模擬器來編寫調(diào)試界面、網(wǎng)絡(luò)等模塊。用
51、真實(shí)的機(jī)器調(diào)試媒體處理模塊。形成了一個(gè)有機(jī)的 Android應(yīng)用程序開發(fā)環(huán)境。4 Android系統(tǒng)的幻燈片無線播放系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)上一章在需求分析的基礎(chǔ)上對(duì)Android系統(tǒng)幻燈片無線播放系統(tǒng)進(jìn)行了模塊劃分,本章將對(duì)各個(gè)模塊進(jìn)行分析與設(shè)計(jì),并對(duì)各個(gè)模塊進(jìn)行代碼實(shí)現(xiàn)。4.1 手機(jī)端的設(shè)計(jì)與實(shí)現(xiàn)4.1.1 手機(jī)端界面的設(shè)計(jì)界面主要提供一個(gè)人機(jī)交互的平臺(tái)。具體到本模塊就是截取到的圖片進(jìn)行實(shí)時(shí)無線傳輸開始前將多媒體服務(wù)器的IP地址輸入,設(shè)置端口參數(shù),故應(yīng)有設(shè)置界面,如圖4.1所示:圖4.1 設(shè)置界面結(jié)構(gòu)圖此外,還需要設(shè)計(jì)手機(jī)端播放幻燈片界面,其中包括控制幻燈片的上下翻頁(yè),結(jié)構(gòu)如圖4.2 。圖4.2
52、手機(jī)端播放界面結(jié)構(gòu)圖最后,我們需要設(shè)計(jì)在電腦端實(shí)現(xiàn)幻燈片播放的主界面,設(shè)計(jì)圖如圖4.3,此時(shí)為無連接的情況下的界面,當(dāng)手機(jī)與電腦實(shí)現(xiàn)連接并進(jìn)行幻燈片的無線播放時(shí),此界面將會(huì)進(jìn)行幻燈片的播放。圖4.3 電腦端播放界面結(jié)構(gòu)圖4.1.2 手機(jī)端界面的實(shí)現(xiàn)Android生成屏幕有三種方式:XML配置生成;通過用戶界面接口自己生成;直接寫代碼生成。根據(jù)MVC原則,UI應(yīng)該與程序邏輯相分離,因此,在XML中定義UI結(jié)構(gòu)是較為理想的一種方案。此外,一個(gè)程序從一個(gè)屏幕方案調(diào)整到另一個(gè)也容易得多。在XML中定義UI跟創(chuàng)建一個(gè)普通的表示網(wǎng)頁(yè)的HTML文檔非常相似。所以在用戶界面的實(shí)現(xiàn)上本設(shè)計(jì)方案采用XML配置生成
53、的方法。在Android里用XML配置生成的方法實(shí)現(xiàn)一個(gè)界面通常要編寫兩個(gè)文件,一個(gè)是XML格式的界面布局文件,在這個(gè)文件里一般存放界面布局和布局下的控件。另一個(gè)是 XML所對(duì)應(yīng)的Activity文件,Activity文件通過Android平臺(tái)特有的資源配置文件R文件來連接其所對(duì)應(yīng)的XML文件,Activity主要功能就是界面上的控件進(jìn)行操控,完成軟件的業(yè)務(wù)邏輯。圖4.4就是一個(gè)Acitivity的生命周期圖,在下圖中,Activity有三個(gè)關(guān)鍵的循環(huán):第一個(gè)是整個(gè)的生命周期,從onCreate()開始到onDestroy()結(jié)束。Activity在onCreate()設(shè)置所有的“全局”狀態(tài),
54、在onDestory()釋放所有的資源。第二個(gè)是可見的生命周期,從onStart()開始到onStop()結(jié)束。在這段時(shí)間,可以看到Activity在屏幕上,盡管有可能不在前臺(tái),不能和用戶交互。在這兩個(gè)接口之間,需要保持顯示給用戶的UI數(shù)據(jù)和資源等。第三個(gè)是前臺(tái)的生命周期,從onResume()開始到onPause()結(jié)束。在這段時(shí)間里,該Activity處于所有Activity的最前面,和用戶進(jìn)行交互。圖4.4 Acitivity的生命周期圖在編寫界面代碼時(shí)經(jīng)常要對(duì)上面提到的Activity的方法進(jìn)行重寫,以便在界面不同的生命周期時(shí)完成不同的功能。1.手機(jī)端主界面的實(shí)現(xiàn)的代碼: packag
55、e cn.yutouxiuxiu.android.remoteslide;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.view.View;import android.view.View.OnClickLis
56、tener;import android.widget.Button;import android.widget.EditTextpublic class MainActivity extends Activity implements OnClickListener /* 控件 */private EditText ipEditText;private EditText portEditText;private Button startButton;private EditText slideEditText;/* 配置文件 */SharedPreferences config;Overri
57、deprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/* 初始化控件 */ipEditText = (EditText) this.findViewById(R.id.edit_ip);portEditText = (EditText) this.findViewById(R.id.edit_port);slideEditText = (EditText) this.findViewById(R.id.edit_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 版企業(yè)培訓(xùn)合作合同
- 運(yùn)動(dòng)自行車品牌代理合同
- 新疆沙雅縣市級(jí)名校2025屆初三下學(xué)期英語試題分類匯編含答案
- 五金制品鋸類購(gòu)銷協(xié)議
- 小型企業(yè)勞動(dòng)合同模板
- 土地使用權(quán)買賣合同模板范本
- 商場(chǎng)店鋪?zhàn)赓U合同范本
- 冀教版小學(xué)數(shù)學(xué)六年級(jí)下冊(cè)小升初畢業(yè)會(huì)考模擬卷(三) (含答案)
- 2025年云南省曲靖市沾益區(qū)民族中學(xué)中考?xì)v史一模試卷(含答案)
- 智能設(shè)備服務(wù)合同
- 住院醫(yī)師規(guī)范化培訓(xùn)教學(xué)查房課件
- 2022-2023學(xué)年天津市部分區(qū)八年級(jí)(下)期中物理試卷(含解析)
- 酒精計(jì)法測(cè)定酒精中酒精度
- 嬰幼兒語言發(fā)育篩查量表
- 川教版生命生態(tài)安全一年級(jí)上冊(cè)第12課 做一個(gè)受歡迎的人 教學(xué)設(shè)計(jì)
- 油氣輸送管道高后果區(qū)識(shí)別與評(píng)價(jià)釋義
- 高價(jià)值專利挖掘布局
- 托業(yè)考試TOEIC詞匯匯總
- DL-T 736-2021 農(nóng)村電網(wǎng)剩余電流動(dòng)作保護(hù)器安裝運(yùn)行規(guī)程
- SB/T 10439-2007醬腌菜
- FZ/T 62034-2016磁性軟紗門
評(píng)論
0/150
提交評(píng)論