電子信息工程畢業(yè)論文基于android的輪胎壓力監(jiān)控軟件設計_第1頁
已閱讀1頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  深 圳 大 學</b></p><p><b>  本科畢業(yè)論文</b></p><p><b>  (20 屆)</b></p><p>  基于Android的輪胎壓力監(jiān)控軟件設計</p><p>  所在學院

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

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

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

5、t;/b></p><p>  1.1 研究內容2</p><p>  1.2 研究意義2</p><p>  1.3 移動終端操作系統(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ā)展趨勢4</p><p>  1.4.1 Android的現(xiàn)狀及發(fā)展趨勢4</p><p>  1.4.2 TPMS的研究現(xiàn)狀及發(fā)展趨勢4</p><p><b>  2.系統(tǒng)分析5

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

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

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

10、;<p>  4.4.1 主界面設計14</p><p>  4.4.2 功能選擇子界面的設計16</p><p><b>  5.總結19</b></p><p><b>  參考文獻20</b></p><p><b>  致謝21</b></

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

45、p><p>  Android系統(tǒng)的底層建立在Linux系統(tǒng)之上,由下向上有4部分組成:Linux內核、函數庫、應用程序框架以及應用程序層,如表1所示。 </p><p>  表1 Android系統(tǒng)的結構</p><p>  1.Linux內核 </p><p>  Android系統(tǒng)建立在Linux2.6之上,Linux內核提供了安全

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

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

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

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

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

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

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

53、一個用戶界面,就是一個Activity,之所以選擇這樣的設計是因為使得應用程序從一個界面到另一個界面的跳轉很容易實</p><p><b>  2.Service</b></p><p>  Service與Activity的地位是并列的,它也代表一個單獨的Android組件。兩者的主要區(qū)別在于:Service通常是位于后臺運行的,它通常不需要與用戶交互,因此Serv

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

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

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

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

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

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

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

61、驗的人都知道一般情況下開發(fā)者先在計算機上完成應用程序的開發(fā),然后把應用程序導入到目標手機上進行測試和使用。Android應用程序既可以通過真實的手機進行測試和調試,同時也能在模擬器上進行測試和調試。</p><p>  由于Android的上層應用程序是用Java語言開發(fā)的,同時還需要基于Dalvik虛擬機,所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因為是使

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

63、需要下載安裝以下幾種軟件才可以搭建出Android的開發(fā)環(huán)境,進而進行Android應用程序的開發(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ā)平臺搭建</p><p>  Android開發(fā)平臺搭建步驟:</p><p>  Eclipse是一個市場占有率很高的Java IDE工具,Android推薦使用Eclip

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

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

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

68、Eclipse。</p><p><b>  圖1 ADT的安裝</b></p><p> ?、郛斎贿€需要為Eclipse設置Android SDK的路徑,重啟后單擊Eclipse主菜單Windows-> Preferences菜單項,會彈出如下圖2所示窗口,在窗口的文本框中填入Android SDK的安裝目錄,然后點擊Apply。</p><

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

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

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

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

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

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

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

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

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

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

79、恰當的傳感器就顯得非常重要,本設計選用壓力傳感器和溫度傳感器。</p><p><b>  4.2.3 藍牙</b></p><p>  藍牙(Bluetooth)提供移動設備及其配件之間低功耗、低成本的無線通信連接。近年來這些技術的普及,已經讓無線立體聲耳機、無線打印機等設備走進人們的生活。對藍牙的支持,更是智能手機必需的特性。藍牙技術的核心,是根據藍牙標準所實現(xiàn)的

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

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

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

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

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

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

86、lt;/p><p>  圖6 主界面預期顯示圖</p><p>  為了達到預期所想的界面效果,首先在res/layout目錄下創(chuàng)建一個名稱為“main.xml”的布局文件,通過在該布局文件中寫入代碼實現(xiàn)功能選擇界面的設計,從布局文件中可以看出,此布局的外層為RelativeLayout,在RelativeLayout中放置了三個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/中調用一個btbg_x.xml文件,文件中包含一個selector,調用/res/drawable/中的btbg.png和btbg_pressed.png兩種用來顯示按鈕沒被按下和被按下的狀態(tài)圖片。至于三個按鈕上顯示的內容是在tpms.java中通過編寫btnSetting.setTextViewText(“TPMS Setting”)和btnRotation.setTextViewTe

95、xt(“Rotation”) 以及btnSensor.setTextViewText(“Sensor Learning”)三個語句設置界面下面的三個按鈕。界面上的有關車的圖片是在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>  調用/res/drawable/中maincar.png圖像作為主界面,至于車的輪胎上面的胎壓和溫度值是在TpmsMainView.java中通過onDraw(Canvas canvas)繪圖語句繪出來的。整體的界面顯示都是在tpms.java中通過調用各個部分的語句顯示的。主界面的顯示如圖7所示</p><p>  圖7

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

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

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

101、iew.java中用canvas.drawText()語句進行設置。</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>  當點擊代表返回的按鈕時,同通過按鈕監(jiān)聽器中的startActivity()方法從此界面跳轉到圖7的主界面。當點擊代表next的箭頭時,會通過按鈕監(jiān)聽器中的startActivity()方法從此界面跳轉

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

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

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

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

溫馨提示

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

評論

0/150

提交評論