2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(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><b>  深 圳 大 學(xué)</b></p><p><b>  本科畢業(yè)論文</b></p><p><b>  (20 屆)</b></p><p>  基于Android的輪胎壓力監(jiān)控軟件設(shè)計(jì)</p><p>  所在學(xué)院

2、 </p><p>  專業(yè)班級(jí) 電子信息工程 </p><p>  學(xué)生姓名 學(xué)號(hào) </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月

3、 </p><p>  深圳大學(xué)本科畢業(yè)論文(設(shè)計(jì))誠信聲明</p><p>  本人鄭重聲明:所呈交的畢業(yè)論文(設(shè)計(jì)),題目《 基于Android的輪胎壓力監(jiān)控軟件設(shè)計(jì) 》 是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式注明。除此之外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。本人完全意識(shí)到本聲明的法

4、律結(jié)果。</p><p>  畢業(yè)論文(設(shè)計(jì))作者簽名:</p><p>  日期: 年 月 日</p><p><b>  目錄</b></p><p><b>  摘要(關(guān)鍵詞)1</b></p><p><b>  1.緒論2&l

5、t;/b></p><p>  1.1 研究?jī)?nèi)容2</p><p>  1.2 研究意義2</p><p>  1.3 移動(dòng)終端操作系統(tǒng)分類2</p><p>  1.3.1 Symbian2</p><p>  1.3.2 Windows Mobile3</p><p>  1

6、.3.3 Mac OS3</p><p>  1.3.4 Android3</p><p>  1.4 研究現(xiàn)狀和發(fā)展趨勢(shì)4</p><p>  1.4.1 Android的現(xiàn)狀及發(fā)展趨勢(shì)4</p><p>  1.4.2 TPMS的研究現(xiàn)狀及發(fā)展趨勢(shì)4</p><p><b>  2.系統(tǒng)分析5

7、</b></p><p><b>  2.1研究目標(biāo)5</b></p><p><b>  2.2需求分析5</b></p><p><b>  2.3性能分析6</b></p><p>  3.系統(tǒng)開發(fā)環(huán)境及相關(guān)介紹6</p><p&g

8、t;  3.1 Android平臺(tái)架構(gòu)及特性6</p><p>  3.2 Android的程序結(jié)構(gòu)7</p><p>  3.3 Android 開發(fā)環(huán)境介紹8</p><p>  3.4 Android 開發(fā)平臺(tái)搭建8</p><p>  4.程序開發(fā)與設(shè)計(jì)11</p><p>  4.1 文件結(jié)構(gòu)與用途

9、11</p><p>  4.2程序模塊設(shè)計(jì)13</p><p>  4.2.1事件處理13</p><p>  4.2.2 傳感器13</p><p>  4.2.3 藍(lán)牙13</p><p>  4.3系統(tǒng)測(cè)試13</p><p>  4.4 用戶界面設(shè)計(jì)14</p>

10、;<p>  4.4.1 主界面設(shè)計(jì)14</p><p>  4.4.2 功能選擇子界面的設(shè)計(jì)16</p><p><b>  5.總結(jié)19</b></p><p><b>  參考文獻(xiàn)20</b></p><p><b>  致謝21</b></

11、p><p>  Abstract(Key words)22</p><p>  基于Android的輪胎壓力監(jiān)控軟件設(shè)計(jì)</p><p>  【摘要】本論文的主要目的是設(shè)計(jì)一款基于Android的輪胎壓力(TPMS)監(jiān)控軟件。此軟件監(jiān)測(cè)輪胎壓力的情況,傳感器將檢測(cè)到的胎壓情況通過藍(lán)牙發(fā)送到手機(jī)上,使司機(jī)知曉并采取相應(yīng)的措施,從而可有效避免交通事故的發(fā)生。本論文提到了一

12、款當(dāng)下十分熱門的操作系統(tǒng)--Android操作系統(tǒng),它作為現(xiàn)在主流的手機(jī)操作系統(tǒng),是一個(gè)更年輕的、有待開發(fā)的平臺(tái)。該平臺(tái)具有極大的開放性和兼容性,并且本身帶有大量的開源代碼庫,為開發(fā)人員提供了一個(gè)非常便捷的開發(fā)環(huán)境。</p><p>  【關(guān)鍵詞】android ; 輪胎壓力 ; 監(jiān)控 ; TPMS </p><p><b>  1.緒論</b></p>

13、<p><b>  1.1 研究?jī)?nèi)容</b></p><p>  本論文主要針對(duì)研究Android手機(jī)平臺(tái)的應(yīng)用,利用Java語言寫一個(gè)關(guān)于輪胎壓力的可運(yùn)行在Android開發(fā)平臺(tái)上的監(jiān)控軟件,通過傳感器將胎壓情況以藍(lán)牙通信的方式傳到智能手機(jī)上,以供司機(jī)知曉并作出相應(yīng)對(duì)策。在Android系統(tǒng)中所編寫的應(yīng)用程序可以接收數(shù)據(jù)、提取數(shù)據(jù)并顯示在虛擬機(jī)上或Android智能手機(jī)上,通過

14、分析胎壓監(jiān)測(cè)數(shù)據(jù)來確定汽車輪胎的狀態(tài),從而達(dá)到對(duì)胎壓監(jiān)測(cè)的目的。該方案重點(diǎn)研究了Android平臺(tái)的系統(tǒng)架構(gòu)和應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)。本文介紹了Android平臺(tái)的的優(yōu)勢(shì)以及當(dāng)前國內(nèi)外胎壓監(jiān)測(cè)的現(xiàn)狀,針對(duì)國內(nèi)現(xiàn)有胎壓監(jiān)測(cè)技術(shù)的不足提出了基于Android平臺(tái)的胎壓監(jiān)測(cè)系統(tǒng)解決方案,接著對(duì)胎壓監(jiān)測(cè)終端的軟、硬件平臺(tái)進(jìn)行描述,然后介紹了Android開發(fā)平臺(tái)的搭建以及胎壓監(jiān)測(cè)程序的開發(fā),重點(diǎn)介紹了應(yīng)用程序模塊的設(shè)計(jì)流程。最后對(duì)本文進(jìn)行總結(jié)。&

15、lt;/p><p><b>  1.2 研究意義</b></p><p>  眾所周知,在汽車行駛中,汽車輪胎的低氣壓、高氣壓、漏氣、溫度過高等問題都可能造成爆胎,從而引發(fā)嚴(yán)重的交通事故。如果有一款軟件,可以監(jiān)測(cè)輪胎的壓力,那么就可以使司機(jī)知曉此刻汽車輪胎的壓力情況,從而采取相應(yīng)有效的措施,就可以避免交通事故的發(fā)生。本論文正是針對(duì)上述情況設(shè)計(jì)的,本論文的主要目的是設(shè)計(jì)一款

16、基于Android的輪胎壓力的監(jiān)控軟件,此軟件通過監(jiān)測(cè)輪胎壓力的情況,使司機(jī)知曉并采取相應(yīng)的措施,從而可有效的避免交通事故的發(fā)生。本論文提到了一款當(dāng)下十分熱門的操作系統(tǒng)--Android操作系統(tǒng),它作為現(xiàn)在主流的手機(jī)操作系統(tǒng),是一個(gè)更年輕的、有待開發(fā)的平臺(tái)。該平臺(tái)具有極大的開放性和兼容性,并且本身大量使用開源代碼庫,為開發(fā)人員提供了一個(gè)非常便捷的開發(fā)環(huán)境。縱觀Android的發(fā)展?fàn)顩r,我們知道它是近幾年才開始起步的,但相比于Symbia

17、n的日落西山,以及蘋果的封閉、Windows Phone的前途未卜,Android無疑能夠更加有效的代表當(dāng)前行業(yè)發(fā)展的主流趨勢(shì),其獨(dú)特的開放平臺(tái)取代了以往的封閉平臺(tái),這就足以讓參與者均能夠通過自己的努力受益匪淺。這也是我之所以選擇這個(gè)方向做為畢業(yè)設(shè)計(jì)的原因。</p><p>  1.3 移動(dòng)終端操作系統(tǒng)分類</p><p>  如今市面上主流的移動(dòng)終端操作系統(tǒng)有:Symbian、Windo

18、ws Mobile、Mac OS和Android幾大類。首先將分別介紹一下各個(gè)操作系統(tǒng)。</p><p>  1.3.1 Symbian</p><p>  在Android未被使用之前,Symbian作為Nokia的操作系統(tǒng),在整個(gè)智能操作系統(tǒng)控制領(lǐng)域一直保持著最大份額的市場(chǎng)占有率,該操作系統(tǒng)具有內(nèi)存占用少、功耗低等特點(diǎn),是一個(gè)32位的多任務(wù)操作系統(tǒng),當(dāng)然經(jīng)過不斷的發(fā)展現(xiàn)在擁有可以支持藍(lán)

19、牙、GPRS和3G等功能。</p><p>  但是隨著時(shí)間的不斷推移,面對(duì)份額不斷增長(zhǎng)的Android、Mac OS等新生主力軍,Symbian的壓力倍增。2008年12月,塞班公司被諾基亞收購,2010年2月4日,Symbian獲得開放源代碼許可證,逐步開放了其源代碼,顯而易見Symbian的開源與競(jìng)爭(zhēng)對(duì)手的迅速增長(zhǎng)和盟友的紛紛退出有極大的關(guān)系。和天生就開放的基于Linux的Android相比,Symbian

20、經(jīng)過多年的積累反復(fù),系統(tǒng)臃腫且積累了太多的自身語言,給第三方的開發(fā)帶來了諸多不便?,F(xiàn)如今,Android的市場(chǎng)突飛猛進(jìn),很多終端廠商和業(yè)務(wù)開發(fā)商已從事基于開源的Android應(yīng)用開發(fā),Symbian的開源顯然稍微晚了一些。2011年2月諾基亞已經(jīng)和微軟達(dá)成了戰(zhàn)略合作關(guān)系,按照合作的內(nèi)容,微軟Windows Mobile將取代Symbian成為諾基亞智能手機(jī)戰(zhàn)略的核心平臺(tái)。在同年的12月21日,諾基亞官方宣布放棄塞班品牌,并在2014年將

21、徹底終止對(duì)塞班系統(tǒng)的所有支持,這無疑給了Symbian最致命的一擊。</p><p>  1.3.2 Windows Mobile</p><p>  Windows Mobile是所有源代碼全部由微軟自行開發(fā)的嵌入式新型操作系統(tǒng),該操作系統(tǒng)是一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng)。Windows Mobile具有模塊化、結(jié)構(gòu)化和基于Win32應(yīng)用程序接口和與處理器無關(guān)等特點(diǎn)。Windo

22、ws Mobile不僅繼承了傳統(tǒng)的Windows圖形界面,并且在Windows Mobile平臺(tái)上也可以使用Windows編程工具(如Visual Basic、Visual C++等)、使用同樣的函數(shù)、使用同樣的界面風(fēng)格,絕大多數(shù)的應(yīng)用軟件只需簡(jiǎn)單的修改就可以移植到Windows Mobile平臺(tái)上繼續(xù)使用。</p><p>  Windows Mobile是一個(gè)具有搶先式多任務(wù)功能,并具有強(qiáng)大通信能力的嵌入式操

23、作系統(tǒng)。Windows Mobile也是微軟公司專門為移動(dòng)終端和消費(fèi)類電子產(chǎn)品、嵌入式應(yīng)用等非PC領(lǐng)域而全新設(shè)計(jì)的操作系統(tǒng)產(chǎn)品。根據(jù)其應(yīng)用環(huán)境的特點(diǎn),Windows Mobile被設(shè)計(jì)成具有高度模塊化、良好實(shí)時(shí)性、強(qiáng)大通信能力、支持多種CPU的嵌入式操作系統(tǒng)。</p><p>  2011年2月11日,諾基亞與微軟公司宣布,計(jì)劃建立廣泛的戰(zhàn)略合作伙伴關(guān)系,將利用其互補(bǔ)優(yōu)勢(shì)和專長(zhǎng),建立新的全球移動(dòng)生態(tài)系統(tǒng)。微軟Wi

24、ndows Mobile操作系統(tǒng)將成為諾基亞主要的智能手機(jī)平臺(tái)。諾基亞在硬件制造和生產(chǎn)方面有著較強(qiáng)的優(yōu)勢(shì),而微軟在軟件操作系統(tǒng)方面也沉淀頗厚,由于兩家公司將專注于各自的核心能力,該伙伴關(guān)系將為迅速的市場(chǎng)執(zhí)行力創(chuàng)造機(jī)遇,這讓W(xué)indows Mobile在未來的發(fā)展中充滿了期待。</p><p>  1.3.3 Mac OS</p><p>  Mac OS是全球領(lǐng)先的操作系統(tǒng),基于堅(jiān)如磐石的

25、UNIX基礎(chǔ),設(shè)計(jì)簡(jiǎn)單直觀,易于使用又功能強(qiáng)大,讓處處創(chuàng)新的Mac安全易用、高度兼容、出類拔萃。Mac OS使用基礎(chǔ)堅(jiān)實(shí)、久經(jīng)考驗(yàn)的UNIX系統(tǒng)為其提供空前的穩(wěn)定性、超強(qiáng)性能、超炫圖形并支持互聯(lián)網(wǎng)標(biāo)準(zhǔn)。</p><p>  Mac OS使用基于BSD Unix的內(nèi)核,并帶來Unix風(fēng)格的內(nèi)存管理和搶占式多任務(wù)處理,大大改進(jìn)內(nèi)存管理,允許同時(shí)運(yùn)行更多軟件,而且在實(shí)質(zhì)上消除了一個(gè)程序崩潰導(dǎo)致其它程序崩潰的可能性。Ma

26、c OS 用戶體驗(yàn)部分是操作系統(tǒng)的不同組件間的無縫交互。單一的Mac OS系統(tǒng)可以控制不同格式的卷,支持不同的網(wǎng)絡(luò)文件共享協(xié)議,并可運(yùn)行基于完全不同API的應(yīng)用程序。</p><p>  iOS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng)。該操作系統(tǒng)主要是給iPhone、iPod touch以及iPad使用。跟基于的Mac OS操作系統(tǒng)一樣,iOS也是以Darwin為基礎(chǔ)的。iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)

27、層、核心服務(wù)層、媒體層和可輕觸層。隨著iPhone、iPad的熱賣,Mac OS操作系統(tǒng)無疑成為市場(chǎng)的方向標(biāo)。</p><p>  1.3.4 Android</p><p>  Android一詞的本義為“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開

28、放和完整的移動(dòng)軟件。</p><p>  為了推廣Android平臺(tái)技術(shù),Google和幾十個(gè)手機(jī)相關(guān)企業(yè)建立了開放手機(jī)聯(lián)盟(OHA)。聯(lián)盟成員包括摩托羅拉、HTC、SAMSUNG、LG以及中國移動(dòng)在內(nèi)的34家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè),該聯(lián)盟共同開發(fā)基于Android系統(tǒng)的新型業(yè)務(wù),這就保障了Android平臺(tái)應(yīng)用之間的通用性和互聯(lián)性,也使得Android系統(tǒng)在人機(jī)交互體驗(yàn)上獲得了更加杰出的表現(xiàn)。</p&g

29、t;<p>  Android平臺(tái)具有以下優(yōu)勢(shì):</p><p>  開放性,Android平臺(tái)的開放性允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,也使得Android具有豐富的軟件資源,給該平臺(tái)帶來極大地發(fā)展。</p><p>  豐富的硬件選擇,由于Android的開放性,眾多的廠商會(huì)推出功能特色的多種產(chǎn)品。由于Android操

30、作系統(tǒng)具有豐富的硬件選擇性,使得不同硬件功能上的差異和特色,不會(huì)影響到數(shù)據(jù)同步、甚至軟件的兼容。</p><p>  無縫結(jié)合的Google應(yīng)用,Google已經(jīng)從簡(jiǎn)單的搜索領(lǐng)域擴(kuò)展到互聯(lián)網(wǎng)的各個(gè)領(lǐng)域,Google服務(wù)如:地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,Android平臺(tái)將無縫結(jié)合這些優(yōu)秀的Google應(yīng)用。</p><p>  根據(jù)Gartner統(tǒng)計(jì)顯示,在2010

31、年智能手機(jī)操作系統(tǒng)市場(chǎng)中,Android銷售量從679.84萬臺(tái)增至到6722.45萬臺(tái),銷售量增長(zhǎng)了888.8%,市場(chǎng)份額超過RIM和iOS躍居第二位。Symbian以11157.67萬臺(tái)的銷售額占據(jù)智能手機(jī)市場(chǎng)37.6%市場(chǎng)份額位居第一。Mac OS的市場(chǎng)占有率達(dá)到15.7%,Window CE市場(chǎng)占有率達(dá)到4.2%。</p><p>  Android無疑是2010年最為亮眼的智能手機(jī)系統(tǒng),在短短一年多的發(fā)

32、展后,Android已經(jīng)迅速成為智能手機(jī)系統(tǒng)霸主地位的最有力競(jìng)爭(zhēng)者。</p><p>  Android得以橫掃智能手機(jī)市場(chǎng),其系統(tǒng)化開源性功不可沒。開源最大特點(diǎn)就是“開放”、“共享”,任何人都可以得到軟件的源代碼,在版權(quán)限制范圍內(nèi)對(duì)其進(jìn)行修改甚至重新開放,這就使得開源軟件能夠在全世界擁有自己龐大的開發(fā)隊(duì)伍。隨著3G的推廣,手機(jī)搜索、手機(jī)游戲、手機(jī)支付等移動(dòng)應(yīng)用也開始迅猛發(fā)展。移動(dòng)應(yīng)用的無限豐富使得Android

33、系統(tǒng)擁有了無限廣闊的“升級(jí)”空間。</p><p>  1.4 研究現(xiàn)狀和發(fā)展趨勢(shì)</p><p>  1.4.1 Android的現(xiàn)狀及發(fā)展趨勢(shì)</p><p>  通信技術(shù)的不斷發(fā)展,使移動(dòng)終端不再僅僅是通訊網(wǎng)絡(luò)的終端,而是向著多功能方向發(fā)展,越來越多的移動(dòng)終端具有了開放式的操作系統(tǒng),終端和互聯(lián)網(wǎng)的無縫連接有著更廣闊的發(fā)展空間?,F(xiàn)如今,主流的移動(dòng)終端操作系統(tǒng)有:

34、Symbian,Windows Mobile,Mac OS和Android。Android是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。隨著Android技術(shù)的迅猛發(fā)展和日趨成熟,Android操作系統(tǒng)在手持終端中所占比例正逐步上升,其開放性、便攜性、良好的兼容性、無縫結(jié)合網(wǎng)絡(luò)通信等特點(diǎn)將使And

35、roid操作系統(tǒng)在各個(gè)領(lǐng)域中都有著廣泛的應(yīng)用。安卓是首款開源代碼的操作系統(tǒng),采用Linux內(nèi)核,開放手機(jī)聯(lián)盟(OHA)成員可以任意使用和修改安卓的SDK軟件包。系統(tǒng)的開源性使其具有良好的拓展性,一方面,為眾多移動(dòng)應(yīng)用開發(fā)者提供了良好的系統(tǒng)性平臺(tái),有利于移動(dòng)應(yīng)用的集合;另一方面,終端廠商可以針對(duì)自身的特殊需要“定制化開發(fā)”。與此相比,盡管2010年2月,塞班基</p><p>  1.4.2 TPMS的研究現(xiàn)狀及發(fā)

36、展趨勢(shì)</p><p>  在汽車的高速行駛過程中,輪胎故障是所有駕駛者最為擔(dān)心和最難預(yù)防的,也是突發(fā)性交通事故發(fā)生的重要原因。據(jù)統(tǒng)計(jì),在高速公路上發(fā)生的交通事故有70%-80%是由于爆胎引起的。怎樣防止爆胎已成為安全駕駛的一個(gè)重要課題。據(jù)有關(guān)專家的分析,保持標(biāo)準(zhǔn)的車胎氣壓行駛和及時(shí)發(fā)現(xiàn)車胎漏氣是防止爆胎的關(guān)鍵。而TPMS-汽車胎壓監(jiān)視系統(tǒng)毫無疑問將是理想的工具。</p><p>  TP

37、MS 是汽車輪胎壓力監(jiān)視系統(tǒng) "Tire Pressure Monitoring System"的英文縮寫,主要用于在汽車行駛時(shí)實(shí)時(shí)的對(duì)輪胎氣壓進(jìn)行自動(dòng)監(jiān)測(cè),對(duì)輪胎漏氣和高、低氣壓進(jìn)行報(bào)警,以保障行車安全,是駕車者、乘車人的生命安全保障預(yù)警系統(tǒng)。汽車輪胎壓力監(jiān)視系統(tǒng)是駕車者、乘車人的生命安全的保障預(yù)警系統(tǒng),將是一個(gè)永恒的主題,因此,TPMS將成為汽車安全保障系統(tǒng)之一。</p><p>  本論

38、文主要就是將兩者有機(jī)的結(jié)合起來,在Android的開發(fā)平臺(tái)上設(shè)計(jì)汽車輪胎監(jiān)控系統(tǒng)(TPMS),使得司機(jī)可以在汽車行駛過程中實(shí)時(shí)的對(duì)輪胎氣壓及溫度進(jìn)行自動(dòng)監(jiān)測(cè),對(duì)輪胎溫度和高、低氣壓進(jìn)行報(bào)警,以保障行車安全。這是一種很便捷、很實(shí)用的設(shè)計(jì),也是可以保護(hù)駕車者、乘車人的生命安全的有效保障的預(yù)警系統(tǒng)。</p><p><b>  2.系統(tǒng)分析</b></p><p><

39、b>  2.1研究目標(biāo)</b></p><p>  1.通過查閱大量的相關(guān)文件和書籍,了解基本知識(shí),并學(xué)習(xí)其編程語言Java。</p><p>  2.深入學(xué)習(xí)了解嵌入式操作系統(tǒng)Android,下載其開發(fā)工具Eclipse和Android SDK,學(xué)習(xí)建立Android開發(fā)環(huán)境。</p><p>  3.通過學(xué)習(xí)熟練掌握其開發(fā)工具Eclipse和A

40、ndroid SDK的應(yīng)用。</p><p>  4.學(xué)習(xí)Java語言的編寫規(guī)則及對(duì)程序的設(shè)計(jì),學(xué)會(huì)熟練的應(yīng)用Java。</p><p>  5.用Java編寫輪胎壓力的監(jiān)控程序,布局文件以及Manifest.xml,運(yùn)行在開發(fā)環(huán)境上,檢測(cè)其能否達(dá)到要求。</p><p>  本軟件是基于Eclipse的開發(fā)環(huán)境,使用多種組建繪制出汽車的圖像,并開發(fā)出針對(duì)Andro

41、id平臺(tái)的TPMS系統(tǒng)。</p><p><b>  2.2需求分析</b></p><p>  本軟件是一個(gè)應(yīng)用程序,啟動(dòng)程序后會(huì)出現(xiàn)一輛車的圖像以及一些參數(shù),點(diǎn)擊按鈕可以進(jìn)行氣壓?jiǎn)挝?、溫度單位、高氣壓限制、低氣壓限制以及語言的設(shè)置,設(shè)置后的數(shù)據(jù)可以通過數(shù)字的形式顯示出當(dāng)前的胎壓情況,主要包括輪胎的壓力、溫度情況。Android系統(tǒng)會(huì)通過傳感器獲取這些數(shù)據(jù),并將數(shù)據(jù)

42、傳給監(jiān)聽器的監(jiān)聽方法,,Android系統(tǒng)會(huì)負(fù)責(zé)管理這些傳感器數(shù)據(jù)。功能主要包含以下幾種。</p><p>  1.全時(shí)監(jiān)測(cè)輪胎壓力。 </p><p>  2.可選擇針對(duì)哪個(gè)輪胎來顯示當(dāng)前輪胎壓力及溫度。 </p><p>  3.高壓低壓報(bào)警,高溫報(bào)警。 </p><p>  4.可根據(jù)車型及輪胎位置設(shè)定相應(yīng)的標(biāo)準(zhǔn)壓力值。</p&g

43、t;<p>  從上面的描述中可以基本了解軟件的功能需求:</p><p>  1.啟動(dòng)Android應(yīng)用程序。</p><p>  2.設(shè)置界面:對(duì)輪胎的壓力及溫度顯示進(jìn)行設(shè)置。</p><p>  3. 顯示界面:通過文字、數(shù)據(jù)和圖片顯示當(dāng)前的胎壓情況,包括輪胎壓力、溫度以及圖像按鈕。</p><p>  4.詳細(xì)界面:通過

44、文字、表格顯示當(dāng)前的壓力及溫度情況,包括壓力單位、高壓限、低壓限、溫度單位、溫度限等。</p><p><b>  2.3性能分析</b></p><p>  程序響應(yīng)速度快、安全性高、信息處理速度快。</p><p>  3.系統(tǒng)開發(fā)環(huán)境及相關(guān)介紹</p><p>  3.1 Android平臺(tái)架構(gòu)及特性 </

45、p><p>  Android系統(tǒng)的底層建立在Linux系統(tǒng)之上,由下向上有4部分組成:Linux內(nèi)核、函數(shù)庫、應(yīng)用程序框架以及應(yīng)用程序?qū)樱绫?所示。 </p><p>  表1 Android系統(tǒng)的結(jié)構(gòu)</p><p>  1.Linux內(nèi)核 </p><p>  Android系統(tǒng)建立在Linux2.6之上,Linux內(nèi)核提供了安全

46、性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型等核心系統(tǒng)服務(wù)。Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。</p><p>  2.函數(shù)庫以及Dalvik虛擬機(jī)</p><p>  Android包含一些C/C++庫,這些庫可以被Android系統(tǒng)中不同組件所使用,Android應(yīng)用開發(fā)者不能直接調(diào)用這套C/C++庫,但可以通過它上面的應(yīng)用程序框架來調(diào)用這些庫。另一部分是虛擬機(jī),它是負(fù)

47、責(zé)運(yùn)行Android應(yīng)用程序的。Android運(yùn)行時(shí)由兩部分組成:Android函數(shù)庫集和Dalvik虛擬機(jī)。函數(shù)庫集提供了Java語言函數(shù)庫所能使用的絕大部分功能,Dalvik虛擬機(jī)負(fù)責(zé)Android應(yīng)用程序的運(yùn)行。</p><p><b>  3.應(yīng)用程序框架</b></p><p>  本論文的主要內(nèi)容就是開發(fā)Android的應(yīng)用程序,當(dāng)開發(fā)Android的應(yīng)用

48、程序時(shí),就是面向底層的應(yīng)用程序框架進(jìn)行的。Android應(yīng)用程序框架提供了大量API供開發(fā)者使用,這就使得開發(fā)者開發(fā)應(yīng)用程序變得簡(jiǎn)單。</p><p><b>  4.應(yīng)用程序?qū)?lt;/b></p><p>  Android所有的應(yīng)用程序都是使用Java語言寫的,Android的核心應(yīng)用程序和系統(tǒng)一起發(fā)布,包括:SMS短消息程序、日歷、瀏覽器、E-mail客戶端等等。本

49、論文的主要內(nèi)容和實(shí)現(xiàn)就是編寫Android系統(tǒng)上的應(yīng)用程序。</p><p>  3.2 Android的程序結(jié)構(gòu)</p><p>  Android應(yīng)用由Activity、Service、Broadcast Receiver、Content Provider四個(gè)重要組成部分構(gòu)成。當(dāng)然并不是每一個(gè)Android應(yīng)用程序都必須包含這四個(gè)部分,某些時(shí)候一個(gè)應(yīng)用程序只需四種其中的某一種或者幾種組

50、合在一起就可以完成相應(yīng)的要求和設(shè)計(jì)。當(dāng)確定了設(shè)計(jì)需要的組成后,就在AndroidManifest.xml配置文件中聲明需要的組成部分。AndroidManifest.xml翻譯為清單文件,是一個(gè)XML類型的配置文件,該清單文件說明了該應(yīng)用的名稱、所使用圖標(biāo),以及包含的組件等。Android應(yīng)用程序的四個(gè)組成部分說明如下:</p><p>  1.Activity</p><p>  Act

51、ivity是Android應(yīng)用中負(fù)責(zé)和用戶交互的組件——大致上我們可以把它想象成Swing編程中的JFrame控件。不過它與JFrame的區(qū)別在于:JFrame本身可以設(shè)置布局管理器,不斷地向JFrame中添加組件,但Activity只能通過setContentView(View)來顯示指定組件。在應(yīng)用程序中,一個(gè)Activity通常就是一個(gè)單獨(dú)的屏幕,Activity為Android應(yīng)用提供了可視化用戶界面,如果該Android應(yīng)用需

52、要多個(gè)用戶界面,那么這個(gè)Android應(yīng)用將會(huì)包含多個(gè)Activity,多個(gè)Activity組成Activity棧,當(dāng)前活動(dòng)的Activity位于棧頂。以本人的畢業(yè)設(shè)計(jì)為例,輪胎壓力監(jiān)控系統(tǒng)的應(yīng)用程序包含有多個(gè)不同層次的用戶界面,第一層用于顯示主界面,主要包括汽車模型以及四個(gè)輪胎的壓力、溫度值和功能選擇設(shè)置界面,第二層用于顯示所選中的功能子菜單選擇界面,包括各種參數(shù)的設(shè)置,如壓力單位、溫度單位、高壓限、低壓限以及語言等參數(shù)的設(shè)置情況。每

53、一個(gè)用戶界面,就是一個(gè)Activity,之所以選擇這樣的設(shè)計(jì)是因?yàn)槭沟脩?yīng)用程序從一個(gè)界面到另一個(gè)界面的跳轉(zhuǎn)很容易實(shí)</p><p><b>  2.Service</b></p><p>  Service與Activity的地位是并列的,它也代表一個(gè)單獨(dú)的Android組件。兩者的主要區(qū)別在于:Service通常是位于后臺(tái)運(yùn)行的,它通常不需要與用戶交互,因此Serv

54、ice組件沒有圖形用戶界面。但與Activity需要繼承Activity基類相似,Service組件需要繼承Service基類。一個(gè)Service組件被運(yùn)行起來之后,它將擁有自己獨(dú)立的生命周期,Service組件通常用于為其他的組件提供后臺(tái)服務(wù)或監(jiān)控其他組件的運(yùn)行狀態(tài)。</p><p>  3.Broadcast Receiver</p><p>  Broadcast Receiver是

55、Android應(yīng)用中另外一個(gè)重要的組件,顧名思義,Broadcast Receiver是廣播消息接收器。從代碼實(shí)現(xiàn)的角度看,Broadcast Receiver非常類似于事件編程中的監(jiān)聽器。但與普通監(jiān)聽器不同的是:普通事件監(jiān)聽器監(jiān)聽的事件源是程序中的對(duì)象,而Broadcast Receiver監(jiān)聽的事件源是Android應(yīng)用中的其他組件。使用Broadcast Receiver組件接收廣播消息比較簡(jiǎn)單,開發(fā)者只要實(shí)現(xiàn)自己的Broadca

56、st Receiver子類,并重寫onReceive(Content content,Intent intent)方法即可。當(dāng)其他組件通過sendBroadcast()、sendStickyBroadcast()或sendOrderedBroadcast()方法發(fā)送廣播消息時(shí),如該Broadcast Receiver也對(duì)該消息“感興趣”(通過IntentFilter配置),Broadcast Receiver的onReceive(Con

57、tent content,Intent intent)方法將會(huì)被觸發(fā)。開發(fā)者實(shí)現(xiàn)了</p><p>  ①在Java代碼中通過Content.registReceiver()方法注冊(cè)Broadcast Receiver。</p><p>  ②在AndroidManifest.xml文件中使用<receive…/>元素完成注冊(cè)。</p><p>  4.

58、Content Provider</p><p>  對(duì)于Android應(yīng)用而言,各個(gè)組件必須相互獨(dú)立,各自運(yùn)行在自己的Dalvik虛擬機(jī)實(shí)例中,如果多個(gè)應(yīng)用程序之間需要進(jìn)行數(shù)據(jù)交換,那么就需要用到Content Provider。一個(gè)Content Provider類實(shí)現(xiàn)了一組標(biāo)準(zhǔn)的方法,從而能夠讓其它的應(yīng)用保存或者讀取此Content Provider處理的各種數(shù)據(jù)類型。Android系統(tǒng)為這種跨應(yīng)用的數(shù)據(jù)交

59、換提供了一個(gè)標(biāo)準(zhǔn):Content Provider。當(dāng)用戶實(shí)現(xiàn)自己的Content Provider時(shí),需要實(shí)現(xiàn)如下的抽象方法:insert(Uri,ContentValues):向Content Provider插入數(shù)據(jù)。 delete(Uri,ContentValues):刪除Content Provider中指定數(shù)據(jù)。 update(Uri,ContentValues,String,String[]):更新Content Prov

60、ider中指定數(shù)據(jù)。 query(Uri,String[],String,String[],String):從Content Provider中查詢數(shù)據(jù)。通常與Content Provider結(jié)合使</p><p>  3.3 Android 開發(fā)環(huán)境介紹</p><p>  眾所周知,手機(jī)應(yīng)用程序在一般情況下都是在一臺(tái)宿主計(jì)算機(jī)上進(jìn)行開發(fā)的,Android應(yīng)用程序當(dāng)然也不例外。有過開發(fā)經(jīng)

61、驗(yàn)的人都知道一般情況下開發(fā)者先在計(jì)算機(jī)上完成應(yīng)用程序的開發(fā),然后把應(yīng)用程序?qū)氲侥繕?biāo)手機(jī)上進(jìn)行測(cè)試和使用。Android應(yīng)用程序既可以通過真實(shí)的手機(jī)進(jìn)行測(cè)試和調(diào)試,同時(shí)也能在模擬器上進(jìn)行測(cè)試和調(diào)試。</p><p>  由于Android的上層應(yīng)用程序是用Java語言開發(fā)的,同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因?yàn)槭鞘?/p>

62、用Java語言進(jìn)行開發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時(shí),還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級(jí)或者變更,是Eclipse下開發(fā)工具的升級(jí)下載的工具。</p><p>  簡(jiǎn)而言之,

63、需要下載安裝以下幾種軟件才可以搭建出Android的開發(fā)環(huán)境,進(jìn)而進(jìn)行Android應(yīng)用程序的開發(fā)。</p><p>  (1) Eclipse集成開發(fā)環(huán)境。</p><p>  (2)Sun公司的Java軟件開發(fā)包(JDK)。</p><p>  (3) Android軟件的開發(fā)包(Software Developer’s Kit,Android SDK)。<

64、;/p><p>  (4) Android 的Eclipse 插件(Android Developer Tool,ADT)。</p><p>  3.4 Android 開發(fā)平臺(tái)搭建</p><p>  Android開發(fā)平臺(tái)搭建步驟:</p><p>  Eclipse是一個(gè)市場(chǎng)占有率很高的Java IDE工具,Android推薦使用Eclip

65、se來開發(fā)Android應(yīng)用,并且為此提供了專門的插件:Android Development Tools(ADT)。</p><p> ?、侔惭bEclipse工具:首先登錄http://www.eclipse.org網(wǎng)址,下載Eclipse IDE for Java EE Developers。我現(xiàn)在使用的是Eclipse Indigo,即Eclipse3.7。下載之后解壓縮下載得到的壓縮文件,解壓后的文件夾可

66、以放在任何目錄下。</p><p>  ②直接雙擊Eclipse解壓后目錄中的eclipse.exe,即可看到Eclipse的啟動(dòng)界面,表明Eclipse已經(jīng)安裝成功。之后單擊Eclipse主菜單中的Help-> Install New Software-> 菜單項(xiàng)上的Available Software,會(huì)彈出相應(yīng)的窗口,如圖1所示,單擊窗口右側(cè)的“Add”按鈕,會(huì)出現(xiàn)輸入http://dl-ssl

67、.google.com/android/eclipse/后確定,然后在“Work with”下拉菜單中選擇剛才輸入的網(wǎng)址。接著在屏幕上就會(huì)出現(xiàn)一個(gè)Developer Tools選項(xiàng),勾上以后點(diǎn)擊Next,Eclipse會(huì)自動(dòng)網(wǎng)上查找Android 開發(fā)工具插件,找到Android DDMS和Android Development Tools,選中這兩個(gè)點(diǎn)擊Finish,Eclipse就會(huì)自動(dòng)下載并安裝Android插件了,最后會(huì)提示重啟

68、Eclipse。</p><p><b>  圖1 ADT的安裝</b></p><p>  ③當(dāng)然還需要為Eclipse設(shè)置Android SDK的路徑,重啟后單擊Eclipse主菜單Windows-> Preferences菜單項(xiàng),會(huì)彈出如下圖2所示窗口,在窗口的文本框中填入Android SDK的安裝目錄,然后點(diǎn)擊Apply。</p><

69、;p>  圖2 設(shè)置Android SDK的路徑</p><p>  ④對(duì)于Windows XP的操作系統(tǒng),打開“系統(tǒng)屬性”對(duì)話框,在對(duì)話框中選擇“高級(jí)”標(biāo)簽頁,并單擊其下方的“環(huán)境變量”按鈕,出現(xiàn)如下圖3所示的窗口,在系統(tǒng)變量中的path變量中添加一個(gè)值,該值指向解壓后的Android SDK目錄下的tools文件夾。</p><p><b>  圖3 環(huán)境變量設(shè)置&l

70、t;/b></p><p><b>  4.程序開發(fā)與設(shè)計(jì)</b></p><p>  4.1 文件結(jié)構(gòu)與用途</p><p>  在程序開發(fā)階段,首先確定“基于Android的輪胎壓力監(jiān)控軟件設(shè)計(jì)”的工程名為Tpms,據(jù)程序模塊設(shè)計(jì)的內(nèi)容,建立Tpms工程。Tpms工程源代碼的結(jié)構(gòu)如圖4所示。</p><p> 

71、 圖4 Tpms工程的源代碼文件</p><p>  圖4的說明:在當(dāng)前的目錄的Tpms子目錄下創(chuàng)建一個(gè)Android項(xiàng)目。進(jìn)入該項(xiàng)目所在的目錄下,可以看到兩個(gè)必要的文件夾,res目錄和src目錄以及AndroidManifest.xml文件。上面的文件結(jié)構(gòu)中res目錄、src目錄以及AndroidManifest.xml文件是Android項(xiàng)目所必需的,其他目錄、其他文件都是可選的。res目錄存放Androi

72、d項(xiàng)目的各種資源文件,比如layout存放界面布局文件、values目錄用于存放各種XML格式的資源文件,例如字符串資源文件:string.xml,drawable-hdpi、drawable-ldpi、drawable-mdpi這三個(gè)子目錄分別用于存放大、小、中三種圖片文件。src目錄是一個(gè)普通的、保存Java源文件的目錄。AndroidManifest.xml文件是Android項(xiàng)目的系統(tǒng)清單文件,它用于控制Android應(yīng)用的名稱

73、、圖標(biāo)、訪問權(quán)限等整體屬性。</p><p>  為了使源代碼文件的結(jié)構(gòu)更加清晰Tpms工程設(shè)置了多個(gè)命名空間,分別用來保存用戶界面、圖片、后臺(tái)服務(wù)和工具實(shí)體的源代碼文件,源代碼文件的名稱以及說明如表2所示。</p><p>  表2 java源文件所代表的名稱</p><p>  Android的資源文件保存在/res的子目錄中。其中/res/drawable/目

74、錄中保存的是圖像文件,例如在虛擬機(jī)上顯示的車的模型、箭頭、按鈕等,/res/values目錄中保存的是用來自定義字符串和顏色的文件,/res/xml目錄中保存的是XML格式的數(shù)據(jù)文件。所有在程序開發(fā)階段可以被調(diào)用的資源都保存在這些目錄中,具體每個(gè)資源文件的用途可以參考表3。</p><p>  表3 drawable里圖片所代表的含義</p><p><b>  4.2程序模塊

75、設(shè)計(jì)</b></p><p><b>  4.2.1事件處理</b></p><p>  完成了上面的用戶界面設(shè)計(jì)還遠(yuǎn)遠(yuǎn)不夠,與界面設(shè)計(jì)息息相關(guān)的就是事件處理了。當(dāng)用戶在程序界面上執(zhí)行各種操作時(shí),應(yīng)用程序必須為用戶動(dòng)作提供相應(yīng)的響應(yīng),這種響應(yīng)就需要通過事件處理來完成。Android提供了兩種方式的事件處理,分別是基于回調(diào)的事件處理和基于監(jiān)聽器的事件處理。當(dāng)

76、然,Android允許開發(fā)者采用自己熟悉的事件處理方式來為用戶操作提供響應(yīng)。</p><p>  對(duì)于Android基于監(jiān)聽的事件處理來說,主要的做法就是為Android界面組件綁定特定的事件監(jiān)聽器,前面的例子都是使用事件監(jiān)聽的例子。</p><p>  對(duì)于Android基于回調(diào)的事件處理來說,主要的做法就是重寫Android組件特定的回調(diào)方法,或者重寫Activity的回調(diào)方法。And

77、roid為絕大部分界面組件都提供了事件響應(yīng)的回調(diào)方法,開發(fā)者只有重寫它們即可。</p><p>  一般來說,基于回調(diào)的事件處理可用于處理一些具有通用性的事件,基于回調(diào)的事件處理代碼會(huì)顯得比較簡(jiǎn)潔。但對(duì)于某些特定的事件,無法使用基于回調(diào)的事件處理,只能采用基于監(jiān)聽的事件處理。</p><p>  4.2.2 傳感器 </p><p>  傳感器是一種能把物理量

78、或化學(xué)量轉(zhuǎn)變成便于利用的電信號(hào)的器件,由兩部分組成:直接感知被測(cè)量信號(hào)的敏感元件部分和初始處理信號(hào)的電路部分。傳感器是一種監(jiān)測(cè)裝置,能感受到被測(cè)量的信息,并能將監(jiān)測(cè)感受到的信息,按一定規(guī)律變換成為電信號(hào)或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲(chǔ)、顯示、記錄和控制等要求。傳感器是實(shí)現(xiàn)工業(yè)領(lǐng)域自動(dòng)監(jiān)測(cè)和自動(dòng)控制的首要環(huán)節(jié)。傳感器是整個(gè)系統(tǒng)的關(guān)鍵之一,傳感器必須能夠給出當(dāng)前輪胎壓力和溫度的數(shù)據(jù),這是獲得輪胎真實(shí)狀況的前提,因此選擇

79、恰當(dāng)?shù)膫鞲衅骶惋@得非常重要,本設(shè)計(jì)選用壓力傳感器和溫度傳感器。</p><p><b>  4.2.3 藍(lán)牙</b></p><p>  藍(lán)牙(Bluetooth)提供移動(dòng)設(shè)備及其配件之間低功耗、低成本的無線通信連接。近年來這些技術(shù)的普及,已經(jīng)讓無線立體聲耳機(jī)、無線打印機(jī)等設(shè)備走進(jìn)人們的生活。對(duì)藍(lán)牙的支持,更是智能手機(jī)必需的特性。藍(lán)牙技術(shù)的核心,是根據(jù)藍(lán)牙標(biāo)準(zhǔn)所實(shí)現(xiàn)的

80、藍(lán)牙協(xié)議棧,從發(fā)布至今,標(biāo)準(zhǔn)已經(jīng)有1.1/1.2/2.0/2.1/3.0等版本,也有著相當(dāng)多的協(xié)議棧實(shí)現(xiàn)。</p><p>  藍(lán)牙能同時(shí)進(jìn)行異步數(shù)據(jù)及同步語音傳輸,它的底層協(xié)議層包括眾多協(xié)議,如邏輯鏈路控制和適配協(xié)議(L2CAP)、服務(wù)發(fā)現(xiàn)協(xié)議(SDP)、串口模擬協(xié)議(RFCOMM)等,一起為上層提供傳輸支持。而主要控制接口則由主機(jī)控制接口層(HCI)體現(xiàn),它是藍(lán)牙協(xié)議中軟硬件之間的接口。在各種協(xié)議及HCI之上

81、,是藍(lán)牙的上層應(yīng)用框架,框架里每個(gè)應(yīng)用模式稱為一個(gè)Profile,供給外部不同的設(shè)備訪問,如無線立體聲耳機(jī)使用的A2DP以及打印機(jī)使用的無線打印服務(wù)等,服務(wù)有數(shù)十種之多。藍(lán)牙目前已經(jīng)成為智能手機(jī)系統(tǒng)中連接方面的一個(gè)主要功能。</p><p><b>  4.3系統(tǒng)測(cè)試</b></p><p>  至此已經(jīng)完成了Tpms工程的代碼編寫工作,在這里對(duì)Tpms工程進(jìn)行測(cè)試,

82、步驟及結(jié)果如下:</p><p>  啟動(dòng)Android虛擬機(jī)</p><p>  在工程名Tpms上點(diǎn)右鍵,然后選擇“Run As”,然后選擇“Android Application”。 Android虛擬機(jī)啟動(dòng)較慢。如下圖5所示。</p><p>  圖5 虛擬機(jī)啟動(dòng)界面</p><p>  點(diǎn)擊開鎖,會(huì)出現(xiàn)如下面所給的圖7的主界面的顯

83、示,分別點(diǎn)擊主界面下方的三個(gè)子功能選擇按鈕,會(huì)相應(yīng)的顯示圖8、圖9、圖10、圖11這四個(gè)子功能界面的相對(duì)應(yīng)的子界面。</p><p>  4.4 用戶界面設(shè)計(jì)</p><p>  4.4.1 主界面設(shè)計(jì)</p><p>  用戶界面開發(fā)是Android應(yīng)用開發(fā)的一項(xiàng)很重要的內(nèi)容,不管應(yīng)用實(shí)際包含的邏輯多么復(fù)雜,多么優(yōu)秀,但我們可以想象一下,如果這個(gè)應(yīng)用沒有一個(gè)很友好

84、的圖形用戶界面的話,將會(huì)很難吸引用戶的目光。反過來,若開發(fā)者為應(yīng)用程序提供了一個(gè)很友好很“炫”的用戶界面的話,使得這個(gè)界面可以供用戶通過鼠標(biāo)拖動(dòng)或者點(diǎn)擊等動(dòng)作就可以操作整個(gè)界面應(yīng)用的話,這個(gè)應(yīng)用就會(huì)大受歡迎。作為一個(gè)程序設(shè)計(jì)者,首先必須考慮的問題就是用戶的感受,一定要讓用戶覺得舒服,這樣的程序才會(huì)被需要、被喜歡、被接受以及被使用,這樣的程序才有價(jià)值。當(dāng)然Android為設(shè)計(jì)者提供了大量的豐富的UI組件,開發(fā)者只要像我們小時(shí)候玩“搭積木”

85、一樣,把這些組件搭在一起就可以設(shè)計(jì)出非常優(yōu)秀的圖形用戶界面。當(dāng)然,為了讓這些組件能響應(yīng)用戶的鼠標(biāo)以及鍵盤動(dòng)作,Android系統(tǒng)本身為設(shè)計(jì)者提供了事件響應(yīng)機(jī)制,這樣就可以保證圖形界面應(yīng)用可以響應(yīng)用戶的交互操作。</p><p>  根據(jù)本論文的設(shè)計(jì),打開虛擬機(jī)后,顯示主界面,下設(shè)三個(gè)功能選擇界面,一旦選擇了程序功能后,會(huì)進(jìn)入不同的子菜單進(jìn)行相應(yīng)的功能選擇。根據(jù)本論文的需求,該主界面的顯示預(yù)期效果為如下方框圖6。&

86、lt;/p><p>  圖6 主界面預(yù)期顯示圖</p><p>  為了達(dá)到預(yù)期所想的界面效果,首先在res/layout目錄下創(chuàng)建一個(gè)名稱為“main.xml”的布局文件,通過在該布局文件中寫入代碼實(shí)現(xiàn)功能選擇界面的設(shè)計(jì),從布局文件中可以看出,此布局的外層為RelativeLayout,在RelativeLayout中放置了三個(gè)ImageButton按鈕:</p><p

87、>  <android.tpms.ImgButton</p><p>  android:id="@+id/bt_set"</p><p>  android:layout_height="wrap_content"</p><p>  android:layout_width="wrap_content

88、"</p><p>  android:layout_alignParentBottom="true"</p><p>  android:background="@drawable/btbg_x"</p><p>  android:paddingLeft="40dip"</p>

89、<p>  android:clickable="true"</p><p>  android:focusable="true"</p><p><b>  /></b></p><p>  btbg_x.xml文件:</p><p>  <selector

90、 xmlns:android="http://schemas.android.com/apk/res/android"></p><p><b>  <item </b></p><p>  android:state_pressed="false"</p><p>  android:dra

91、wable="@drawable/sns_btnbg" /></p><p><b>  <item </b></p><p>  android:state_pressed="true"</p><p>  android:drawable="@drawable/sns_btnbg

92、_pressed" /></p><p><b>  <item </b></p><p>  android:state_focused="true"</p><p>  android:drawable="@drawable/sns_btnbg_pressed" /><

93、;/p><p><b>  <item </b></p><p>  android:drawable="@drawable/sns_btnbg" /></p><p>  </selector> </p><p>  通過android:background=”@drawable

94、/btbg_x”語句從/res/drawable/中調(diào)用一個(gè)btbg_x.xml文件,文件中包含一個(gè)selector,調(diào)用/res/drawable/中的btbg.png和btbg_pressed.png兩種用來顯示按鈕沒被按下和被按下的狀態(tài)圖片。至于三個(gè)按鈕上顯示的內(nèi)容是在tpms.java中通過編寫btnSetting.setTextViewText(“TPMS Setting”)和btnRotation.setTextViewTe

95、xt(“Rotation”) 以及btnSensor.setTextViewText(“Sensor Learning”)三個(gè)語句設(shè)置界面下面的三個(gè)按鈕。界面上的有關(guān)車的圖片是在TpmsMainView.java中通過語句</p><p>  protected void onDraw(Canvas canvas) {</p><p>  InputStream is = getResou

96、rces().openRawResource(R.drawable.maincar); </p><p>  Bitmap mBitmap = BitmapFactory.decodeStream(is); </p><p>  Paint mPaint = new Paint(); </p><p>  canvas.drawBitmap(mBitma

97、p, 305, 50, mPaint); </p><p>  調(diào)用/res/drawable/中maincar.png圖像作為主界面,至于車的輪胎上面的胎壓和溫度值是在TpmsMainView.java中通過onDraw(Canvas canvas)繪圖語句繪出來的。整體的界面顯示都是在tpms.java中通過調(diào)用各個(gè)部分的語句顯示的。主界面的顯示如圖7所示</p><p>  圖7

98、主界面顯示效果圖</p><p>  點(diǎn)擊功能選擇按鈕時(shí)需要進(jìn)入到相應(yīng)的子菜單中去,實(shí)現(xiàn)按鈕的響應(yīng)功能需要調(diào)用監(jiān)聽器.onClickListener()方法。本設(shè)計(jì)是在主程序tpms.java中編寫java程序?qū)崿F(xiàn)進(jìn)入子菜單的功能。首先在tpms.java中通過findViewById()實(shí)例化Button對(duì)象,通過調(diào)用.onClickListener()中的onClick(View v)為三個(gè)Button控件設(shè)

99、置點(diǎn)擊監(jiān)聽器,當(dāng)Button按鈕被按下時(shí)跳轉(zhuǎn)到相應(yīng)的子功能選擇菜單中。當(dāng)然跳轉(zhuǎn)時(shí)要調(diào)用監(jiān)聽器中的startActivity()方法,才能使從一個(gè)Activity界面跳轉(zhuǎn)到另外的Activity界面。</p><p>  4.4.2 功能選擇子界面的設(shè)計(jì)</p><p>  以TPMS Setting為例,當(dāng)點(diǎn)擊TPMS Setting按鈕時(shí),會(huì)進(jìn)入到如圖8所示子界面,</p>

100、<p>  圖8 TPMS Setting子界面</p><p>  實(shí)現(xiàn)圖8界面的程序設(shè)計(jì)是:首先在res/layout目錄下創(chuàng)建一個(gè)名稱為“settings.xml”的布局文件,在該布局文件內(nèi)部寫入代碼從而來實(shí)現(xiàn)如圖所示子界面的設(shè)計(jì),首先設(shè)置布局文件的外層為AbsoluteLayout,內(nèi)部包含12個(gè)ImageButton,就是圖8中所示的十二個(gè)按鈕。至于子界面左側(cè)的內(nèi)容在TpmsSettingV

101、iew.java中用canvas.drawText()語句進(jìn)行設(shè)置。</p><p>  canvas.drawText("Pressure Unit", 10, 95, ptext2);</p><p>  canvas.drawText("Hi-Pressure Alert", 10, 150, ptext2);</p><p

102、>  canvas.drawText("Low-Pressure Alert", 10, 205, ptext2);</p><p>  canvas.drawText("Temerature Unit", 10, 260, ptext2);</p><p>  canvas.drawText("Temerature Alert&qu

103、ot;, 10, 320, ptext2);</p><p>  if(tpms.alarmParam.TemperatureUnit ==TPMS_CONSTANCE.TEMPERATURE_UNIT_FAHRENHEIT){</p><p>  nTemperature = (int)(tpms.alarmParam.TemperatureAlarm*9/5+32000);</p

104、><p>  s3 = String.format("%d",(int)(nTemperature/1000));</p><p>  canvas.drawText(s3, 250, 320, ptext2);</p><p>  canvas.drawText("°F", 300, 265, ptext2);<

105、/p><p>  canvas.drawText("°F", 300, 320, ptext2);}</p><p><b>  else{</b></p><p>  nTemperature = tpms.alarmParam.TemperatureAlarm;</p><p>  s3

106、= String.format("%d",(int)(nTemperature/1000));</p><p>  canvas.drawText(s3, 250, 320, ptext2);</p><p>  canvas.drawText("°C", 300, 265, ptext2);</p><p>  c

107、anvas.drawText("°C", 300, 320, ptext2);</p><p><b>  }</b></p><p>  當(dāng)點(diǎn)擊代表返回的按鈕時(shí),同通過按鈕監(jiān)聽器中的startActivity()方法從此界面跳轉(zhuǎn)到圖7的主界面。當(dāng)點(diǎn)擊代表next的箭頭時(shí),會(huì)通過按鈕監(jiān)聽器中的startActivity()方法從此界面跳轉(zhuǎn)

108、到如下圖9的TPMS Setting2的子界面。這個(gè)界面的實(shí)現(xiàn)是:首先在res/layout目錄下創(chuàng)建一個(gè)名稱為“settings2.xml”的布局文件,在該布局文件內(nèi)部寫入代碼從而來實(shí)現(xiàn)如圖所示子界面的設(shè)計(jì),首先設(shè)置布局文件的外層為AbsoluteLayout,內(nèi)部包含7個(gè)ImageButton,就是圖9中所示的七個(gè)按鈕。至于子界面左側(cè)的內(nèi)容在TpmsSetting2View.java中用canvas.drawText()語句進(jìn)行設(shè)置

109、的。</p><p>  圖9 TPMS Setting2的子界面</p><p>  至于主界面中的另外兩個(gè)功能選擇Rotation 和Sensor Learning的設(shè)計(jì)實(shí)現(xiàn)也是如此,在此就不再贅述,其相應(yīng)的子功能界面如下圖所示。</p><p>  圖10 Rotation的子界面</p><p>  圖11 Sensor Lea

110、rning的子界面</p><p><b>  5.總結(jié)</b></p><p>  經(jīng)過這段時(shí)間的努力,我的畢業(yè)設(shè)計(jì)“基于Android的輪胎壓力(TPMS)監(jiān)控軟件”終于完成了。本次畢業(yè)設(shè)計(jì)的選題以及實(shí)現(xiàn)設(shè)計(jì)的過程,使我對(duì)Java以及Android產(chǎn)生了濃厚的興趣,從一開始的沒接觸過,到現(xiàn)在的可以運(yùn)用,完全是一個(gè)從無到有的過程,雖然在實(shí)現(xiàn)這個(gè)過程中遇到了很多的問題

111、,實(shí)現(xiàn)的過程也很辛苦,但是我都沒有放棄,終于克服了自己,順利的完成了本次畢業(yè)設(shè)計(jì)。在做畢業(yè)設(shè)計(jì)的這段時(shí)間里,我學(xué)會(huì)了很多知識(shí),比如Android開發(fā)環(huán)境的搭建、什么是Activity、如何實(shí)現(xiàn)界面間的跳轉(zhuǎn)以及如何實(shí)現(xiàn)原來看似高深莫測(cè)的圖形變幻和游戲開發(fā)等知識(shí),同時(shí)我也學(xué)會(huì)了如何利用現(xiàn)有的資源去自學(xué)知識(shí)、解決問題。這些體會(huì)都將讓我受益匪淺,但最重要的一點(diǎn)是使我對(duì)我們專業(yè)的所學(xué)有了一個(gè)更深入的了解,更激發(fā)了我對(duì)所學(xué)專業(yè)的熱愛。以前的我雖然很

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論