2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本科生畢業(yè)論文(設(shè)計(jì))</p><p>  題 目: 智能家居手機(jī)APP </p><p>  學(xué)生姓名: 陳 漢 榮 </p><p>  學(xué) 號(hào): 201317020101 </p><p>  專業(yè)班級(jí): 信管13101班 <

2、;/p><p>  指導(dǎo)教師: 丁 德 紅 </p><p>  完成時(shí)間:2017年 5月</p><p><b>  摘要</b></p><p>  目前國(guó)內(nèi)市場(chǎng)Android手機(jī)占有率居高不下,智能家居的話題也是隨著科技的發(fā)展不斷的被人提起,“物聯(lián)網(wǎng)+”這個(gè)概念更是成為如今的大熱門。

3、基于此概念下開發(fā)了這款智能家居APP。智能家居APP是利用eclipse作為開發(fā)工具的一款基于Android手機(jī)平臺(tái)開發(fā)的應(yīng)用軟件,該APP主要功能是利用APP發(fā)送Json格式數(shù)據(jù)到服務(wù)器,由服務(wù)器將數(shù)據(jù)下發(fā)至智能網(wǎng)關(guān),該智能網(wǎng)關(guān)是以STM32開發(fā)而成的,當(dāng)數(shù)據(jù)下發(fā)至網(wǎng)關(guān)后再由網(wǎng)關(guān)對(duì)數(shù)據(jù)進(jìn)行各樣的處理,將接收信息轉(zhuǎn)換為各項(xiàng)指令從而進(jìn)行對(duì)各種家居的控制。目前主要實(shí)現(xiàn)功能有燈光,開關(guān),門碰,煙霧報(bào)警,燃?xì)鈭?bào)警,人體移動(dòng),安防監(jiān)控的智能化操作

4、。這些過程都是自動(dòng)實(shí)現(xiàn),而用戶只需要在手機(jī)上輕松的操作便能夠?qū)崿F(xiàn)自己想要的各項(xiàng)功能,由此實(shí)現(xiàn)家居智能化。</p><p>  關(guān)鍵詞:物聯(lián)網(wǎng)+,智能家居APP,Android手機(jī)平臺(tái),STM32,智能網(wǎng)關(guān)</p><p><b>  Abstract</b></p><p>  At present, the occupancy of Andr

5、oid mobile phones still takes up the most share in the domestic market, while smart home is gradually becoming a heated topic that is often brought forward by people with the continuous development of science and technol

6、ogy. And the concept of “Internet of things +” is becoming apopular topic as well. On the basis of this concept, the smart home APP is developed. The smart home APP is a application software that adopts eclipse as the de

7、velopment tool and based on</p><p>  Key words: Internet of Things+, Smart Home APP, Android Mobile Platform, STM32, Intelligent Gatewa</p><p><b>  引言</b></p><p>  隨著信息技

8、術(shù)的不斷發(fā)展,電子信息產(chǎn)品不斷的更新?lián)Q代,物聯(lián)網(wǎng)的概念更是不斷被人提起,智能家居也成為了科技變革的一大課題,智能家居是以住宅為平臺(tái),利用安全防范技術(shù)、綜合布線技術(shù)、自動(dòng)控制技術(shù)、音視頻技術(shù)、網(wǎng)絡(luò)通信技術(shù)將家居生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng),提升家居便利性、藝術(shù)性、安全性、舒適性,實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境。</p><p>  作為家庭信息化的實(shí)現(xiàn)方式,智能家居已成為社會(huì)發(fā)展的重要組成

9、部分,因物聯(lián)網(wǎng)巨大的應(yīng)用前景,將是智能家居產(chǎn)業(yè)發(fā)展過程中一個(gè)的突破口,對(duì)智能家居產(chǎn)業(yè)的發(fā)展具有重大意義。</p><p><b>  第一章 緒 論</b></p><p>  1.1智能家居開發(fā)背景及現(xiàn)狀</p><p>  1.1.1 智能家居開發(fā)的背景</p><p>  隨著社會(huì)進(jìn)步,人們物質(zhì)和精神生活質(zhì)量的全面

10、提升,人們所追求的一種生活基調(diào)將是安逸和休閑,將一切繁雜的操作自動(dòng)化起來,變成一種智能,便捷的操作,這成為了這個(gè)時(shí)代的需求,而智能家居恰好迎合,這其中最大的變量或者說砝碼便是智能化了,滿足了這個(gè)需求,如今家居的功能操作越來越集中于智能化和環(huán)保及安全性能。智能家居可以提供全方位的信息交互,優(yōu)化人們的生活方式,可以幫助人們?cè)黾由畎踩?,有效地安排生活時(shí)間。</p><p>  1.1.2 智能家居開發(fā)的現(xiàn)狀<

11、/p><p>  雖然智能家居在各地被炒得十分火熱,房地產(chǎn)開發(fā)商和消費(fèi)者對(duì)它的了解還沒有達(dá)到一定的深度,但是很多情況下都是在炒一個(gè)概念,甚至一些長(zhǎng)期從事智能化設(shè)計(jì)和工程的企業(yè)主管,大力提倡智能化家居、建筑智能化的專家學(xué)者,他們的家中大部分也都沒有標(biāo)準(zhǔn)意義上的智能家居。</p><p>  智能化家居在中國(guó)并沒有得到良好的發(fā)展和推廣。我國(guó)的智能家居相對(duì)于國(guó)外起步較晚,尚未形成一定的國(guó)家標(biāo)準(zhǔn),主要

12、采用國(guó)外的技術(shù)和產(chǎn)品。當(dāng)然也陸續(xù)出現(xiàn)了我國(guó)自主開發(fā)的代表性智能家居系統(tǒng),如合肥工業(yè)大學(xué)的“智能家居與家居服務(wù)器”等產(chǎn)品、海爾的“e家庭”、清華同方的e-Home數(shù)字家園,這些都是科研單位和各大企業(yè)從不同立場(chǎng)和角度理解智能家居的結(jié)果。一個(gè)具有良好應(yīng)用前景的家居系統(tǒng)必須具有可拓展性和開放性,以及維護(hù)和使用的方便簡(jiǎn)單。</p><p>  智能家居對(duì)我國(guó)來說還是新鮮事物,目前正處于初級(jí)階段,有關(guān)的系統(tǒng)理論還在不斷發(fā)展、

13、完善。隨著智能家居的新產(chǎn)品、新技術(shù)日新月異地出現(xiàn),對(duì)它的認(rèn)識(shí)也將不斷地提高和深入。</p><p>  1.2智能家居現(xiàn)存在的問題及對(duì)策</p><p>  1.2.1 智能家居存在的問題</p><p> ?。?)標(biāo)準(zhǔn)不統(tǒng)一:適度競(jìng)爭(zhēng)可以促進(jìn)技術(shù)的進(jìn)步,但過多的競(jìng)爭(zhēng)就會(huì)造成資源的浪費(fèi),短期的利益的驅(qū)使也可能會(huì)使技術(shù)和市場(chǎng)引向歧途,因此推動(dòng)各個(gè)層面標(biāo)準(zhǔn),技術(shù),產(chǎn)品

14、的融合,規(guī)范是目前智能家居面臨的問題之一。 </p><p> ?。?)技術(shù)專業(yè)化程度高:智能家居產(chǎn)品結(jié)合多門技術(shù)需要專業(yè)人員進(jìn)行安裝,調(diào)試和使用培訓(xùn),使得用戶在使用時(shí)需要進(jìn)行復(fù)雜的操作。 </p><p>  (3)成本耗費(fèi)高:智能家居涉及到計(jì)算機(jī)、通信、自動(dòng)化、電子等多個(gè)學(xué)科領(lǐng)域,沒有一個(gè)企業(yè)能夠以一己之力畢其全功。目前,國(guó)內(nèi)與家庭自動(dòng)化相關(guān)的產(chǎn)品較多,但智能化水平

15、偏低,其產(chǎn)品和服務(wù)僅僅作為人工的一種補(bǔ)充,而不是改變生活方式的主要力量。 </p><p>  (4)產(chǎn)品不夠傻瓜:真正的智能家居應(yīng)該是一種自然交互,整合的和基于用戶習(xí)慣的控制方式。用戶可以通過說話、短信或者單獨(dú)的觸摸控制來實(shí)現(xiàn)與房屋的交互,即操作步驟不需要太過繁雜,用戶只需要通過發(fā)出簡(jiǎn)單命令,就能達(dá)到想要的結(jié)果。</p><p>  1.2.2 智能家居的對(duì)策和措施</p

16、><p>  智能家居的設(shè)計(jì)原則應(yīng)該從以下幾個(gè)方面考慮: </p><p> ?。?)使用便利,整合度高:無論何時(shí)何地用戶都能掌握家庭動(dòng)態(tài),結(jié)合互聯(lián)網(wǎng)來實(shí)現(xiàn)對(duì)家用電器和其他設(shè)備的控制,多功能集合,通過身邊的PC、手機(jī)等設(shè)備,家用電器接到指令后進(jìn)行相應(yīng)的動(dòng)作。 </p><p> ?。?)可靠性高:智能家居能夠隨時(shí)接收信號(hào),24小時(shí)工作,并能保證相應(yīng)設(shè)

17、備可靠動(dòng)作,在停電或故障時(shí)也能夠做出相應(yīng)的應(yīng)急處理,設(shè)置可靠地報(bào)警系統(tǒng)第一時(shí)間向用戶傳遞信息。 </p><p> ?。?)標(biāo)準(zhǔn)統(tǒng)一化:智能家居雖然涉及多種技術(shù),但是某些技術(shù)在國(guó)際上都有標(biāo)準(zhǔn)協(xié)議,例如射頻技術(shù)最常用的標(biāo)準(zhǔn)有:ISO14443A/B/C、ISO15693、13.56M,傳輸上常采用TCP/IP協(xié)議,這將使不同產(chǎn)商之間的系統(tǒng)可以兼容與互聯(lián)。 </p><p>

18、;  (4)價(jià)格逐漸低廉化:隨著微型硬件設(shè)備成本的不斷下降及通信技術(shù)的發(fā)展,用戶可在原有的有/無線網(wǎng)絡(luò)上進(jìn)行擴(kuò)展。 </p><p>  (5)上手容易,維護(hù)等操作簡(jiǎn)單:作為家庭控制的核心,整個(gè)系統(tǒng)將可以控制整個(gè)家里的任意各種設(shè)施,所以操作要簡(jiǎn)單容易,出現(xiàn)問題的時(shí)候要有很好的可以解決方案,過于繁瑣復(fù)雜的操作都講導(dǎo)致整個(gè)智能家居系統(tǒng)的可使用性。</p><p><b> 

19、 1.3 研究工作</b></p><p>  本文研究了Android SDK開發(fā)環(huán)境以及此環(huán)境下的用戶界面組件、SQLite數(shù)據(jù)庫(kù)、json解析技術(shù),Share Preferences、Intent Receive、Service等手機(jī)軟件開發(fā)相關(guān)技術(shù)。在本軟件中,首先運(yùn)用Android的用戶界面組件構(gòu)建軟件的界面,其次運(yùn)用Android內(nèi)嵌的SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)軟

20、件數(shù)據(jù)的存取,為軟件的各功能模塊提供數(shù)據(jù)源,最后運(yùn)用Intent Receive和Service構(gòu)成軟件的控制中心。 </p><p>  智能家居APP的還將涉及到對(duì)數(shù)據(jù)信息存儲(chǔ)改寫等操作,本文重點(diǎn)研究了兩種軟件數(shù)據(jù)的存取方式。第一種方式為Android內(nèi)置的SQLite數(shù)據(jù)庫(kù),用于存取大容量的永久性軟件數(shù)據(jù)如一些警報(bào)記錄。 Share Preferences,是一個(gè)輕量級(jí)數(shù)據(jù)存儲(chǔ)

21、,用于暫存軟件的設(shè)置信息如登錄設(shè)備信息等等。</p><p>  智能家居APP是一款綜合性能強(qiáng)大,實(shí)用性強(qiáng)的Android應(yīng)用軟件,用戶可以利用它操控諸多的不同種類的智能家居設(shè)備,針對(duì)著不同的設(shè)備有著不同與之相匹配的方案。功能強(qiáng)悍,是智能家居生活中不可或缺的一部分。這款應(yīng)用軟件將許多操作都智能自動(dòng)化實(shí)現(xiàn),用戶只需要請(qǐng)點(diǎn)界面所需功能便可以輕松達(dá)到自己想要的事,方便了用戶的使用。</p><p&

22、gt;<b>  1.4 論文結(jié)構(gòu)</b></p><p>  論文共分八章,內(nèi)容及章節(jié)安排如下: </p><p>  第一章概述:介紹智能家居系統(tǒng)開發(fā)的研究背景、研究現(xiàn)狀、現(xiàn)存問題及解決方案,本文所研究的主要內(nèi)容和論文的組織結(jié)構(gòu)。</p><p>  第二章系統(tǒng)開發(fā)關(guān)鍵技術(shù)研究:介紹Android平臺(tái)及選擇Android平臺(tái)開發(fā)的

23、優(yōu)勢(shì),以及在開發(fā)過程中所需要使用到的開發(fā)工具,關(guān)鍵技術(shù)。</p><p>  第三章系統(tǒng)需求分析:介紹軟件開發(fā)的各種需求分析如用戶需求,功能需求等。</p><p>  第四章系統(tǒng)總體設(shè)計(jì):介紹軟件的總體功能設(shè)計(jì)。</p><p>  第五章系統(tǒng)詳細(xì)設(shè)計(jì):介紹軟件的各功能的設(shè)計(jì)和具體實(shí)現(xiàn)過程。</p><p>  第六章系統(tǒng)測(cè)試:對(duì)系統(tǒng)功能進(jìn)

24、行測(cè)試。</p><p>  第七章結(jié)論:對(duì)本次開發(fā)及軟件進(jìn)行總結(jié)。</p><p><b>  第八章參考文獻(xiàn)。</b></p><p>  第二章 系統(tǒng)開發(fā)關(guān)鍵技術(shù)的研究</p><p>  2.1 Android操作系統(tǒng)</p><p>  目前,主流的智能終端操作系統(tǒng)有微軟的Windows

25、 Phone,蘋果的iOS和谷歌的Andriod等等。2011年中國(guó)智能手機(jī)市場(chǎng)中Android操作系統(tǒng)取代了諾基亞的Symbian系統(tǒng)成為最大的智能手機(jī)操作系統(tǒng)。</p><p>  Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國(guó)大陸地區(qū)較多人使用“安卓”或“安致”。Android操作

26、系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。2005年8月由Google收購(gòu)注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營(yíng)運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,An

27、droid在全球的市場(chǎng)份額首次超過塞班系統(tǒng),躍居全球第一。 2013年的第四季度,Android平臺(tái)手機(jī)的全球市場(chǎng)份額已經(jīng)達(dá)到78.1%。2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺(tái)。</p><p>  2014第一季度Android平臺(tái)已占所有移動(dòng)廣告流量來源的42.8%,首度超越iOS。但運(yùn)營(yíng)收入不及iOS。</p>&l

28、t;p>  2.2 Android平臺(tái)開發(fā)的優(yōu)勢(shì)</p><p>  利用Andrioid操作系統(tǒng)平臺(tái)進(jìn)行開發(fā)有以下幾個(gè)優(yōu)勢(shì):</p><p><b>  1.開放性</b></p><p>  在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開發(fā)性,開發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者

29、,隨著用戶和應(yīng)用的日益豐富,一個(gè)嶄新的平臺(tái)也將很快走向成熟。</p><p>  開放性對(duì)于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對(duì)于消費(fèi)者來講,最大的受益正是豐富的軟件資源。開放的平臺(tái)也會(huì)帶來更大競(jìng)爭(zhēng),如此一來,消費(fèi)者將可以用更低的價(jià)位購(gòu)得心儀的手機(jī)。</p><p><b>  2.豐富的硬件</b></p><

30、;p>  這一點(diǎn)還是與Android平臺(tái)的開放性相關(guān),由于Android的開放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、甚至軟件的兼容,如同從諾基亞Symbian風(fēng)格手機(jī)一下改用蘋果iPhone,同時(shí)還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。</p><p><b>  3.方便開發(fā)</b&g

31、t;</p><p>  Android平臺(tái)提供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。</p><p>  4.Google應(yīng)用</p><p>  在互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面

32、的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺(tái)手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。</p><p><b>  2.3 開發(fā)工具</b></p><p>  2.3.1 Eclipse介紹</p><p>  本次的APP開發(fā)所用到開發(fā)工具為Eclipse,Eclipse最初是由

33、IBM公司開發(fā)的替代商業(yè)軟件Visual Age for Java的下一代IDE開發(fā)環(huán)境,2001年11月貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營(yíng)利軟件供應(yīng)商聯(lián)盟Eclipse基金會(huì)(Eclipse Foundation)管理。2003年,Eclipse 3.0選擇OSGi服務(wù)平臺(tái)規(guī)范為運(yùn)行時(shí)架構(gòu)。2007年6月,穩(wěn)定版3.3發(fā)布;2008年6月發(fā)布代號(hào)為Ganymede的3.4版;2009年6月發(fā)布代號(hào)為Galileo的3.5版;2010年6月發(fā)

34、布代號(hào)為Helios的3.6版;2011年6月發(fā)布代號(hào)為Indigo的3.7版;2012年6月發(fā)布代號(hào)為Juno的4.2版;2013年6月發(fā)布代號(hào)為Kepler的4.3版;2014年6月發(fā)布代號(hào)為L(zhǎng)una的4.4版;2015年6月項(xiàng)目發(fā)布代號(hào)為Mars的4.5版。</p><p>  Eclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語(yǔ)言開發(fā),通過安裝不同的插件Eclipse可以支持不

35、同的計(jì)算機(jī)語(yǔ)言,比如C++和Python等開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。 </p><p>  Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform

36、、JDT 和PDE。Eclipse項(xiàng)目IBM發(fā)起,圍繞著Eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個(gè)開放源碼項(xiàng)目,它其實(shí)是Visual Age for Java的替代品,其界面跟先前的VisualAge for Java差不多,但由于其開放源碼,任何人都可以免費(fèi)

37、得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來越受人們關(guān)注。隨后還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,Eclipse的目標(biāo)是成為可進(jìn)行任何語(yǔ)言開發(fā)的IDE集成者,使用者只需下載各種語(yǔ)言的插件即可。 </p><p>  開發(fā)Android平臺(tái)所使用的語(yǔ)言正好是Java,在Eclipse中開發(fā)Android APP只需要在其上安裝好ADT(Android Development Tool

38、s)和NDK插件,便可以進(jìn)行Android項(xiàng)目的開發(fā)。</p><p>  2.4 關(guān)鍵技術(shù)介紹</p><p>  2.4.1json解析技術(shù)介紹</p><p>  JSON(JavaScript Object Notation, JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript 規(guī)范的一個(gè)子集,采用完全獨(dú)

39、立于編程語(yǔ)言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。 易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。</p><p>  本次開發(fā)選擇了使用JSON作為數(shù)據(jù)交換格式,主要原因在于,JSON相比于XML,JSON文檔大小更加小,解析方法更加簡(jiǎn)單、讀寫速度更快。</p><p>  Android解析JSON數(shù)據(jù)的方法,主

40、要有兩種:基于事件驅(qū)動(dòng)和基于文檔驅(qū)動(dòng)解析方式</p><p><b>  基于事件驅(qū)動(dòng)</b></p><p>  主流方式:Gson解析和Jackson解析</p><p>  Gson解析介紹 - 簡(jiǎn)介:使用谷歌的開源庫(kù)進(jìn)行解析 - 解析方式:基于事件驅(qū)動(dòng),根據(jù)所需要取的數(shù)據(jù)通過建立一個(gè)對(duì)應(yīng)于JSON數(shù)據(jù)的JavaB

41、ean類就可以通過簡(jiǎn)單的操作解析出所需JSON數(shù)據(jù)</p><p>  步驟1:創(chuàng)建一個(gè)與JSON數(shù)據(jù)對(duì)應(yīng)的JavaBean類(用作存儲(chǔ)需要解析的數(shù)據(jù))GSON解析的關(guān)鍵是重點(diǎn)是要根據(jù)json數(shù)據(jù)里面的結(jié)構(gòu)寫出一個(gè)對(duì)應(yīng)javaBean,</p><p>  步驟2:下載并導(dǎo)入GSON需要的庫(kù)</p><p>  步驟3:用Gson進(jìn)行轉(zhuǎn)換</p>&l

42、t;p>  Jackson解析 - 解析原理:基于事件驅(qū)動(dòng),與GSON相同,先創(chuàng)建一個(gè)對(duì)應(yīng)于JSON數(shù)據(jù)的JavaBean類就可以通過簡(jiǎn)單的操作解析出所需JSON數(shù)據(jù)。但和Gson解析不同的是,GSON可按需解析,即創(chuàng)建的JavaBean類不一定完全涵蓋所要解析的JSON數(shù)據(jù),按需創(chuàng)建屬性,但Jackson解析對(duì)應(yīng)的JavaBean必須把Json數(shù)據(jù)里面的所有key都有所對(duì)應(yīng),即必須把JSON內(nèi)的數(shù)據(jù)所有解析出來,無法

43、按需解析。但Jackson的解析速度和效率都要比GSON高。</p><p>  步驟1:建立對(duì)應(yīng)的javaBean,建立javaBean的對(duì)應(yīng)規(guī)則和GSON一樣</p><p>  步驟2:利用Jackson方法進(jìn)行解析</p><p>  基于文檔驅(qū)動(dòng)解析方式</p><p>  主流方式:Android Studio自帶org.json

44、解析</p><p>  解析方式:基于文檔驅(qū)動(dòng),類似于XML的DOM解析方法,先把全部文件讀入到內(nèi)存中,然后遍歷所有數(shù)據(jù),然后根據(jù)需要檢索想要的數(shù)據(jù)。</p><p>  2.4.2 SQLite數(shù)據(jù)庫(kù)介紹</p><p>  每個(gè)應(yīng)用程序都要使用數(shù)據(jù),Android應(yīng)用程序也不例外,Android使用開源的、與操作系統(tǒng)無關(guān)的SQL數(shù)據(jù)庫(kù)--SQLite。SQLi

45、te第一個(gè)Alpha版本誕生于2000年5月,它是一款輕量級(jí)數(shù)據(jù)庫(kù),它的設(shè)計(jì)目標(biāo)是嵌入式的,占用資源非常的低,只需要幾百K的內(nèi)存就夠了。SQLite已經(jīng)被多種軟件和產(chǎn)品使用,Mozilla FireFox就是使用SQLite來存儲(chǔ)配置數(shù)據(jù)的,Android和iPhone都是使用SQLite來存儲(chǔ)數(shù)據(jù)的。</p><p>  SQLite數(shù)據(jù)庫(kù)是D.Richard Hipp用C語(yǔ)言編寫的開源嵌入式數(shù)據(jù)庫(kù),支持的數(shù)據(jù)

46、庫(kù)大小為2TB。它具有如下特征:</p><p><b>  1、輕量級(jí)</b></p><p>  SQLite和C\S模式的數(shù)據(jù)庫(kù)軟件不同,它是進(jìn)程內(nèi)的數(shù)據(jù)庫(kù)引擎,因此不存在數(shù)據(jù)庫(kù)的客戶端和服務(wù)器。使用SQLite一般只需要帶上它的一個(gè)動(dòng)態(tài)庫(kù),就可以享受它的全部功能。而且那個(gè)動(dòng)態(tài)庫(kù)的尺寸也相當(dāng)小。</p><p><b>  2、

47、獨(dú)立性</b></p><p>  SQLite數(shù)據(jù)庫(kù)的核心引擎本身不依賴第三方軟件,使用它也不需要“安裝”,所以在使用的時(shí)候能夠省去不少麻煩。</p><p><b>  3、隔離性</b></p><p>  SQLite數(shù)據(jù)庫(kù)中的所有信息(比如表、視圖、觸發(fā)器)都包含在一個(gè)文件內(nèi),方便管理和維護(hù)。</p><

48、;p><b>  4、跨平臺(tái)</b></p><p>  SQLite數(shù)據(jù)庫(kù)支持大部分操作系統(tǒng),除了我們?cè)陔娔X上使用的操作系統(tǒng)之外,很多手機(jī)操作系統(tǒng)同樣可以運(yùn)行,比如Android、Windows Mobile、Symbian、Palm等。</p><p><b>  5、多語(yǔ)言接口</b></p><p>  SQ

49、Lite數(shù)據(jù)庫(kù)支持很多語(yǔ)言編程接口,比如C\C++、Java、Python、dotNet、Ruby、Perl等,得到更多開發(fā)者的喜愛。</p><p><b>  6、安全性</b></p><p>  SQLite數(shù)據(jù)庫(kù)通過數(shù)據(jù)庫(kù)級(jí)上的獨(dú)占性和共享鎖來實(shí)現(xiàn)獨(dú)立事務(wù)處理。這意味著多個(gè)進(jìn)程可以在同一時(shí)間從同一數(shù)據(jù)庫(kù)讀取數(shù)據(jù),但只有一個(gè)可以寫入數(shù)據(jù)。在某個(gè)進(jìn)程或線程向數(shù)據(jù)

50、庫(kù)執(zhí)行寫操作之前,必須獲得獨(dú)占鎖定。在發(fā)出獨(dú)占鎖定后,其他的讀或?qū)懖僮鲗⒉粫?huì)再發(fā)生。</p><p>  第三章 系統(tǒng)需求分析</p><p><b>  3.1 可行性分析</b></p><p>  如今社會(huì)科技不斷的發(fā)展,智能手機(jī)用戶已經(jīng)不再是少部分人的特權(quán),越來越多人都在使用智能手機(jī),Android智能手機(jī)更是大眾的普遍選擇,而且如今網(wǎng)

51、絡(luò)也是飛速發(fā)展從2G到3G再到如今4G網(wǎng)絡(luò)的普及,就連偏遠(yuǎn)的農(nóng)村也實(shí)現(xiàn)了移動(dòng)網(wǎng)絡(luò)的覆蓋。網(wǎng)絡(luò)速度的增長(zhǎng),智能手機(jī)的普及這使得智能家居得以實(shí)現(xiàn)實(shí)時(shí)控制,移動(dòng)控制的功能設(shè)想。在網(wǎng)絡(luò)和設(shè)備普及度上它是可行的。</p><p>  Android所使用到的開發(fā)語(yǔ)言為Java,Java作為一個(gè)高級(jí)語(yǔ)言本身在別的應(yīng)用領(lǐng)域就很優(yōu)秀,學(xué)習(xí)Java的人也十分多,很Java開發(fā)人員都可以輕松上手開發(fā),且Android作為一個(gè)開放性平

52、臺(tái),提供了許多的軟硬件資源,且很多功能都封裝打包,開發(fā)人員可以只需要按照功能和業(yè)務(wù)邏輯進(jìn)行調(diào)用編寫,這樣極大的加速了開發(fā)進(jìn)度,這樣使得開發(fā)工作變得簡(jiǎn)單而快速。另外Android在數(shù)據(jù)存儲(chǔ)上提供了簡(jiǎn)單的Share Preferences儲(chǔ)存器,讀寫操作十分方便,還引用了SQLite這種輕便級(jí)數(shù)據(jù)庫(kù),為SQLite數(shù)據(jù)庫(kù)提供了DatabaseHelper類,使得開發(fā)人員可以非常方便的使用SQLite數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)管理來說提供了很大

53、的編輯。所以說在開發(fā)技術(shù)上它是可行的。</p><p>  智能家居話題作為“物聯(lián)網(wǎng)+”的代名詞,在最近幾年廣受關(guān)注,各類智能家居產(chǎn)品也層出不窮,人們對(duì)智能家居也充滿了好奇,對(duì)智能家居的需求也日益高漲,因此在市場(chǎng)需求上開發(fā)智能家居APP是可行的。</p><p>  綜合以上幾點(diǎn),我認(rèn)為開發(fā)智能家居APP這個(gè)課題是可行的。</p><p>  3.2 智能家居系統(tǒng)組

54、成</p><p>  目前設(shè)想為以STM32開發(fā)板作為智能網(wǎng)關(guān),對(duì)各個(gè)智能家居終端進(jìn)行交互,移動(dòng)終端(即安卓手機(jī))將作為一個(gè)控制和顯示信息的一個(gè)平臺(tái)工具。整個(gè)系統(tǒng)可以劃分為智能家居控制終端(即STM32開發(fā)而成的智能網(wǎng)關(guān)),智能家居服務(wù)中心,智能家居客戶端三個(gè)部分組成。系統(tǒng)設(shè)想如下圖所示:</p><p>  圖3-1:智能家居系統(tǒng)設(shè)想圖</p><p>  方案

55、設(shè)想為:用戶通過安卓手機(jī)安裝APP,通過使用APP發(fā)送相關(guān)功能指令至服務(wù)器,由服務(wù)器轉(zhuǎn)發(fā)信息至智能網(wǎng)關(guān)處理,智能網(wǎng)關(guān)的信息也經(jīng)由服務(wù)器轉(zhuǎn)發(fā)至APP中,這樣以服務(wù)器為媒介進(jìn)行同步信息,實(shí)現(xiàn)信息的收發(fā)以及同步。</p><p>  本課題的主要內(nèi)容是設(shè)計(jì)實(shí)現(xiàn)移動(dòng)終端的智能家居APP開發(fā),因此,其他組件將不做敘述,僅在描述與APP相關(guān)聯(lián)的部分時(shí)進(jìn)行相關(guān)性說明。</p><p><b>

56、  3.3功能需求分析</b></p><p>  智能家居APP的核心業(yè)務(wù)是隨時(shí)隨地可以遠(yuǎn)程操控家居設(shè)備。很顯然普通的PC滿足不了這一個(gè)需求。為了達(dá)到這個(gè)效果,在過去很難實(shí)現(xiàn),如今隨著網(wǎng)絡(luò)的發(fā)展,3G/4G網(wǎng)絡(luò)的普及,以及WIFI的廣泛使用,移動(dòng)終端成為了提供這個(gè)核心業(yè)務(wù)能力的最佳選擇。目前設(shè)想實(shí)現(xiàn)功能有:</p><p><b>  核心業(yè)務(wù)需求</b>

57、;</p><p> ?。?)遠(yuǎn)程操控多種智能家居設(shè)備,如:燈光,開關(guān),空調(diào)等。</p><p> ?。?)可以接收并處理安防警報(bào)信息,如:門磁,煙霧,燃?xì)獾劝卜涝O(shè)備。</p><p>  (3)管理安防警報(bào)信息,對(duì)信息進(jìn)行記錄保存,可以對(duì)信息進(jìn)行刪除等操作。</p><p> ?。?)實(shí)現(xiàn)可視對(duì)講,能實(shí)時(shí)監(jiān)聽家庭情況。</p>

58、<p><b>  輔助業(yè)務(wù)需求</b></p><p>  (1)提供APP各項(xiàng)功能及數(shù)據(jù)信息的接口,方便管理</p><p> ?。?)提供APP設(shè)置及版本查詢功能。</p><p>  智能家居APP提供這些服務(wù)將會(huì)使得智能生活變得更加的便捷方便,為用戶帶來諸多便利之處,如:</p><p> ?。?)

59、利用移動(dòng)設(shè)備及移動(dòng)網(wǎng)絡(luò)的靈活和便捷,使得用戶可以隨時(shí)隨地遠(yuǎn)程控制家居設(shè)備。</p><p> ?。?)一鍵式傻瓜式的操作,大量的減少用戶的工作量,用戶只需在APP上選擇自己想要的功能更便可以輕松實(shí)現(xiàn)。</p><p>  (1)可視對(duì)講,安防警報(bào)大大的增加了住宅的安全,不僅可以防范安全災(zāi)害,還可以隨時(shí)掌握家庭信息。</p><p> ?。?)通過APP全方位的智能服

60、務(wù),極大的增加了家居生活的舒適度。</p><p>  本文中介紹的APP是智能家居系統(tǒng)的重要組成部分。它是所有智能設(shè)備的指揮工具,一切命令消息都將匯總聚集于此。</p><p>  3.4 性能需求分析</p><p>  在滿足了以上功能后,還需要考慮到其軟件運(yùn)行的性能如何,如是否能夠穩(wěn)定的運(yùn)行,每個(gè)任務(wù)功能響應(yīng)時(shí)間是否過長(zhǎng),數(shù)據(jù)保存是否安全正確等。這些都將影響

61、著一款軟件的用戶體驗(yàn),對(duì)于本次智能家居APP將要達(dá)到以下幾個(gè)性能指標(biāo):</p><p> ?。?)軟件將穩(wěn)定運(yùn)行,給足充足的差錯(cuò)控制,盡可能防止閃退現(xiàn)象的出現(xiàn)。</p><p> ?。?)軟件在平時(shí)運(yùn)行情況下CPU使用率控制在25%以下。</p><p> ?。?)軟件在點(diǎn)擊功能后,在2秒內(nèi)對(duì)用戶做出響應(yīng)。</p><p> ?。?)在跳轉(zhuǎn)頁(yè)

62、面,退出APP時(shí)都及時(shí)釋放不必要的內(nèi)存,防止內(nèi)存溢出,給系統(tǒng)造成負(fù)擔(dān),提高運(yùn)行效率。</p><p> ?。?)保證后臺(tái)服務(wù)在退出APP后仍然能夠正常執(zhí)行。</p><p>  (6)合理處理數(shù)據(jù)的存儲(chǔ),用不同的存儲(chǔ)數(shù)據(jù)方式去存儲(chǔ)不同的數(shù)據(jù)。</p><p>  3.5 硬件需求分析</p><p>  本文中智能家居APP是基于Androi

63、d API版本19開發(fā)而成,軟件運(yùn)行在Android手機(jī)上,因此對(duì)于Android手機(jī)硬件有部分需求:</p><p>  Android手機(jī)操作系統(tǒng)版本需要在4.1以上</p><p> ?。?)手機(jī)主頻1.5GHz以上,運(yùn)行內(nèi)存(RAM)在2G以上</p><p>  (2)支持WIFI,3G/4G等通信網(wǎng)絡(luò)</p><p> ?。?)手

64、機(jī)ROM容量1G以上</p><p><b>  (4)帶有攝像頭</b></p><p>  以上為本次智能家居APP的基本硬件需求,在這個(gè)基礎(chǔ)上軟件能夠通暢運(yùn)行。以上配置在目前市場(chǎng)上大部分安卓手機(jī)都滿足這個(gè)配置,因此本智能家居APP可以應(yīng)用在大部分機(jī)型上。同時(shí)能夠在不同分辨率下使用。</p><p>  第四章 系統(tǒng)總體設(shè)計(jì)</p&g

65、t;<p>  4.1 系統(tǒng)架構(gòu)分析</p><p>  參考設(shè)計(jì)的需求,本文所設(shè)計(jì)的智能家居APP所采用的是客戶端/服務(wù)器(Client/Server 簡(jiǎn)稱C/S)架構(gòu),服務(wù)器通常采用高性能的PC、工作站或小型機(jī),并采用大型數(shù)據(jù)庫(kù)系統(tǒng),如ORACLE、SYBASE、InfORMix或 SQL Server??蛻舳诵枰惭b專用的客戶端軟件。</p><p>  本次開發(fā)所用到

66、的服務(wù)器為機(jī)智云公司所提供服務(wù)器,其公司有著較為完善的智能家居管理方案,采用云服務(wù)方式方便管理,同時(shí)減少了相應(yīng)的服務(wù)器維護(hù)成本??蛻舳思礊楸疚乃_發(fā)的智能家居APP,上文說過了智能家居系統(tǒng)的組成,可以看出這是一個(gè)很經(jīng)典的C/S架構(gòu)。選擇這種架構(gòu)主要原因有:</p><p>  1.應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕</p><p>  2.數(shù)據(jù)的儲(chǔ)存管理功能較為透明</p><

67、p>  從以上兩點(diǎn),綜合比較別的架構(gòu)來看,C/S架構(gòu)較為適合本次開發(fā)的需求,所以決定使用C/S架構(gòu)作為智能家居系統(tǒng)APP部分的架構(gòu)。</p><p>  4.2 功能模塊設(shè)計(jì)</p><p>  本節(jié)主要介紹該APP的總體功能以及部分執(zhí)行流程,具體如下圖所示:</p><p>  圖4-1:總體設(shè)計(jì)圖</p><p>  4.2.1選擇

68、設(shè)備模塊</p><p>  該模塊提供網(wǎng)關(guān)設(shè)備的選擇,主要將已經(jīng)綁定的網(wǎng)關(guān)顯示出來,并可以選擇網(wǎng)關(guān)設(shè)備啟動(dòng)后臺(tái)服務(wù)及進(jìn)入主界面,同時(shí)可以選擇離線登入方式進(jìn)入主界面。以及相關(guān)界面</p><p>  4.2.2添加網(wǎng)關(guān)/掃碼模塊</p><p>  這兩模塊都是用于添加網(wǎng)關(guān)設(shè)備,一種通過手動(dòng)配置方式,還有一種是用于二維碼掃碼方式進(jìn)行設(shè)備的添加。</p>

69、<p>  4.2.3 后臺(tái)服務(wù)模塊</p><p>  該模塊將提供智能家居中網(wǎng)關(guān)設(shè)備連接操作,網(wǎng)關(guān)設(shè)備數(shù)據(jù)的收發(fā)操作,網(wǎng)關(guān)設(shè)備數(shù)據(jù)處理操作,以及將數(shù)據(jù)發(fā)送到相應(yīng)的功能模塊,從而實(shí)現(xiàn)UI更新。</p><p>  4.2.4攝像頭模塊</p><p>  該模塊將提供智能家居中安防監(jiān)控設(shè)備的各項(xiàng)功能,如實(shí)時(shí)預(yù)覽,截屏,可視對(duì)講等等,用戶可以利用它隨時(shí)

70、掌握家里的情況。以及攝像頭設(shè)備的添加,刪除等操作</p><p><b>  4.2.5網(wǎng)關(guān)模塊</b></p><p>  該模塊是選擇設(shè)備模塊的一個(gè)復(fù)用,主要用于網(wǎng)關(guān)的切換,當(dāng)有多個(gè)網(wǎng)關(guān)時(shí)候可以進(jìn)行切換進(jìn)入到相關(guān)網(wǎng)關(guān),對(duì)相關(guān)網(wǎng)關(guān)所關(guān)聯(lián)設(shè)備進(jìn)行操作。</p><p>  4.2.6燈光/插座/開關(guān)模塊</p><p>

71、  該模塊是用來實(shí)現(xiàn)對(duì)相關(guān)網(wǎng)關(guān)關(guān)聯(lián)的各種智能燈光/插座/開關(guān)的操作,以及相關(guān)設(shè)備的添加,修改,刪除等系列操作。</p><p>  4.2.7智能空調(diào)模塊</p><p>  該模塊是用來實(shí)現(xiàn)對(duì)相關(guān)網(wǎng)關(guān)關(guān)聯(lián)的智能空調(diào)的操作,如設(shè)置溫度,設(shè)置空調(diào)模式等等,以及完成相關(guān)空調(diào)設(shè)備添加,修改,刪除等操作。</p><p>  4.2.8 警報(bào)記錄模塊</p>

72、<p>  該模塊是用來顯示煙霧\燃?xì)鈂門磁\人體移動(dòng)等警報(bào)設(shè)備所接收到的警報(bào)記錄,記錄由系統(tǒng)自動(dòng)生成,記錄了警報(bào)器類別,警報(bào)時(shí)間等等,以及對(duì)記錄的刪除操作。</p><p>  4.2.9 設(shè)置模塊</p><p>  用戶可以自己對(duì)APP部分內(nèi)容進(jìn)行修改自定義,以及查看APP相關(guān)版本等功能。</p><p>  第五章 系統(tǒng)詳細(xì)設(shè)計(jì)</p>

73、<p>  5.1數(shù)據(jù)庫(kù)設(shè)計(jì)以及實(shí)現(xiàn)</p><p>  Android系統(tǒng)自帶有SQLite這一輕量級(jí)數(shù)據(jù)庫(kù)作為本地?cái)?shù)據(jù)庫(kù),為開發(fā)帶來了很大的方便,本次開發(fā)所涉及到數(shù)據(jù)如:警報(bào)記錄,燈光/插座/開關(guān)信息設(shè)備記錄,空調(diào)設(shè)備信息記錄等等將會(huì)以SQLite數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。</p><p>  5.1.1 警報(bào)記錄表</p><p>  該表用以存儲(chǔ)煙霧/燃

74、氣/門磁/人體移動(dòng)相關(guān)的警報(bào)記錄。表名為:alert該表主要字段有:</p><p>  alert表的創(chuàng)建相關(guān)代碼:</p><p>  privatestaticfinal String CREATE_TABLE_ALERT ="create table alert(_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,time TE

75、XT,bindgiz TEXT,userid TEXT,flag INTEGER)"; //alert表創(chuàng)建語(yǔ)句字符串</p><p>  db.execSQL(CREATE_TABLE_ALERT); //調(diào)用SQLiteDatabase中execSQL方法生成alert表</p><p>  5.1.2 燈光/開關(guān)/插座信息記錄表</p>

76、<p>  該表用以存儲(chǔ)燈光/開關(guān)/插座等設(shè)備的相關(guān)信息。表名為:giz該表主要字段有:</p><p>  giz表的創(chuàng)建相關(guān)代碼:</p><p>  private static final String CREATE_TABLE_GIZ ="create table giz(id INTEGER PRIMARY KEY AUTOINCREMENT,name

77、TEXT,address TEXT,bindgiz TEXT,userid TEXT,flag INTEGER)"; //giz表創(chuàng)建語(yǔ)句字符串</p><p>  db.execSQL(CREATE_TABLE_ALERT);//調(diào)用SQLiteDatabase中execSQL方法生成giz表</p><p>  5.1.3 空調(diào)設(shè)備信息記錄表</p>&

78、lt;p>  該表主要用以存儲(chǔ)空調(diào)設(shè)備的相關(guān)信息。表名為:airmes該表主要字段有:</p><p>  airmes表的創(chuàng)建相關(guān)代碼:</p><p>  private static final String CREATE_TABLE_AIRMES="create table airmes(_id INTEGER PRIMARY KEY AUTOINCREMENT,n

79、ame TEXT,brand INTEGER,temperature INTEGER,mode INTEGER,speed INTEGER,direction INTEGER,bindgiz TEXT,userid TEXT,flag INTEGER)";//airmes表創(chuàng)建語(yǔ)句字符串</p><p>  db.execSQL(CREATE_TABLE_AIRMES);//調(diào)用SQLiteDatab

80、ase中execSQL方法生成airmes表</p><p>  5.1.4數(shù)據(jù)庫(kù)相關(guān)操作實(shí)現(xiàn)</p><p>  本次設(shè)計(jì)所涉及的數(shù)據(jù)庫(kù)操作都以集合至DatabaseAdapter類中,涉及操作只需要輕松調(diào)用就可以,以下是對(duì)表涉及的操作的說明以及實(shí)現(xiàn)代碼:</p><p>  1.giz表的增刪改查</p><p>  giz表是用以存儲(chǔ)燈

81、光/開關(guān)/插座等設(shè)備的相關(guān)信息,需要對(duì)這些信息進(jìn)行增加,刪除,修改,單條記錄查詢,所有記錄查詢等等處理操作。以下為各個(gè)操作主要實(shí)現(xiàn)代碼</p><p><b>  1.1增加記錄</b></p><p><b>  1.2 刪除記錄</b></p><p><b>  1.3修改記錄</b></

82、p><p><b>  1.4查詢記錄:</b></p><p>  1.4.1查詢單條記錄</p><p>  查詢所有綁定在線網(wǎng)關(guān)設(shè)備記錄</p><p>  2.alert表的增刪查</p><p>  alert表用以存儲(chǔ)煙霧/燃?xì)?門磁/人體移動(dòng)相關(guān)的警報(bào)記錄,需要對(duì)記錄進(jìn)行增加,刪除,查詢

83、所有記錄等操作,以下為各操作的主要實(shí)現(xiàn)代碼:</p><p><b>  2.1增加記錄</b></p><p><b>  2.2刪除記錄</b></p><p><b>  2.3查詢記錄</b></p><p>  3.airmes表的增刪改查</p>&l

84、t;p>  airmes表是用以存儲(chǔ)空調(diào)設(shè)備的相關(guān)信息,需要對(duì)這些信息進(jìn)行增加,刪除,修改,記錄查詢等等處理操作。以下為各個(gè)操作的主要實(shí)現(xiàn)代碼</p><p><b>  3.1增加記錄</b></p><p><b>  3.2刪除記錄</b></p><p><b>  3.3修改記錄</b>

85、;</p><p><b>  3.4查詢記錄</b></p><p>  5.2選擇設(shè)備模塊設(shè)計(jì)以及實(shí)現(xiàn)</p><p>  選擇設(shè)備模塊是對(duì)網(wǎng)關(guān)的選擇,智能家居圍繞智能網(wǎng)關(guān)來進(jìn)行對(duì)家居操作指令的收發(fā),因此每個(gè)智能家居都應(yīng)對(duì)應(yīng)綁定一臺(tái)網(wǎng)關(guān)設(shè)備,一臺(tái)網(wǎng)關(guān)設(shè)備也應(yīng)該可以控制多臺(tái)網(wǎng)關(guān)設(shè)備。選擇設(shè)備模塊具體功能劃分有:設(shè)備選擇,設(shè)備解綁,設(shè)備名稱修改

86、。以下是各個(gè)功能和UI設(shè)計(jì)等詳細(xì)說明。</p><p>  5.2.1 UI界面布局設(shè)計(jì)</p><p>  圖5-1選擇設(shè)備界面圖5-2 解綁和改名</p><p>  5.2.2 選擇設(shè)備的實(shí)現(xiàn)</p><p>  當(dāng)用戶點(diǎn)擊在線的網(wǎng)關(guān)或者離線登入,就進(jìn)行界面的跳轉(zhuǎn)。具體實(shí)現(xiàn)過程及關(guān)鍵代碼如下:</p><

87、p>  通過Android所帶的Intent來進(jìn)行數(shù)據(jù)的傳遞以及界面的跳轉(zhuǎn)。此處所攜帶的數(shù)據(jù)有網(wǎng)關(guān)設(shè)備的實(shí)體信息,是否離線登入模式,若用戶選擇離線登入則傳遞的網(wǎng)關(guān)信息為空。</p><p>  5.2.3設(shè)備改名的實(shí)現(xiàn)</p><p>  用戶可以對(duì)在線設(shè)備進(jìn)行改名操作,通過自定義名稱可以讓用戶方便的去管理網(wǎng)關(guān)設(shè)備,具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p><p>

88、;<b>  改名操作:</b></p><p><b>  操作后的回調(diào):</b></p><p>  通過自定義類型的Dialog實(shí)現(xiàn)該功能,當(dāng)點(diǎn)擊改名操作時(shí)候?qū)?huì)跳出一個(gè)Dialog,若設(shè)備是已經(jīng)在后臺(tái)連接則不需要額外注冊(cè)監(jiān)聽器,否則需要注冊(cè)個(gè)監(jiān)聽器用以實(shí)現(xiàn)修改名字的回調(diào),Dialog彈出來后可在里面可對(duì)名字進(jìn)行修改,修改后點(diǎn)擊保存即可調(diào)用

89、llSure按鈕事件對(duì)信息進(jìn)行修改并保存,若取消則調(diào)用llNo按鈕事件對(duì)信息不進(jìn)行保存,該功能結(jié)束后若該設(shè)備不是已選擇登入的設(shè)備則需要注銷設(shè)備的監(jiān)聽,防止沖突。</p><p>  5.2.4設(shè)備解綁的實(shí)現(xiàn)</p><p>  用戶可以對(duì)設(shè)備進(jìn)行解綁操作,解綁之后設(shè)備將不在界面上顯示。具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p><p><b>  解綁操作:&l

90、t;/b></p><p><b>  操作后的回調(diào):</b></p><p>  通過GizWifiSDK所提供的unbindDevice接口進(jìn)行對(duì)設(shè)備的解綁操作。操作后將會(huì)對(duì)結(jié)果進(jìn)行回調(diào)。</p><p>  5.3添加網(wǎng)關(guān)/掃碼模塊設(shè)計(jì)以及實(shí)現(xiàn)</p><p>  該模塊主要實(shí)現(xiàn)功能是對(duì)網(wǎng)關(guān)進(jìn)行添加,添加分為

91、手動(dòng)配置添加和掃碼添加兩種方式,該模塊通過選擇設(shè)備模塊界面中的Menu選項(xiàng)中進(jìn)行選擇功能,以下是各個(gè)功能和UI設(shè)計(jì)等詳細(xì)說明.</p><p>  5.3.1 UI界面布局設(shè)計(jì)</p><p>  圖5-3添加設(shè)備界面圖5-4確認(rèn)設(shè)備是否處于帶連接狀態(tài)界面</p><p>  圖5-5 設(shè)備配置界面圖5-6 掃碼添加界面</p>

92、<p>  5.3.2 手動(dòng)添加網(wǎng)關(guān)的實(shí)現(xiàn)</p><p>  用戶可以對(duì)網(wǎng)關(guān)進(jìn)行手動(dòng)添加,手動(dòng)添加又可以分兩個(gè)部分,一個(gè)是對(duì)網(wǎng)關(guān)進(jìn)行wifi模塊配置,使得網(wǎng)關(guān)可以借助wifi連接上服務(wù)器,另一部分則是手機(jī)接收到配置好的信息,將網(wǎng)關(guān)信息保存起來。具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p><p>  選擇“僅添加智能網(wǎng)關(guān)”功能后,跳轉(zhuǎn)界面:</p><p>

93、  配置wifi信息并添加網(wǎng)關(guān):</p><p>  配置添加完成后的回調(diào):</p><p>  手動(dòng)添加不僅僅是在手機(jī)上添加網(wǎng)關(guān)設(shè)備信息,更是為網(wǎng)關(guān)的wifi模塊進(jìn)行配置,使其能夠通過wifi連接服務(wù)器。所以說手動(dòng)配置適用于在網(wǎng)關(guān)初次使用或者更換wifi時(shí)。</p><p>  5.3.3 掃碼添加網(wǎng)關(guān)的實(shí)現(xiàn)</p><p>  掃碼添加設(shè)

94、備的方式是一種快捷添加的方式,通過掃描二維碼的方式來添加網(wǎng)關(guān)設(shè)備的相關(guān)信息。具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p><p>  掃碼結(jié)束后,對(duì)信息進(jìn)行處理:</p><p>  若數(shù)據(jù)符合要求則調(diào)用綁定方法:</p><p><b>  綁定后的回調(diào):</b></p><p>  綁定的數(shù)據(jù)格式有兩種,因此這里有一個(gè)重載函

95、數(shù)startBind;可見里面調(diào)用的綁定設(shè)備方法都是由GizWifiSDK提供,當(dāng)調(diào)用完后會(huì)有個(gè)回調(diào)函數(shù),用以通知用戶網(wǎng)關(guān)信息是否添加完成。</p><p>  5.4后臺(tái)服務(wù)模塊設(shè)計(jì)以及實(shí)現(xiàn)</p><p>  該模塊主要是以后臺(tái)服務(wù)(Server)的方式進(jìn)行對(duì)網(wǎng)關(guān)設(shè)備的連接,同時(shí)還將負(fù)責(zé)各種信息數(shù)據(jù)的傳遞,是大部分UI信息的來源,同時(shí)還負(fù)責(zé)了部分?jǐn)?shù)據(jù)的存儲(chǔ),如各種報(bào)警信息等。服務(wù)是后臺(tái)

96、運(yùn)行的,沒有UI部分,它通過MainActivity來負(fù)責(zé)對(duì)其的啟動(dòng)。以下是該模塊各個(gè)功能詳細(xì)說明.</p><p>  5.4.1 連接設(shè)備的實(shí)現(xiàn)</p><p>  當(dāng)用戶選擇設(shè)備后,進(jìn)入至主界面,同時(shí)將會(huì)啟動(dòng)該服務(wù)進(jìn)行對(duì)設(shè)備的連接,通過廣播(BroadcastReceiver)的方式進(jìn)行數(shù)據(jù)的傳遞,后臺(tái)可以將數(shù)據(jù)分享至任意地方。具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p>&l

97、t;p><b>  啟動(dòng)服務(wù):</b></p><p>  連接設(shè)備,并且注冊(cè)相關(guān)廣播接收者:</p><p><b>  連接設(shè)備后的回調(diào):</b></p><p>  通過服務(wù)的形式對(duì)網(wǎng)關(guān)設(shè)備進(jìn)行連接,使得其不會(huì)受到各個(gè)Activity的限制,可以在后臺(tái)穩(wěn)定的對(duì)設(shè)備進(jìn)行連接,并且穩(wěn)定的處理數(shù)據(jù),這樣才符合當(dāng)初的設(shè)

98、計(jì)思路,設(shè)備可以長(zhǎng)時(shí)間且就算退出APP也能在后臺(tái)保持對(duì)網(wǎng)關(guān)設(shè)備的監(jiān)聽。</p><p>  5.4.2 傳遞數(shù)據(jù)的實(shí)現(xiàn)</p><p>  前文說道以服務(wù)的形式連接設(shè)備,同時(shí)對(duì)設(shè)備實(shí)施監(jiān)聽,對(duì)設(shè)備數(shù)據(jù)進(jìn)行處理,而有很多數(shù)據(jù)還需要傳遞給各個(gè)Activity讓其作出各種反應(yīng),如UI界面的更新等等,這里采用了安卓所提供的BroadcastReceiver組件來實(shí)現(xiàn)數(shù)據(jù)在服務(wù)與各Activity的

99、傳遞。具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p><p>  各個(gè)數(shù)據(jù)點(diǎn)的數(shù)據(jù)傳遞:</p><p><b>  網(wǎng)關(guān)設(shè)備信息傳遞:</b></p><p><b>  硬件版本信息傳遞:</b></p><p>  設(shè)備連接中斷信息傳遞:</p><p>  以上為主要的幾個(gè)信息

100、的傳遞實(shí)現(xiàn)代碼。這些信息通過注冊(cè)不同的receiver,從而被接收,同時(shí)接收后的處理也不一樣,在此不一一敘述。</p><p>  5.4.3 數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)</p><p>  前文有提到警報(bào)信息將會(huì)存儲(chǔ)起來,方便以后會(huì)信息的檢查,且數(shù)據(jù)庫(kù)也封裝了相應(yīng)的方法,因此只需要在此調(diào)用便可以實(shí)現(xiàn)數(shù)據(jù)的存取,這里舉燃?xì)饩瘓?bào)信息來說明:</p><p><b>  

101、獲取數(shù)據(jù)時(shí)間:</b></p><p><b>  對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ):</b></p><p>  其余警報(bào)信息存儲(chǔ)與其類似。這些數(shù)據(jù)都將存儲(chǔ)至數(shù)據(jù)庫(kù)中,為后面接收的警報(bào)記錄模塊功能實(shí)現(xiàn)提供了數(shù)據(jù)源。</p><p>  5.5攝像頭模塊設(shè)計(jì)以及實(shí)現(xiàn)</p><p>  攝像頭模塊通過主界面進(jìn)入,主界面UI如下

102、圖所示:</p><p>  圖5-7主界面UI布局</p><p>  點(diǎn)擊“攝像頭”將會(huì)跳轉(zhuǎn)至攝像頭模塊相關(guān)UI界面,攝像頭模塊功能主要有攝像頭設(shè)備的添加綁定,可視對(duì)講,實(shí)時(shí)播放,截圖,錄像等等,以下是各個(gè)功能和UI設(shè)計(jì)等詳細(xì)說明。</p><p>  5.5.1 UI界面布局設(shè)計(jì)</p><p>  圖5-8攝像頭主界面圖5

103、-9設(shè)備列表界面</p><p>  圖5-10設(shè)備功能界面1 圖5-11設(shè)備功能界面2</p><p>  圖5-12添加設(shè)備界面1圖5-13添加設(shè)備界面2</p><p>  圖5-14添加設(shè)備界面3圖5-15添加設(shè)備界面4</p><p>  5.5.2 添加設(shè)

104、備的實(shí)現(xiàn)</p><p>  不僅僅是網(wǎng)關(guān)設(shè)備需要添加,攝像頭設(shè)備同樣需要添加綁定,設(shè)備綁定原理同網(wǎng)關(guān)設(shè)備,在此不做具體重復(fù)的敘述,下面是部分實(shí)現(xiàn)過程及代碼:</p><p>  前面輸入wifi信息進(jìn)行配置步驟如網(wǎng)關(guān)設(shè)備因此不再敘述,此處只將添加設(shè)備時(shí)調(diào)用SDK代碼進(jìn)行說明:</p><p>  調(diào)用完成后的部分回調(diào)函數(shù):</p><p>

105、  因?yàn)楣δ苡诰W(wǎng)關(guān)設(shè)備類似,所以該部分功能在添加網(wǎng)關(guān)相關(guān)界面也進(jìn)行過整合,這也是前文添加網(wǎng)關(guān)設(shè)備中為何UI界面上設(shè)計(jì)有“僅添加攝像頭設(shè)備”和“同時(shí)添加兩者”的功能按鈕。</p><p>  5.5.3 設(shè)備功能的實(shí)現(xiàn)</p><p>  此處將綜合說明一個(gè)攝像頭設(shè)備所擁有的一些功能,如:實(shí)時(shí)播放,錄像,截圖,實(shí)時(shí)對(duì)講等功能,因?yàn)檫@些功能都是對(duì)SDK相關(guān)接口的調(diào)用,所以不細(xì)分目錄,這些功能的

106、具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p><p><b>  1.實(shí)時(shí)播放功能:</b></p><p><b>  2.停止播放功能:</b></p><p><b>  3.開啟錄像功能:</b></p><p><b>  4.停止錄像功能:</b>&l

107、t;/p><p><b>  5.截圖功能:</b></p><p><b>  6.開啟對(duì)講功能:</b></p><p><b>  7.關(guān)閉對(duì)講功能:</b></p><p><b>  8.刪除設(shè)備功能:</b></p><p>

108、;  以上是攝像頭模塊中單一設(shè)備所設(shè)計(jì)的的功能,這些功能都是對(duì)xmcamera這個(gè)SDK中各個(gè)接口的調(diào)用,根據(jù)不同接口的來實(shí)現(xiàn)不同的功能,同時(shí)每個(gè)接口都提供了回調(diào),能夠得到調(diào)用反饋。</p><p>  5.6網(wǎng)關(guān)模塊設(shè)計(jì)以及實(shí)現(xiàn)</p><p>  網(wǎng)關(guān)模塊其實(shí)是對(duì)選擇設(shè)備模塊的一個(gè)功能復(fù)用,不同的是選擇設(shè)備模塊是在啟動(dòng)界面作為第一UI出現(xiàn),而網(wǎng)關(guān)模塊則主要功能目的是用以切換網(wǎng)關(guān)設(shè)備的,

109、一次是從主界面進(jìn)入,主界面UI在前文有展示,此處不再展示。網(wǎng)關(guān)模塊和選擇設(shè)備模塊是個(gè)復(fù)用的結(jié)合體,所用的UI一致,所實(shí)現(xiàn)功能也一致,因此有關(guān)該部分請(qǐng)參考“選擇設(shè)備模塊設(shè)計(jì)以及實(shí)現(xiàn)”部分,主要代碼區(qū)別為:</p><p>  此處通過ismain這個(gè)boolean型變量來判斷它所實(shí)現(xiàn)的應(yīng)該是網(wǎng)關(guān)模塊還是選擇設(shè)備模塊的跳轉(zhuǎn)。ismain變量是用以斷定其是否來自于MainActivity的跳轉(zhuǎn),若為真則代表來自Main

110、Activity,此時(shí)是網(wǎng)關(guān)模塊的跳轉(zhuǎn)功能,否則代表選擇設(shè)備模塊的跳轉(zhuǎn)。</p><p>  5.7燈光/插座/開關(guān)模塊設(shè)計(jì)以及實(shí)現(xiàn)</p><p>  智能家居自然離不開各種開關(guān),插座以及電燈的控制,該模塊就是為了實(shí)現(xiàn)對(duì)這些設(shè)備的控制,以及對(duì)這些設(shè)備的管理,如:添加設(shè)備,修改設(shè)備信息,刪除設(shè)備等等功能,以下是各個(gè)功能和UI設(shè)計(jì)等詳細(xì)說明.</p><p>  5.

111、7.1 UI界面布局設(shè)計(jì)</p><p>  圖5-16燈光/插座/開關(guān)設(shè)備界面圖5-17添加設(shè)備選擇界面</p><p>  圖5-18刪除/修改選擇界面圖5-19添加開關(guān)設(shè)備界面</p><p>  5.7.2 添加設(shè)備的實(shí)現(xiàn)</p><p>  燈光/插座/開關(guān)等設(shè)備需要用戶對(duì)其進(jìn)行添加方才能出現(xiàn)在設(shè)備列表中,才能對(duì)其

112、進(jìn)行相關(guān)操作,添加設(shè)備功能采取了兩種方式一種是手動(dòng)添加,一種是掃碼添加,兩者數(shù)據(jù)都將會(huì)保存至數(shù)據(jù)庫(kù),具體實(shí)現(xiàn)過程和關(guān)鍵代碼如下:</p><p><b>  1.手動(dòng)添加</b></p><p>  在輸入框中輸入設(shè)備名字以及控制指令代碼點(diǎn)擊確定后數(shù)據(jù)將會(huì)保存至數(shù)據(jù)庫(kù),代碼如下:</p><p><b>  2.掃碼添加</b&

113、gt;</p><p>  掃碼添加功能復(fù)用了添加網(wǎng)關(guān)中的掃碼組件,在掃描完二維碼后將對(duì)信息進(jìn)行處理,符合格式的將會(huì)被保存至數(shù)據(jù)庫(kù),代碼如下:</p><p>  5.7.3 發(fā)送指令的實(shí)現(xiàn)</p><p>  燈光/插座/開關(guān)等設(shè)備所涉及到的指令就是開和關(guān),根據(jù)指令碼的不同可以實(shí)現(xiàn)開關(guān)功能,在設(shè)計(jì)時(shí)候我們只需要添加開的控制指令,然后根據(jù)算法得出相應(yīng)關(guān)的指令,具體實(shí)

溫馨提示

  • 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ù)僅提供信息存儲(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)論