毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc

上传人:文库蛋蛋多 文档编号:4027339 上传时间:2023-04-01 格式:DOC 页数:35 大小:636.50KB
返回 下载 相关 举报
毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc_第1页
第1页 / 共35页
毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc_第2页
第2页 / 共35页
毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc_第3页
第3页 / 共35页
毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc_第4页
第4页 / 共35页
毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)Android平台上数据的仪表盘可视化程序设计.doc(35页珍藏版)》请在三一办公上搜索。

1、南京邮电大学毕业设计(论文)题 目Android平台上数据的仪表盘可视化程序设计专 业学生姓名班级学号指导教师指导单位日 期摘要 在如今这个科技飞速发展的时代,汽车已经是一个非常普遍的代步工具。车载虚拟仪表人机界面,是驾驶员获取汽车工况数据的主要界面,便于驾驶员实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定的行驶有着重要意义,目前普遍使用的是Windows CE和Linux操作系统。Windows CE操作系统功能稳定,有完善的技术支持,但价格昂贵、源代码封闭、网络可利用资源较少;Linux操作系统的最大优势在于免费和开源,是车载信息显示系统的主流操作系统,但其并不是

2、基于移动设备开发的,不能完全满足移动设备的需求。Android 是Google开发的一款基于开源操作系统Linux的开放、开源移动平台,对于目前主流的嵌入式平台支持良好,Android系统的优越性能已在多款移动设备上得到验证。它包括操作系统用户界面和应用程序。为了加强人车之间的交流,提高人车交互界面的友好度,在Android手机平台上实现了可以查看汽车仪表盘及其他可以显示的数据等功能。汽车仪表盘反映了汽车行驶过程中的多种参数,在Android平台上我们可以观察发动机转速、车速、温度、时间及行驶里程等实时信息,对遇到的故障可以及时发现并告知用户,提高了安全使用的性能。将Android作为车载虚拟

3、仪表软件开发平台,在Android提供的应用程序框架上来实现虚拟仪表的人机界面。关键词:Android平台;仪表盘;EclipseAbstractIn 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 convenient

4、 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 operatin

5、g 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 informati

6、on 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 w

7、ell. 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 v

8、iew 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 informa

9、tion 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; Eclipse目录第一章 绪言61.1 研究背景及意义71.2 课题的主要工作7第二章 汽车仪表盘概述82.1 基本介绍92.2具体类别9指示灯和警报灯1.正时齿形带指示灯102.排气温度警报灯113.制动器警报灯114.制

10、动防抱死警报灯115 驱动防滑控制指示灯126.安全气囊指示灯127.危险警报灯132.3硬件系统介绍132.4 硬件系统结构14一. 单总线结构折叠14二. 双总线结构折叠14三 采用通道的大型系统结构折叠142.5 CAN模块15一、 介绍15二、 功能概述15三、 功能特点15 四、 运用情况15第三章 系统开发工具概述163.1 Eclipse简介163.2开发环境的搭建163.3 Android目录结构说明173.4 Android系统架构183.5 Android应用程序概念性描述183.6 应用程序的组成部分19一、Activity19二、Intent Receiver20三、S

11、ervice20四、Content Provider213.7 应用程序的生命周期211 活动的生命周期222 服务的生命周期233 广播接收器的生命周期23第四章 图吧汽车卫士244.1 简介244.2 功能244.3 相关界面25第五章 终端软件仪表盘的实现265.1 简介265.2 南邮卫士的源文件结构265.3 AndroidManifest.xml文件275.4 源代码文件和布局文件275.5其他资源文件28结束语29致 谢30参考文献31附录32第一章 绪言1.1 研究背景及意义 随着科技的发展,移动智能终端逐渐走进人们的视线,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重

12、要的角色。因此,关键应用程序的开发成为影响移动智能终端普及的重要因素,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。Android作为当前最流行的操作平台,自然也存在着大量的应用服务需求。随着计算机软硬件技术、总线技术、电子和微机技术等的高速发展,控制系统臃肿、接线布线复杂、占用空间大的传统机械式仪表渐渐被淘汰。1仪表盘作为汽车整个系统中十分重要的部分,是提高汽车综合性能的重要方面之一。汽车仪表盘作为汽车与驾驶员进行信息交流的窗口,要求仪表盘能迅速准确地将各种信息用数字、文字和声音等形式表现出来。仪表盘上装有电子显示装置及各类仪表警示灯,用来指示汽车运行以及发动机运转的状况,以

13、便驾驶员随时了解和掌握汽车各系统部件的工作状态,保证汽车可靠而安全地行驶。2针对传统仪表和现有仪表存在的不足,提出了一种新型的仪表盘设计方案,在手机上显示汽车上的行驶速度、电瓶电压、发动机转速,无论车主是在车内,还是在车外、办公地点都可以查看车辆的情况。在有蓝牙传递数据的基础上,我们研究这个项目,使得数据的传输突破距离的限制,更加智能,更加便捷。现如今,随着汽车电子的发展,汽车内电子产品越来越多,汽车发动机、底盘和车身等电控系统中的电控单元数量不断增加,同时它们之间的通信也越来越重要。在汽车内利用网络技术,可大大提高系统之间信息传递的可靠性,同时可大大减少汽车线束的数量,降低汽车电气系统的成本

14、。1.2 课题的主要工作该毕业设计课题需要运用相关计算机语言编程环境,在电脑上设计出一个原始数据的录入界面和数据的仪表盘可视化程序,导入手机中,形成一个应用软件,显示当前的车辆行车速度,车辆电瓶电压,车辆发动机转速, 车辆冷却液温度,让生活更加舒适方便。本课题的目标是研究出一个在Android平台上数据的可视化仪表盘。首先应学会Android开发平台的工作原理,然后学习设计 Android平台下仪表盘的界面,主要包括界面的实现、控件的使用、界面的布局和其他模块等内容,结合汽车仪表盘上的各种数据,将准确的车辆情况以友好的方式呈现给用户,使用户可以更加赏心悦目地体验本软件的服务。课题任务的主要内容

15、分为两个部分: (1)设计一个提供原始数据的录入界面,能向手机上的基于Android平台的车辆管理系统提供车辆行车速度、车辆电瓶电压、车辆发动机转速、车辆冷却液温度。 (2)设计数据的仪表盘可视化程序。为此需要学习的主要内容包括以下方面:对Java有熟悉的了解和大致的掌握;搭建开发环境,了解Eclipse安卓开发环境,利用其提供的ADT插件和SDK等工具;设计仪表盘界面及发动机转速、车速、温度、时间及行驶里程等实时数据的显示。此外需要注意软件要具有可扩展性,以便在今后的开发中添加其他实用功能。论文的主要内容包括:第一章 为绪言,主要介绍了课题的研究背景及意义,课题的主要研究工作等。第二章 为汽

16、车仪表盘在硬件上的各种参数数据及硬件系统的构成,CAN模块的一系列特点功能等。第三章 是讲述Android平台开发工具Eclipse的搭建及其目录结构,另外论述了Android应用程序的组成部分和生命周期。第四章 简单介绍了现有的APP“图吧汽车卫士”的主要功能及其相关UI界面,其中包括它所显示的仪表盘界面。第五章 主要讲述了本次毕业设计课题研究“南邮卫士”工程所包含的源代码文件、布局文件及其他资源文件。第二章 汽车仪表盘概述本章主要介绍了汽车上仪表盘各项数据的显示及接口技术的功能,这是硬件方面的技术。2.1 基本介绍 不同汽车的仪表不尽相同。但是一般汽车的常规仪表有车速里程表、转速表、机油压

17、力表、水温表、燃油表、充电表等。现代汽车仪表盘的面膜下制作了各式各样的指示灯或警报灯,例如冷却液液面警报灯、燃油量指示灯、清洗器液面指示灯、充电指示灯、远近光变光指示灯、变速器挡位指示灯、制动防抱死系统(ABS)指示灯、驱动力控制指示灯、安全气囊(SRS) 警报灯等。32.2具体类别 车速里程表车速里程表实际上由两个表组成。一个是车速表,另一个是里程表。 传统的车速表是机械式的。典型的机械式里程表连接一根软轴软轴内有一根钢丝缆。软轴另一端连接到变速器某一个齿轮上。齿轮旋转带动钢丝缆旋转钢丝缆带动里程表罩圈内一块磁铁旋转。罩圈与指针联接并通过游丝将指针置于零位。磁铁旋转速度的快慢引起磁力线大小的

18、变化。平衡被打破指针因此被带动。这种车速里程表简单实用被广泛用于大小型汽车上。不过随着电子技术的发展。现在很多轿车仪表已经使用电子车速表,常见的一种是从变速器上的速度传感器获取信号,通过脉冲频率的变化使指针偏转或者显示数字。 里程表是一种数字式仪表,它通过计数器鼓轮的传动齿轮与车速表传动轴上的蜗杆啮合,使计数器鼓轮转动。其特点是上一级鼓轮转一整圈。下一级鼓轮转110圈。同车速表一样,目前里程表也有电子式里程表,它从速度传感器获取里程信号。电子式里程表累积的里程数字存储在非易失性存储器内,在无电状下态数据也能保存。 转速表转速表一般设置在仪表板内。与车速里程表对称地放置在一起。转速表是按照磁性原

19、理工作的它接收点火线圈中初级电流中断时产生的脉冲信号。并将此信号转换为可显示的转速值。发动机转速越快,点火线圈产生的脉冲次数越多,表上显示的转速值就越大。 现在轿车一般都是电子式转速表,有指针式和液晶数字显示式。表内有数字集成电路它将点火线圈输送过来的电压脉冲经过计算后驱动指针移动或数字显示。另外还有一种转速表是从发电机取出脉冲信号送到转速表电路解释后显示转速值。不过因受发电机皮带打滑等因素影响。数值不太精确。 机油压力表机油压力表的传感器是一种压阻式传感器。用螺纹固连在发动机机油管路上。由机油压力推动接触片在电阻上移动,使阻值变化从而影响到通过仪表到地的电流量。驱动指针摆动。由于机油压力有一

20、定的压力范围,为了清晰明了。目前有许多汽车的机油压力表用指示灯表示。如果发动机运转时它仍然亮着。就表示发动机润滑系统可能不正常了。 水温表水温表的传感器是一种热敏电阻式传感器。用螺纹固定在发动机冷却水道上。热敏电阻决定了流经水温表线圈绕组的电流大小。从而驱动表头指针摆动。以前汽车发动机的冷却水都是用自来水来充当现在很多汽车发动机冷却系统都用专门的冷却液。因此也称为冷却液温度表。水温表燃油表内有两个线圈。分别在 F”与E”一侧,传感器是一个由浮子高度控制的可变电阻。阻值变化决定两个线圈的磁力线强弱也就决定了指针的偏转方向。水温表和燃油表也有用指示灯表示的。水温指示灯亮表示水温偏高。燃油指示灯亮表

21、示燃油已近低点作为辅助性提醒。指示灯和警报灯1.正时齿形带指示灯某些采用正时齿形带传动和上置式凸轮轴的进口汽车,一般都限制发动机正时齿形带的使用期限(大约 l0万km),到时候必须更换。为了使维修人员能够按时更换正时齿形带,在仪表盘上设置了正时带使用期限指示灯TBELT”,使用中需要注意以下几点:(1)当指示灯亮起,应立即观察里程表,若累计行驶里程达到或超过l0万km,必须更换正时齿形带,否则正时齿形带可能断裂,使发动机无法正常工作。(2) 更换新正时齿形带后,要拨开里程表盘上的复位开关外面的橡皮塞,用小圆棒按压一下里面的复位开关,使正时齿形带指示灯熄灭。若操作复位开关后指示灯不熄灭,可能是复

22、位开关失灵或线路搭铁,应检修和排除故障。(3)更换新正时齿形带后还要将里程表拆下来,把里程表上所有的读数都调整到“0”位。(4)如果汽车尚未行驶l0万km指示灯已经发亮,可以按压复位开关使正时齿形带指示灯熄灭(5)如果在指示灯发亮之前更换正时齿形带,应拆下里程表,重新设定区间计数器,使里程表内的区间计数器齿轮的零位对准其传动齿轮。(6)如果只更换里程表而不更换正时齿形带,应把计数器齿轮设定在原里程表的位置上。2.排气温度警报灯 现代轿车由于在排气管上安装了三效催化转化器,所以排气温度有所提高,但是过高的排气温度容易造成三效催化转化器损坏,因此此类汽车又安装了排气温度警报装置。当排气温度警报灯点

23、亮时,驾驶人应当立即降低车速或停车,待排气温度下降以后,该警报灯会自动熄灭(但是熔断式排气温度警报灯点亮后,如果不加以调整或维修,会一直亮着),如果排气温度警报灯不熄灭,应该查明原因,排除故障以后再继续行驶。3.制动器警报灯 制动器警报灯呈现红色,图案是圆圈内有一个 “!”符号。如果红色制动器警报灯点亮,说明制动系统存在下列情况:(1)制动器的摩擦片严重磨损;(2)制动液液面过低;(3)驻车制动器已经拉紧(驻车制动开关闭合);(4)在一般情况下,若红色制动器警报灯点亮,ABS警报灯会同时亮起,因为在常规制动系统有故障的情况下,ABS也无法发挥应有的作用。4.制动防抱死警报灯 制动防抱死警报灯呈

24、现黄色(或琥珀色),图案是圆圈内有“ABS”字样。对于装备防抱死制动系统(ABS)的汽车,将点火开关转至“ON”位时,仪表盘上的ABS警报灯点亮 3 s 6 s,这是ABS的自检过程,属于正常现象。自检过程一结束,如果ABS正常,该警报灯就会熄灭。如果自检后ABS警报灯持续点亮,说明 ABS电控单元检测到有不利于防抱死制动系统正常运行的故障 (例如当车速超过20 kmh时,车轮转速传感器信号不正常),或EBV(电子制动力分配系统)已经关闭。在这种情况下如果继续行驶,由于制动系统的功能已经受到影响,电子制动力分配系统不再调节后轮的制动力,制动时后轮可能提前抱死或出现甩尾现象,因而有发生事故的危险

25、,应该进行检修。 在车辆行驶中,ABS警报灯闪烁或常亮表示故障的程度不同,闪烁表示故障已经被ECU确认并且存储;常亮表示ABS的功能丧失。如果在行车中发觉汽车的制动性能不正常,但是ABS警报灯不亮,说明故障出在制动系统的机械部分和液压部件上,而不在电子控制系统。5 驱动防滑控制指示灯 驱动防滑控制系统(ASR)指示灯的图案是圆圈内有一个“”符号。例如一汽宝来18T 轿车具有驱动防滑控制功能,当汽车加速时,若ASR检测到车轮有滑转的趋势,就通过间歇关闭喷油和推迟点火提前角来降低发动机的输出转矩,以调节牵引力,防止驱动轮打滑。 ASR在任何转速范围内都能协同ABS一起工作。当点火开关接通后,ASR

26、自动启用,即所谓“缺省选择”。驾驶人可以通过仪表盘上的ASR按钮手动取消驱动防滑控制,当仪表盘上的ASR指示灯亮起,表示 ASR已经关闭。 在下列情况下,需要车轮有一定程度的打滑,应当关闭 ASR系统。(1)车轮安装了防滑链。(2) 轿车在积雪或松软路面上行驶。(3)轿车陷在某处,需要前后移动,摆脱困境。(4)轿车在坡道上起步,但是一侧车轮的附着力极低时(例如右边轮胎在冰面上,而左边轮胎在干燥的路面上)。 如果不存在上述情况,则不要关闭ASR。在汽车行驶过程中ASR指示灯一旦亮起,说明电控单元 (ECU)已经关闭驱动防滑系统,驾驶人会感觉到转向盘操纵沉重。根据ABSASR系统的工作原理,当该系

27、统出现故障时,轮速传感器信号的传输会中断,使汽车上其他需要轮速信号才能正常工作的控制系统 (例如转向助力系统)同时受到影响,因此只有排除了 ASR的故障,转向盘操纵沉重的现象才会随之消失。6.安全气囊指示灯 安全气囊系统(SRS)指示灯有3种显示方法,一是 “SRS”字样,二是“AIR BAG”字样(1992年8月以前生产的丰田汽车),三是“气囊保护乘员”图形。 SRS指示灯的主要功用是指示安全气囊系统是否处于正常状态,同时拥有故障自诊断功能。如果点火开关转到ON(或ACC)位置后SRS指示灯一直发亮,调取故障代码又显示正常,说明蓄电池(或SRS电控单元的备用电源)的电压过低,但是SRS电控单

28、元设计时未将此故障编成代码存入存储器,所以没有故障代码显示,当电源电压恢复正常约10s后,SRS指示灯将自动熄灭。由于SRS平时不使用,一旦使用之后就报废,所以该系统不像汽车上的其他系统那样在使用过程中表现出故障现象来,必须依靠自诊断功能找出故障原因,因此SRS的指示灯和故障代码就成为最重要的故障信息来源和诊断依据。7.危险警报灯 危险警报灯用于汽车出现重大故障或紧急情况时向其他车辆和行人发出警示。危险警报信号的表示方式是前、后、左、右转向灯同时闪烁。 危险警报灯由独立的开关控制,一般与转向信号灯共用一个闪光器。当接通危险警报灯开关后,两侧的转向指示灯电路同时接通,前、后、左、右转向灯及仪表盘

29、上的转向指示灯同时闪烁。由于危险警报灯电路将闪光器与蓄电池连接,因此危险警报灯在点火开关关闭(OFF)和停车时也可以使用。2.3硬件系统介绍虽然Android是作为一款手机软件平台进行开发的应用程序框架和应用程序,但其本质是一个嵌入式软件开发平台。若将Android用于车载虚拟仪表系统的开发,需要对仪表系统应用的特点进行调整。系统中主要的硬件模块有音频模块、CAN模块、液晶显示模块、串口和以太网通信模块,如下图所示。音频模块 CAN模块系统硬件平台 串口以太网通信模块 液晶显示模块 图2.3-1 硬件系统架构 以嵌入式系统的硬件为背景,对主要部件给予客观的分类和评价。 硬件是软件的基石,固然它

30、硬件是有多么重要。嵌入式系统开发与软件开发有巨大的差别。只有充分了解硬件,软件才能更大限度地挖掘硬件的能力。 所谓硬件系统,是指构成计算机的物理设备,即由机械、光、电、磁器件构成的具有计算、控制、存储、输入和输出功能的实体部件。如CPU、存储器、软盘驱动器、硬盘驱动器、光盘驱动器、主机板、各种卡及整机中的主机、显示器、打印机、绘图仪、调制解调器等等,整机硬件也称硬设备。 随着电子系统的复杂化,系统设计已经成为一门重要的学科,传统的反复试验法已经越来越不适应时代的发展。发展迅速的软硬件协同设计技术越来越受到人们的重视。它是在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,最大限度地挖

31、掘系统软硬件之间的并发性,协调设计软硬件体系结构,以使系统工作在最佳工作状态。2.4 硬件系统结构一. 单总线结构折叠 即用一组系统总线将计算机系统的各部分连接起来,各部分之间可以通过总线交换信息。这种结构的优点是易于扩充新的I/O设备,并且各种I/O设备的寄存器和主存器的存储单元可以统一编址,使CPU访问I/O设备更方便灵活;其缺点是同一时刻只能允许挂在总线上的一对设置之间互相传送信息,也即分时使用总线,这就限制了信息传送的吞吐量,这种结构一般用在微型计算机和小型计算机中。4二. 双总线结构折叠 为了消除信息传送的瓶颈,常设置多组总线,最常见的是在主存和CPU之间设置一组专用的高速存储总线。

32、这种结构的优点是控制线路简单,对IO总线的传送速率要求低;其缺点是CPU的工作效率较低,因为I/O设备与主存之间的信息交换要经过CPU进行。以存储器为中心的双总线结构中,主存储器可通过存储总线与CPU交换信息,同时还可以通过系统总线与I/O设备交换信息,这种结构的优点是信息传送速率高;其缺点是需要增加硬件的投资。三 采用通道的大型系统结构折叠为了扩大系统的功能和提高系统的效率,在大、中型计算机系统中采用通道结构,在这种结构中,一台主机可以连接多个通道,一个通道可以连接一台或多台I/O控制器,一台I/O控制器又可以连接一台或者多台I/O设备,所以它具有较大的扩展余地,另外由通道来管理和控制I/O

33、设备,减轻了CPU负担,提高了整个系统的效率。嵌入式系统的硬件设计与其应用场合和应用系统的不同而有所差别。一般情况下,用户可以根据自己的要求,选用合适的微处理器类型,根据相应的接口电路搭配不同类型外设,构成不同用途、不同不同规模的应用系统。这些系统,无论其规模多大,从硬件上看,都可以分为由核心电路构成的最小系统以及各种各样外部设备所需的外围接口电路。通常最小硬件系统指的是,由处理器以及SDRAM和FLASH构成的存储电路,再加上一些必要的辅助电路构成的核心系统。最小硬件系统不仅是整个硬件系统的核心部分,它的构成对软件系统也有重要的影响,其构成决定了处于软件系统最底层的Bootloader的设计

34、,同时它也是嵌入式操作系统正常运行的基础。换而言之,最小硬件系统及其之上的最底层的最小软件系统构成了嵌入式系统最基本最核心的部分。2.5 CAN模块一、 介绍控制局域网CAN (controller area network)是国际上应用最广泛的现场总线之一.它作汽车环境中的微控制讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络,CAN几乎成了汽车设计领域一种必须采用的技术手段。 CAN模块是一款对整车各电子控制装置之间实现通讯数据转发的智能电控设备,从而使整车实现车载电控装置区域性网络控制系统。采用了功能强大的带有两路CAN控制器的16位微控制器。支持CAN2.0A和CAN2

35、.0B协议。按SAE J1939标准协议开发.支持K线诊断功能。可同时适用于高速和低速CAN总线网络。具有很好的密封性,可使用于各种恶劣环境。5二、 功能概述当车载各电子控制装置在不具有CAN功能(如果是不具有CAN通讯能力的电控装置,使得其与其它电控装置相互之间不能进行数据通讯,这样造成各电控装置的电控能力差,功能单一,可扩展性差),不能直接进行通讯的情况下,采用CAN模块产品就可以实现具有CAN功能的车载电控网络系统,各电控装置相互之间可以相互传递所需的电控信号,使得整车的电控系统作用更加强大。三、 功能特点(1)可以通过CAN总线网络方便地实现整车中各节点的数据信息的接收和发送;(2)

36、可以实时采集发动机各传感器信息,及时了解发动机的运行状态;(3) 可以对系统进行诊断;(4) 具有多样的输入和输出接口,可灵活地实现信号功能的转换;四、 运用情况其主要功能是发动ECU(电子控制单元)通过CAN模块连接到CAN总线,实现与TCU(Transmission Control Unit,即自动变速箱控制单元)、HCU(ABS执行机构)、IC(集成电路)等模块的数据转输及数据转换控制ECU、CAN模块连接上水温、油机压力、转速等传感器,将传感器数据与ECU控制时的数据发送给TCU、HCU、IC,且又把TCU、HCU的控制功能信息通过CAN模块传递给ECU。第三章 系统开发工具概述 本章

37、内容介绍了关于Android平台的重要开发工具Eclipse以及其中的目录结构。3.1 Eclipse简介 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。63.2开发环境的搭建 可以从网上下载eclipse、android-sdk-windows、ADT。Eclipse是做Java开发必须的工具,sdk是一个集成开发环境,而ADT插件里包括了android开发里的工作类、模拟器和一些

38、包。由于我有一个安卓手机,所以在搭建过程中,就不需要再去配置虚拟机了。本课题eclipse采用了android 4.4的版本。搭建好的平台如下图所示。7图3.2-1 Android开发平台的搭建 下图就相当于一个手机界面,我可以将旁边一列的控件放在这个布局上,使它组合起来,完成相对应的功能,发挥其作用。图3.2-2 布局界面3.3 Android目录结构说明 (1)src 编写java代码的目录,遵循java的命名规范、分包 (2)gen 包含了android 的资源文件的标识符,不需要程序员维护,自动添加的,而且有分类。注:不可轻易删除。 (3)assets 原生资源文件:保存应用的资源文件

39、例如音频文件、视频文件或者不经常被用户修改的文件。 (4)bin 包含编译生成apk的应用程序 (5)libs 包含第三方类库的jar包 (6)res 例如drawable-XXdpi、包含android应用中的图片资源文件,按照清晰度:高清、清晰度低、比较清晰、超高清、非常超高清 layout:布局文件,完成UI控件的堆放 menu:菜单,android的应用菜单 values:字符资源文件,通常使用在手机的国际化 (7)AndroidManifest.xml:清单文件3.4 Android系统架构 由于Android最初是基于手机软件开发平台进行设计的,而且其中大部分模块都是为手机通信所设

40、计,为节约开发板资源,需要将Android系统中不必要的组件剪裁掉,保留必要的最小系统。因为必须对框架进行修改,将与电话、短信等相关的模块移除。仅留下必需的Android的核心模块。包括Package Manager、System Service、Input Service、Hardware Service和System Server等。通过修改System Server的加载过程可以去掉不需要的服务和模块,另外还要实现底层硬件的驱动程序,重新交叉编译Linux 2.6内核,并在驱动程序实现的基础上封装函数库,以便Android的应用程序通过JNI的方式访问底层驱动。经过定制和修改过的Andr

41、oid系统架构如下图所示。8界面模块CAN模块告警模块数据访问模块应用程序模块Dalvik虚拟机基础核心函数库CAN驱动显示驱动网络驱动串口驱动音频驱动Linux内核2.6图3.4-1 定制的Android系统架构3.5 Android应用程序概念性描述Android 应用程序包含了工程文件、代码和各种资源,主要由 Java 语言编写,每一个应用程序将被编译成Android 的一个 Java应用程序包(*.apk)。 由于 Android 系统本身是基于 Linux 操作系统运行的,因此 Android 应用程序也运行于 Linux 环境中,它们具有以下的特点: (1)在默认情况下,每一个应用

42、程序运行于它们的 Linux 进程中; (2)每个进程具有自己的虚拟机(VM),所以每个应用程序运行于独立的环境中; (3)在默认情况下,每一个应用程序具有唯一的Linux用户ID。通过设置权限让应用程序只对用户和应用程序本身可见,也有一些方法可以把它们暴露给其他的应用程序。3.6 应用程序的组成部分 一般情况下,Android应用程序由以下 4 种组件构成:活动(Activity)、广播接收器(BroadcastReceiver)、服务(Service)、内容提供者(Content Provider)。 一个 Android 应用程序是一个包(Package),包中可能包含一个或者多个 An

43、droid组件(component)。 但是,并不是每一个Android应用程序都需要这四种构造块,这不是必须的,某些时候,我们只需要这四种中的几种组合成我们的应用。当我们明确了我们的应用需要哪些构造块后,我们就需要在AndroidManifest.xml中登记这些构造块的清单。这是一个XML配置文件,这个配置文件用于定义我们的应用程序的组件、组件的功能及必要条件等。这个配置文件是每个Android应用必需的。对于AndroidMainfest.xml的Schema,参考SDK包附带的文档。以下,我们对四种构造块做一些详细的说明:一、ActivityActivity是Android构造块中最基

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

45、历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。Android使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。Intent类用于描述一个应用将会做什么事。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN(activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如:要查看一个人的联系方式,你需要创建一个动作类型为VIEW的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。相对

46、于intent是一个有效的做某事的请求,一个intent filter则用于描述一个activity(或者Intent Receiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter要知道怎么去处理VIEW动作和表示一个人的URI。IntentFilter需要在AndroidManifest.xml中定义。 通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用startActivity(Intent myIntent)方法。然后,系统会在所有安装的应用程序中定义的In

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号