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