基于安卓的车载虚拟仪表人机界面设计毕业论文_第1页
基于安卓的车载虚拟仪表人机界面设计毕业论文_第2页
基于安卓的车载虚拟仪表人机界面设计毕业论文_第3页
基于安卓的车载虚拟仪表人机界面设计毕业论文_第4页
基于安卓的车载虚拟仪表人机界面设计毕业论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要虚拟仪表系统是计算机资源(CPU、显示器等)、接口电路(A/D、D/A等)与数据分析、图形用户界面软件有机结合的仪表系统.虚拟仪表具有功能与参数能自动定义、动态画面可视性强的特点.车载虚拟仪表就是在虚拟仪表的基础上,通过汽车上广泛应用的CAN总线进行数据传输,利用计算机的强大资源,加上GPS定位系统和无线上网等系统,构建一个多信息综合显示的仪表系统.仪表总体设计虚拟仪表的功能设计要求是:实现对车辆所有重要部件性能和工作状态的监测,并利用虚拟仪器技术进行多种信息综合显示便于驾驶员实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定的行驶有着重要意义。Android是Google公司和开放手机联盟开发的一种基于Linux的自由及开放源代码的操作系统,可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。Android在如今的全球市场占有极大的份额,因此基于android的车载虚拟仪表人机界面有着广阔的发展前景。关键词:android虚拟仪表车载人机界面目录绪论11.1课题背景11.2相关领域的研究现状 21.3论文的主要研究内容 41.4论文的内容安排 5技术理论介绍与分析 62.1汽车仪表及其显示装置的作用和组成 62.2虚拟仪表技术 72.3REAL210核心板介绍 82.4核心板引脚功能分类 10系统硬件体系的分析与设计 133.1硬件系统构架 133.2硬件系统分为三种典型结构

143.3Cortex-A8介绍 16Android软件系统的定制 194.1Android系统架构 194.2程序重新开发 20应用系统的设计与实现 255.1模块的分类 255.11CAN模块 255.12数据访问模块 255.13功能模块 265.14告警模块 27第六章总结 28绪论1.1课题背景21世纪是经济高速发展的时代,简单而又形象实用的虚拟仪表对于人们来说已经越来越必不可少。虚拟仪表方便的人们的生活,在日常生活中各方各面都有虚拟仪表的影子,车载的虚拟仪表显得尤为显眼。车早就成为了人们日常生活不可分割的一部分,近年来,汽车销量颇为可观。而仪表作为汽车整个系统中十分重要的部分,是提高汽车综合性能的重要方面之一。随着计算机软硬件技术、总线技术、电子技术等的快速发展,控制系统臃肿、接线布线复杂、占用空间大的传统电磁机械仪表渐渐被淘汰,虚拟仪表正以传统机械仪表无法比拟的速度迅猛发展。目前虚拟仪表通常包括纯数字仪表和虚拟仪表盘仪表2种:纯数字仪表成本较低,但功能和界面比较简单,满足不了一般驾驶员的需求;而现有的虚拟仪表盘仪表虽然功能和界面比较丰富,但又存在着开发成本高、可移植性和可重绘性差、可扩展性不足等缺点,不利于大范围的推广与应用。随着android系统的不断发展与完善,它已经融入我们生活的方方面面。由于android是开源的平台,基于android的虚拟仪表,不存在以往阻碍移动产业创新的专有权障碍。而且android系的优越性已经在众多的移动设备上得到验证。因此,选择基于android的车载虚拟仪表人机界面设计变得非常有意义。1.2相关领域的研究现状Android一词的本义指“机器人”,同时也是指Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。安卓主要有这几个优点:1、系统基于Linux,非常稳定,怎么折腾都不死机。2、系统代码年轻并且精简,手机运行比较快。3、系统升级后以前的软件都可用,支持的软件很多。4、安卓操作界面很人性化,象苹果手机一样很多界面都是动态的,酷炫且华丽,并且在图标甚至空白处长按三秒有类似电脑鼠标右键的快捷菜单弹出,很方便。今年来android的发展非常迅速,市场占有率很高,支持的设备广泛,软件众多,Android已然成为行业里的中坚力量。虚拟仪表是伴随着计算机技术和通信技术的高速发展而出现的,是传统硬件到软件的根本转变,对社会的发展有着深远的影响。虚拟仪器技术是美国国家仪器公司(National

Instruments,NI)在1986年提出的一种构成仪器系统的新概念,其基本思想是:用计算机资源取代传统仪器中的输入、处理和输出等部分,实现仪器硬件核心部分的模块化和最小化;用计算机软件和仪器软面板实现仪器测量和控制功能。

所谓虚拟仪器,就是以计算机为核心的硬件平台上,其功能由用户设计和定义,具有虚拟面板,其测试功能由测试软件实现的一种计算机仪器系统。

虚拟仪器的实质是利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果;利用计算机强大的软件功能实现信号数据的运算、分析和处理;利用I/O接口设备完成信号的采集、测量和调理,从而完成各种测试功能的一种计算机仪器系统。使用者利用鼠标或键盘操作虚拟面板,就如同使用一台专用测量仪器一样。因此,虚拟仪器的出现,使测量仪器和计算机的界限模糊了。

虚拟仪器的“虚拟”两字主要包含以下两方面的含义:

(1)虚拟仪器的面板是虚拟的。虚拟仪器面板上的各种“图标”与传统仪器面板上的各种“器件”所完成的功能是相同的。由各种开关、按钮、显示器等图标实现仪器电源的“通”、“断”,被测信号的“输入通道”、“放大倍数”等参数的设置,及测量结果的“数值显示”、“波形显示”等。

传统仪器面板上的器件都是“实物”,而且是由“手动”和“触摸”进行操作的;虚拟仪器前面板是外形与实物相像的“图标”,每个图标的“通”、“断”、“放大”等动作都可以通过操作计算机鼠标或键盘来完成。因此,设计虚拟仪器前面板就是在前面板设计窗口中摆放所需的图标,然后对图标的属性进行设置。

(2)虚拟仪器测量功能是通过对图形化软件流程图的编程来实现的。虚拟仪器是在以PC为核心组成的硬件平台支持下,通过软件编程来实现仪器的测量功能的。因为可以通过不同测试功能软件模块的组合来实现多种测试功能,所以在硬件平台确定后,就有“软件就是仪器”的说法。这也体现了测试技术与计算机深层次的结合。1.3论文的主要研究内容本论文所要实现的内容是以REAL210硬件平台为基础,利用android提供的组件设计虚拟仪表人机界面的各个功能逻辑模块,使得模块设计更为合理模块之间的耦合性更小。从而实现功能更加丰富,操作更加友好,便于升级维护,能更好的满足客服市场的需求。系统的硬件设计方面,系统采用的硬件平台是REAL210,CPU处理速度600MHz~1GHz,基于Cortex-A8架构。系统中主要的硬件模块有音频模块、CAN模块、液晶\t"/data/html/2013-4-28/_blank"显示模块、串口和以太网通信模块。系统软件的设计方面,由于Android最初是基于手机软件开发平台进行设计的,而且其中大部分模块都是为手机通信所设计,为节约\t"/data/html/2013-4-28/_blank"开发板资源,需要将Android系统中不必要的组件剪裁掉,保留必要的最小系统。因此必须对框架进行修改,将与电话、短信等相关的模块移除。仅留下必需的Android的核心模块,包括\t"/data/html/2013-4-28/_blank"Package

Manager、\t"/data/html/2013-4-28/_blank"System

Service、InputService、\t"/data/html/2013-4-28/_blank"HardwareService和SystemServer等。通过修改SystemServer的加载过程可以去掉不需要的服务和模块,另外还要实现底层硬件的驱动程序,重新交叉编译Linux2.6内核,并在驱动程序实现的基础上封装函数库,以便Android的应用程序通过JNI的方式访问底层驱动。1.4论文的内容安排本论文第一章所主要阐述的是虚拟仪表的发展背景,以及相关领域的发展现状。介绍了论文的主要内容,以及内容结构安排。本论文第二章主要是对所选择的技术路线的具体阐述,包括理论依据,以及所涉及到的技术的基本原理的分析。本论文第三章是对系统硬件体系的分析与设计,介绍硬件系统架构,以及需要注意的指标。本论文第四章是对android软件系统的定制,介绍软件开发的环境,以及具体的软件系统设计。本论文第五章是应用系统的设计与实现,通过packagemanager提供的各个APK的信息以菜单方式对各个功能模块进行调用,从而使整个系统的功能实现。本论文第六章是对整个系统的总结与展望,总结当前技术下,设计过程中存在的不足,展望未来系统发展前进方向。技术理论介绍以及分析2.1

汽车仪表及其显示装置的作用和组成

在驾驶员前方台板上都装有仪表报警灯及电子显示装置,用来指示汽车运行以及发动机运转的状况,以便驾驶员随时了解和掌握汽车各系统、各部件的工作状态,保证汽车可靠而安全地行驶。

汽车上较常用的一般有5种仪表和3种相应的传感器,即电流表、机油压力表、水温表、燃油表及车速里程表,机油压力传感器、水温传感器、油量传感器。

仪表板总成分垂直安装式和倾斜安装式两类,二者又各有组合式和分装式#种。分装式仪表板总成,它是由薄钢板先冲压成一块仪表板,然后将每只单个仪表用夹板及螺栓固装在仪表板上。

2.1.2

汽车仪表的使用条件

1.温度

汽车是被广泛使用的交通运输工具,要在各种环境温度下都能正常运行,因此要求汽车仪表在-40~+55℃范围内都能正常工作。温度传感器用于监测冷却液(水箱)温度。

2.湿度

由于汽车仪表工作的环境条件所限,因此它还将受到湿度的影响。潮湿的空气将使仪表零件(特别是黑色金属零件)表面生锈,电气绝缘件的绝缘性能降低甚至漏电。还由于潮湿空气的变冷,使毛细管内的水分凝聚,引起指示误差以致堵塞。因此,金属零件尤其是黑色金属零件要进行表面处理,如电镀、化学处理、喷漆等工艺。要求仪表应能在相对湿度为90%的环境下工作,并通过耐潮试验及绝缘介电强度试验

3.振动

汽车行驶引起的车身振动,发动机高速运转引起的汽车各部件振动,都会影响仪表指示的准确性,缩短仪表的使用寿命,因此必须在仪表板外面加放橡皮减震垫圈等,以保证仪表零件的足够强度和紧固件的牢固性。

4.其他

汽车仪表的工作环境还可能遇到其他气候条件(如暴雨、灰尘的侵蚀,阳光辐射,油腻的沾污,

霉菌的腐蚀,

海洋盐雾的浸蚀以及冰冻等)的影响,因此仪表零件的各种金属材料,非金属材料以及各种油类、保护层等都要根据不同的气候条件加以选用。装有电子钟的仪表板总成,要防止汽车电气设备产生的高频振荡对电子钟走时性能的干扰。2.2虚拟仪表技术

虚拟仪表是指在测量中,不存在直接的物理传感器实体,而是利用其他由直接物理传感器实体得到的信息,通过数字模型计算手段得到所需检测信息的一种功能实体。虚拟仪表综合运用了计算机软件、智能测试、模板及总线的标准化、数字信号处理的高速专用集成电路制造等技术,是建立在标准化、系列化、模块化和积木化的硬件与软件平台上的一个完全开放的系统。

虚拟仪表的基本思想是利用计算机来管理仪表,组织仪表系统,进而逐步代替仪表完成测量,最终达到取代传统电子仪表的目的。虚拟仪表中的硬件是完成数据的输入与输出,真正实现测量功能的是计算机的软件,因此,有“软仪表或软测量”的说法。

虚拟仪表是基于计算机(PC)构成的,它的硬件部分往往具有很大程度上的通用性,软件是系统的核心,这样使它的实现不是强调其物理形式。虚拟仪表的优点:(1)性能价格比高。虚拟仪表的价格一艘是同类功能的传统仪表1/5~1/10,而且可以重复利用,技术更新快。(2)开放性好。用户可根据需要组成仪表或系统,甚至不用更改任何硬件,只需应用相应的软件模块即可构成新的虚拟仪表。(3)智能化高。计算机强大的分析、计算、逻辑、判断能力,可以在其上建立一套专家系统。对于数据则可以编辑、存储、打印,在完善的数据库基础上,还可以实现数据的检索与分析。

(4)界面友好,使用方便。在基于视窗技术的虚拟仪表面板上,用户通过鼠标即可完成所有功能,人机界面十分友好,测量结果可通过显示器直观地显示出来。

(5)具有网络功能。虚拟仪表是面向应用的系统结构,可方便地与网络、外设及其他应用相联系。

(6)误差小。在虚拟仪表的测量过程中,由于减少了硬件的使用,使误差有所减少。2.3REAL210核心板介绍REALARM出品的E210COREV2核心板功能如下:

1、基于三星A8处理器

1GHz

S5PV210

2、521M

Byte

DDRII内存,256M

byte

SLC型NandFlash

集成声卡WM9713,支持音频互联,PHONE连接模式4、DM9000AEP支持100M以态网

5、智能单片PMIC

WM8310电源管理,支持充电和DVS动态电压调整

6、230脚

TQFP封装,引出大部分接口

7、仅6cm*6cm,适合内嵌各种设备

8、核心板全速工作在1GHZ,功耗大约5V/200mA2.4核心板引脚功能分类电源支持

支持5V电源输入(DC5V引脚)

支持锂电池输入(VBAT引脚)

支持锂电池充电,充电电流500mA,支持电池温度检测

支持USB供电

支持VBAT

VUSB

DC5V无逢切换,优先级为DC5V>VUSB>VBAT

支持低电平按键开机

支持开关机键检测

8、1.8~3V

RTC后备电池输入引脚

显示接口

RGB

24Bit接口

支持HDMI输出

TVOUT输出

4、

TOUCH接口支持

系统总线

1、16位数据总线

2、2^16地址空间

3、支持单字节和双字节读写

Camera接口

1、

支持一路Camera

8bit

RGB

或YUV输入

串行总线

两路IIC接口

四路

TTL

UART,其中两路三线,两路五线

两路SPI

一路USB

HOST2.0

一路OTG2.0

SDIO接口

1、

两路4bit

SDIO接口,可接SDIO设备和SDMEMOY

以态网接口

1、

一路100M以态网接口

音频

支持两路差分MIC输入

支持一路单端MIC输入

3、

支持一路耳机输出(带插入检测)

4、

支持两路差分SPEAK输出,输出增益可调

5、

一路左右声道LINE信号输入

键盘接口

支持8*8矩阵键盘

可做为GPIO使用

外部中断接口

支持GPIO输入输出,支持外部中断

共18路外部中断入支持

BOOT配置引脚

1、

支持NAND和UART引脚配置

JTAG

支持仿真器调试系统硬件体系的分析与设计一硬件系统构架以嵌入式系统的硬件为背景,对主要部件给予客观的分类和评价。

硬件是软件的基石,固然它硬件是有多么的重要。嵌入式系统开发与软件开发有巨大的差别!只有充分了解硬件,软件才能更大限度的挖掘硬件的能力。

所谓硬件系统,是指构成计算机的物理设备,即由机械、光、电、磁器件构成的具有计算、控制、存储、输入和输出功能的实体部件。如CPU、存储器、软盘驱动器、硬盘驱动器、光盘驱动器、主机板、各种卡及整机中的主机、显示器、打印机、绘图仪、调制解调器等等,整机硬件也称“硬设备”。

随着电子系统的复杂化,系统设计已经成为一门重要的学科,传统的反复试验法已经越来越不适应时代的发展。发展迅速的软硬件协同设计技术越来越受到人们的重视。它是在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系统软硬件之间的并发性,协调设计软硬件体系结构,以使系统工作在最佳工作状态。虽然Android是作为一款手机软件平台进行开发的应用程序框架和应用程序但其本质是一个嵌入式软件开发平台。若将Android用于车载虚拟仪表系统的开发,需要对仪表系统应用的特点进行调整,系统采用的硬件平台是REAL210,CPU处理速度600

MHz~1

GHz,基于Cortex—A8架构。系统中主要的硬件模块有音频模块、CAN模块、液晶显示模块、串口和以太网通信模块,如图所示。

二硬件系统分为三种典型结构

1、单总线结构

即用一组系统总线将计算机系统的各部分连接起来,各部分之间可以通过总线交换信息。这种结构的优点是易于扩充新的I/O设备,并且各种I/O设备的寄存器和主存器的存储单元可以统一编址,使CPU访问I/O设备更方便灵活;其缺点是同一时刻只能允许挂在总线上的一对设置之间互相传送信息,也即分时使用总线,这就限制了信息传送的吞吐量,这种结构一般用在微型计算机和小型计算机中。

2、双总线结构

为了消除信息传送的瓶颈,常设置多组总线,最常见的是在主存和CPU之间设置一组专用的高速存储总线。这种结构的优点是控制线路简单,对I\O总线的传送速率要求低;其缺点是CPU的工作效率较低,因为I/O设备与主存之间的信息交换要经过CPU进行。以存储器为中心的双总线结构中,主存储器可通过存储总线与CPU交换信息,同时还可以通过系统总线与I/O设备交换信息,这种结构的优点是信息传送速率高;其缺定是需要增加硬件的投资。

3、采用通道的大型系统结构

为了扩大系统的功能和提高系统的效率,在大、中型计算机系统中采用通道结构,在这种结构中,一台主机可以连接多个通道,一个通道可以连接一台或多台I/O控制器,一台I/O控制器又可以连接一台或者多台I/O设备,所以它具有较大的扩展余地,另外由通道来管理和控制I/O设备,减轻了CPU负担,提高了整个系统的效率。

最小硬件系统

嵌入式系统的硬件设计与其应用场合和应用系统的不同而有所差别。一般情况下,用户可以根据自己的要求,选用合适的微处理器类型,根据相应的接口电路搭配不同类型外设,构成不同用途、不同不同规模的应用系统。这些系统,无论其规模多大,从硬件上看,都可以分为由核心电路构成的最小系统以及各种各样外部设备所需的外围接口电路。通常最小硬件系统指的是,由处理器以及SDRAM和FLASH构成的存储电路,再加上一些必要的辅助电路构成的核心系统。最小硬件系统不仅是整个硬件系统的核心部分,它的构成对软件系统也有重要的影响,其构成决定了处于软件系统最底层的Bootloder的设计,同时它也是嵌入式操作系统正常运行的基础。换而言之,最小硬件系统及其之上的最底层的最小软件系统构成了嵌入式系统最基本最核心的部分三Cortex-A8介绍

Cortex-A8第一款基于ARMv7构架的应用处理器。Cortex-A8是ARM公司有史以来性能最强劲的一款处理器,主频为600MHz到1GHz。A8可以满足各种移动设备的需求,其功耗低于300毫瓦,而性能却高达2000MIPS。

Cortex-A8是ARM公司第一款超级标量处理器。在该处理器的设计当中,采用了新的技术以提高代码效率和性能。在Cortex-A采用了专门针对多媒体和信号处理的NEON技术。同时,还采用了JazelleRCT技术,可以支持JAVA程序的预编译与实时编译。

针对Cortex-A8,ARM公司专门提供了新的函(Artisan

Advantage-CE)。新的库函数可以有效的提高异常处理的速度并降低功耗。同时,新的库函数还提供了高级内存泄漏控制机制。

结构特性:

Cortex-A8采用了复杂的流水线构架

顺序执行,同步执行的超标量处理器内核

13级主流水线

10级NEON多媒体流水线

专用的L2缓存

基于执行记录的跳转预盼

B.

针对强调功耗的应用,Cortex-A8采用了一个优化的装载/存储流水线,可以提供2

DMIPS/MHZ的性能.

C.

采用ARMv7构架

支持THUMB-2,提供了更高的性能,改善了功耗和代码效率

支持NEON信号处理,增强了多媒体处理能力

采用了新的Jazelle

RCT技术,增强了对JAVA的支持

采用了TrustZone技术,增强了安全性能

D.

集成了L2缓存

编译的时候,可以把缓存当作标准的RAM进行处理

缓存大小可以灵活配置

缓存的访问延迟可以编程控制

E.

优化的L1缓存

可以提高访存储问速度,并降低功耗

F.

动态跳转预判

基于跳转目的和执行记录的预判

提供高达95%准确性

提供重放机制以有效降低预判错误带来的性能损失

2.3

A8和ARM11的区别

Cortex-A8:基于ARMv7指令架构,运行速度可以达600MHz至1GHz,功耗在300mW以下。Cortex-A8处理器复杂的流水线架构基于双对称的,顺序发射的,13级流水线,带有先进的动态分支预测,可实现2.0

DMIPS/MHz。10级NEON媒体流水线,专用的L2缓存,带有可编程的等待状态,支持多项与L3存储器之间的未完成事务,以充分利用CPU。

ARM11:基于ARMv6指令架构,运行频率300MHz-500MHz,在0.13um工艺,1.2v条件下,ARM11处理器的功耗可以低至0.4mW/MHz。ARMv6保持了所有过去架构中的T(Thumb指令)和E(DSP指令)扩展,ARM11处理器的流水线由8级流水线组成。不过没有专用的L2缓存,相比Cortex-A8,处理能力会弱很多。Android软件系统的定制1

Android系统架构由于Android最初是基于手机软件开发平台进行设计的,而且其中大部分模块都是为手机通信所设计,为节约开发板资源,需要将Android系统中不必要的组件剪裁掉,保留必要的最小系统。因此必须对框架进行修改,将与电话、短信等相关的模块移除。仅留下必需的Android的核心模块,包括Package

Manager、System

Service、Input

Service、Hardware

Service和System

Server等。通过修改System

Server的加载过程可以去掉不需要的服务和模块,另外还要实现底层硬件的驱动程序,重新交叉编译Linux

2.6内核,并在驱动程序实现的基础上封装函数库,以便Android的应用程序通过JNI的方式访问底层驱动。经过定制和修改过的Android系统架构如图所示。

车载虚拟仪表人机界面的应用程序需要进行重新开发,主要是界面模块、CAN模块、数据访问模块和告警模块。其中CAN模块设计成Service的方式。数据访问模块设计为Content

Provider。告警模块采用的通知方式为Broadcast

Receiver和Notifica。系统通电后,在Android的System

Server中首先启动CAN模块,然后启动主界面的程序2

程序重新开发

应用程序的设计与实现

应用程序的系统架构。通过PackageManager提供的各个APK的信息以菜单方式对各个功能模块进行调用。

51CTO为大家介绍过《Android

SNK初探》,Android开发必须要了解构造块,Android应用程序是由四个重要组成部分组成的,这四种构造块如下:

◆Activity

◆Intent

Receiver

◆Service

◆Content

Provider

51CTO推荐专题:Android开发应用详解

但是,并不是每一个Android应用程序都需要这四种构造块,这不是必须的,某些时候,我们只需要这四种中的几种组合成我们的应用。

当我们明确了我们的应用需要哪些构造块后,我们就需要在AndroidManifest.xml中登记这些构造块的清单。这是一个XML配置文件,这个配置文件用于定义我们的应用程序的组件、组件的功能及必要条件等。这个配置文件是每个Android应用必需的。对于AndroidManifest.xml的Schema,参考SDK包附带的文档。以下,我们对四种构造块做一些说明:

一、Activity

Activity是Android构造块中最基本的一种,在应用中,一个activity通常就是一个单独的屏幕。每一个activity都被实现为一个独立的类,并且继承于Activity这个基类。这个activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏幕,就是一个activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一个屏幕。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。

Android使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。Intent类用于描述一个应用将会做什么事。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN(activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如:要查看一个人的联系方式,你需要创建一个动作类型为VIEW的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。相对于intent是一个有效的做某事的请求,一个intent

filter则用于描述一个activity(或者Intent

Receiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter要知道怎么去处理VIEW动作和表示一个人的URI。IntentFilter需要在AndroidManifest.xml中定义。通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用startActivity(Intent

myIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter中查找,找到最匹配myIntent的Intent对应的activity。新的activity接收到myIntent的通知后,开始运行。当startActivity方法被调用将触发解析myIntent的动作,这个机制提供了两个关键好处:

A、Activities能够重复利用从其它组件中以Intent的形式产生的一个请求;

B、Activities可以在任何时候被一个具有相同IntentFilter的新的Activity取代。

二、Intent

Receiver

当你希望你的应用能够对一个外部的事件(如当电话呼入时,或者数据网络可用时,或者到了晚上时)做出响应,你可以使用一个Intent

Receiver。虽然Intent

Receiver在感兴趣的事件发生时,会使用NotificationManager通知用户,但它并不能生成一个UI。Intent

Receiver在AndroidManifest.xml中注册,但也可以在代码中使用Context.registerReceiver()进行注册。当一个intent

receiver被触发时,你的应用不必对请求调用intent

receiver,系统会在需要的时候启动你的应用。各种应用还可以通过使用Context.broadcastIntent()将它们自己的intent

receiver广播给其它应用程序。

三、Service

一个Service是一段长生命周期的,没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service上(如果这个service还没有运行将启动它)。当连接到一个service之后,我们还可以service提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。

四、Content

Provider

应用程序能够将它们的数据保存到文件中、SQL数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其它的应用共享时,Content

Provider将会很有用。一个Content

Provider类实现了一组标准的方法,从而能够让其它的应用保存或读取此Content

Provider处理的各种数据类型应用系统的设计与实现应用程序的系统构架。通过packagemanager提供的各个APK的信息以菜单方式对各个功能模块进行调用,从而使整个系统的功能实现。模块的分类模块可以分为四大类,CAN模块、数据访问模块、功能模块和告警模块。

CAN模块

CAN模块用于数据的采集和处理,CAN模块接到数据后,要对数据进行解析,判断出接收到的数据类型。最终得到所需要的值。计算方法为根据参数所在数据域的字节位置提取其对应的原始数,再根据该参数对应的分辨率和偏移量得到参数值,其参数值的计算方法为:参数值=参数原始数×分辨率+偏移量。通过编程计算出数据代表的实际发动机状态值,即可准确地在车辆实时功能模块中显示当前的车辆状态。

数据访问模块

程序的数据访问模块,采用Android系统内置的SQLite数据库,对一些重要车况信息自动记忆存储,便于分析和维修,起到汽车“黑匣子”的作用。存储的车况信息可以通过点击回放按钮直接在仪表界面上回放,真实再现汽车行进过程中的状况。

首先调用.OpenOrCreateDatabase()创建vehicle_database.db数据库,然后配置SQLite数据库属性通过。创建一个数据表分别定义:行驶日期、出厂信息、车速、转速信号、启动、停止时刻、行使里程、报警信息等。将黑匣子接收到的数据对应数据表定义的格式通过.insert()向数据表中插入数据,通过.delete()指定日期来删除过期的数据。显示历史数据需要先通过DatePicker获取用户输入的年、月、日,并将具体日期数值提取出来,将条件放入SQL查询语句.query()中来查询,定义一个Cursor返回结果,然后创建一个数据适配器将Cursor的结果直接映射到ListView中的对应的TextView上。

功能模块

功能模块用于测控车辆的速度、发动机转速、水温和燃油、告警事件的显示。系统设计的功能模块界面显示如图所示。告警模块

告警模块本身是一个Broadcast

Receiver,它负责接收其他模块的告警事件,超速、油量、水温、油压等,并将这些信息写入数据库,同时调用告警显示界面显示对应的信息或以Notification的方式在状态栏进行提示。在Android系统中,所有的应用程序之间都通过Binder进行通信,这种IPC机制是基于Linux底层驱动实现的,与传统的进程间通信机制相比,它的执行具有更高的效率和更好的扩展性。

总结利用Android作为人机界面所开发的框架通过对各个功能模块的细化,可以使系统设计更合理,模块结构更独立,容易进行软件维护和代码二次开发,基于Android应用程序框架设计的各个模块,可以进行自由修改和替换,提高了系统的可定制性,虽然Android是手机软件开发平台,但凭借其优秀的系统架构设计和理念,会有越来越多的车载虚拟仪表采用Android作为开发平台。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现HYPERLINK"/det

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论