畢業(yè)設(shè)計(論文)-Android平臺上數(shù)據(jù)的儀表盤可視化程序設(shè)計.doc
《畢業(yè)設(shè)計(論文)-Android平臺上數(shù)據(jù)的儀表盤可視化程序設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(論文)-Android平臺上數(shù)據(jù)的儀表盤可視化程序設(shè)計.doc(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、南京郵電大學(xué)畢業(yè)設(shè)計(論文)題 目Android平臺上數(shù)據(jù)的儀表盤可視化程序設(shè)計專 業(yè)學(xué)生姓名班級學(xué)號指導(dǎo)教師指導(dǎo)單位日 期1摘要 在如今這個科技飛速發(fā)展的時代,汽車已經(jīng)是一個非常普遍的代步工具。車載虛擬儀表人機(jī)界面,是駕駛員獲取汽車工況數(shù)據(jù)的主要界面,便于駕駛員實時全面地掌握汽車工作狀態(tài),有效地與汽車進(jìn)行人機(jī)交互,對保障汽車安全穩(wěn)定的行駛有著重要意義,目前普遍使用的是Windows CE和Linux操作系統(tǒng)。Windows CE操作系統(tǒng)功能穩(wěn)定,有完善的技術(shù)支持,但價格昂貴、源代碼封閉、網(wǎng)絡(luò)可利用資源較少;Linux操作系統(tǒng)的最大優(yōu)勢在于免費和開源,是車載信息顯示系統(tǒng)的主流操作系統(tǒng),但其并不
2、是基于移動設(shè)備開發(fā)的,不能完全滿足移動設(shè)備的需求。Android 是Google開發(fā)的一款基于開源操作系統(tǒng)Linux的開放、開源移動平臺,對于目前主流的嵌入式平臺支持良好,Android系統(tǒng)的優(yōu)越性能已在多款移動設(shè)備上得到驗證。它包括操作系統(tǒng)用戶界面和應(yīng)用程序。為了加強(qiáng)人車之間的交流,提高人車交互界面的友好度,在Android手機(jī)平臺上實現(xiàn)了可以查看汽車儀表盤及其他可以顯示的數(shù)據(jù)等功能。汽車儀表盤反映了汽車行駛過程中的多種參數(shù),在Android平臺上我們可以觀察發(fā)動機(jī)轉(zhuǎn)速、車速、溫度、時間及行駛里程等實時信息,對遇到的故障可以及時發(fā)現(xiàn)并告知用戶,提高了安全使用的性能。將Android作為車載虛
3、擬儀表軟件開發(fā)平臺,在Android提供的應(yīng)用程序框架上來實現(xiàn)虛擬儀表的人機(jī)界面。關(guān)鍵詞:Android平臺;儀表盤;Eclipse2AbstractIn todays era of rapid development of technology, the car has become a very popular means of transport. Vehicle virtual instrument interface, is the main interface that driver gets condition data of automobile. It is convenie
4、nt for driver to real-time to grasp the working conditions of automotive, effective human-computer interaction and the automobile has the vital significance to guarantee safe and stable running of the car. At present, Windows CE and the Linux operating system are in widespread use. Windows CE operat
5、ing system has a stable function and perfect technical support,.But the price is expensive and the source code is closed. It also has fewer useful resources from network. Maximum advantage of Linux operating system is free and open source. It is the mainstream operating system of the vehicle informa
6、tion displayed system. But it is not based on the mobile device development and it cannot meet the demands of mobile equipment. Android is developed by Google and it is based on open source mobile platform and open source operating system Linux. For the current, mainstream embedded platform supports
7、 well. Superior performance of the Android system has been validated in a variety of mobile devices. It includes the operating system user interface and application program. In order to enhance communication between people and vehicles and improve the friendly interface of people and vehicles,we can
8、 view the automobile dashboards and other data can be displayed and other functions in the Android mobile phone platform . Car dashboard reflects a variety of parameters during the process of the car. We can observe the engine speed,vehicle speed, temperature, time, mileage and other real-time infor
9、mation on the Android platform. We can detect and notify the user about the fault encountered in order to improve the performance about safety and use.Keywords: Android platform; Dashboard; Eclipse3目錄第一章 緒言61.1 研究背景及意義71.2 課題的主要工作7第二章 汽車儀表盤概述82.1 基本介紹92.2具體類別9指示燈和警報燈1.正時齒形帶指示燈102.排氣溫度警報燈113.制動器警報燈11
10、4.制動防抱死警報燈115 驅(qū)動防滑控制指示燈126.安全氣囊指示燈127.危險警報燈132.3硬件系統(tǒng)介紹132.4 硬件系統(tǒng)結(jié)構(gòu)14一. 單總線結(jié)構(gòu)折疊14二. 雙總線結(jié)構(gòu)折疊14三 采用通道的大型系統(tǒng)結(jié)構(gòu)折疊142.5 CAN模塊15一、 介紹15二、 功能概述15三、 功能特點15 四、 運用情況15第三章 系統(tǒng)開發(fā)工具概述163.1 Eclipse簡介163.2開發(fā)環(huán)境的搭建163.3 Android目錄結(jié)構(gòu)說明173.4 Android系統(tǒng)架構(gòu)183.5 Android應(yīng)用程序概念性描述183.6 應(yīng)用程序的組成部分19一、Activity19二、Intent Receiver20
11、三、Service20四、Content Provider213.7 應(yīng)用程序的生命周期211 活動的生命周期222 服務(wù)的生命周期233 廣播接收器的生命周期23第四章 圖吧汽車衛(wèi)士244.1 簡介244.2 功能244.3 相關(guān)界面254第五章 終端軟件儀表盤的實現(xiàn)265.1 簡介265.2 南郵衛(wèi)士的源文件結(jié)構(gòu)265.3 AndroidManifest.xml文件275.4 源代碼文件和布局文件275.5其他資源文件28結(jié)束語29致 謝30參考文獻(xiàn)31附錄325第一章 緒言1.1 研究背景及意義 隨著科技的發(fā)展,移動智能終端逐漸走進(jìn)人們的視線,相關(guān)應(yīng)用越來越廣泛,并在人們的日常生活中扮演
12、著越來越重要的角色。因此,關(guān)鍵應(yīng)用程序的開發(fā)成為影響移動智能終端普及的重要因素,設(shè)計并開發(fā)實用、方便的應(yīng)用程序具有重要的意義和良好的市場前景。Android作為當(dāng)前最流行的操作平臺,自然也存在著大量的應(yīng)用服務(wù)需求。隨著計算機(jī)軟硬件技術(shù)、總線技術(shù)、電子和微機(jī)技術(shù)等的高速發(fā)展,控制系統(tǒng)臃腫、接線布線復(fù)雜、占用空間大的傳統(tǒng)機(jī)械式儀表漸漸被淘汰。1儀表盤作為汽車整個系統(tǒng)中十分重要的部分,是提高汽車綜合性能的重要方面之一。汽車儀表盤作為汽車與駕駛員進(jìn)行信息交流的窗口,要求儀表盤能迅速準(zhǔn)確地將各種信息用數(shù)字、文字和聲音等形式表現(xiàn)出來。儀表盤上裝有電子顯示裝置及各類儀表警示燈,用來指示汽車運行以及發(fā)動機(jī)運轉(zhuǎn)
13、的狀況,以便駕駛員隨時了解和掌握汽車各系統(tǒng)部件的工作狀態(tài),保證汽車可靠而安全地行駛。2針對傳統(tǒng)儀表和現(xiàn)有儀表存在的不足,提出了一種新型的儀表盤設(shè)計方案,在手機(jī)上顯示汽車上的行駛速度、電瓶電壓、發(fā)動機(jī)轉(zhuǎn)速,無論車主是在車內(nèi),還是在車外、辦公地點都可以查看車輛的情況。在有藍(lán)牙傳遞數(shù)據(jù)的基礎(chǔ)上,我們研究這個項目,使得數(shù)據(jù)的傳輸突破距離的限制,更加智能,更加便捷。現(xiàn)如今,隨著汽車電子的發(fā)展,汽車內(nèi)電子產(chǎn)品越來越多,汽車發(fā)動機(jī)、底盤和車身等電控系統(tǒng)中的電控單元數(shù)量不斷增加,同時它們之間的通信也越來越重要。在汽車內(nèi)利用網(wǎng)絡(luò)技術(shù),可大大提高系統(tǒng)之間信息傳遞的可靠性,同時可大大減少汽車線束的數(shù)量,降低汽車電氣
14、系統(tǒng)的成本。1.2 課題的主要工作該畢業(yè)設(shè)計課題需要運用相關(guān)計算機(jī)語言編程環(huán)境,在電腦上設(shè)計出一個原始數(shù)據(jù)的錄入界面和數(shù)據(jù)的儀表盤可視化程序,導(dǎo)入手機(jī)中,形成一個應(yīng)用軟件,顯示當(dāng)前的車輛行車速度,車輛電瓶電壓,車輛發(fā)動機(jī)轉(zhuǎn)速, 車輛冷卻液溫度,讓生活更加舒適方便。本課題的目標(biāo)是研究出一個在Android平臺上數(shù)據(jù)的可視化儀表盤。首先應(yīng)學(xué)會Android開發(fā)平臺的工作原理,然后學(xué)習(xí)設(shè)計 Android平臺下儀表盤的界面,主要包括界面的實現(xiàn)、控件的使用、界面的布局和其他模塊等內(nèi)容,結(jié)合汽車儀表盤上的各種數(shù)據(jù),將準(zhǔn)確的車輛情況以友好的方式呈現(xiàn)給用戶,使用戶可以更加賞心悅目地體驗本軟件的服務(wù)。課題任務(wù)
15、的主要內(nèi)容分為兩個部分: (1)設(shè)計一個提供原始數(shù)據(jù)的錄入界面,能向手機(jī)上的基于Android平臺的車輛管理系統(tǒng)提供車輛行車速度、車輛電瓶電壓、車輛發(fā)動機(jī)轉(zhuǎn)速、車輛冷卻液溫度。 (2)設(shè)計數(shù)據(jù)的儀表盤可視化程序。為此需要學(xué)習(xí)的主要內(nèi)容包括以下方面:對Java有熟悉的了解和大致的掌握;搭建開發(fā)環(huán)境,了解Eclipse安卓開發(fā)環(huán)境,利用其提供的ADT插件和SDK等工具;設(shè)計儀表盤界面及發(fā)動機(jī)轉(zhuǎn)速、車速、溫度、時間及行駛里程等實時數(shù)據(jù)的顯示。此外需要注意軟件要具有可擴(kuò)展性,以便在今后的開發(fā)中添加其他實用功能。論文的主要內(nèi)容包括:第1章 為緒言,主要介紹了課題的研究背景及意義,課題的主要研究工作等。第
16、2章 為汽車儀表盤在硬件上的各種參數(shù)數(shù)據(jù)及硬件系統(tǒng)的構(gòu)成,CAN模塊的一系列特點功能等。第3章 是講述Android平臺開發(fā)工具Eclipse的搭建及其目錄結(jié)構(gòu),另外論述了Android應(yīng)用程序的組成部分和生命周期。第4章 簡單介紹了現(xiàn)有的APP“圖吧汽車衛(wèi)士”的主要功能及其相關(guān)UI界面,其中包括它所顯示的儀表盤界面。第5章 主要講述了本次畢業(yè)設(shè)計課題研究“南郵衛(wèi)士”工程所包含的源代碼文件、布局文件及其他資源文件。第二章 汽車儀表盤概述本章主要介紹了汽車上儀表盤各項數(shù)據(jù)的顯示及接口技術(shù)的功能,這是硬件方面的技術(shù)。2.1 基本介紹 不同汽車的儀表不盡相同。但是一般汽車的常規(guī)儀表有車速里程表、轉(zhuǎn)速
17、表、機(jī)油壓力表、水溫表、燃油表、充電表等?,F(xiàn)代汽車儀表盤的面膜下制作了各式各樣的指示燈或警報燈,例如冷卻液液面警報燈、燃油量指示燈、清洗器液面指示燈、充電指示燈、遠(yuǎn)近光變光指示燈、變速器擋位指示燈、制動防抱死系統(tǒng)(ABS)指示燈、驅(qū)動力控制指示燈、安全氣囊(SRS) 警報燈等。32.2具體類別 車速里程表車速里程表實際上由兩個表組成。一個是車速表,另一個是里程表。 傳統(tǒng)的車速表是機(jī)械式的。典型的機(jī)械式里程表連接一根軟軸軟軸內(nèi)有一根鋼絲纜。軟軸另一端連接到變速器某一個齒輪上。齒輪旋轉(zhuǎn)帶動鋼絲纜旋轉(zhuǎn)鋼絲纜帶動里程表罩圈內(nèi)一塊磁鐵旋轉(zhuǎn)。罩圈與指針聯(lián)接并通過游絲將指針置于零位。磁鐵旋轉(zhuǎn)速度的快慢引起磁
18、力線大小的變化。平衡被打破指針因此被帶動。這種車速里程表簡單實用被廣泛用于大小型汽車上。不過隨著電子技術(shù)的發(fā)展?,F(xiàn)在很多轎車儀表已經(jīng)使用電子車速表,常見的一種是從變速器上的速度傳感器獲取信號,通過脈沖頻率的變化使指針偏轉(zhuǎn)或者顯示數(shù)字。 里程表是一種數(shù)字式儀表,它通過計數(shù)器鼓輪的傳動齒輪與車速表傳動軸上的蝸桿嚙合,使計數(shù)器鼓輪轉(zhuǎn)動。其特點是上一級鼓輪轉(zhuǎn)一整圈。下一級鼓輪轉(zhuǎn)110圈。同車速表一樣,目前里程表也有電子式里程表,它從速度傳感器獲取里程信號。電子式里程表累積的里程數(shù)字存儲在非易失性存儲器內(nèi),在無電狀下態(tài)數(shù)據(jù)也能保存。 轉(zhuǎn)速表轉(zhuǎn)速表一般設(shè)置在儀表板內(nèi)。與車速里程表對稱地放置在一起。轉(zhuǎn)速表是
19、按照磁性原理工作的它接收點火線圈中初級電流中斷時產(chǎn)生的脈沖信號。并將此信號轉(zhuǎn)換為可顯示的轉(zhuǎn)速值。發(fā)動機(jī)轉(zhuǎn)速越快,點火線圈產(chǎn)生的脈沖次數(shù)越多,表上顯示的轉(zhuǎn)速值就越大。 現(xiàn)在轎車一般都是電子式轉(zhuǎn)速表,有指針式和液晶數(shù)字顯示式。表內(nèi)有數(shù)字集成電路它將點火線圈輸送過來的電壓脈沖經(jīng)過計算后驅(qū)動指針移動或數(shù)字顯示。另外還有一種轉(zhuǎn)速表是從發(fā)電機(jī)取出脈沖信號送到轉(zhuǎn)速表電路解釋后顯示轉(zhuǎn)速值。不過因受發(fā)電機(jī)皮帶打滑等因素影響。數(shù)值不太精確。 機(jī)油壓力表機(jī)油壓力表的傳感器是一種壓阻式傳感器。用螺紋固連在發(fā)動機(jī)機(jī)油管路上。由機(jī)油壓力推動接觸片在電阻上移動,使阻值變化從而影響到通過儀表到地的電流量。驅(qū)動指針擺動。由于機(jī)
20、油壓力有一定的壓力范圍,為了清晰明了。目前有許多汽車的機(jī)油壓力表用指示燈表示。如果發(fā)動機(jī)運轉(zhuǎn)時它仍然亮著。就表示發(fā)動機(jī)潤滑系統(tǒng)可能不正常了。 水溫表水溫表的傳感器是一種熱敏電阻式傳感器。用螺紋固定在發(fā)動機(jī)冷卻水道上。熱敏電阻決定了流經(jīng)水溫表線圈繞組的電流大小。從而驅(qū)動表頭指針擺動。以前汽車發(fā)動機(jī)的冷卻水都是用自來水來充當(dāng)現(xiàn)在很多汽車發(fā)動機(jī)冷卻系統(tǒng)都用專門的冷卻液。因此也稱為冷卻液溫度表。水溫表燃油表內(nèi)有兩個線圈。分別在 F”與E”一側(cè),傳感器是一個由浮子高度控制的可變電阻。阻值變化決定兩個線圈的磁力線強(qiáng)弱也就決定了指針的偏轉(zhuǎn)方向。水溫表和燃油表也有用指示燈表示的。水溫指示燈亮表示水溫偏高。燃油
21、指示燈亮表示燃油已近低點作為輔助性提醒。指示燈和警報燈1.正時齒形帶指示燈某些采用正時齒形帶傳動和上置式凸輪軸的進(jìn)口汽車,一般都限制發(fā)動機(jī)正時齒形帶的使用期限(大約 l0萬km),到時候必須更換。為了使維修人員能夠按時更換正時齒形帶,在儀表盤上設(shè)置了正時帶使用期限指示燈TBELT”,使用中需要注意以下幾點:(1)當(dāng)指示燈亮起,應(yīng)立即觀察里程表,若累計行駛里程達(dá)到或超過l0萬km,必須更換正時齒形帶,否則正時齒形帶可能斷裂,使發(fā)動機(jī)無法正常工作。(2) 更換新正時齒形帶后,要撥開里程表盤上的復(fù)位開關(guān)外面的橡皮塞,用小圓棒按壓一下里面的復(fù)位開關(guān),使正時齒形帶指示燈熄滅。若操作復(fù)位開關(guān)后指示燈不熄滅
22、,可能是復(fù)位開關(guān)失靈或線路搭鐵,應(yīng)檢修和排除故障。(3)更換新正時齒形帶后還要將里程表拆下來,把里程表上所有的讀數(shù)都調(diào)整到“0”位。(4)如果汽車尚未行駛l0萬km指示燈已經(jīng)發(fā)亮,可以按壓復(fù)位開關(guān)使正時齒形帶指示燈熄滅(5)如果在指示燈發(fā)亮之前更換正時齒形帶,應(yīng)拆下里程表,重新設(shè)定區(qū)間計數(shù)器,使里程表內(nèi)的區(qū)間計數(shù)器齒輪的零位對準(zhǔn)其傳動齒輪。(6)如果只更換里程表而不更換正時齒形帶,應(yīng)把計數(shù)器齒輪設(shè)定在原里程表的位置上。2.排氣溫度警報燈 現(xiàn)代轎車由于在排氣管上安裝了三效催化轉(zhuǎn)化器,所以排氣溫度有所提高,但是過高的排氣溫度容易造成三效催化轉(zhuǎn)化器損壞,因此此類汽車又安裝了排氣溫度警報裝置。當(dāng)排氣溫
23、度警報燈點亮?xí)r,駕駛?cè)藨?yīng)當(dāng)立即降低車速或停車,待排氣溫度下降以后,該警報燈會自動熄滅(但是熔斷式排氣溫度警報燈點亮后,如果不加以調(diào)整或維修,會一直亮著),如果排氣溫度警報燈不熄滅,應(yīng)該查明原因,排除故障以后再繼續(xù)行駛。3.制動器警報燈 制動器警報燈呈現(xiàn)紅色,圖案是圓圈內(nèi)有一個 “!”符號。如果紅色制動器警報燈點亮,說明制動系統(tǒng)存在下列情況:(1)制動器的摩擦片嚴(yán)重磨損;(2)制動液液面過低;(3)駐車制動器已經(jīng)拉緊(駐車制動開關(guān)閉合);(4)在一般情況下,若紅色制動器警報燈點亮,ABS警報燈會同時亮起,因為在常規(guī)制動系統(tǒng)有故障的情況下,ABS也無法發(fā)揮應(yīng)有的作用。4.制動防抱死警報燈 制動防抱
24、死警報燈呈現(xiàn)黃色(或琥珀色),圖案是圓圈內(nèi)有“ABS”字樣。對于裝備防抱死制動系統(tǒng)(ABS)的汽車,將點火開關(guān)轉(zhuǎn)至“ON”位時,儀表盤上的ABS警報燈點亮 3 s 6 s,這是ABS的自檢過程,屬于正?,F(xiàn)象。自檢過程一結(jié)束,如果ABS正常,該警報燈就會熄滅。如果自檢后ABS警報燈持續(xù)點亮,說明 ABS電控單元檢測到有不利于防抱死制動系統(tǒng)正常運行的故障 (例如當(dāng)車速超過20 kmh時,車輪轉(zhuǎn)速傳感器信號不正常),或EBV(電子制動力分配系統(tǒng))已經(jīng)關(guān)閉。在這種情況下如果繼續(xù)行駛,由于制動系統(tǒng)的功能已經(jīng)受到影響,電子制動力分配系統(tǒng)不再調(diào)節(jié)后輪的制動力,制動時后輪可能提前抱死或出現(xiàn)甩尾現(xiàn)象,因而有發(fā)生
25、事故的危險,應(yīng)該進(jìn)行檢修。 在車輛行駛中,ABS警報燈閃爍或常亮表示故障的程度不同,閃爍表示故障已經(jīng)被ECU確認(rèn)并且存儲;常亮表示ABS的功能喪失。如果在行車中發(fā)覺汽車的制動性能不正常,但是ABS警報燈不亮,說明故障出在制動系統(tǒng)的機(jī)械部分和液壓部件上,而不在電子控制系統(tǒng)。5 驅(qū)動防滑控制指示燈 驅(qū)動防滑控制系統(tǒng)(ASR)指示燈的圖案是圓圈內(nèi)有一個“”符號。例如一汽寶來18T 轎車具有驅(qū)動防滑控制功能,當(dāng)汽車加速時,若ASR檢測到車輪有滑轉(zhuǎn)的趨勢,就通過間歇關(guān)閉噴油和推遲點火提前角來降低發(fā)動機(jī)的輸出轉(zhuǎn)矩,以調(diào)節(jié)牽引力,防止驅(qū)動輪打滑。 ASR在任何轉(zhuǎn)速范圍內(nèi)都能協(xié)同ABS一起工作。當(dāng)點火開關(guān)接通
26、后,ASR自動啟用,即所謂“缺省選擇”。駕駛?cè)丝梢酝ㄟ^儀表盤上的ASR按鈕手動取消驅(qū)動防滑控制,當(dāng)儀表盤上的ASR指示燈亮起,表示 ASR已經(jīng)關(guān)閉。 在下列情況下,需要車輪有一定程度的打滑,應(yīng)當(dāng)關(guān)閉 ASR系統(tǒng)。(1)車輪安裝了防滑鏈。(2) 轎車在積雪或松軟路面上行駛。(3)轎車陷在某處,需要前后移動,擺脫困境。(4)轎車在坡道上起步,但是一側(cè)車輪的附著力極低時(例如右邊輪胎在冰面上,而左邊輪胎在干燥的路面上)。 如果不存在上述情況,則不要關(guān)閉ASR。在汽車行駛過程中ASR指示燈一旦亮起,說明電控單元 (ECU)已經(jīng)關(guān)閉驅(qū)動防滑系統(tǒng),駕駛?cè)藭杏X到轉(zhuǎn)向盤操縱沉重。根據(jù)ABSASR系統(tǒng)的工作原
27、理,當(dāng)該系統(tǒng)出現(xiàn)故障時,輪速傳感器信號的傳輸會中斷,使汽車上其他需要輪速信號才能正常工作的控制系統(tǒng) (例如轉(zhuǎn)向助力系統(tǒng))同時受到影響,因此只有排除了 ASR的故障,轉(zhuǎn)向盤操縱沉重的現(xiàn)象才會隨之消失。6.安全氣囊指示燈 安全氣囊系統(tǒng)(SRS)指示燈有3種顯示方法,一是 “SRS”字樣,二是“AIR BAG”字樣(1992年8月以前生產(chǎn)的豐田汽車),三是“氣囊保護(hù)乘員”圖形。 SRS指示燈的主要功用是指示安全氣囊系統(tǒng)是否處于正常狀態(tài),同時擁有故障自診斷功能。如果點火開關(guān)轉(zhuǎn)到ON(或ACC)位置后SRS指示燈一直發(fā)亮,調(diào)取故障代碼又顯示正常,說明蓄電池(或SRS電控單元的備用電源)的電壓過低,但是S
28、RS電控單元設(shè)計時未將此故障編成代碼存入存儲器,所以沒有故障代碼顯示,當(dāng)電源電壓恢復(fù)正常約10s后,SRS指示燈將自動熄滅。由于SRS平時不使用,一旦使用之后就報廢,所以該系統(tǒng)不像汽車上的其他系統(tǒng)那樣在使用過程中表現(xiàn)出故障現(xiàn)象來,必須依靠自診斷功能找出故障原因,因此SRS的指示燈和故障代碼就成為最重要的故障信息來源和診斷依據(jù)。7.危險警報燈 危險警報燈用于汽車出現(xiàn)重大故障或緊急情況時向其他車輛和行人發(fā)出警示。危險警報信號的表示方式是前、后、左、右轉(zhuǎn)向燈同時閃爍。 危險警報燈由獨立的開關(guān)控制,一般與轉(zhuǎn)向信號燈共用一個閃光器。當(dāng)接通危險警報燈開關(guān)后,兩側(cè)的轉(zhuǎn)向指示燈電路同時接通,前、后、左、右轉(zhuǎn)向
29、燈及儀表盤上的轉(zhuǎn)向指示燈同時閃爍。由于危險警報燈電路將閃光器與蓄電池連接,因此危險警報燈在點火開關(guān)關(guān)閉(OFF)和停車時也可以使用。2.3硬件系統(tǒng)介紹雖然Android是作為一款手機(jī)軟件平臺進(jìn)行開發(fā)的應(yīng)用程序框架和應(yīng)用程序,但其本質(zhì)是一個嵌入式軟件開發(fā)平臺。若將Android用于車載虛擬儀表系統(tǒng)的開發(fā),需要對儀表系統(tǒng)應(yīng)用的特點進(jìn)行調(diào)整。系統(tǒng)中主要的硬件模塊有音頻模塊、CAN模塊、液晶顯示模塊、串口和以太網(wǎng)通信模塊,如下圖所示。音頻模塊 CAN模塊系統(tǒng)硬件平臺 串口以太網(wǎng)通信模塊 液晶顯示模塊 圖2.3-1 硬件系統(tǒng)架構(gòu) 以嵌入式系統(tǒng)的硬件為背景,對主要部件給予客觀的分類和評價。 硬件是軟件的基
30、石,固然它硬件是有多么重要。嵌入式系統(tǒng)開發(fā)與軟件開發(fā)有巨大的差別。只有充分了解硬件,軟件才能更大限度地挖掘硬件的能力。 所謂硬件系統(tǒng),是指構(gòu)成計算機(jī)的物理設(shè)備,即由機(jī)械、光、電、磁器件構(gòu)成的具有計算、控制、存儲、輸入和輸出功能的實體部件。如CPU、存儲器、軟盤驅(qū)動器、硬盤驅(qū)動器、光盤驅(qū)動器、主機(jī)板、各種卡及整機(jī)中的主機(jī)、顯示器、打印機(jī)、繪圖儀、調(diào)制解調(diào)器等等,整機(jī)硬件也稱硬設(shè)備。 隨著電子系統(tǒng)的復(fù)雜化,系統(tǒng)設(shè)計已經(jīng)成為一門重要的學(xué)科,傳統(tǒng)的反復(fù)試驗法已經(jīng)越來越不適應(yīng)時代的發(fā)展。發(fā)展迅速的軟硬件協(xié)同設(shè)計技術(shù)越來越受到人們的重視。它是在系統(tǒng)目標(biāo)要求的指導(dǎo)下,通過綜合分析系統(tǒng)軟硬件功能及現(xiàn)有資源,最
31、大限度地挖掘系統(tǒng)軟硬件之間的并發(fā)性,協(xié)調(diào)設(shè)計軟硬件體系結(jié)構(gòu),以使系統(tǒng)工作在最佳工作狀態(tài)。2.4 硬件系統(tǒng)結(jié)構(gòu)1. 單總線結(jié)構(gòu)折疊 即用一組系統(tǒng)總線將計算機(jī)系統(tǒng)的各部分連接起來,各部分之間可以通過總線交換信息。這種結(jié)構(gòu)的優(yōu)點是易于擴(kuò)充新的I/O設(shè)備,并且各種I/O設(shè)備的寄存器和主存器的存儲單元可以統(tǒng)一編址,使CPU訪問I/O設(shè)備更方便靈活;其缺點是同一時刻只能允許掛在總線上的一對設(shè)置之間互相傳送信息,也即分時使用總線,這就限制了信息傳送的吞吐量,這種結(jié)構(gòu)一般用在微型計算機(jī)和小型計算機(jī)中。42. 雙總線結(jié)構(gòu)折疊 為了消除信息傳送的瓶頸,常設(shè)置多組總線,最常見的是在主存和CPU之間設(shè)置一組專用的高速
32、存儲總線。這種結(jié)構(gòu)的優(yōu)點是控制線路簡單,對IO總線的傳送速率要求低;其缺點是CPU的工作效率較低,因為I/O設(shè)備與主存之間的信息交換要經(jīng)過CPU進(jìn)行。以存儲器為中心的雙總線結(jié)構(gòu)中,主存儲器可通過存儲總線與CPU交換信息,同時還可以通過系統(tǒng)總線與I/O設(shè)備交換信息,這種結(jié)構(gòu)的優(yōu)點是信息傳送速率高;其缺點是需要增加硬件的投資。3 采用通道的大型系統(tǒng)結(jié)構(gòu)折疊為了擴(kuò)大系統(tǒng)的功能和提高系統(tǒng)的效率,在大、中型計算機(jī)系統(tǒng)中采用通道結(jié)構(gòu),在這種結(jié)構(gòu)中,一臺主機(jī)可以連接多個通道,一個通道可以連接一臺或多臺I/O控制器,一臺I/O控制器又可以連接一臺或者多臺I/O設(shè)備,所以它具有較大的擴(kuò)展余地,另外由通道來管理和
33、控制I/O設(shè)備,減輕了CPU負(fù)擔(dān),提高了整個系統(tǒng)的效率。嵌入式系統(tǒng)的硬件設(shè)計與其應(yīng)用場合和應(yīng)用系統(tǒng)的不同而有所差別。一般情況下,用戶可以根據(jù)自己的要求,選用合適的微處理器類型,根據(jù)相應(yīng)的接口電路搭配不同類型外設(shè),構(gòu)成不同用途、不同不同規(guī)模的應(yīng)用系統(tǒng)。這些系統(tǒng),無論其規(guī)模多大,從硬件上看,都可以分為由核心電路構(gòu)成的最小系統(tǒng)以及各種各樣外部設(shè)備所需的外圍接口電路。通常最小硬件系統(tǒng)指的是,由處理器以及SDRAM和FLASH構(gòu)成的存儲電路,再加上一些必要的輔助電路構(gòu)成的核心系統(tǒng)。最小硬件系統(tǒng)不僅是整個硬件系統(tǒng)的核心部分,它的構(gòu)成對軟件系統(tǒng)也有重要的影響,其構(gòu)成決定了處于軟件系統(tǒng)最底層的Bootload
34、er的設(shè)計,同時它也是嵌入式操作系統(tǒng)正常運行的基礎(chǔ)。換而言之,最小硬件系統(tǒng)及其之上的最底層的最小軟件系統(tǒng)構(gòu)成了嵌入式系統(tǒng)最基本最核心的部分。2.5 CAN模塊1、 介紹控制局域網(wǎng)CAN (controller area network)是國際上應(yīng)用最廣泛的現(xiàn)場總線之一.它作汽車環(huán)境中的微控制訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡(luò),CAN幾乎成了汽車設(shè)計領(lǐng)域一種必須采用的技術(shù)手段。 CAN模塊是一款對整車各電子控制裝置之間實現(xiàn)通訊數(shù)據(jù)轉(zhuǎn)發(fā)的智能電控設(shè)備,從而使整車實現(xiàn)車載電控裝置區(qū)域性網(wǎng)絡(luò)控制系統(tǒng)。采用了功能強(qiáng)大的帶有兩路CAN控制器的16位微控制器。支持CAN2.0A
35、和CAN2.0B協(xié)議。按SAE J1939標(biāo)準(zhǔn)協(xié)議開發(fā).支持K線診斷功能??赏瑫r適用于高速和低速CAN總線網(wǎng)絡(luò)。具有很好的密封性,可使用于各種惡劣環(huán)境。52、 功能概述當(dāng)車載各電子控制裝置在不具有CAN功能(如果是不具有CAN通訊能力的電控裝置,使得其與其它電控裝置相互之間不能進(jìn)行數(shù)據(jù)通訊,這樣造成各電控裝置的電控能力差,功能單一,可擴(kuò)展性差),不能直接進(jìn)行通訊的情況下,采用CAN模塊產(chǎn)品就可以實現(xiàn)具有CAN功能的車載電控網(wǎng)絡(luò)系統(tǒng),各電控裝置相互之間可以相互傳遞所需的電控信號,使得整車的電控系統(tǒng)作用更加強(qiáng)大。3、 功能特點(1)可以通過CAN總線網(wǎng)絡(luò)方便地實現(xiàn)整車中各節(jié)點的數(shù)據(jù)信息的接收和發(fā)送
36、;(2) 可以實時采集發(fā)動機(jī)各傳感器信息,及時了解發(fā)動機(jī)的運行狀態(tài);(3) 可以對系統(tǒng)進(jìn)行診斷;(4) 具有多樣的輸入和輸出接口,可靈活地實現(xiàn)信號功能的轉(zhuǎn)換;4、 運用情況其主要功能是發(fā)動ECU(電子控制單元)通過CAN模塊連接到CAN總線,實現(xiàn)與TCU(Transmission Control Unit,即自動變速箱控制單元)、HCU(ABS執(zhí)行機(jī)構(gòu))、IC(集成電路)等模塊的數(shù)據(jù)轉(zhuǎn)輸及數(shù)據(jù)轉(zhuǎn)換控制ECU、CAN模塊連接上水溫、油機(jī)壓力、轉(zhuǎn)速等傳感器,將傳感器數(shù)據(jù)與ECU控制時的數(shù)據(jù)發(fā)送給TCU、HCU、IC,且又把TCU、HCU的控制功能信息通過CAN模塊傳遞給ECU。第三章 系統(tǒng)開發(fā)工具
37、概述 本章內(nèi)容介紹了關(guān)于Android平臺的重要開發(fā)工具Eclipse以及其中的目錄結(jié)構(gòu)。3.1 Eclipse簡介 Eclipse 是一個開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。63.2開發(fā)環(huán)境的搭建 可以從網(wǎng)上下載eclipse、android-sdk-windows、ADT。Eclipse是做Java開發(fā)必須的工具,sdk是一個集成開發(fā)環(huán)境,而ADT插件里包括了android開發(fā)里的工作類、模
38、擬器和一些包。由于我有一個安卓手機(jī),所以在搭建過程中,就不需要再去配置虛擬機(jī)了。本課題eclipse采用了android 4.4的版本。搭建好的平臺如下圖所示。7圖3.2-1 Android開發(fā)平臺的搭建 下圖就相當(dāng)于一個手機(jī)界面,我可以將旁邊一列的控件放在這個布局上,使它組合起來,完成相對應(yīng)的功能,發(fā)揮其作用。圖3.2-2 布局界面3.3 Android目錄結(jié)構(gòu)說明 (1)src 編寫java代碼的目錄,遵循java的命名規(guī)范、分包 (2)gen 包含了android 的資源文件的標(biāo)識符,不需要程序員維護(hù),自動添加的,而且有分類。注:不可輕易刪除。 (3)assets 原生資源文件:保存應(yīng)用
39、的資源文件例如音頻文件、視頻文件或者不經(jīng)常被用戶修改的文件。 (4)bin 包含編譯生成apk的應(yīng)用程序 (5)libs 包含第三方類庫的jar包 (6)res 例如drawable-XXdpi、包含android應(yīng)用中的圖片資源文件,按照清晰度:高清、清晰度低、比較清晰、超高清、非常超高清 layout:布局文件,完成UI控件的堆放 menu:菜單,android的應(yīng)用菜單 values:字符資源文件,通常使用在手機(jī)的國際化 (7)AndroidManifest.xml:清單文件3.4 Android系統(tǒng)架構(gòu) 由于Android最初是基于手機(jī)軟件開發(fā)平臺進(jìn)行設(shè)計的,而且其中大部分模塊都是為手
40、機(jī)通信所設(shè)計,為節(jié)約開發(fā)板資源,需要將Android系統(tǒng)中不必要的組件剪裁掉,保留必要的最小系統(tǒng)。因為必須對框架進(jìn)行修改,將與電話、短信等相關(guān)的模塊移除。僅留下必需的Android的核心模塊。包括Package Manager、System Service、Input Service、Hardware Service和System Server等。通過修改System Server的加載過程可以去掉不需要的服務(wù)和模塊,另外還要實現(xiàn)底層硬件的驅(qū)動程序,重新交叉編譯Linux 2.6內(nèi)核,并在驅(qū)動程序?qū)崿F(xiàn)的基礎(chǔ)上封裝函數(shù)庫,以便Android的應(yīng)用程序通過JNI的方式訪問底層驅(qū)動。經(jīng)過定制和修改過
41、的Android系統(tǒng)架構(gòu)如下圖所示。8界面模塊CAN模塊告警模塊數(shù)據(jù)訪問模塊應(yīng)用程序模塊Dalvik虛擬機(jī)基礎(chǔ)核心函數(shù)庫CAN驅(qū)動顯示驅(qū)動網(wǎng)絡(luò)驅(qū)動串口驅(qū)動音頻驅(qū)動Linux內(nèi)核2.6圖3.4-1 定制的Android系統(tǒng)架構(gòu)3.5 Android應(yīng)用程序概念性描述Android 應(yīng)用程序包含了工程文件、代碼和各種資源,主要由 Java 語言編寫,每一個應(yīng)用程序?qū)⒈痪幾g成Android 的一個 Java應(yīng)用程序包(*.apk)。 由于 Android 系統(tǒng)本身是基于 Linux 操作系統(tǒng)運行的,因此 Android 應(yīng)用程序也運行于 Linux 環(huán)境中,它們具有以下的特點: (1)在默認(rèn)情況下,
42、每一個應(yīng)用程序運行于它們的 Linux 進(jìn)程中; (2)每個進(jìn)程具有自己的虛擬機(jī)(VM),所以每個應(yīng)用程序運行于獨立的環(huán)境中; (3)在默認(rèn)情況下,每一個應(yīng)用程序具有唯一的Linux用戶ID。通過設(shè)置權(quán)限讓應(yīng)用程序只對用戶和應(yīng)用程序本身可見,也有一些方法可以把它們暴露給其他的應(yīng)用程序。3.6 應(yīng)用程序的組成部分 一般情況下,Android應(yīng)用程序由以下 4 種組件構(gòu)成:活動(Activity)、廣播接收器(BroadcastReceiver)、服務(wù)(Service)、內(nèi)容提供者(Content Provider)。 一個 Android 應(yīng)用程序是一個包(Package),包中可能包含一個或者
43、多個 Android組件(component)。 但是,并不是每一個Android應(yīng)用程序都需要這四種構(gòu)造塊,這不是必須的,某些時候,我們只需要這四種中的幾種組合成我們的應(yīng)用。當(dāng)我們明確了我們的應(yīng)用需要哪些構(gòu)造塊后,我們就需要在AndroidManifest.xml中登記這些構(gòu)造塊的清單。這是一個XML配置文件,這個配置文件用于定義我們的應(yīng)用程序的組件、組件的功能及必要條件等。這個配置文件是每個Android應(yīng)用必需的。對于AndroidMainfest.xml的Schema,參考SDK包附帶的文檔。以下,我們對四種構(gòu)造塊做一些詳細(xì)的說明:一、ActivityActivity是Android構(gòu)
44、造塊中最基本的一種,在應(yīng)用中,一個activity通常就是一個單獨的屏幕。每一個activity都被實現(xiàn)為一個獨立的類,并且繼承于Activity這個基類。這個activity類將會顯示由幾個Views控件組成的用戶接口,并對事件做出響應(yīng)。大部份的應(yīng)用都會包含多個的屏幕。例如,一個短消息應(yīng)用程序?qū)幸粋€屏幕用于顯示聯(lián)系人列表,第二個屏幕用于寫短消息,同時還會有用于瀏覽舊短消息及進(jìn)行系統(tǒng)設(shè)置的屏幕。每一個這樣的屏幕,就是一個activity。從一個屏幕導(dǎo)航到另一個屏幕是很簡單的。在一些應(yīng)用中,一個屏幕甚至?xí)祷刂到o前一個屏幕。 當(dāng)一個新的屏幕打開后,前一個屏幕將會暫停,并保存在歷史堆棧中。用戶
45、可以返回到歷史堆棧中的前一個屏幕。當(dāng)屏幕不再使用時,還可以從歷史堆棧中刪除。默認(rèn)情況下,Android將會保留從主屏幕到每一個應(yīng)用的運行屏幕。Android使用了Intent這個特殊類,實現(xiàn)在屏幕與屏幕之間移動。Intent類用于描述一個應(yīng)用將會做什么事。在Intent的描述結(jié)構(gòu)中,有兩個最重要的部分:動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型有:MAIN(activity的門戶)、VIEW、PICK、EDIT等。而動作對應(yīng)的數(shù)據(jù)則以URI的形式進(jìn)行表示。例如:要查看一個人的聯(lián)系方式,你需要創(chuàng)建一個動作類型為VIEW的intent,以及一個表示這個人的URI。與之有關(guān)系的一個類叫IntentFilt
46、er。相對于intent是一個有效的做某事的請求,一個intent filter則用于描述一個activity(或者Intent Receiver)能夠操作哪些intent。一個activity如果要顯示一個人的聯(lián)系方式時,需要聲明一個IntentFilter,這個IntentFilter要知道怎么去處理VIEW動作和表示一個人的URI。IntentFilter需要在AndroidManifest.xml中定義。 通過解析各種intent,從一個屏幕導(dǎo)航到另一個屏幕是很簡單的。當(dāng)向前導(dǎo)航時,activity將會調(diào)用startActivity(Intent myIntent)方法。然后,系統(tǒng)會在
47、所有安裝的應(yīng)用程序中定義的IntentFilter中查找,找到最匹配myIntent的Intent對應(yīng)的activity。新的activity接收到myIntent的通知后,開始運行。當(dāng)startActivity方法被調(diào)用將觸發(fā)解析myIntent的動作,這個機(jī)制提供了兩個關(guān)鍵好處:A、Activities能夠重復(fù)利用從其它組件中以Intent的形式產(chǎn)生的一個請求;B、Activities可以在任何時候被一個具有相同IntentFilter的新的Activity取代。二、Intent Receiver當(dāng)你希望你的應(yīng)用能夠?qū)σ粋€外部的事件(如當(dāng)電話呼入時,或者數(shù)據(jù)網(wǎng)絡(luò)可用時,或者到了晚上時)做出
48、響應(yīng),你可以使用一個Intent Receiver。雖然Intent Receiver在感興趣的事件發(fā)生時,會使用NotificationManager通知用戶,但它并不能生成一個UI。Intent Receiver在AndroidManifest.xml中注冊,但也可以在代碼中使用Context.registerReceiver()進(jìn)行注冊。當(dāng)一個intent receiver被觸發(fā)時,你的應(yīng)用不必對請求調(diào)用intent receiver,系統(tǒng)會在需要的時候啟動你的應(yīng)用。各種應(yīng)用還可以通過使用Context.broadcastIntent()將它們自己的intent receiver廣播給其
49、它應(yīng)用程序。三、Service一個Service是一段長生命周期的,沒有用戶界面的程序。比較好的一個例子就是一個正在從播放列表中播放歌曲的媒體播放器。在一個媒體播放器的應(yīng)用中,應(yīng)該會有多個activity,讓使用者可以選擇歌曲并播放歌曲。然而,音樂重放這個功能并沒有對應(yīng)的activity,因為使用者當(dāng)然會認(rèn)為在導(dǎo)航到其它屏幕時音樂應(yīng)該還在播放的。在這個例子中,媒體播放器這個activity會使用Context.startService()來啟動一個service,從而可以在后臺保持音樂的播放。同時,系統(tǒng)也將保持這個service一直執(zhí)行,直到這個service運行結(jié)束。另外,我們還可以通過使用
50、Context.bindService()方法,連接到一個service上(如果這個service還沒有運行將啟動它)。當(dāng)連接到一個service之后,我們還可以service提供的接口與它進(jìn)行通訊。拿媒體播放器這個例子來說,我們還可以進(jìn)行暫停、重播等操作。四、Content Provider應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件中、SQL數(shù)據(jù)庫中,甚至是任何有效的設(shè)備中。當(dāng)你想將你的應(yīng)用數(shù)據(jù)與其它的應(yīng)用共享時,Content Provider將會很有用。一個Content Provider類實現(xiàn)了一組標(biāo)準(zhǔn)的方法,從而能夠讓其它的應(yīng)用保存或讀取此Content Provider處理的各種數(shù)據(jù)類型。
51、3.7 應(yīng)用程序的生命周期 Android 系統(tǒng)中的不同組件具有不同的生命周期。Android 根據(jù)每個進(jìn)程中運行的組件以及組件的狀態(tài)把進(jìn)程放入一個重要性分級(importance hierarchy)中。Android 進(jìn)程的重要性分級,可以理解成執(zhí)行的優(yōu)先級。9 Android 進(jìn)程的類型包括(按重要性分級排序): (1)前臺(Foreground)進(jìn)程 與用戶當(dāng)前正在做的事情密切相關(guān),不同的應(yīng)用程序組件能夠通過不同的方法使它的宿主進(jìn)程移到前臺。 當(dāng)下面任何一個條件滿足時,都可以考慮將進(jìn)程移到前臺。 1)進(jìn)程正在屏幕的最前端運行一個與用戶交互的Activity(它的onResume()方法
52、被調(diào)用); 2)進(jìn)程有一個正在運行的 BroadcastReceiver(它的BroadcastReceiver.onReceive()方法正在執(zhí)行); 3)進(jìn)程有一個Service,并且在Service的某個方法(Service.onCreate()、Service.onStart()或者Service.onDestroy())內(nèi)有正在執(zhí)行的代碼。 (2)可見(Visible)進(jìn)程 它有一個可以被用戶從屏幕上看到的 Activity,但不在前臺其 onPause()方法被調(diào)用。例如:如果前臺的 Activity 是一個對話框,以前的 Activity 隱藏在對話框之后,就可能出現(xiàn)這種進(jìn)程。這
53、樣的進(jìn)程很重要,一般不允許被殺死,除非為了保證前臺進(jìn)程的運行不得不這樣做。 (3)服務(wù)(Service)進(jìn)程 有一個已經(jīng)用 startService() 方法啟動的 Service,雖然這些進(jìn)程用戶無法直接看到,但它們做的事情卻是用戶所關(guān)心的(例如:后臺 MP3 回放或后臺網(wǎng)絡(luò)數(shù)據(jù)的上傳/下載)。因此,系統(tǒng)將一直運行這些進(jìn)程,除非內(nèi)存不足以維持所有的前臺進(jìn)程和可見進(jìn)程。 (4)后臺(Background)進(jìn)程 擁有一個當(dāng)前用戶看不到的 Activity(它的 onStop()方法被調(diào)用),這些進(jìn)程對用戶體驗沒有直接的影響。如果它們正確執(zhí)行了 Activity 生命周期,系統(tǒng)可以在任意時刻殺死進(jìn)
54、程來回收內(nèi)存,并提供給前面 3 種類型的進(jìn)程使用。系統(tǒng)中通常有很多這樣的進(jìn)程在運行,因此要將這些進(jìn)程保存在 LRU 列表中,以確保當(dāng)內(nèi)存不足時用戶最近看到的進(jìn)程最后一個被殺死。(5)空(Empty)進(jìn)程 不包含任何處于活動狀態(tài)的應(yīng)用程序組件。保留這種進(jìn)程的唯一原因是,當(dāng)下次應(yīng)用程序的某個組件需要運行時,不需要重新創(chuàng)建進(jìn)程,這樣可以提高啟動速度。 以上所說的“進(jìn)程”是從系統(tǒng)運行的角度考慮的,各種不同的進(jìn)程可以理解成 Android 的各種組件的不同狀態(tài)機(jī)(state machine)。如果從應(yīng)用程序的代碼以及運行情況考慮,可以關(guān)注 Android 的各種組件相對應(yīng)的生命周期。 1 活動的生命周期
55、 活動是 Android 中最重要、最基礎(chǔ)的組件,用戶在界面上看到的一個個可以切換的屏幕界面就是 Android中的活動。(1)運行活動的情景:當(dāng)一個活動被啟動時,活動中的 onCreate()、onStart()和 onResume()這 3 個方法被依次調(diào)用,活動對應(yīng)的界面出現(xiàn)在屏幕上。 (2)活動被“覆蓋”的情景:Android 的活動一般都占據(jù)一個完整的屏幕,從當(dāng)前活動啟動另外一個活動時,另一個活動將被啟動到前臺(Foreground),當(dāng)前活動轉(zhuǎn)入后臺(Background),這時活動的 onPasuse()方法將被調(diào)用,活動轉(zhuǎn)入后臺運行。如果活動變?yōu)椴豢梢姡€將調(diào)用 onStop(
56、)方法。在轉(zhuǎn)入后臺時,onStop()是否被調(diào)用取決于活動是否被完全覆蓋,在新的活動有透明部分時,轉(zhuǎn)入后臺的活動依然“可見”,其他情況下(較多數(shù)的情況)活動均進(jìn)入不可見狀態(tài)(被完全覆蓋)。 (3)活動被恢復(fù)的情景:當(dāng)界面上最前面的活動退出后,它所覆蓋的活動將被恢復(fù),這時 onResume()方法將被調(diào)用,活動重新轉(zhuǎn)入前臺運行。 (4)活動完全退出的情景:當(dāng)使用回退(Back)按鈕退出活動時,onDestroy()方法將被調(diào)用,活動關(guān)閉。如果系統(tǒng)缺少內(nèi)存時,也會殺死(kill)后臺的活動,其中優(yōu)先殺死不可見的活動,可見的活動一般不會被殺死。2 服務(wù)的生命周期 服務(wù)可以長時間運行,它的特點是沒有可
57、視化界面。使用 StartService 運行服務(wù)的情景:使用這種方法啟動服務(wù),服務(wù)的 onCreate()和 onStart()這兩個方法將被調(diào)用,服務(wù)會在后臺運行直到退出,退出時將調(diào)用 onDestroy()方法。 使用 bindService 運行服務(wù)的情景:使用這種方法啟動服務(wù),調(diào)用者(也就是服務(wù)的客戶端)將獲得和服務(wù)交互的類,通過其調(diào)用時服務(wù)的相關(guān)內(nèi)容會處于活動狀態(tài)。 3 廣播接收器的生命周期 廣播接收器有一個單一的回調(diào)方法 onReceive(),當(dāng)廣播消息到達(dá)接收器時,Android 將調(diào)用這個方法,并傳遞給包含在這個消息中的 Intent 對象。廣播接收器只有在這個方法的執(zhí)行過
58、程中才處于活動狀態(tài),當(dāng) onReceive()返回后,廣播接收器將不再處于活動狀態(tài)。廣播接收器的功能類似于一個回調(diào)函數(shù),只是單次運行時處于活動狀態(tài)。第四章 圖吧汽車衛(wèi)士4.1 簡介圖吧汽車衛(wèi)士是一款智能的安全行車伴侶系統(tǒng),通過即插迷你終端設(shè)備及智能app軟件,輕松構(gòu)建手機(jī)與汽車的連接橋梁。全方位汽車健康檢查、專業(yè)故障檢測,確保車輛駕駛出行的最佳狀態(tài),摒除安全隱患。同時行駛中,車速、水溫、電壓等異常時,系統(tǒng)即時傳送提醒信息。讓出行倍添安心!圖 4-1 相關(guān)界面參數(shù)4.2 功能主要功能:(1)實時儀表:實時顯示油耗,降低養(yǎng)車費用;(2)行車記錄:記錄行駛里程、里程油耗、油費、平均速度、平均油耗、耗
59、時等信息;(3)駕駛評分:油耗評分、駕駛水平評分等多重評分,可以分享成績給朋友圈和微博好友;還可以和全國其他車主進(jìn)行油耗節(jié)能、駕駛習(xí)慣大比拼;(4)車輛預(yù)警:水溫過高、疲勞駕駛、車速提醒等,多重預(yù)警機(jī)制保障駕車平安;盤等直觀顯示方式。4.3 相關(guān)界面第五章 終端軟件儀表盤的實現(xiàn)5.1 簡介南郵衛(wèi)士是一個簡單的Android應(yīng)用程序,其工程文件名稱為“南郵衛(wèi)士”。南郵衛(wèi)士的圖標(biāo),我采用了一個發(fā)動機(jī)轉(zhuǎn)速的儀表盤,這樣更加鮮明,簡潔明了。圖標(biāo)和運行情況如下圖所示。圖5-1 APP南郵衛(wèi)士的圖標(biāo)圖5-2 運行的界面這個程序是一個簡單的活動,用于啟動一個界面,點擊“南郵衛(wèi)士”的APP圖標(biāo)后,界面上直接會
60、顯示一個大表盤和一個小表盤。5.2 南郵衛(wèi)士的源文件結(jié)構(gòu) “南郵衛(wèi)士”工程的源文件的結(jié)構(gòu)按照目錄樹的方式如下所示: 南郵衛(wèi)士/ |-src (Java源代碼文件) | |-com.rrr.drawdialdemo| | -DrawDialDemoActivity.java| |-com.rrr.view| | -DialView.java|- AndroidManifest.xml (工程描述文件) |- res (資源文件) | |- layout | | - main.xml (布局文件) | - values | - strings.xml (字串資源文件) | -proguard.cfg| -project.properties5.3 AndroidManifest.xml文件 AndroidManifest.xml 文件是這個 Android 應(yīng)用程序的工程描述文件,包含了宏觀上的內(nèi)容,如下所示: activity
- 溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。