終端短距互聯(lián)輔助的網(wǎng)絡(luò)視頻系統(tǒng)-底層短距通信_第1頁
終端短距互聯(lián)輔助的網(wǎng)絡(luò)視頻系統(tǒng)-底層短距通信_第2頁
終端短距互聯(lián)輔助的網(wǎng)絡(luò)視頻系統(tǒng)-底層短距通信_第3頁
終端短距互聯(lián)輔助的網(wǎng)絡(luò)視頻系統(tǒng)-底層短距通信_第4頁
終端短距互聯(lián)輔助的網(wǎng)絡(luò)視頻系統(tǒng)-底層短距通信_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

終端短距互聯(lián)輔助的網(wǎng)絡(luò)視頻系統(tǒng)——底層短距通信協(xié)議選型及原型APP開發(fā)摘要隨著智能手機(jī)的普及,4g移動網(wǎng)絡(luò)甚至是5g移動網(wǎng)絡(luò)的基站的大范圍建設(shè),人們越來越離不開手機(jī),用移動網(wǎng)絡(luò)觀看視頻的頻率越來越高,隨著而來的是高昂的流量費(fèi)用。為了給用戶節(jié)省大量的移動流量費(fèi)用和下載時(shí)間,可以利用智能手機(jī)自帶的藍(lán)牙、WIFI熱點(diǎn)和NFC來實(shí)現(xiàn)手機(jī)用戶之間的數(shù)據(jù)傳輸。手機(jī)終端短距傳輸數(shù)據(jù)具有十分高的可靠性、保密性和抗干擾性。由于藍(lán)牙、WiFi連接、NFC在技術(shù)實(shí)現(xiàn)方式的不同,各個方案在終端連接數(shù)量、傳輸速率、傳輸?shù)挠行Х秶踩?、能耗等特性方面都有很大的不同。論文的主要?nèi)容包括:研究藍(lán)牙、WiFi-Direct、NFC的傳輸性能和能耗特點(diǎn)。比較三種短距通信方式的傳輸速率、傳輸范圍、能耗的特點(diǎn),確定智能手機(jī)間短距數(shù)據(jù)交換的最佳方式?;谶x型結(jié)論,利用AndroidStudio完成原型APP的開發(fā)。本設(shè)計(jì)基于安卓系統(tǒng)開發(fā),絕大多數(shù)的安卓智能手機(jī)都可以通過三種短距通信方式中的兩種或三種實(shí)現(xiàn)手機(jī)之間的數(shù)據(jù)交換,可以為用戶剩下大量的流量費(fèi)用,讓用戶在移動信號不穩(wěn)定的環(huán)境中也可以流暢地分享手機(jī)中的數(shù)據(jù)文件。關(guān)鍵字:藍(lán)牙,WiFi-Direct,NFC,數(shù)據(jù)交換,安卓APP

AbstractWiththepopularityofsmartphones,becauseofalarge-scaleconstructionof4gmobilenetworkeven5gbasestations,peopleareincreasinglyinseparablefrommobilephones.Thefrequencywithwhichpeoplewatchvideosonmobilenetworksisgettinghigherandhigher,andthehighcostisincurred.Inordertosaveusersalotofmobilenetworkcostsanddownloadtime,Bluetooth,WiFi-DirectandNFCcanbeusedtorealizedatatransmissionbetweenmobilephoneusers.Mobilephoneshort-distancetransmissiondatahasaveryhighreliability,confidentialityandanti-interference.DuetothedifferenttechnicalimplementationsofBluetooth,WiFi-Direct,andNFC,eachsolutionhasgreatdifferencesinthenumberofconnections,transmissionrate,andeffectiverangeoftransmission,security,andenergyconsumption.Themainworkofthisdissertation:StudythetransmissionperformanceandenergyconsumptioncharacteristicsofBluetooth,WiFi-Direct,andNFC.Comparethetransmissionrate,transmissionrangeandenergyconsumptioncharacteristicsofthreeshort-distancecommunicationmethods,anddeterminethebestwaytoexchangeshort-distancedatabetweensmartphones.Basedontheselectionconclusion,useAndroidStudiotomakeanapp.ThisdesignisbasedonAndroidsystem.MostAndroidsmartphonescanexchangedatabetweenmobilephonesthroughtwoorthreeofthreeshort-distancecommunicationmethods.Itcansavealotofmoneyforusers,sothatuserscansmoothlysharedatafileseveninanenvironmentwithunstablemobilesignals.Keywords:Bluetooth,WiFi-Direct,NFC,dataexchange,AndroidAPP目錄1緒論 11.1研究背景 11.2國內(nèi)外研究情況 21.3論文的研究內(nèi)容與目標(biāo) 31.4論文的章節(jié)安排 42三種無線傳輸技術(shù)的特性 52.1藍(lán)牙技術(shù) 52.1.1經(jīng)典藍(lán)牙 52.1.2BLE低功耗藍(lán)牙 62.1.3經(jīng)典藍(lán)牙與BLE藍(lán)牙的對比 72.2WiFi技術(shù) 82.2.1WiFi分類 82.2.2WiFi使用頻率 92.3NFC技術(shù) 102.3.1NFC技術(shù)的特點(diǎn) 102.3.2NFC的工作模式 112.4三種無線傳輸技術(shù)的對比 113開發(fā)平臺和開發(fā)環(huán)境 143.1安卓操作系統(tǒng)平臺 143.1.1安卓操作系統(tǒng)的基本架構(gòu) 143.1.2安卓操作系統(tǒng)的應(yīng)用程序組件 163.2開發(fā)工具 173.2.1安卓開發(fā)環(huán)境 183.2.2安卓開發(fā)編譯器 184安卓手機(jī)間的通信技術(shù) 204.1Socket基本通信模型 204.2Socket在安卓的應(yīng)用 215編碼實(shí)現(xiàn) 255.1熱點(diǎn)開啟 255.2文件掃描 275.4熱點(diǎn)掃描和連接 285.5傳輸 296功能演示與測試 30

1緒論1.1研究背景隨著智能手機(jī)的普及,以及中國建設(shè)了全球最大的4g移動網(wǎng)絡(luò),用戶幾乎可以在城市的任何地方利用智能設(shè)備連接移動網(wǎng)絡(luò)。截至2017年11月末,我國移動互聯(lián)網(wǎng)用戶總數(shù)達(dá)到12.5億戶。用戶用手機(jī)在商店里用手機(jī)支付,用手機(jī)乘坐公共交通、網(wǎng)購,用移動流量看新聞、瀏覽網(wǎng)頁、視頻,手機(jī)已經(jīng)成為人們?nèi)粘I钪胁豢苫蛉钡墓ぞ?。人們花費(fèi)大量的時(shí)間在智能手機(jī)上,隨之而來的不斷增長的移動數(shù)據(jù)流量和費(fèi)用。智研咨詢網(wǎng)發(fā)布的報(bào)告中指出,2016年全球移動數(shù)據(jù)流量約為7201PB/月,預(yù)計(jì)到2021年將達(dá)到48270PB/月,在移動數(shù)據(jù)流量中,消費(fèi)性視頻類流量占比最大,2016年全球消費(fèi)性視頻移動流量約為3660PB/月,占總移動流量的50.76%,預(yù)計(jì)到2021年達(dá)到33173PB/月,占移動流量比重達(dá)到68.72%。2015-2021年全球消費(fèi)性視頻移動數(shù)據(jù)流量預(yù)測用戶每個月都會消耗巨大的移動流量,其中用于觀看視頻的移動流量占了大多數(shù),需要付出的費(fèi)用也會隨著增加。用戶可以利用手機(jī)自帶的硬件配置在智能手機(jī)之間傳輸文件,而不是每一個用戶都從互聯(lián)網(wǎng)下載同一個文件,那將剩下巨大的流量費(fèi)用,同時(shí)可以省下大量的下載時(shí)間,即使在網(wǎng)絡(luò)不穩(wěn)定的環(huán)境中也可以順暢地下載分享的文件。為了解決上述問題,使用手機(jī)的藍(lán)牙、Wi-Fi等功能來實(shí)現(xiàn)手機(jī)用戶之間的短距離數(shù)據(jù)傳輸,優(yōu)化用戶的使用體驗(yàn)。1.2國內(nèi)外研究情況短距無線傳輸方式的技術(shù)實(shí)現(xiàn)都是不相同的,有著不同的研究和發(fā)展歷程。藍(lán)牙、Wi-Fi和NFC是基于不同協(xié)議以及不同信號類型的三種傳輸方式,三者的工作原理不同,作用不同,但都屬于信息傳輸技術(shù)。在1997年,IEEE—全球公認(rèn)的局域網(wǎng)權(quán)威,發(fā)布了802.11協(xié)議。兩年后又提出了802.11b協(xié)議,就是全世界都在大量使用的WirelessFidelity,簡稱Wi-Fi。Wi-Fi技術(shù)經(jīng)過20年左右不斷地發(fā)展,速率從最開始的2Mbps到現(xiàn)在的100Mbps甚至是1000Mbps以上。我國的公司在21世紀(jì)初也開始研究WIFI技術(shù),三大電信運(yùn)營商,華為,中興都有著不錯的技術(shù)積累。目前,國內(nèi)外都在研究更加快速、穩(wěn)定、安全,抗干擾強(qiáng),支持大量用戶同時(shí)連接,覆蓋范圍更廣的WiFi無線技術(shù),讓W(xué)iFi在SOHO、家庭無線網(wǎng)絡(luò)以及不便安裝有線網(wǎng)絡(luò)的建筑物或場所有更好的應(yīng)用,主要是在機(jī)場、酒店、商場等公共熱點(diǎn)場所,滿足日新月異的信息時(shí)代的無線上網(wǎng)和傳輸需求,建設(shè)“無線城市”。WiFi主要工作在2.4G頻段,由于大多數(shù)民用無線設(shè)備都工作在2.4GHz頻段,會給終端設(shè)備接受WiFi信號帶來同頻干擾。國內(nèi)外技術(shù)廠商在研究發(fā)展工作在5GHz頻段的WiFi技術(shù),用新一代的11AC技術(shù),通過提升頻寬,提高頻率調(diào)制效率,極大的提高了傳輸速率。為了在手機(jī)等移動終端間建立一種低功耗、低成本、安全可靠的無線通信接口,1994年Ericsson開發(fā)了藍(lán)牙技術(shù)。1998年,Ericsson、IBM、Intel、NOKIA、Toshiba5家科技巨頭公司達(dá)成一致,確定了藍(lán)牙技術(shù)協(xié)議。藍(lán)牙協(xié)議的標(biāo)準(zhǔn)版本為802.15.1,由SIG負(fù)責(zé)開發(fā)。Ericsson在2000年推出藍(lán)牙技術(shù)模塊后,各大科技公司推出的通過藍(lán)牙技術(shù)認(rèn)證的產(chǎn)品,如藍(lán)牙解調(diào)器、開發(fā)器、測試設(shè)備等如雨后春筍般大量涌現(xiàn)。其中最行業(yè)震驚的是CSR公司在2000年8月推出的采用高頻CMOS制作工藝的藍(lán)牙技術(shù)模塊,將單片藍(lán)牙價(jià)格壓到8美元。隨著技術(shù)的發(fā)展,芯片廠商利用其內(nèi)部MCU和大容量FLASH進(jìn)行嵌入式開發(fā),為用戶提供一個低成本的單CPU解決方案。國內(nèi)廠家為了擺脫相對落后的狀況,達(dá)到與國際技術(shù)同步發(fā)展的水平,與國外大公司合作,掌握藍(lán)牙芯片設(shè)計(jì)的關(guān)鍵技術(shù),追趕國外先進(jìn)科技公司,并不斷發(fā)展藍(lán)牙應(yīng)用技術(shù)。隨著藍(lán)牙4.0、藍(lán)牙5.0的普及,藍(lán)牙在體積小、成本低以及功耗低等特性上有了長足的進(jìn)步,為長期使用小電池供電的可穿戴設(shè)備提供了省電省流量的完美解決方案,支持藍(lán)牙技術(shù)的設(shè)備能互相之間通訊以及與互聯(lián)網(wǎng)進(jìn)行通訊。目前應(yīng)用于手機(jī)終端、筆記本電腦,各種移動電子設(shè)備和家用電器設(shè)備,如藍(lán)牙耳機(jī),藍(lán)牙鼠標(biāo),音箱、智能手環(huán)手表、電視、掃地機(jī)器人、空調(diào)等的藍(lán)牙模塊,是各大國內(nèi)外廠商真會玩那個先開發(fā)的熱點(diǎn)。2004年,NOKIA,PHILPS和SONY三家公司成立了NFC論壇,到現(xiàn)在論壇已經(jīng)有分類會員100個以上,都是來自世界各地有名的運(yùn)營商,手機(jī)、芯片廠商,還有智能卡相關(guān)企業(yè)。重要研究NFC技術(shù)在交通系統(tǒng)、商店支付、NFC傳輸、電子票證等方面的應(yīng)用。SONY推出基于Felica技術(shù)的手機(jī)支付系統(tǒng),PHILPS也推出MIFARE技術(shù),NFC技術(shù)在手機(jī)支付上的應(yīng)用開始快速發(fā)展。廠商不斷研究開發(fā)NFC技術(shù)在手機(jī)上的應(yīng)用,豐富其功能,在實(shí)現(xiàn)支付功能的基礎(chǔ)上,使其可以傳輸文件,虛擬交通卡,復(fù)制門禁卡,身份識別。隨著智能穿戴設(shè)備的發(fā)展,NFC技術(shù)在穿戴設(shè)備的應(yīng)用成為了重要的研究方向。國內(nèi)相關(guān)手機(jī)廠商也在不斷跟進(jìn)和發(fā)展,華為更是發(fā)布了應(yīng)用NFC技術(shù)實(shí)現(xiàn)無線充電的設(shè)備。1.3論文的研究內(nèi)容與目標(biāo)研究的主要內(nèi)容:采用終端(手機(jī))短距互聯(lián)合作方式輔助視頻流分發(fā),即用移動終端設(shè)備輔助分發(fā)內(nèi)容以補(bǔ)償移動網(wǎng)絡(luò)下載方式費(fèi)用高,信號不穩(wěn)定等不足。利用移動終端設(shè)備如智能手機(jī)的藍(lán)牙、WiFi-Direct、NFC等短距無線D2D(Device-to-Device)傳輸方式輔助分發(fā)視頻內(nèi)容。通過調(diào)研國內(nèi)外短距無線傳輸方式的相關(guān)文獻(xiàn)和書籍,利用工具進(jìn)行試驗(yàn)測試,研究三種短距無線傳輸方式的實(shí)現(xiàn)技術(shù)以及應(yīng)用方法,研究三種通信協(xié)議傳輸特性,比較三種短距無線D2D傳輸方式,主要研究對象包括:1、效率:即傳輸速率。2、可靠性:即傳輸范圍。3、能耗。確定最適合移動終端設(shè)備短距數(shù)據(jù)交換的通信方式。研究安卓APP開發(fā),學(xué)會調(diào)用安卓手機(jī)的相關(guān)功能并在手機(jī)中得以運(yùn)用。論文的目標(biāo):比較多種終端短距無線傳輸方式,完成藍(lán)牙、WiFi-Direct以及NFC通信特點(diǎn)的技術(shù)報(bào)告,分析各方案的效率、可靠性和能耗。基于選型結(jié)論,完成原型APP開發(fā)。1.4論文的章節(jié)安排第一章:緒論。簡單描述手機(jī)終端無線傳輸文件的研究背景;介紹國內(nèi)外相關(guān)無線傳輸技術(shù)的研究發(fā)展?fàn)顩r;給出論文研究的主要內(nèi)容和目標(biāo);論文的章節(jié)安排。第二章:三種無線傳輸技術(shù)的特性。第三章:開發(fā)平臺和開發(fā)環(huán)境。第四章:需求分析與總體設(shè)計(jì)。第五章:詳細(xì)設(shè)計(jì)。第六章:功能演示與測試。論文結(jié)論與展望:完成論文后,對設(shè)計(jì)進(jìn)行總結(jié),寫明開發(fā)過程中遇到的問題及解決方法,已完成的功能設(shè)計(jì),并指出其不足,將來可以對設(shè)計(jì)做出的改善。2三種無線傳輸技術(shù)的特性2.1藍(lán)牙技術(shù)安卓中的藍(lán)牙,在最新的標(biāo)準(zhǔn)中分為經(jīng)典藍(lán)牙和低功耗藍(lán)牙。藍(lán)牙4.0標(biāo)準(zhǔn)包括傳統(tǒng)藍(lán)牙模塊部分和低功耗藍(lán)牙模塊部分,是一個雙模標(biāo)準(zhǔn)。低功耗藍(lán)牙也是建立在傳統(tǒng)藍(lán)牙基礎(chǔ)之上發(fā)展起來的,并有別于傳統(tǒng)藍(lán)牙模塊。藍(lán)牙模塊的分類2.1.1經(jīng)典藍(lán)牙泛指藍(lán)牙4.0以下的模塊,一般用于數(shù)據(jù)量比較大的傳輸,如:語音、音樂、較高數(shù)據(jù)量傳輸?shù)取=?jīng)典藍(lán)牙模塊可再細(xì)分為:傳統(tǒng)藍(lán)牙模塊和高速藍(lán)牙模塊。傳統(tǒng)藍(lán)牙模塊在2004年推出,主要代表是支持藍(lán)牙2.1協(xié)議的模塊,在智能手機(jī)爆發(fā)的時(shí)期得到廣泛支持。高速藍(lán)牙模塊在2009年推出,速率提高到約24Mbps,是傳統(tǒng)藍(lán)牙模塊的八倍,可以輕松用于錄像機(jī)至高清電視、PC至PMP、UMPC至打印機(jī)之間的資料傳輸。傳統(tǒng)藍(lán)牙有3個功率級別,Class1,Class2,Class3,分別支持100m,10m,1m的傳輸距離,對應(yīng)的功率為+20dBm(withPA),+4dBm(-6-+4dBm),0dBm.2.1.2BLE低功耗藍(lán)牙BLE模塊(BluetoohLowEnergyModule),最大的特點(diǎn)是成本和功耗的降低,應(yīng)用于實(shí)時(shí)性要求比較高,但是數(shù)據(jù)速率比較低的產(chǎn)品,如:遙控類的(鼠標(biāo)、鍵盤)、傳感設(shè)備的數(shù)據(jù)發(fā)送(心跳帶、血壓計(jì)、溫度傳感器)等。(一)BLE低功耗藍(lán)牙的優(yōu)勢藍(lán)牙4.0是2012年發(fā)布的最新藍(lán)牙版本,包括經(jīng)典藍(lán)牙和BLE低功耗藍(lán)牙。BLE藍(lán)牙主要特征如下:超低的峰值、平均和待機(jī)模式功耗。使用標(biāo)準(zhǔn)紐扣電池可運(yùn)行一年乃至數(shù)年。低成本。不同廠商設(shè)備交互性。無線覆蓋范圍增強(qiáng)。完全向下兼容。低延遲(APT-X)。BLE藍(lán)牙的功耗較老版本降低了90%。藍(lán)牙低耗能技術(shù)是基于藍(lán)牙低耗能無線技術(shù)核心規(guī)格的升級版,為開拓鐘表、遠(yuǎn)程控制、醫(yī)療保健及運(yùn)動感應(yīng)器等廣大新興市場奠定了基礎(chǔ)。BLE的低功耗是通過改變協(xié)議的設(shè)計(jì)來實(shí)現(xiàn)的,即在不必要開啟射頻的時(shí)候,徹底將空中射頻關(guān)斷。與傳統(tǒng)藍(lán)牙BR\EDR相比,BLE通過三大特性實(shí)現(xiàn)低功耗效果??s短無線開啟時(shí)間??焖俳⑦B接。降低收發(fā)峰值功耗(由芯片決定)??s短無線開啟時(shí)間的第一個技巧是只用3個“廣告”信道,第二個技巧是通過優(yōu)化協(xié)議棧來降低工作周期。一個在廣播的設(shè)備可以自動和一個在搜索的設(shè)備快速建立連接,所以可以在3ms內(nèi)完成連接的建立和數(shù)據(jù)的傳輸。2.1.3經(jīng)典藍(lán)牙與BLE藍(lán)牙的對比BLE和傳統(tǒng)藍(lán)牙BR\EDR技術(shù)的對比圖如下。經(jīng)過對比,在以下情況下需要選擇經(jīng)典藍(lán)牙開發(fā):1.傳聲音如藍(lán)牙耳機(jī)、藍(lán)牙音箱。藍(lán)牙設(shè)計(jì)的時(shí)候就是為了傳聲音的,所以是近距離的音頻傳輸?shù)牟欢x擇?,F(xiàn)在也有基于WIFI的音頻傳輸方案,例如Airplay等,但是WIFI功耗比藍(lán)牙大很多,設(shè)備無法做到便攜。因此固定的音響有WIFI的,移動的如耳機(jī)、便攜音箱清一色都是基于經(jīng)典藍(lán)牙協(xié)議的。2.傳大量數(shù)據(jù)例如某些工控場景,使用Android或Linux主控,外掛藍(lán)牙遙控設(shè)備的,可以使用經(jīng)典藍(lán)牙里的SPP協(xié)議,當(dāng)作一個無線串口使用。速度比BLE傳輸快多了。這里要注意的是,iPhone沒有開放在以下情況下需要選擇BLE藍(lán)牙開發(fā):耗電低,數(shù)據(jù)量小,如遙控類(鼠標(biāo)、鍵盤),傳感設(shè)備(心跳帶、血壓計(jì)、溫度傳感器、共享單車鎖、智能鎖、防丟器、室內(nèi)定位)是目前手機(jī)和智能硬件通信的性價(jià)比最高的手段,直線距離約50米,一節(jié)5號電池能用一年,傳輸模組成本10塊錢,遠(yuǎn)比WIFI、4G等大數(shù)據(jù)量的通信協(xié)議更實(shí)用。雖然藍(lán)牙距離近了點(diǎn),但勝在直連手機(jī),價(jià)格超便宜。以室內(nèi)定位為例,商場每家門店掛個藍(lán)牙beacon,就可以對手機(jī)做到精度10米級的室內(nèi)定位,一個beacon的價(jià)格也就幾十塊錢而已??傊獫M足在手機(jī)終端間利用藍(lán)牙模塊傳輸視頻文件,必須選擇傳統(tǒng)藍(lán)牙開發(fā),只有這樣才能保證智能手機(jī)能在有效傳輸范圍足夠大的情況下,可以傳輸視頻文件(對時(shí)長1小時(shí)、播放質(zhì)量為480p的典型視頻,大約225MB)。2.2WiFi技術(shù)WiFi技術(shù),即IEEE802.11無線局域網(wǎng)標(biāo)準(zhǔn)。WiFi是以太網(wǎng)的一種無線擴(kuò)展技術(shù),在筆記本和手機(jī)上已經(jīng)得到廣泛應(yīng)用,且在向消費(fèi)電子產(chǎn)品滲透,在打印機(jī)、洗衣機(jī)、空調(diào)、智能攝像頭等家用電器上都在使用WiFi,現(xiàn)在人們已經(jīng)離不開WiFi了。2.2.1WiFi分類IEEE802.11b支持最高11Mbps的數(shù)據(jù)速率,運(yùn)行在2.4Ghz的ISM頻段上,采用CCK調(diào)制技術(shù)。IEEE802.11a工作在5Ghz頻段上,使用OFD調(diào)制技術(shù),支持54Mbps的傳輸速率。IEEE802.11a由于工作在5G頻段,避免了與其他無線傳輸技術(shù)和設(shè)備搶奪2.4G頻段,從而可以在很大程度上減少其他無線設(shè)備帶來的干擾,且傳輸速率更快,但也帶來了有效傳輸范圍小的缺點(diǎn)。IEEE802.11g工作在2.4g頻段,但使用的是OFDM調(diào)制技術(shù),傳輸速率增加,且可以與IEEE802.11b的WiFi系統(tǒng)互連。常用IEEE802.11標(biāo)準(zhǔn)的區(qū)別802.11n,2009年才被IEEE批準(zhǔn),在2.4gHZ和5gHZ均可工作,最大的傳輸速率為600mbps。這些協(xié)議均為無線網(wǎng)絡(luò)的通信所需的基本協(xié)議,最新發(fā)展的,一般要比最初的有所改善。802.11n在MAC層上進(jìn)行了一些重要的改進(jìn),所以導(dǎo)致網(wǎng)絡(luò)性能有了很大的提升例如:(1)因?yàn)閭鬏斔俾试诤艽蟮某潭壬先Q于Channel(信道)的ChannelWidth有多寬,而802.11n中采用了一種技術(shù),可以在傳輸數(shù)據(jù)的時(shí)候?qū)蓚€信道合并為一個,再進(jìn)行傳輸,極大地提高了傳輸速率(這又稱HT-40,highthrough)。(2)802.11n的MIMO(多輸入輸出)特性,使得兩對天線可以在同時(shí)同Channel上傳輸數(shù)據(jù),而兩者卻能夠不相互干擾(采用了OFDM特殊的調(diào)制技術(shù))

2.2.2WiFi使用頻率

Channel是對頻段的進(jìn)一步劃分(將5G或者2.4G的頻段范圍再劃分為幾個小的頻段,每個頻段稱作一個Channel),有”5.18GHZ“,“Auto(DFS)”等等,處于不同傳輸信道上面的數(shù)據(jù),如果信道覆蓋范圍沒有重疊,那么不會相互干擾。除了wifi,微波、紅外線、藍(lán)牙(使用802.15協(xié)議)的工作頻段也都有在2.4gHZ范圍內(nèi)的,所以,它們傳輸?shù)臅r(shí)候會對wifi傳輸造成干擾,因?yàn)閮烧咴诓煌膮f(xié)議下進(jìn)行通信,所以互相將對方傳輸?shù)男盘栕R別為噪聲。WiFi技術(shù)使用的最主要頻率是2.4GHz頻段,使用地工作頻率范圍為2400-2483.5MHz,屬于無需申請的ISM頻段,處于2.4GHz頻段的WiFi信號受墻壁阻隔的影響很小。由于使用ISM頻段,絕大多數(shù)的民用無線傳輸技術(shù)都是使用ISM頻段,即2.4GHz頻段,包括藍(lán)牙技術(shù)、微波、ZigBee、無線USB,所以造成了此頻段信道十分擁擠,頻率干擾無可避免。2.4GHz頻段,劃分為13個信道,每個信道帶寬為22MHz。相鄰的信道間有重疊盡量不要同時(shí)使用,造成干擾,是數(shù)據(jù)傳輸不穩(wěn)定,傳輸速率和傳輸范圍都會造成影響。在已經(jīng)有一個信號占用一個信道的情況下,為了不受其干擾,其余發(fā)射器只可以使用3個互不重疊的信道。WiFi技術(shù)也有使用5.8GHz的標(biāo)準(zhǔn)協(xié)議,中國開放可以使用工作頻率范圍為5725–5850MHz??梢允褂脦挒?25MHz,劃分為5個信道,每個信道帶寬為20MHz,且相互信道互不重疊。所以發(fā)射器可以選擇的信道就增加了,相鄰信道之間也不會相互干擾,信號更加穩(wěn)定,傳輸速率增大,但傳輸有效范圍比2.4GHz小,穿墻能力差,難以大面積覆蓋。2.3NFC技術(shù)NFC是近場通信(NearFieldCommunication)的縮寫,此技術(shù)由非接觸式射頻識別(RFID)演變而來,其基礎(chǔ)是RFID及互聯(lián)技術(shù),在單一芯片結(jié)合感應(yīng)式讀卡器、感應(yīng)式卡片和點(diǎn)對點(diǎn)的功能,能在短距離內(nèi)與兼容設(shè)備進(jìn)行識別和數(shù)據(jù)交換。2.3.1NFC技術(shù)的特點(diǎn)近場通信信息通過頻譜中無線頻率部分的電磁感應(yīng)耦合方式傳遞,近場通信的傳輸范圍比RFID小,RFID的傳輸范圍可以達(dá)到0-1m,但由于近場通信采取獨(dú)特的信號衰減技術(shù),相對于RFID來說,近場通信具有成本低、帶寬高、能耗低等特點(diǎn)。近場通信技術(shù)主要特征如下:(1)用于近距離(10cm以內(nèi))安全通信的無線通信技術(shù)。(2)射頻頻率:13.56MHz。(3)射頻兼容:ISO14443,ISO15693,F(xiàn)elica標(biāo)準(zhǔn)(4)數(shù)據(jù)傳輸速度:106kbit/s,212kbit/s,424kbit/s2.3.2NFC的工作模式在現(xiàn)實(shí)應(yīng)用中,NFC技術(shù)有下面三種工作模式:卡模式:此模式其實(shí)就是相當(dāng)于一張采用RFID技術(shù)的IC卡??梢蕴娲F(xiàn)在大量的IC卡,包括信用卡、商場智能卡、公交卡、門禁卡、車票、門票等。此種方式下,有一個很大的優(yōu)勢,就是卡片通過非接觸讀卡器的RF域來供電,即便是寄主設(shè)備(如手機(jī)、手環(huán))沒電也可以正常工作。點(diǎn)對點(diǎn)模式:此模式和紅外線差不多,可用于數(shù)據(jù)交換,只是傳輸距離短,傳輸創(chuàng)建速度較快,傳輸速度不錯,功耗低。將兩個支持NFC功能的設(shè)備連接,能實(shí)現(xiàn)數(shù)據(jù)點(diǎn)對點(diǎn)傳輸,如下載音樂、傳輸圖片。讀卡器模式:作為非接觸讀卡器使用,如從海報(bào)或者展覽信息電子標(biāo)簽上讀取相關(guān)信息。2.4三種無線傳輸技術(shù)的對比藍(lán)牙、WiFi、NFC都是無線短程通信技術(shù),而且近年來都被集成到移動電話。這三種技術(shù)在傳輸速率、傳輸?shù)挠行Х秶⒐纳隙加兄艽蟮牟煌?。綜合考慮三種無線傳輸技術(shù)的特點(diǎn),才可以選擇出最適合在智能手機(jī)之間傳輸視頻文件的方案。NFC的最大數(shù)據(jù)傳輸量是424kbit/s,遠(yuǎn)遠(yuǎn)小于藍(lán)牙的2.1Mbit/s,雖然NFC在傳輸速度與距離比不上藍(lán)牙,但是NFC不需要內(nèi)置電源。NFC的短距離通信特性也是優(yōu)點(diǎn),手機(jī)中有效距離大約在5厘米以內(nèi),耗電量低,一次只能和一臺設(shè)備連接,擁有三種無線傳輸技術(shù)中最高的保密性和安全性。NFC的目標(biāo)是作為藍(lán)牙和WiFi技術(shù)的補(bǔ)充,在傳輸幾十Mb、上百M(fèi)b的視頻上就顯得十分乏力,但可以作為其他無線傳輸技術(shù)的身份識別,使兩臺設(shè)備可以快速的連接上藍(lán)牙或者WiFi等。藍(lán)牙是能工作在以下三種功率級下的短距離無線網(wǎng)絡(luò)技術(shù):功率級1(最高功率電平+20dBm,有效范圍100m),?即0.1W?,手機(jī)間進(jìn)行藍(lán)牙數(shù)據(jù)傳輸時(shí)常用到的功率等級。功率級2(最高功率電平+4dBm,有效范圍20m),?即2.5mW,是藍(lán)牙耳機(jī)常用功率等級。功率級3(最高功率電平0dBm,有效范圍10m)。即1mW。WiFi根據(jù)國際規(guī)定,最大不超過100mW,即+20dbm,跟藍(lán)牙的Class1功率差不多。各種無線消耗的發(fā)射功率值說明藍(lán)牙低功耗藍(lán)牙WiFiNFC標(biāo)椎化機(jī)構(gòu)BluetoothSIGBluetoothSIGIEEEISO/IEC網(wǎng)絡(luò)標(biāo)準(zhǔn)IEEE802.15.1IEEE802.15.1IEEE802.11ISO13157ect網(wǎng)絡(luò)類型WPANWPANWLANPoint-to-Point頻率2.4GHz2.4GHz2.4GHz13.56MHz范圍~100m~1m~100m<0.2mBitrate2.1Mbit/s~1.0Mbit/s~100Mbit/s424kbit/s功耗0.1W2.5mw0.1W1mA表中的后三項(xiàng)是選型的重要依據(jù)。由于使用NFC技術(shù)在手機(jī)終端間傳輸文件的速率太慢,無法滿足視頻文件的快速傳輸。假如用NFC傳輸一個20Mb的視頻文件,可能需要8分鐘,而且在這8分鐘內(nèi)兩個手機(jī)必須緊緊貼著,無法進(jìn)行其他的操作,極不方便。如果用戶必須在傳輸文件的期間進(jìn)行別的操作,就意味著要移動手機(jī),而手機(jī)NFC的有效距離不超過5厘米,超過此距離必然會是傳輸操作失敗,只能再次嘗試連接和傳輸。所以,首先要排除利用NFC技術(shù)傳輸視頻文件。但是,可以利用NFC技術(shù)的身份識別功能,進(jìn)行手機(jī)間其他無線傳輸技術(shù)的快速連接。比如兩部手機(jī)開啟NFC,通過短暫觸碰識別身份并進(jìn)行藍(lán)牙連接,然后通過藍(lán)牙傳輸視頻,當(dāng)然也通過WiFi傳輸。WiFi與藍(lán)牙的對比中,通過表中的后三項(xiàng),可以看出,WiFi帶寬最大,是傳統(tǒng)藍(lán)牙的50倍以上,傳輸距離與藍(lán)牙相差不大,實(shí)際使用中手機(jī)WiFi的能耗會比藍(lán)牙稍大,但在傳輸視頻時(shí)基本相差不大。雖然WiFi模塊的成本比藍(lán)牙高,但現(xiàn)在所有的智能手機(jī)都有WiFi和藍(lán)牙模塊,不用考慮成本問題。且藍(lán)牙是一對一連接,而WiFi熱點(diǎn)可以一對多。支持多人連接,在穿墻能力上也有優(yōu)勢。綜合考慮WiFi與藍(lán)牙在傳輸距離、傳輸速率和能耗等方面的差異,要在手機(jī)間進(jìn)行視頻文件的傳輸,WiFi是最合適的方案。實(shí)際中,使用一部Nubiaz17mini和一部honorv8,分別進(jìn)行WiFi和藍(lán)牙視頻傳輸?shù)臏y試,測試結(jié)果如下:藍(lán)牙:傳輸速率235KB/s–241KB/s(距離在50厘米內(nèi)),有效傳輸范圍約80mWiFi:傳輸速率4237KB/s–4576KB/s(距離在50厘米內(nèi)),有效傳輸范圍約65m(不同型號的手機(jī)在具體數(shù)值上會有差異)可以看出,使用這兩部手機(jī)進(jìn)行短距無線傳輸視頻文件時(shí),藍(lán)牙的有效傳輸范圍比WiFi稍微大了一些,但WiFi的傳輸速率是藍(lán)牙的18-19倍左右(因?yàn)槭謾C(jī)發(fā)射WiFi信號的功率不大,帶寬無法達(dá)到理論數(shù)值),且由上述資料可以看出,WiFi傳輸文件的功耗比藍(lán)牙大不多(藍(lán)牙在待機(jī)時(shí)間功耗低,傳輸文件時(shí)功耗會上升),進(jìn)而在實(shí)際操作中,WiFi也比藍(lán)牙更適合用來傳輸視頻。3開發(fā)平臺和開發(fā)環(huán)境3.1安卓操作系統(tǒng)平臺目前,智能手機(jī)上的操作系統(tǒng)主要包括安卓、蘋果IOS、WindowMobile、WindowPhone等,各操作系統(tǒng)占據(jù)的市場份額如下圖:其中安卓手機(jī)占據(jù)絕大多數(shù)的智能手機(jī)份額,選擇開發(fā)安卓APP可以覆蓋到更多的人群。安卓是谷歌公司發(fā)布的手機(jī)智能系統(tǒng),出身于Linux家族,是一款開源的手機(jī)操作系統(tǒng)。安卓使用Java作為主要的程序開發(fā)語言。安卓具有開放性、豐富的硬件、來自全球各地眾多的開發(fā)團(tuán)隊(duì),造就了安卓系統(tǒng)的功成名就。3.1.1安卓操作系統(tǒng)的基本架構(gòu)安卓是一個移動設(shè)備的開發(fā)平臺,其軟件層次結(jié)構(gòu)包括操作系統(tǒng)(OS)、中間件(MiddleWare)和應(yīng)用程序(Application)。根據(jù)安卓的軟件框圖,其軟件層次結(jié)構(gòu)自上而下分為以下4層:操作系統(tǒng)(OS);各種庫(Libraries)和安卓運(yùn)行環(huán)境(RunTime);應(yīng)用程序框架(ApplicationFramework);應(yīng)用程序(Application)。操作系統(tǒng)(OS)最底層安卓使用了Linux內(nèi)核,用Linux2.6作為操作系統(tǒng)。安卓的Linux核心為標(biāo)準(zhǔn)的Linux2.6內(nèi)核,安卓更多的是需要一些與移動設(shè)備相關(guān)的驅(qū)動程序。包括以下幾種重要的驅(qū)動:顯示驅(qū)動:用于基于Linux的幀緩沖驅(qū)動;Flash內(nèi)存驅(qū)動:基于MTD的Flash驅(qū)動程序;照相機(jī)驅(qū)動:基于Linux的v41(videofor)驅(qū)動;音頻驅(qū)動:基于ALSA(AdvancedLinuxSoundArchitecture)驅(qū)動WiFi驅(qū)動:基于IEEE802.11標(biāo)準(zhǔn)驅(qū)動程序鍵盤驅(qū)動:作為輸入設(shè)備的鍵盤驅(qū)動藍(lán)牙驅(qū)動:基于IEEE802.15.1標(biāo)準(zhǔn)的無線傳輸技術(shù)各種庫和安卓運(yùn)行環(huán)境中間層本層次對應(yīng)一般嵌入式系統(tǒng),相當(dāng)于中間件層次。安卓的本層次分為兩個部分,一個是各種庫,一個是安卓運(yùn)行環(huán)境。本層的內(nèi)容大多是使用C實(shí)現(xiàn)的。包含的各種庫有C庫、多媒體框架(基于PacketVideo的OpenCORE,分為音視頻的回放和音視頻的記錄)、SGL、SSL(為數(shù)據(jù)安全提供安全支持)、OpenGLES1.0、界面管理工具、SQLite、WebKit(網(wǎng)絡(luò)瀏覽器的核心)、FreeType。安卓的各種庫一般是以系統(tǒng)中間層的形式提供的,與移動設(shè)備的平臺的應(yīng)用密切相關(guān)。應(yīng)用程序安卓的應(yīng)用程序主要是用戶界面方面的,通常是JAVA語言編寫的,包括各種資源文件。把編寫的Java程序和相關(guān)資源利用編譯器編譯后,便會產(chǎn)生一個APK包,即為手機(jī)程序的安裝包。同時(shí)應(yīng)用程序的開發(fā)者可以使用應(yīng)用程序框架層的API自己編寫程序,實(shí)現(xiàn)程序具體的功能應(yīng)用程序框架應(yīng)用程序框架層提供開放給開發(fā)者進(jìn)行編制應(yīng)用程序的APIs框架,意于簡化組件的重用。開發(fā)者在服從框架執(zhí)行的安全限制前提下可任意使用提供的功能,例如可使用訪問位置信息、運(yùn)行后臺服務(wù)、設(shè)置鬧鐘等功能。由于上層的應(yīng)用程序是以Java構(gòu)建的,因此本層次提供的首先包含了UI程序中所需要的各種控件,如Views,其中又包括List、Grid、TextBox和Button等。3.1.2安卓操作系統(tǒng)的應(yīng)用程序組件一個基本的安卓應(yīng)用程序,可以利用應(yīng)用程序框架中的以下5個部分來構(gòu)建:1、Activity(活動);2、BroadcastIntentReceiver(廣播意圖接受者);3、Service(服務(wù));4、ContentProvider(內(nèi)容提供者);5、IntentandIntentFilter(意圖和意圖過濾器)。在使用這些構(gòu)造塊之前,需在配置文件中進(jìn)行注冊,配置組件的必要條件及功能后,方可在程序中進(jìn)行引用。這4種基本構(gòu)造塊根據(jù)開發(fā)者需求進(jìn)行組合,從而形成可執(zhí)行的程序。Activity界面組件Activty屬于Android應(yīng)用程序中最基本的組件。每一個Activity都是從基類中繼承而來的獨(dú)立類?;顒宇悤@示由幾個Views控件組成的用戶接口,并對事件做出響應(yīng)。在應(yīng)用程序中,我們所看到的每個單獨(dú)的屏幕就屬于一個Activity。應(yīng)用程序中往往有多個屏幕,當(dāng)由一個屏幕切換到新的屏幕時(shí),前一個屏幕將會暫停而保存在歷史棧中。用戶若想要回到之前的屏幕,則通過回退即可返回。其中,Android使用Intent這個特殊類,實(shí)現(xiàn)Activity之間的移動。用Broadcast/Receiver廣播機(jī)制組件當(dāng)要執(zhí)行一些與外部時(shí)間相關(guān)的代碼時(shí),如來電響鈴時(shí)可能要用到IntentReceiver。當(dāng)一個IntentReceiver被觸發(fā)時(shí),如果需要系統(tǒng)自然會自動啟動程序。程序也可以通過Context.BroadcastIntent()來發(fā)送自己的Intent廣播給其他程序。Service服務(wù)組件Service服務(wù)類似于Windows系統(tǒng)中的Windows服務(wù),是一種有著較長生命周期且沒有用戶界面的應(yīng)用程序。一個應(yīng)用組件可以啟動Service,并且當(dāng)用戶進(jìn)行應(yīng)用場景切換時(shí),Service將會持續(xù)在后臺運(yùn)行。另外,一個組件可以綁定到一個Service上與之進(jìn)行交互。例如,一個Service在處理播放音樂、網(wǎng)絡(luò)操作、文件I/O等操作時(shí),Service都是在后臺進(jìn)行的。Service有啟動和綁定兩種狀態(tài)。在應(yīng)用程序中,啟動一個服務(wù)可調(diào)用startService()方法。通常started狀態(tài)的Service僅限于執(zhí)行單任務(wù)并且不返回任何結(jié)果給啟動者。還有一種綁定狀態(tài)的Service則是通過bindService()方法進(jìn)行啟動,此Service提供一個允許組件和Service進(jìn)行交互的接口,可實(shí)現(xiàn)發(fā)送請求、獲取返回結(jié)果及通過跨進(jìn)程通信來交互等功能。ContentProvider存儲組件內(nèi)容提供者相當(dāng)于一個提供數(shù)據(jù)的接口,主要用于對外共享數(shù)據(jù),也就是通過內(nèi)容提供者將應(yīng)用中的數(shù)據(jù)共享給其他應(yīng)用訪問。當(dāng)兩個應(yīng)用之間需要共享數(shù)據(jù)時(shí),內(nèi)容提供者將會按標(biāo)準(zhǔn)開放一個接口,使應(yīng)用可以獲取到數(shù)據(jù)。數(shù)據(jù)可以存儲于文件系統(tǒng)、SQLite數(shù)據(jù)庫或其他方式。Android中提供了一些主要數(shù)據(jù)類型的ContentProvider,比如音頻、視頻、圖片和私人通訊錄等,并且在獲取適當(dāng)?shù)淖x取權(quán)限后可以查詢它所包含的數(shù)據(jù)。IntentReceiverAcivity之間進(jìn)行切換需要調(diào)用Android專有類Intent。它用來描述程序應(yīng)用想要做什么。Intent數(shù)據(jù)結(jié)構(gòu)最重要的兩個組成部分是動作和動作對應(yīng)的數(shù)據(jù)。典型的動有:Main、View、Pick、Edit等,而動作對應(yīng)的數(shù)據(jù)則以Uri的形式進(jìn)行表示。與之相關(guān)的是IntentFilter這個類,它描述一個活動對應(yīng)操作的Intent。當(dāng)Activity調(diào)用startActivity(IntentmyIntent)方法時(shí),執(zhí)行程序?qū)腎ntentFilter中進(jìn)行查找,從而找到匹配的Intent對應(yīng)的Activity。3.2開發(fā)工具在進(jìn)行安卓開發(fā)之前,首先要搭建一個對應(yīng)的開發(fā)環(huán)境。由于安卓是基于Java開發(fā)環(huán)境的,所以我們要搭建一個Java運(yùn)行環(huán)境,再安裝編譯軟件。系統(tǒng)版本:Window8.1(64位)JavaSDK版本:jdk-7u45-window-x64(同系統(tǒng)版本一致為64位)AndroidStudio版本:android-studio-bundle-135.1740770-windows3.2.1安卓開發(fā)環(huán)境1.下載JDK1.7;安裝JDK1.7,JDK默認(rèn)安裝成功后,會在系統(tǒng)目錄下出現(xiàn)兩個文件夾,一個代表jdk,一個代表jre。JDK的全稱是JavaSEDevelopmentKit,也就是Java開發(fā)工具箱。SE表示標(biāo)準(zhǔn)版。JDK是Java的核心,包含了Java的運(yùn)行環(huán)境(JavaRuntimeEnvironment),一堆Java工具和給開發(fā)者開發(fā)應(yīng)用程序時(shí)調(diào)用的Java類庫。JDK包含的基本工具主要有:(1)javac:Java編譯器,將源代碼轉(zhuǎn)成字節(jié)碼;(2)jar:打包工具,將相關(guān)的類文件打包成一個文件;(3)javadoc:文檔生成器,從源碼注釋中提取文檔;(4)java:運(yùn)行編譯后的java程序。2.為了配置JDK的系統(tǒng)變量環(huán)境,我們需要設(shè)置兩個系統(tǒng)變量,分別是JAVA_HOME,Path。下面是這兩個變量的設(shè)置。就此,Java環(huán)境就搭建好了,可以進(jìn)行編譯軟件的安裝。3.2.2安卓開發(fā)編譯器AndroidStudio是官方提供的專門針對android開發(fā)者的開發(fā)環(huán)境,它是基于IntelliJIDEA的。AndroidStudio有5個主要的特征:(1)基于gradle的項(xiàng)目構(gòu)建系統(tǒng),這讓我們在構(gòu)建安卓項(xiàng)目的時(shí)候更加靈活;(2)可以通過變量配置來生成多個版本的apk文件;(3)擁有大量的代碼模板可以快速地幫我們構(gòu)建安卓項(xiàng)目;(4)可進(jìn)行拖拽的ui編輯器;(5)內(nèi)置linktools代碼優(yōu)化工具,可以捕捉性能,可用性,版本兼容等問題。下載AndroidStudio。下載完后按順序安裝軟件。AndroidStudio是集成了AndroidSDK的,所以在安裝的時(shí)候記得勾選上AndroidSDK。SDK是軟件開發(fā)工具包,被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合,是Android專屬的軟件開發(fā)工具包。每發(fā)布一個安卓系統(tǒng)版本,Google都會提供一個sdkplatformpackage供開發(fā)者使用。4安卓手機(jī)間的通信技術(shù)要實(shí)現(xiàn)手機(jī)間的通信,其中一部手機(jī)需要作為服務(wù)器端,一部作為客戶端連接服務(wù)端。Android與服務(wù)器的通信方式主要有兩種,一是Http通信,一是Socket通信。兩者的最大差異在于,http連接使用的是“請求—響應(yīng)方式”,即在請求時(shí)建立連接通道,當(dāng)客戶端向服務(wù)器發(fā)送請求后,服務(wù)器端才能向客戶端返回?cái)?shù)據(jù)。而Socket通信則是在雙方建立起連接后就可以直接進(jìn)行數(shù)據(jù)的傳輸,在連接時(shí)可實(shí)現(xiàn)信息的主動推送,而不需要每次由客戶端想服務(wù)器發(fā)送請求。Socket又稱套接字,在程序內(nèi)部提供了與外界通信的端口,即端口通信。通過建立socket連接,可為通信雙方的數(shù)據(jù)傳輸傳提供通道。socket的主要特點(diǎn)有數(shù)據(jù)丟失率低,使用簡單且易于移植。4.1Socket基本通信模型Socket是一種抽象層,應(yīng)用程序通過它來發(fā)送和接收數(shù)據(jù),使用Socket可以將應(yīng)用程序添加到網(wǎng)絡(luò)中,與處于同一網(wǎng)絡(luò)中的其他應(yīng)用程序進(jìn)行通信。其提供了程序內(nèi)部與外界通信的端口并為通信雙方的提供了數(shù)據(jù)傳輸通道。由于,本設(shè)計(jì)基于UDP協(xié)議設(shè)計(jì),所以主要講的是UDP協(xié)議。Socket基本通信模TCP通信模型UDP通信模型4.2Socket在安卓的應(yīng)用Socket即套接字,是一個對通信協(xié)議進(jìn)行封裝的編程調(diào)用接口(API)。通過Socket,我們才能在Andorid平臺上通過各種協(xié)議進(jìn)行開發(fā)。Socket不是一種協(xié)議,而是一個編程調(diào)用接口(API),屬于傳輸層(主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸)基于UDP協(xié)議的Socket:服務(wù)器端首先創(chuàng)建一個DatagramSocket對象,并且指點(diǎn)監(jiān)聽的端口。接下來創(chuàng)建一個空的DatagramSocket對象用于接收數(shù)據(jù)(bytedata[]=newbyte[1024;]DatagramSocketpacket=newDatagramSocket(data,data.length)),使用DatagramSocket的receive方法接收客戶端發(fā)送的數(shù)據(jù),receive()與serversocket的accepet()類似,在沒有數(shù)據(jù)進(jìn)行接收的處于堵塞狀態(tài)??蛻舳艘矂?chuàng)建個DatagramSocket對象,并且指點(diǎn)監(jiān)聽的端口。接下來創(chuàng)建一個InetAddress對象,這個對象類似與一個網(wǎng)絡(luò)的發(fā)送地址(InetAddressserveraddress=InetAddress.getByName("20")).定義要發(fā)送的一個字符串,創(chuàng)建一個DatagramPacket對象,并制定要講這個數(shù)據(jù)報(bào)包發(fā)送到網(wǎng)絡(luò)的那個地址以及端口號,最后使用DatagramSocket的對象的send()發(fā)送數(shù)據(jù)。(Stringstr="hello";bytedata[]=str.getByte();DatagramPacketpacket=newDatagramPacket(data,data.length,serveraddress,4567);socket.send(packet);)android實(shí)現(xiàn)socket簡單通信(1)添加權(quán)限<!--允許應(yīng)用程序改變網(wǎng)絡(luò)狀態(tài)--><uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"/><!--允許應(yīng)用程序改變WIFI連接狀態(tài)--><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/><!--允許應(yīng)用程序訪問有關(guān)的網(wǎng)絡(luò)信息--><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><!--允許應(yīng)用程序訪問WIFI網(wǎng)卡的網(wǎng)絡(luò)信息--><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><!--允許應(yīng)用程序完全使用網(wǎng)絡(luò)--><uses-permissionandroid:name="android.permission.INTERNET"/>客戶端發(fā)送數(shù)實(shí)現(xiàn):客戶端接收服務(wù)器返回的數(shù)據(jù):服務(wù)器端接受客戶端實(shí)現(xiàn):publicvoidServerReceviedByUdp(){//創(chuàng)建一個DatagramSocket對象,并指定監(jiān)聽端口。(UDP使用DatagramSocket)DatagramSocketsocket;try{socket=newDatagramSocket(10025);//創(chuàng)建一個byte類型的數(shù)組,用于存放接收到得數(shù)據(jù)bytedata[]=newbyte[4*1024];//創(chuàng)建一個DatagramPacket對象,并指定DatagramPacket對象的大小DatagramPacketpacket=newDatagramPacket(data,data.length);//讀取接收到得數(shù)據(jù)socket.receive(packet);//把客戶端發(fā)送的數(shù)據(jù)轉(zhuǎn)換為字符串。//使用三個參數(shù)的String方法。參數(shù)一:數(shù)據(jù)包參數(shù)二:起始位置參數(shù)三:數(shù)據(jù)包長Stringresult=newString(packet.getData(),packet.getOffset(),packet.getLength());}catch(SocketExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}5編碼實(shí)現(xiàn)本設(shè)計(jì)旨在實(shí)現(xiàn)手機(jī)之間的端對端文件無線傳輸,即把手機(jī)中的文件從一個安卓應(yīng)用端傳送到另一個安卓應(yīng)用端,從而進(jìn)行傳輸文件的兩部手機(jī)都要安裝應(yīng)用。利用WiFi進(jìn)行端對端傳輸,兩部手機(jī)必須進(jìn)行配對(藍(lán)牙也需配對,但WiFi的速率是藍(lán)牙的20倍左右)。如此,在設(shè)計(jì)軟件時(shí)就要考慮到,一部手機(jī)要開啟手機(jī)的WiFi熱點(diǎn),搭建無線局域網(wǎng),作為服務(wù)器端等待客戶端的連接,并等待客戶端發(fā)出傳輸文件請求。本設(shè)計(jì)通過自定義協(xié)議的Socket的通信來實(shí)現(xiàn),自定義的協(xié)議包括header+body的自定義協(xié)議,header部分包括了文件的信息(長度,大小,文件路徑,縮略圖),body部分就是文件。軟件文件傳輸流程圖5.1熱點(diǎn)開啟兩部安卓手機(jī)要通過WiFi進(jìn)行無線短距文件傳輸,必須在同一個局域網(wǎng)的環(huán)境下。在本設(shè)計(jì)中,接收方設(shè)備會自動開啟熱點(diǎn),在發(fā)送方設(shè)備連接到接收方開啟的熱點(diǎn)后,這樣文件發(fā)送方和文件接收方就在一個局域網(wǎng)里面,我們才可以進(jìn)行Socket通信,發(fā)送方便可以向接收方傳輸文件。在本設(shè)計(jì)中,熱點(diǎn)和WiFi的相關(guān)操作都是根據(jù)WifiManager來操作的。在使用有關(guān)的功能時(shí),必須在AndroidManifest.xml清單文件里面聲明權(quán)限:<uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"/><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>文件接收設(shè)備在按下我要接收的按鍵后,接收端會自動打開熱點(diǎn),并且進(jìn)入接收等待界面,有關(guān)功能實(shí)現(xiàn)代碼如下(對安卓系統(tǒng)熱點(diǎn)的調(diào)用和WiFi的操作分別封裝在ApMgr和wifiMgr兩個類中):其中WifiAPBroadcastReceiver是熱點(diǎn)的一個廣播類,ApMgr.ConfigApState()是在接收方自動開啟熱點(diǎn)時(shí),給熱點(diǎn)配置指定名稱,這里用設(shè)備的相關(guān)型號作為熱點(diǎn)的名稱,熱點(diǎn)不進(jìn)行加密。接收方在接收完文件后會關(guān)閉熱點(diǎn),并進(jìn)入初始界面。5.2文件掃描在發(fā)送端設(shè)備點(diǎn)擊我要發(fā)送的按鍵后,發(fā)送端就會進(jìn)入文件掃面列表,以下即為文件掃描列表功能實(shí)現(xiàn)的代碼:這里掃描的FileInfo對象只是掃描了文件路徑FilePath,還有文件的大小size。FileInfo的其他屬性到文件傳輸?shù)臅r(shí)候再二次獲取,獲取FileInfo的其他屬性都在FileUtils這個工具類里面了。5.4熱點(diǎn)掃描和連接發(fā)送端設(shè)備點(diǎn)擊我要發(fā)送按鍵后,手機(jī)進(jìn)入文件掃描列表界面,并且自動掃描周圍的熱點(diǎn)信號并自動連接(用戶也可以進(jìn)入手機(jī)WiFi手動進(jìn)行連接),相關(guān)代碼如下:在代碼中ListUtils.filterWithNoPassword()實(shí)現(xiàn)的是將發(fā)送端設(shè)備掃描到的WiFi信號結(jié)果進(jìn)行過濾,即去掉有加密的熱點(diǎn)信號。代碼中的lv_result.setOnItemClickListener()實(shí)現(xiàn)的功能是發(fā)送端設(shè)備連接到指定的熱點(diǎn),與接收端形成一個局域網(wǎng),完成安卓無線文件傳輸?shù)那疤釛l件。5.5傳輸文件傳輸模塊的實(shí)現(xiàn)主要是由Transferable,BaseTransfer,FileSender,FileReceiver四個類完成。實(shí)現(xiàn)文件傳輸時(shí)文件縮略圖的顯示,名稱的顯示,類型的獲取,大小的顯示,已傳輸?shù)拇笮〉裙δ?。Transferable是接口,BaseTransfer,FileSender,FileReceiver是類。對于文件發(fā)送端設(shè)備,每發(fā)送一個文件就會對應(yīng)一個FileSender,而對于文件接收端設(shè)備,每接受一個文件就對應(yīng)一個FileReceiver。FileSender、FileReceiver繼承自抽象類BaseTransfer。四個類的關(guān)系圖6功能演示與測試1.結(jié)論本論文結(jié)合智能手機(jī)用戶近年來用移動流量觀看視頻的頻率越來越高,能夠隨時(shí)隨地觀看網(wǎng)絡(luò)視頻已經(jīng)成為手機(jī)或平板用戶的普遍訴求的情況下,提出利用安卓手機(jī)的短距無線通信技術(shù),讓用戶能夠在不消耗移動流量的情況下相互傳輸視頻等文件。本設(shè)計(jì)通過對安卓手機(jī)藍(lán)牙、WiFi、NFC三種無線短距通信技術(shù)的特點(diǎn)的分析和研究,重點(diǎn)比較三種技術(shù)在傳輸速率、傳輸有效范圍、能耗三個方面的參數(shù),選擇最適合的無線短距傳輸方案。最后,分析得出通過WiFi傳輸是最適合的方案,它有著較大的傳輸范圍、不高的能耗,最關(guān)鍵的是它的傳輸速率遠(yuǎn)遠(yuǎn)大于藍(lán)牙和NFC,它更能勝任傳輸幾十Mb甚至是上百M(fèi)b的視頻文件。用戶在安裝APP的情況下,可以在移動網(wǎng)絡(luò)信號不穩(wěn)定、干擾較強(qiáng)的環(huán)境下較為快速地傳輸文件。本設(shè)計(jì)已經(jīng)可以通過手機(jī)WiFi熱點(diǎn)傳輸文件,但有一些功能還不夠完善,比如搜索文件的速度不夠快、手機(jī)連接熱點(diǎn)構(gòu)建傳輸環(huán)境的速度不夠快,這些都需要通過軟件代碼的改進(jìn)來進(jìn)一步優(yōu)化。本設(shè)計(jì)可以讓安裝了該APP的安卓用戶隨時(shí)隨地的通過手機(jī)短距無線通信技術(shù)傳輸手機(jī)中的文件,讓用戶節(jié)省了重復(fù)觀看在線視頻所使用的移動流量。參考文獻(xiàn)LeA,KellerL,SeferogluH,etal.MicroCast:CooperativeVideoStreamingUsingCellularandLocalConnections[J].IEEE/ACMTransactionsonNetworking,2016,24(5):2983-2999.SirisVA,DimopoulosD.Multi-sourcemobilevideostreamingwithproactivecachingandD2Dcommunication[C]//WorldofWireless,MobileandMultimediaNetworks.IEEE,2015:

溫馨提示

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

評論

0/150

提交評論