版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 2013屆 信息科學(xué)與技術(shù) 學(xué)院</p><p> 專 業(yè) </p><p> 學(xué) 號(hào) </p><p> 學(xué)生姓名 </p><p> 指導(dǎo)教師 </p&g
2、t;<p> 完成日期 2013年 6月 2日</p><p><b> 畢業(yè)設(shè)計(jì)成績(jī)單</b></p><p><b> 畢業(yè)設(shè)計(jì)任務(wù)書(shū)</b></p><p><b> 畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告</b></p><p><b> 摘 要&l
3、t;/b></p><p> 在網(wǎng)絡(luò)越來(lái)越發(fā)達(dá)的今天,人們對(duì)網(wǎng)絡(luò)的依賴越來(lái)越多,越來(lái)越離不開(kāi)網(wǎng)絡(luò),WIFI覆蓋范圍也越來(lái)越廣,由此而產(chǎn)生的手機(jī)通訊控制工具也越來(lái)越多。Android憑借其開(kāi)放性和良好的人機(jī)界面,改變了智能手機(jī)市場(chǎng)的格局。Android的最大特點(diǎn)是其開(kāi)放性體系架構(gòu),不僅具有非常好的開(kāi)發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),包括豐富的圖形組件、多媒體支持功能以及強(qiáng)大的瀏覽器。</p
4、><p> 本文對(duì)Android平臺(tái)的現(xiàn)狀進(jìn)行了分析,進(jìn)而研究了Android平臺(tái)的系統(tǒng)架構(gòu)和組件模型,以及Intent和生命周期的機(jī)制。在此基礎(chǔ)上,設(shè)計(jì)一個(gè)能在Android設(shè)備上運(yùn)行的局域網(wǎng)通訊控制軟件。軟件利用Java語(yǔ)言和Eclipse編輯工具對(duì)軟件進(jìn)行編寫(xiě),同時(shí)給出了詳細(xì)的系統(tǒng)設(shè)計(jì)過(guò)程、部分界面圖及主要功能運(yùn)行流程圖。</p><p> 本系統(tǒng)界面友好、操作便捷,具有良好的可擴(kuò)展
5、性和可維護(hù)性,系統(tǒng)經(jīng)過(guò)測(cè)試,可以穩(wěn)定運(yùn)行,能夠滿足手機(jī)用戶的基本需求。</p><p> 關(guān)鍵詞:Android 通訊控制 Java</p><p><b> Abstract</b></p><p> With the more and more developed in the network now, people de
6、pendent and inseparable from the network, WIFI coverage more widely, the result is mobile communications and control tools become a fashion . Rely on its openness and good man-machine interface, Android changing the patt
7、ern of the smart phone market. The biggest feature of Android is its open architecture, not only has a very good development and debugging environment, but also supports a variety of scalable user experience, including&l
8、t;/p><p> the paper analyzes the current Android platform situation, and then study the Android platform system architecture and component models, as well as Intent and a mechanism life cycle. On this basis,
9、design an Android device running in LAN communications control software. Software uses the Java language and Eclipse editing tools to write , and gives a detailed system design process, part of the interface and main fun
10、ctions of running a flowchart diagram.</p><p> The system is user-friendly, easy to handle, has good scalability and maintainability resistance, the system has been tested and stable operation, to meet the
11、basic needs of mobile phone users.</p><p> Key word:Android Communications and control Java </p><p><b> 目 錄</b></p><p><b> 第1章 緒論1</b></p>
12、<p> 1.1 研究背景內(nèi)容及意義1</p><p> 1.1.1 研究背景1</p><p> 1.1.2 研究?jī)?nèi)容及意義1</p><p> 1.2 發(fā)展現(xiàn)狀及趨勢(shì)1</p><p> 1.3 論文主要結(jié)構(gòu)2</p><p> 第2章 開(kāi)發(fā)工具簡(jiǎn)介3</p><
13、;p> 2.1 Android概述3</p><p> 2.1.1 Android平臺(tái)簡(jiǎn)介3</p><p> 2.1.2 Android平臺(tái)優(yōu)勢(shì)4</p><p> 2.2 開(kāi)發(fā)環(huán)境5</p><p> 2.3 Eclipse概述6</p><p> 第3章 系統(tǒng)需求7</p>
14、;<p> 3.1 功能需求分析7</p><p> 3.2 系統(tǒng)流程9</p><p> 3.3 系統(tǒng)界面需求10</p><p> 3.4 可行性分析10</p><p> 3.5 開(kāi)發(fā)及運(yùn)行環(huán)境需求10</p><p> 第4章 通信控制軟件詳細(xì)設(shè)計(jì)12</p>
15、<p> 4.1 用戶界面的設(shè)計(jì)12</p><p> 4.1.1 用戶界面的實(shí)現(xiàn)13</p><p> 4.2 遠(yuǎn)程遙控功能的實(shí)現(xiàn)13</p><p> 4.2.1 遠(yuǎn)程遙控功能的設(shè)計(jì)原理14</p><p> 4.2.2 關(guān)機(jī)功能的實(shí)現(xiàn)14</p><p> 4.2.3 PPT遙控
16、功能的實(shí)現(xiàn)14</p><p> 4.3 無(wú)線鼠標(biāo)功能的實(shí)現(xiàn)16</p><p> 4.3.1 無(wú)線鼠標(biāo)功能的設(shè)計(jì)原理16</p><p> 4.3.2 鼠標(biāo)移動(dòng)功能的設(shè)計(jì)原理17</p><p> 4.3.3 鼠標(biāo)點(diǎn)擊功能的設(shè)計(jì)原理18</p><p> 4.4 在線聊天功能的實(shí)現(xiàn)19</
17、p><p> 4.4.1 用戶注冊(cè)功能的實(shí)現(xiàn)19</p><p> 4.4.2 聊天功能實(shí)現(xiàn)20</p><p> 4.4.3 發(fā)送接收文件功能實(shí)現(xiàn)21</p><p> 第5章 結(jié)論與展望24</p><p><b> 參考文獻(xiàn)26</b></p><p>
18、;<b> 致 謝27</b></p><p><b> 附錄A28</b></p><p><b> 外文翻譯英文28</b></p><p><b> 外文翻譯中文37</b></p><p><b> 第1章 緒論<
19、;/b></p><p> 1.1 研究背景內(nèi)容及意義</p><p> 1.1.1 研究背景</p><p> 自從2008年9月22日美國(guó)運(yùn)營(yíng)商T-Mobile USA 在紐約正式發(fā)布了第一款基于Android的手機(jī)后更多的移動(dòng)設(shè)備廠商看到了Android的光明前景并紛紛加入其中Android甚至已經(jīng)涉足上網(wǎng)本市場(chǎng)了其發(fā)展前景廣闊涉及領(lǐng)域越來(lái)越大。隨
20、著Android手機(jī)的普及Android應(yīng)用的需求勢(shì)越來(lái)越大這個(gè)潛力巨大的市場(chǎng)已經(jīng)吸引無(wú)數(shù)軟件開(kāi)發(fā)廠商和開(kāi)發(fā)者投身其中。Android的開(kāi)放性使其比蘋(píng)果和黑莓對(duì)年輕人更具吸引力更能吸引年輕人群的關(guān)注和喜愛(ài)。同時(shí)因?yàn)锳ndroid系統(tǒng)的開(kāi)放性為Android平板電腦的快速發(fā)展奠定了基礎(chǔ)也才能促使其吸引著越來(lái)越多的用戶接受和使用。同時(shí)Android還具有應(yīng)用程序無(wú)界限、應(yīng)用程序是在平的的條件下創(chuàng)建的、應(yīng)用程序可以輕松的嵌入網(wǎng)絡(luò)、應(yīng)用程序可以
21、并行運(yùn)行等眾多出色的品質(zhì)。安卓系統(tǒng)在不斷升級(jí)完善如今平板電腦市場(chǎng)已成為Android與蘋(píng)果iOS除了智能手機(jī)領(lǐng)域之外爭(zhēng)奪的第二個(gè)焦點(diǎn)。一直以來(lái)多數(shù)新聞仍然顯示iPad在平板市場(chǎng)的霸主地位難撼。但是以Android領(lǐng)頭的平板電腦正以高速的增長(zhǎng)對(duì)蘋(píng)果iPad造成沖擊。</p><p> 1.1.2 研究?jī)?nèi)容及意義</p><p> Android平臺(tái)手機(jī)通訊控制軟件,運(yùn)用Java語(yǔ)言,實(shí)現(xiàn)
22、與同一局域網(wǎng)的其他Android設(shè)備通訊,文件傳輸,并能對(duì)電腦進(jìn)行關(guān)機(jī),控制PPT等操作并實(shí)現(xiàn)無(wú)線鼠標(biāo)的功能。</p><p> Android平臺(tái)的通訊控制軟件的意義:</p><p> ?。?)極大的方便了處于同一局域網(wǎng)用戶間的即時(shí)通訊;</p><p> ?。?)PPT遙控使得用戶做呈現(xiàn)時(shí)可以脫離電腦束縛;</p><p> (3)
23、無(wú)線鼠標(biāo)可以實(shí)現(xiàn)較遠(yuǎn)地方對(duì)電腦的相關(guān)操作;</p><p> ?。?)文件傳輸可以使資源更好的被利用。</p><p> 1.2 發(fā)展現(xiàn)狀及趨勢(shì)</p><p> Android平臺(tái)自2010年以來(lái)呈現(xiàn)出突飛猛進(jìn)的發(fā)展勢(shì)頭,在全球智能手機(jī)市場(chǎng)中所占份額從不到10%一路猛增至50%以上,儼然已經(jīng)搶占了“半壁江山”。與此同時(shí),基于Android平臺(tái)的各種應(yīng)用也層出不
24、窮。</p><p> 目前市場(chǎng)上有Mobile CC,Home Center等遠(yuǎn)程控制軟件,比較出名的局域網(wǎng)通信軟件有飛鴿,飛秋等。</p><p> (1) Mobile CC支持WIFI連接、GPRS連接,控制電腦已實(shí)現(xiàn),不遠(yuǎn)的將來(lái),伴隨著物聯(lián)網(wǎng)的進(jìn)一步發(fā)展,遙控汽車,控制空調(diào),智能冰箱操控等終將得到實(shí)現(xiàn),目前該軟件可遙控電腦音視頻播放,游戲操控,PPT播放,電腦快捷操作。<
25、;/p><p> (2) Home Center是一款可以利用手機(jī)遠(yuǎn)程控制電腦的免費(fèi)遠(yuǎn)程控制軟件,Home Center運(yùn)行在系統(tǒng)托盤(pán),并允許遠(yuǎn)程訪問(wèn)您的手機(jī)。</p><p> (3) 飛鴿傳書(shū)是一款面向企業(yè)辦公的即時(shí)通訊軟件,基于TCP/IP模式。 企業(yè)員工可在企業(yè)內(nèi)部或外部通過(guò)飛鴿傳書(shū)進(jìn)行通訊,支持消息發(fā)送,文件傳輸,語(yǔ)音視頻等。為企業(yè)提供安全,穩(wěn)定的即時(shí)通訊解決方案。</p&
26、gt;<p> 局域網(wǎng)通信控制軟件的發(fā)展趨勢(shì):</p><p> (1) 實(shí)現(xiàn)的功能更加多樣化;</p><p> (2) 由單一的控制電腦向控制其他家用電器設(shè)備轉(zhuǎn)變。</p><p> 1.3 論文主要結(jié)構(gòu)</p><p><b> 本論文的主要結(jié)構(gòu):</b></p><p&
27、gt; 第1章介紹Android的發(fā)展史,并分析了本課題研究的背景現(xiàn)狀及意義。簡(jiǎn)單介紹了目前市場(chǎng)上比較流行的一些手機(jī)控制軟件。介紹了論文的主要研究?jī)?nèi)容和整個(gè)論文的結(jié)構(gòu)。</p><p> 第2章簡(jiǎn)要介紹了Android系統(tǒng)以及Android項(xiàng)目和系統(tǒng)設(shè)計(jì)過(guò)程中用到的工具和技術(shù)。</p><p> 第3章主要對(duì)本系統(tǒng)的功能需求、性能需求、可行性分析、運(yùn)行環(huán)境作了詳細(xì)分析和概要設(shè)計(jì)。&l
28、t;/p><p> 第4章將整個(gè)系統(tǒng)功能詳細(xì)設(shè)計(jì)分為幾個(gè)模塊作了詳細(xì)介紹。詳細(xì)詳細(xì)說(shuō)明了:界面的設(shè)計(jì)與實(shí)現(xiàn)、遠(yuǎn)程遙控功能的實(shí)現(xiàn)、在線聊天功能的實(shí)現(xiàn)、無(wú)線鼠標(biāo)功能的實(shí)現(xiàn)等,其中包括每個(gè)功能模塊的主要代碼和界面,最后介紹了相關(guān)權(quán)限的使用。</p><p> 第5章是結(jié)論與展望。對(duì)課題研究?jī)?nèi)容及過(guò)程進(jìn)行總結(jié),分析研究?jī)?nèi)容的發(fā)展趨勢(shì)以及發(fā)展前景。</p><p> 第2章
29、 開(kāi)發(fā)工具簡(jiǎn)介</p><p> 2.1 Android概述</p><p> 2.1.1 Android平臺(tái)簡(jiǎn)介</p><p> Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。Android從誕生到現(xiàn)在也不過(guò)3年的時(shí)間,但是也就是在這短短的3年內(nèi)Andr
30、oid創(chuàng)造了一個(gè)迅速被人們知曉并追捧的奇跡。2007 年11 月5 日,Google 與其他33 家手機(jī)制造商(包含摩托羅拉、宏達(dá)電、三星、LG)、手機(jī)晶片供應(yīng)商、軟硬體供應(yīng)商、電信業(yè)者所聯(lián)合組成的開(kāi)放手持裝置聯(lián)盟(Open Handset Alliance),發(fā)布了名為Android的開(kāi)放手機(jī)軟硬體平臺(tái)。該聯(lián)盟的成員宣布日后都會(huì)在Android平臺(tái)上開(kāi)發(fā)他們的新的業(yè)務(wù)。不久之后的2008 年9 月24 日,T-Mobile 公司首度公
31、布第一臺(tái)Android 手機(jī)(G1)的細(xì)節(jié),同日Google 也放出了Android SDK 1.0 rc1。這樣Android進(jìn)入了人們的視線[1]。</p><p> Android以其特有的開(kāi)放性優(yōu)勢(shì)越來(lái)越受到人們和智能手機(jī)廠商的關(guān)注。</p><p> 對(duì)于第三放軟件開(kāi)發(fā)商來(lái)說(shuō),Android 是一個(gè)真正意義上的開(kāi)放性移動(dòng)設(shè)備綜合平臺(tái),Android系統(tǒng)是免費(fèi)向開(kāi)發(fā)人員提供的,
32、這樣就避免了開(kāi)發(fā)中專利權(quán)的障礙。因此,就能夠?yàn)榈谌杰浖_(kāi)發(fā)商省下大筆資金。</p><p> 對(duì)于設(shè)備制造商來(lái)說(shuō),Android是一個(gè)免費(fèi)的平臺(tái)。當(dāng)設(shè)備制造商每制造一臺(tái)手機(jī)時(shí),那些支付給手機(jī)系統(tǒng)制造商的費(fèi)用也省去了,這樣也降低了每臺(tái)手機(jī)的生產(chǎn)費(fèi)用,同時(shí)就降低了手機(jī)的價(jià)格,這樣在市場(chǎng)上也提高了競(jìng)爭(zhēng)力。</p><p> 對(duì)硬體開(kāi)發(fā)廠商來(lái)說(shuō),Android也是個(gè)開(kāi)放的平臺(tái)。使用Andro
33、id平臺(tái)的廠商可以更具自己的需求以及能力為Android開(kāi)發(fā)具有該廠商特色的功能,但是這樣的增加完全不用考慮版權(quán)的問(wèn)題。</p><p> 同時(shí)Android平臺(tái)支持各種先進(jìn)的網(wǎng)絡(luò)、繪圖、3D 處理能力,可以用來(lái)提供更好的使用者體驗(yàn)。</p><p> Google Android 系統(tǒng)作為一個(gè)完全開(kāi)源的操作系統(tǒng),是由操作系統(tǒng)(Linux)、中間件以及核心應(yīng)用程序組成的軟件棧(soft
34、ware stack)。通過(guò) Android SDK 提供的 API 以及相應(yīng)的開(kāi)發(fā)工具, 程序員可以很方便的開(kāi)發(fā)Android平臺(tái)上的應(yīng)用程序。其整個(gè)系統(tǒng)由應(yīng)用程序(Application),應(yīng)用程序框架(Application Framework),應(yīng)用程序庫(kù)(Libraries),Android運(yùn)行庫(kù)(Android Runtime),Linux內(nèi)核(Linux Kernel)五個(gè)部分組成。Android操作系統(tǒng)內(nèi)置了一部分應(yīng)用程
35、序, 包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、通訊錄以及其他的程序,值得一提的是這些所有的程序都是用Java編寫(xiě)的[2]。</p><p> 因?yàn)閼?yīng)用程序框架使得組件更易于重用,所以開(kāi)發(fā)者的應(yīng)用程序可以很容易的調(diào)用API函數(shù)實(shí)現(xiàn)我們想要的功能。在遵守應(yīng)用程序框架的安全機(jī)制約束的前提下,開(kāi)發(fā)者開(kāi)發(fā)的一個(gè)應(yīng)用程序可以使用其他程序所開(kāi)發(fā)的功能。雖然Android的應(yīng)用程序是用Java語(yǔ)言開(kāi)發(fā)的,但是And
36、roid給應(yīng)用程序開(kāi)發(fā)者提供了一系列的 C/C++ 程序庫(kù),通過(guò)Android的一些特殊的設(shè)計(jì),我們開(kāi)發(fā)者可以使用這些庫(kù)[3]。</p><p> 現(xiàn)今,Android操作系統(tǒng)已成為許多手機(jī)制造商的寵兒,其中包括HTC、索尼愛(ài)立信、Samsung、摩托羅拉以及國(guó)內(nèi)的聯(lián)想、華為、海爾等。</p><p> 2.1.2 Android平臺(tái)優(yōu)勢(shì)</p><p><
37、;b> (1)開(kāi)放性</b></p><p> 在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開(kāi)發(fā)性,開(kāi)發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來(lái)。顯著的開(kāi)放性可以使其擁有更多的開(kāi)發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個(gè)嶄新的平臺(tái)也將很快走向成熟。</p><p> 開(kāi)發(fā)性對(duì)于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對(duì)于消費(fèi)者來(lái)講
38、,最大的受益正是豐富的軟件資源。開(kāi)放的平臺(tái)也會(huì)帶來(lái)更大競(jìng)爭(zhēng),如此一來(lái),消費(fèi)者將可以用更低的價(jià)位購(gòu)得心儀的手機(jī)。</p><p><b> ?。?)不受束縛</b></p><p> 在過(guò)去很長(zhǎng)的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運(yùn)營(yíng)商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營(yíng)商的控制。自從2007年iPhone上市后,用戶可以更加方便地連接網(wǎng)絡(luò),運(yùn)營(yíng)商
39、的制約減少。隨著EDGE、HSDPA這些2G至3G移動(dòng)網(wǎng)絡(luò)的逐步過(guò)渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營(yíng)商口中的笑談。</p><p><b> (3)豐富的硬件</b></p><p> 這一點(diǎn)還是與Android平臺(tái)的開(kāi)放性相關(guān),由于Android的開(kāi)放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、甚至軟件的兼容
40、,如同從諾基亞Symbian風(fēng)格手機(jī)一下改用蘋(píng)果iPhone,同時(shí)還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人更是可以方便地轉(zhuǎn)移[4]。</p><p><b> ?。?)方便開(kāi)發(fā)</b></p><p> Android平臺(tái)提供給第三方開(kāi)發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。但也有其兩面
41、性,血腥、暴力方面的程序和游戲如何控制正是留給Android難題之一。</p><p> ?。?)Google應(yīng)用</p><p> 在互聯(lián)網(wǎng)的Google已經(jīng)走過(guò)10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺(tái)手機(jī)將無(wú)縫結(jié)合這些優(yōu)秀的Google服務(wù)。</p><p><
42、;b> 2.2 開(kāi)發(fā)環(huán)境</b></p><p> Android的上層應(yīng)用程序是用Java語(yǔ)言開(kāi)發(fā),同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開(kāi)發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因?yàn)槭鞘褂肑ava語(yǔ)言進(jìn)行開(kāi)發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Andro
43、id的應(yīng)用程序開(kāi)發(fā)和Java開(kāi)發(fā)是有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時(shí),還需要在Eclipse安裝ADT(Android Development Tool),它是Eclipse下開(kāi)發(fā)工具的升級(jí)下載工具,為Android開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更。簡(jiǎn)言之,需要Java SDK、Eclipse、 Android SDK以及ADT才能搭建Android開(kāi)發(fā)環(huán)境,從而進(jìn)行Android應(yīng)用程序的開(kāi)發(fā)[5]
44、。</p><p><b> (1) Java </b></p><p> Java是Sun公司在1995年推出的新的編程語(yǔ)言,它是一種簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、解釋的、安全的、可移植的、性能?yōu)異的多線程語(yǔ)言。它以其較強(qiáng)的安全性、平臺(tái)無(wú)關(guān)性、硬件結(jié)構(gòu)無(wú)關(guān)性、語(yǔ)言簡(jiǎn)潔性以及面向?qū)ο蟮奶攸c(diǎn),在網(wǎng)絡(luò)編程語(yǔ)言中占據(jù)了無(wú)可比擬的優(yōu)勢(shì)[6]。</p><
45、;p> (2) Java SDK、Android SDK</p><p> SDK(software development kit):軟件開(kāi)發(fā)工具包。被軟件開(kāi)發(fā)工程師用于特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開(kāi)發(fā)工具的集合。因此,Java SDK 既Java的軟件開(kāi)發(fā)工具包,而Android SDK 指的既是Android專屬的軟件開(kāi)發(fā)工具包[7]。</p><
46、p> (3) Eclipse及其插件(ADT)</p><p> Eclipse 是替代IBM Visual Age for Java的下一代IDE開(kāi)發(fā)環(huán)境,但它未來(lái)的目標(biāo)不僅僅是成為專門(mén)開(kāi)發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過(guò)開(kāi)發(fā)插件,它能擴(kuò)展到任何語(yǔ)言的開(kāi)發(fā),甚至能成為圖片繪制的工具。Eclipse是一個(gè)開(kāi)放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上
47、開(kāi)發(fā)自己的功能插件。也就是說(shuō)未來(lái)只要有人需要,就會(huì)有建立在Eclipse之上的COBOL,Perl,Python等語(yǔ)言的開(kāi)發(fā)插件出現(xiàn)。同時(shí)可以通過(guò)開(kāi)發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的 Java開(kāi)發(fā)環(huán)境中加入Tomcat服務(wù)器插件。因而其可以無(wú)限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是Eclipse的潛力所在[8]。</p><p> 在Eclipse編譯IDE環(huán)境中,需安裝ADT(Andr
48、oid Development Tools)Plug-in,這是Android在Eclipse上的開(kāi)發(fā)工具。為Android開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更,簡(jiǎn)單理解為在Eclipse下開(kāi)發(fā)工具的升級(jí)下載工具。</p><p><b> (4) XML</b></p><p> 可擴(kuò)展標(biāo)記語(yǔ)言 (Extensible Markup Language, XML) ,用
49、于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,可以用來(lái)標(biāo)記數(shù)據(jù)和定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。 XML是標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統(tǒng)一的方法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)[9]。 </p><p> XML的簡(jiǎn)單使其易于在任何應(yīng)用程序中讀寫(xiě)數(shù)據(jù),這使XML很快成為數(shù)據(jù)交換的唯一公共語(yǔ)言,雖然不同的應(yīng)用軟件也支持其它的數(shù)據(jù)
50、交換格式,但不久之后他們都將支持XML,那就意味著程序可以更容易的與Windows,Mac OS,Linux以及其他平臺(tái)下產(chǎn)生的信息結(jié)合,然后可以很容易加載XML數(shù)據(jù)到程序中并進(jìn)行分析,并以XML格式輸出結(jié)果[10]。</p><p> 2.3 Eclipse概述</p><p> Eclipse 是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù)
51、,用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。</p><p> 雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java 集成開(kāi)發(fā)環(huán)境(IDE)來(lái)使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Ec
52、lipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所[11]。</p><p> 這種平等和一致性并不僅限于 Java 開(kāi)發(fā)工具。盡管 Eclipse 是使用Java語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如C/C++、COBOL、PHP等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框
53、架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。</p><p> 基于 Eclipse 的應(yīng)用程序的一個(gè)突出例子是 IBM Rational Software Architect,它構(gòu)成了 IBM Java 開(kāi)發(fā)工具系列的基礎(chǔ)[12]。</p><p><b> 第3章 系統(tǒng)需求</b></p><p> 3.1
54、 功能需求分析</p><p> 手機(jī)局域網(wǎng)通信控制軟件是為了方便人們對(duì)電腦的相關(guān)操作,使用戶可以遠(yuǎn)程控制電腦以及當(dāng)前正在運(yùn)行的程序所以該軟件要滿足用戶對(duì)電腦的一般控制。</p><p> 軟件的基本功能需求有以下幾點(diǎn):</p><p> 聊天功能:與在線的其他用戶私聊或群聊。</p><p> 遙控功能:控制電腦關(guān)機(jī)及遙控PPT。&
55、lt;/p><p> 文件傳輸:用戶之間可以通過(guò)該軟件進(jìn)行文件傳輸。</p><p> 無(wú)線鼠標(biāo):可以把手機(jī)當(dāng)做無(wú)線鼠標(biāo)使用,使其對(duì)電腦的控制更便捷。</p><p> 系統(tǒng)總體結(jié)構(gòu)功能圖如圖3-1所示。</p><p><b> (1)在線聊天功能</b></p><p> 在線聊天又包括
56、注冊(cè),登陸,私聊,群聊四個(gè)模塊。進(jìn)入該界面需先進(jìn)行注冊(cè),然后用該賬號(hào)登陸,注冊(cè)時(shí)需要填寫(xiě)賬號(hào),密碼,年齡,愛(ài)好等信息注冊(cè)信息保存在SD卡根目錄下。下次登錄時(shí)系統(tǒng)會(huì)將登陸名密碼與SD卡中的信息進(jìn)行比對(duì),若符合則登陸成功,否則提示用戶名密碼錯(cuò)誤。登陸后可以查看自己的相關(guān)信息,同時(shí)會(huì)顯示其他在線用戶,添加其他用戶為好友,查看好友的在線狀況還可以向他們發(fā)起對(duì)話,也可以同時(shí)向所有人發(fā)送消息,或者向單個(gè)好友發(fā)送文件。在線聊天功能的結(jié)構(gòu)圖如圖3-2所
57、示。</p><p><b> ?。?)遠(yuǎn)程遙控功能</b></p><p> 該界面主要實(shí)現(xiàn)的功能有關(guān)機(jī)和遙控PPT,對(duì)關(guān)機(jī)設(shè)置的是60秒自動(dòng)關(guān)機(jī)。關(guān)機(jī)的實(shí)現(xiàn)是調(diào)用cmd語(yǔ)句實(shí)現(xiàn)倒計(jì)時(shí)關(guān)機(jī)PPT控制有開(kāi)始放映,上一頁(yè),下一頁(yè),結(jié)束放映幾個(gè)功能,按下這幾個(gè)按鍵就相當(dāng)于分別按下電腦鍵盤(pán)上的F5,P,N,Esc鍵。遠(yuǎn)程遙控功能的結(jié)構(gòu)圖如圖3-3所示。</p>
58、<p><b> ?。?)文件傳輸功能</b></p><p> 該模塊可以實(shí)現(xiàn)用戶間的文件互傳,可將自己SD卡的文件傳送給其他在線好友。被傳送的文件可以是軟件安裝時(shí)在SD卡會(huì)創(chuàng)建file_server文件夾,收到的文件會(huì)被保存在以發(fā)送方用戶名命名的文件夾下。接收方在收到文件傳輸請(qǐng)求時(shí)會(huì)彈出一個(gè)是否同意接受的對(duì)話框,若同意則開(kāi)始傳輸,否則取消這次傳輸。文件傳輸功能的結(jié)構(gòu)圖如圖
59、3-4所示。</p><p><b> ?。?)無(wú)線鼠標(biāo)功能</b></p><p> 無(wú)線鼠標(biāo)分為鼠標(biāo)移動(dòng)控制和鼠標(biāo)點(diǎn)擊控制,進(jìn)入該界面觸動(dòng)屏幕即可實(shí)現(xiàn)對(duì)鼠標(biāo)的控制。點(diǎn)擊事件并不是通過(guò)點(diǎn)擊屏幕實(shí)現(xiàn),而是在屏幕下方設(shè)置了分別代表鼠標(biāo)左鍵和右鍵的按鈕,點(diǎn)擊他們即相當(dāng)于鼠標(biāo)的點(diǎn)擊事件。無(wú)線鼠標(biāo)功能的結(jié)構(gòu)圖如圖3-5所示。</p><p><
60、b> 3.2 系統(tǒng)流程</b></p><p> 當(dāng)程序啟動(dòng)時(shí),首先進(jìn)入功能選擇界面,由于文件傳輸是建立在用戶間相互通信的基礎(chǔ)上,所以用戶進(jìn)行功能選擇時(shí)可以選擇遠(yuǎn)程遙控,無(wú)線鼠標(biāo),在線聊天中的任意一個(gè)。</p><p> 聊天模塊主要有用戶注冊(cè)界面,添加好友界面,聊天界面,其中選擇要發(fā)起會(huì)話的好友用spinner實(shí)現(xiàn),當(dāng)用戶選擇其中一個(gè)好友時(shí)即可與之對(duì)話,對(duì)話內(nèi)容顯
61、示在下方的空白處。注冊(cè)時(shí)要填寫(xiě)自己的昵稱,姓名,年齡,愛(ài)好等。在添加好友界面,用戶選擇當(dāng)前在線的一個(gè)用戶,點(diǎn)擊其信息即可彈出添加好友對(duì)話框。點(diǎn)返回即可返回到功能選擇界面。</p><p> 遠(yuǎn)程遙控模塊只有一個(gè)界面,顯示關(guān)機(jī),放映等控制功能的按鈕,點(diǎn)擊即可實(shí)現(xiàn)相關(guān)操作,點(diǎn)返回同樣返回到功能選擇界面。</p><p> 文件傳輸模塊有兩個(gè)界面,發(fā)送界面和文件選擇界面,在發(fā)送界面點(diǎn)擊瀏覽即
62、可進(jìn)入文件選擇界面瀏覽想要上傳的文件。在接收端會(huì)彈出是否同意接受的對(duì)話框,點(diǎn)擊是則自動(dòng)接收并保存到相關(guān)目錄下,否則取消該次傳輸。</p><p> 無(wú)線鼠標(biāo)模塊主體只有一個(gè)layout和兩個(gè)按鈕,分別用來(lái)控制鼠標(biāo)的移動(dòng)和鼠標(biāo)的點(diǎn)擊。</p><p> 3.3 系統(tǒng)界面需求</p><p> 程序的界面很大程度上影響著用戶的操作體驗(yàn),為了不影響用戶體驗(yàn),除無(wú)線鼠
63、標(biāo)界面外,其余界面均使用同一背景。因此,在各個(gè)界面間切換時(shí)顯得更自然銜接更流暢。</p><p><b> 3.4 可行性分析</b></p><p><b> 技術(shù)可行性</b></p><p> 軟件代碼用Eclipse編寫(xiě),語(yǔ)言是Java。Java語(yǔ)言優(yōu)點(diǎn)是可移植性比較高,最初設(shè)計(jì)時(shí)就是本著一次編寫(xiě)到處執(zhí)行設(shè)計(jì)
64、的,可以開(kāi)發(fā)各種應(yīng)用程序和游戲。Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。Java中的robot類可以實(shí)現(xiàn)對(duì)鼠標(biāo)和鍵盤(pán)的相關(guān)控制。</p><p><b> 經(jīng)濟(jì)可行性</b></p><p> 眾所周知Android是開(kāi)源的,而且Eclipse等開(kāi)發(fā)工具也是免費(fèi)的,所以,所需成本極低。</p><p><
65、b> 操作可行性</b></p><p> 基于Android平臺(tái)的應(yīng)用,大多都是界面友好,易于操作。并且軟件本身布局合理,各個(gè)模塊及其所實(shí)現(xiàn)的功能一目了然。</p><p> 3.5 開(kāi)發(fā)及運(yùn)行環(huán)境需求</p><p> (1) 開(kāi)發(fā)環(huán)境及語(yǔ)言</p><p> 操作系統(tǒng): Windows 7 ;</p&g
66、t;<p> 開(kāi)發(fā)語(yǔ)言:Java。</p><p> (2) 支持開(kāi)發(fā)軟件</p><p> Eclipse 及ADT JDK Android SDK。</p><p><b> (3) 運(yùn)行環(huán)境</b></p><p> Android 2.2及以上。</p><p&g
67、t; 第4章 通信控制軟件詳細(xì)設(shè)計(jì)</p><p> 啟動(dòng)程序后首先是功能選擇界面,分別是在線聊天,遠(yuǎn)程遙控,無(wú)線鼠標(biāo)功能,點(diǎn)擊相應(yīng)按鈕即可進(jìn)入相關(guān)功能界面。登陸模塊也在該界面內(nèi),注冊(cè)以后,輸入用戶名密碼即可與同時(shí)在線的好友發(fā)起會(huì)話或者進(jìn)行文件傳輸,也可以選擇其他功能,進(jìn)入相關(guān)子界面。啟動(dòng)后界面如圖4-1所示。</p><p> 4.1 用戶界面的設(shè)計(jì)</p><
68、p> 從之前的需求分析可知,軟件主要有四大界面這里需要進(jìn)一步分析每個(gè)用戶界面中應(yīng)該包括哪些顯示內(nèi)容。這四個(gè)界面分別是聊天界面,文件選擇界面,遙控PPT界面和無(wú)線鼠標(biāo)界面。聊天界面有spinner,button,textview等控件,文件選擇界面主要是一個(gè)listview,遙控界面是五個(gè)按鈕,無(wú)線鼠標(biāo)是兩個(gè)button和一大片用于捕捉觸控操作的空白。除了無(wú)線鼠標(biāo)界面外所有界面均用同一個(gè)背景。無(wú)線鼠標(biāo)界面用的是一個(gè)灰色的背景。&l
69、t;/p><p> 每一個(gè)界面,都有唯一的布局文件與之對(duì)應(yīng),該文件里面有各種布局方式,和各種資源文件如圖像、文字、顏色的引用,程序在運(yùn)行時(shí),可以通過(guò)代碼對(duì)各配置文件進(jìn)行讀取或修改。這樣就可以形成不同的可視化界面和炫麗的效果以及實(shí)現(xiàn)界面的動(dòng)態(tài)改變。</p><p> Android有五大布局,它們分別是FrameLayout(框架布局),LinearLayout (線性布局),Absolut
70、eLayout(絕對(duì)布局),RelativeLayout(相對(duì)布局),TableLayout(表格布局). 以上布局用到的控件主要有文本框(TextView)、編輯框(EditText)、按鈕(Button)、列表視圖(ListView)以及對(duì)話框(Dialog)等[13]。</p><p> 4.1.1 用戶界面的實(shí)現(xiàn)</p><p><b> (1)功能選擇界面</
71、b></p><p> 程序各個(gè)界面之間的跳轉(zhuǎn)用intent來(lái)實(shí)現(xiàn),在功能選擇界面添加功能選擇按鈕并為其添加監(jiān)聽(tīng)器,當(dāng)發(fā)生點(diǎn)擊事件時(shí)跳轉(zhuǎn)到所需的界面,返回功能界面時(shí)使用同樣的方法。跳轉(zhuǎn)的主要代碼如下:</p><p> btn_ppt=(Button)findViewById(R.id.btn_ppt);</p><p> btn_ppt.setOnCl
72、ickListener(new OnClickListener() {//添加監(jiān)聽(tīng)器</p><p> public void onClick(View v) {</p><p> Intentit=newIntent(Date.this,ppt.class);</p><p> startActivity(it);//實(shí)現(xiàn)跳轉(zhuǎn) </p&g
73、t;<p> Date.this.finish();//結(jié)束當(dāng)前界面</p><p> ?。?)文件瀏覽界面的實(shí)現(xiàn)</p><p> 該界面的主體是一個(gè)listview和兩個(gè)按鈕,listview用來(lái)接收adapter傳過(guò)來(lái)的數(shù)據(jù)并顯示,listview的實(shí)現(xiàn)如下:</p><p> <ListView </p><p&
74、gt; Android:id="@Android:id/list"//控件ID</p><p> Android:layout_width="fill_parent"//控件寬度為填滿父控件</p><p> Android:layout_height="330px"//控件高度為330px</p><p
75、><b> ></b></p><p> </ListView></p><p> 其余界面的實(shí)現(xiàn)與其相似,不再贅述。</p><p> 4.2 遠(yuǎn)程遙控功能的實(shí)現(xiàn)</p><p> 當(dāng)程序切換到遠(yuǎn)程遙控界面時(shí),負(fù)責(zé)遙控電腦的activity啟動(dòng)。根據(jù)用戶按鍵的不同向服務(wù)端發(fā)出不同的信息
76、,服務(wù)端根據(jù)收到的信息執(zhí)行相關(guān)操作。用戶只需點(diǎn)擊按鈕就能對(duì)電腦進(jìn)行簡(jiǎn)單控制。</p><p> 4.2.1 遠(yuǎn)程遙控功能的設(shè)計(jì)原理</p><p> 當(dāng)手機(jī)與電腦處于同一局域網(wǎng)時(shí),可以通過(guò)socket進(jìn)行通信,傳遞信息??梢栽谑謾C(jī)端設(shè)置按不同的鍵發(fā)送不同的命令,通過(guò)socket傳到服務(wù)器端,服務(wù)器端執(zhí)行這些命令即可實(shí)現(xiàn)遠(yuǎn)程遙控功能。</p><p> 4.2.
77、2 關(guān)機(jī)功能的實(shí)現(xiàn)</p><p> Java可以調(diào)用cmd命令行程序,而cmd命令中有一個(gè)定時(shí)關(guān)機(jī)的命令:”shutdown -s -t”可以讓手機(jī)端發(fā)送某一個(gè)特殊的信息,當(dāng)服務(wù)器收到該信息時(shí)執(zhí)行該命令則可實(shí)現(xiàn)關(guān)機(jī)。具體實(shí)現(xiàn)如下:</p><p><b> 建立socket</b></p><p><b> try{</
78、b></p><p> Socket socket=null;</p><p> socket=new Socket(ip,port);//建立socket需ip和端口</p><p><b> 手機(jī)端發(fā)送消息</b></p><p> PrintWriter writer=new PrintWriter(
79、new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"GBK")),true); </p><p> socket.getOutputStream().write(msg.getBytes("GBK"));</p><p> 服務(wù)器端調(diào)用cmd命令行執(zhí)行收到的請(qǐng)求
80、</p><p> if(str.equals("2"))</p><p> Runtime.getRuntime().exec("shutdown -s -t 3600");//如果收到2就執(zhí)行關(guān)機(jī)操作。</p><p> 4.2.3 PPT遙控功能的實(shí)現(xiàn)</p><p> PPT遙控功能的實(shí)
81、現(xiàn)與關(guān)機(jī)功能原理上極其相似,所不同的是,PPT遙控并沒(méi)有使用cmd命令行。而是使用了Java中的一個(gè)robot類。Java.awt.Robot 類用于控制鼠標(biāo)和鍵盤(pán),一旦你得到這種控制,你能夠通過(guò)你的Java代碼做與鼠標(biāo)和鍵盤(pán)任何類型的操作。這個(gè)類通常用于自動(dòng)化測(cè)試,之后的無(wú)線鼠標(biāo)模塊也會(huì)用到它。PPT遙控的實(shí)現(xiàn),可以讓手機(jī)端按四個(gè)鍵發(fā)送四個(gè)不同的特殊信息,這里可以用case語(yǔ)句實(shí)現(xiàn),給每個(gè)按鈕添加監(jiān)聽(tīng)器按不同按鈕發(fā)送不同信息:<
82、/p><p> case R.id.btnnextpage:{</p><p> String msg="3";</p><p> SendMsg1(ip,port,msg);</p><p><b> break;}</b></p><p> case R.id.btn
83、lastpage:{</p><p> String msg="4";</p><p> SendMsg1(ip,port,msg);} </p><p><b> break;}</b></p><p> case R.id.btnstart:{……</p><p>
84、 服務(wù)器端收到消息時(shí)先用if語(yǔ)句判斷收到的是什么命令然后調(diào)用robot類,執(zhí)行相關(guān)操作。例如,當(dāng)收到信息“3”時(shí),執(zhí)行的是按下鍵盤(pán)上的N鍵的操作,其代碼如下:</p><p> else if(str.equals("3"))</p><p> Robot robot = new Robot();
85、 robot.keyPress(KeyEvent.VK_N);//按下N鍵</p><p> robot.keyRelease(KeyEvent.VK_N);}//松開(kāi)N鍵</p><p> finally {}……</p><p> 其他操作與其類似,放映,上一頁(yè),下一頁(yè),結(jié)束放映分別對(duì)應(yīng)于鍵盤(pán)上的F5,P,N,Esc.這一界面的顯示結(jié)果如圖4-2所示
86、。</p><p> 若點(diǎn)下關(guān)機(jī)則電腦將在60秒內(nèi)關(guān)閉,如圖4-3所示。</p><p> 4.3 無(wú)線鼠標(biāo)功能的實(shí)現(xiàn)</p><p> 無(wú)線鼠標(biāo)要求在手機(jī)端觸摸屏幕時(shí)電腦端的光標(biāo)按相同的軌跡移動(dòng),并實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊事件,點(diǎn)擊事件并不是直接在屏幕上點(diǎn)擊,而是在界面下方設(shè)置了兩個(gè)按鈕來(lái)發(fā)送點(diǎn)擊事件的命令。</p><p> 4.3.1 無(wú)線
87、鼠標(biāo)功能的設(shè)計(jì)原理</p><p> Java中的robot類可以用于控制鼠標(biāo),Java程序?qū)崿F(xiàn)自動(dòng)測(cè)試,自動(dòng)演示功能,或者是其它的一些鼠標(biāo)和鍵盤(pán)控制的應(yīng)用。出于這樣的目的,自從JDK1.3開(kāi)始,它就為我們提供了一個(gè)用來(lái)產(chǎn)生本機(jī)輸入事件的機(jī)器人類Java.awt.Robot. </p><p> Robot為我們提供了以下這些功能:</p><p> Buff
88、eredImage createScreenCapture(Rectangle screenRect)createScreenCapture方法提供類似于鍵盤(pán)上的PrintScreen鍵的功能,將指定矩形區(qū)域內(nèi)的屏幕像素copy下來(lái)產(chǎn)生一個(gè)BufferedImage。我們可以將這個(gè)方法用在圖形程序中,或是用它來(lái)實(shí)現(xiàn)遠(yuǎn)端屏幕傳輸,可做成遠(yuǎn)端電腦監(jiān)控程序等。void delay(int ms)用來(lái)將當(dāng)前的程序(thread)休眠(sl
89、eep)若干毫秒(ms)。可用來(lái)控制程序的延時(shí)。Color getPixelColor(int x, int y)取得給定屏幕坐標(biāo)像素位置的顏色值。void keyPress(int keycode)void keyRelease(int keycode)這兩個(gè)方法的作用一看就知道是用來(lái)產(chǎn)生指定鍵的按鍵按下與抬起動(dòng)作,相當(dāng)于Win32 API的keyb_event函數(shù)??捎糜诔绦虻淖詣?dòng)演示、測(cè)試等,PPT遙控功能就是通過(guò)該方法
90、實(shí)現(xiàn)void mouseMove(int x, int y)將鼠標(biāo)光標(biāo)移動(dòng)到指定的屏幕坐標(biāo).可用于程序的自動(dòng)</p><p> 以上就是Robot提供的實(shí)用的鍵盤(pán)鼠標(biāo)控制功能。</p><p> 4.3.2 鼠標(biāo)移動(dòng)功能的設(shè)計(jì)原理</p><p> Robot類提供了一個(gè)有關(guān)鼠標(biāo)移動(dòng)控制的方法void mouseMove(int x, int y),可以將
91、鼠標(biāo)光標(biāo)移動(dòng)到指定的區(qū)域。其基本原理是手機(jī)端捕獲位移方向和距離,將其傳到服務(wù)器端,服務(wù)器端根據(jù)該位移移動(dòng)相同的距離。</p><p> 手機(jī)端的mouseview是指針移動(dòng)區(qū)域</p><p> public MouseView(Context context, AttributeSet attrs) {</p><p> super(context,attr
92、s);</p><p> msg = new MsgInfo();</p><p> msg.setX(0);</p><p> msg.setY(0);}</p><p> 手機(jī)端對(duì)觸摸事件的捕獲:</p><p> case MotionEvent.ACTION_MOVE:</p><
93、p> x = (int) event.getX();//獲取當(dāng)前位置橫坐標(biāo)</p><p> y = (int) event.getY();//獲取當(dāng)前位置縱坐標(biāo)</p><p> mouseView.getMsg().setX(x);//移動(dòng)后的橫坐標(biāo)</p><p> mouseView.getMsg().setY(y);//移動(dòng)后的縱坐標(biāo)<
94、/p><p> distanceX = x - oldX;//移動(dòng)距離</p><p> distanceY = y-oldY;//移動(dòng)距離</p><p> oldX = x;//把當(dāng)前位置當(dāng)做初始位置</p><p><b> oldY = y;</b></p><p> Datagra
95、mPacket(msgString.getBytes(),msgString.length(),addr,2011 ;</p><p><b> try {</b></p><p> client.send(outPacket);//將位移事件的坐標(biāo)變化發(fā)到服務(wù)器端</p><p> 服務(wù)器端收到信息后 ,根據(jù)收到位移量的大小移動(dòng)相同的距
96、離:</p><p> Point mousePoint = MouseInfo.getPointerInfo().getLocation(); </p><p> System.out.println("x:"+x+"y:"+y);</p><p> robot.mouseMove(mousePoint.x+x, mo
97、usePoint.y+y);} //鼠標(biāo)指針移動(dòng)。</p><p> 4.3.3 鼠標(biāo)點(diǎn)擊功能的設(shè)計(jì)原理</p><p> 在無(wú)線鼠標(biāo)界面下方有兩個(gè)設(shè)置了監(jiān)聽(tīng)器的按鈕,分別對(duì)應(yīng)鼠標(biāo)左鍵和右鍵的點(diǎn)擊事件。當(dāng)點(diǎn)擊按鈕時(shí),服務(wù)端執(zhí)行鼠標(biāo)單擊操作。當(dāng)鼠標(biāo)鍵按下時(shí)發(fā)送一條信息到服務(wù)端,服務(wù)端執(zhí)行左鍵按下操作,當(dāng)鼠標(biāo)鍵松開(kāi)時(shí),服務(wù)器執(zhí)行鼠標(biāo)左鍵松開(kāi)操作。</p><p>
98、 rightBtn = (Button) findViewById(R.id.rightButton);//得到兩個(gè)按鈕</p><p> leftBtn.setOnTouchListener(new OnTouchListener() {</p><p> //為左鍵設(shè)置監(jiān)聽(tīng)器</p><p> public boolean onTouch(View v,
99、MotionEvent event) {//鼠標(biāo)點(diǎn)擊事件</p><p> case MotionEvent.ACTION_DOWN://鼠標(biāo)按下操作</p><p> clientSocket.sendMsg(addr, port, msg);//發(fā)往服務(wù)端的信息</p><p> case MotionEvent.ACTION_UP://鼠標(biāo)松開(kāi)操作<
100、;/p><p> clientSocket.sendMsg(addr, port, msg);//發(fā)往服務(wù)端的信息</p><p> 右鍵點(diǎn)擊事件的設(shè)置與左鍵一樣,即添加監(jiān)聽(tīng)器,在按下按鍵和松開(kāi)按鍵的時(shí)候分別發(fā)送不同的信息到服務(wù)端,服務(wù)端根據(jù)收到的信息進(jìn)行右鍵點(diǎn)擊和松開(kāi)操作。無(wú)線鼠標(biāo)的用戶界面如圖4-4所示。</p><p> 4.4 在線聊天功能的實(shí)現(xiàn)</
101、p><p> 在線聊天模塊主要是實(shí)現(xiàn)的功能是單個(gè)用戶之間的對(duì)話,多個(gè)用戶同時(shí)對(duì)話,以及文件傳輸功能。其主要原理還是先建立socket連接,然后在此基礎(chǔ)上進(jìn)行的一系列操作。</p><p> 4.4.1 用戶注冊(cè)功能的實(shí)現(xiàn)</p><p> 用戶注冊(cè)時(shí)需要填寫(xiě)帳號(hào)、密碼、昵稱、性別、地址、愛(ài)好和選擇頭像。若信息填寫(xiě)不夠完善,系統(tǒng)會(huì)提示補(bǔ)全遺漏的信息。注冊(cè)界面的實(shí)現(xiàn)主
102、要是幾個(gè)EditText和兩個(gè)按鈕,還有信息不完善時(shí)彈出的Toast控件,為什么叫它Toast呢?因?yàn)門(mén)oast在英文里的意思是烤面包機(jī),當(dāng)面包烤熟后面包會(huì)從機(jī)器里彈出來(lái),這個(gè)和Toast控件在屏幕上突然彈出來(lái)很類似,因此就把這個(gè)控件叫做Toast。</p><p> public void Init(){</p><p> name_edittext=(EditText)findVi
103、ewById(R.id.editText1);//添加控件</p><p> repwd_edittext.addTextChangedListener(new repwdTextChangedListener());//設(shè)置監(jiān)聽(tīng)器</p><p> repwd_edittext.setOnFocusChangeListener(new repwdOnFocusChangeListen
104、er());</p><p> user.setId(id_edittext.getText().toString());</p><p> user.setName(name_edittext.getText().toString());</p><p> //得到用戶所填信息,轉(zhuǎn)換成string類型然后傳到服務(wù)端</p><p>
105、 Intent it=new Intent(regited.this,Date.class);</p><p> startActivity(it);//啟動(dòng)activity</p><p> regited.this.finish();</p><p> 這里特別要強(qiáng)調(diào)的是Intent的使用,Intent主要作用是實(shí)現(xiàn)各個(gè)activity之間的跳轉(zhuǎn)并傳參。&
106、lt;/p><p> Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門(mén)提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦[14]。例如,Intent it=new Intent(regited.this,Date.cla
107、ss)括號(hào)中第一個(gè)參數(shù)表示本身所在的activity,第二個(gè)參數(shù)表示要跳轉(zhuǎn)到的activity,當(dāng)要跳轉(zhuǎn)到的activity與本身所在的activity不在一個(gè)包時(shí),被跳轉(zhuǎn)到的activity在manifest文件中進(jìn)行注冊(cè)時(shí)要寫(xiě)明它的絕對(duì)路徑,加入需要跳轉(zhuǎn)到的activity所在包的路徑。否則系統(tǒng)會(huì)因?yàn)檎也坏揭D(zhuǎn)的activity而出錯(cuò)奔潰。注冊(cè)界面如圖4-5所示。</p><p> 4.4.2 聊天功能實(shí)
108、現(xiàn)</p><p> 聊天模塊的亮點(diǎn)在于spinner的使用,使用spinner可輕松區(qū)分單個(gè)會(huì)話與所有人會(huì)話,點(diǎn)擊spinner的下拉菜單即可顯示所有在線好友并可選擇其中一個(gè)發(fā)起單個(gè)會(huì)話或者選擇發(fā)給所有人進(jìn)行群聊。點(diǎn)擊所有人時(shí),系統(tǒng)會(huì)將用戶發(fā)的消息廣播給所有其他在線用戶。Spinner的使用如下:</p><p><b> <Spinner</b><
109、/p><p> Android:id="@+id/spinner1"</p><p> Android:layout_width="wrap_content"</p><p> Android:layout_height="wrap_content"</p><p> Andro
110、id:layout_weight="0.98" />//在.xml文件中對(duì)spinner進(jìn)行注冊(cè)</p><p> public void sp_handle(String names[]){</p><p> sp1=(Spinner)findViewById(R.id.spinner1);//得到spinner控件</p><p>
111、 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, </p><p> Android.R.layout.simple_spinner_item, names);//使用adapter傳參</p><p> adapter.setDropDownViewResource(Android.
112、R.layout.simple_spinner_dropdown_item); //設(shè)置按下spinner之后的操作</p><p> sp1.setAdapter(adapter); </p><p> sp1.setOnItemSelectedListener( new OnItemSelectedListener(){</p><p> 除spinner
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- android手機(jī)圖像瀏覽軟件畢業(yè)設(shè)計(jì)(含外文翻譯)
- android手機(jī)圖像瀏覽軟件畢業(yè)設(shè)計(jì)(含外文翻譯)
- android手機(jī)圖像瀏覽軟件畢業(yè)設(shè)計(jì)(含外文翻譯)
- android手機(jī)地圖畢業(yè)設(shè)計(jì)
- 手機(jī)流量控制軟件畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)論文—基于android的物聯(lián)網(wǎng)監(jiān)控手機(jī)軟件設(shè)計(jì)
- 畢業(yè)論文——android手機(jī)語(yǔ)音錄入軟件設(shè)計(jì)
- android手機(jī)短信發(fā)送軟件設(shè)計(jì)[畢業(yè)論文]
- android手機(jī)語(yǔ)音錄入軟件設(shè)計(jì)
- 基于android平臺(tái)的手機(jī)游戲開(kāi)發(fā)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)(論文)基于android平臺(tái)的手機(jī)商城的設(shè)計(jì)
- 畢業(yè)論文范文——android手機(jī)語(yǔ)音錄入軟件設(shè)計(jì)
- android手機(jī)語(yǔ)音錄入軟件設(shè)計(jì) (2)
- 基于android平臺(tái)的手機(jī)軟件開(kāi)發(fā)-基于android平臺(tái)的手機(jī)星座查詢軟件設(shè)計(jì)
- 軟件工程畢業(yè)論文-android手機(jī)衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)基于android手機(jī)平臺(tái)的音樂(lè)播放器
- 畢業(yè)設(shè)計(jì)---gsm手機(jī)控制系統(tǒng)
- android平臺(tái)3g手機(jī)氣象軟件——畢業(yè)論文
- 基于Android平臺(tái)的手機(jī)計(jì)步器設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告.doc
- 基于Android平臺(tái)的手機(jī)計(jì)步器設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)綜述 .doc
評(píng)論
0/150
提交評(píng)論