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

下载本文档

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

文档简介

摘要窗体顶端虚拟仪表系统是计算机资源(cpu、显示器等)、接口电路(a/d、d/a等)与数据分析、图形用户界面软件有机结合的仪表系统.虚拟仪表具有功能与参数能自动定义、动态画面可视性强的特点.车载虚拟仪表就是在虚拟仪表的基础上,通过汽车上广泛应用的can总线进行数据传输,利用计算机的强大资源,加上gps定位系统和无线上网等系统,构建一个多信息综合显示的仪表系统.仪表总体设计虚拟仪表的功能设计要求是:实现对车辆所有重要部件性能和工作状态的监测,并利用虚拟仪器技术进行多种信息综合显示便于驾驶员实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定的行驶有着重要意义。 android是google公司和开放手机联盟开发的一种基于linux的自由及开 放源代码的操作系统,可以任意使用和修改sdk包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。android在如今的全球市场占有极大的份额,因此基于android的车载虚拟仪表人机界面有着广阔的发展前景。关键词:android 虚拟仪表 车载 人机界面目录第1章 绪论 1 1.1课题背景 11.2相关领域的研究现状21.3论文的主要研究内容41.4论文的内容安排5第2章 技术理论介绍与分析62.1 汽车仪表及其显示装置的作用和组成62.2 虚拟仪表技术72.3 real210 核心板介绍82.4 核心板引脚功能分类10第3章 系统硬件体系的分析与设计133.1硬件系统构架133.2硬件系统分为三种典型结构143.3 cortex-a8介绍16第4章 android软件系统的定制194.1 android系统架构194.2 程序重新开发20第5章 应用系统的设计与实现255.1模块的分类255.11 can模块255.12 数据访问模块255.13 功能模块265.14 告警模块27第六章 总结28绪论1.1课题背景 21世纪是经济高速发展的时代,简单而又形象实用的虚拟仪表对于人们来说已经越来越必不可少。虚拟仪表方便的人们的生活,在日常生活中各方各面都有虚拟仪表的影子,车载的虚拟仪表显得尤为显眼。 车早就成为了人们日常生活不可分割的一部分,近年来,汽车销量颇为可观。而仪表作为汽车整个系统中十分重要的部分,是提高汽车综合性能的重要方面之一。随着计算机软硬件技术、总线技术、电子技术等的快速发展,控制系统臃肿、接线布线复杂、占用空间大的传统电磁机械仪表渐渐被淘汰,虚拟仪表正以传统机械仪表无法比拟的速度迅猛发展。 目前虚拟仪表通常包括纯数字仪表和虚拟仪表盘仪表种:纯数字仪表成本较低,但功能和界面比较简单,满足不了一般驾驶员的需求;而现有的虚拟仪表盘仪表虽然功能和界面比较丰富,但又存在着开发成本高、可移植性和可重绘性差、可扩展性不足等缺点,不利于大范围的推广与应用。 随着android系统的不断发展与完善,它已经融入我们生活的方方面面。由于android是开源的平台,基于android的虚拟仪表,不存在以往阻碍移动产业创新的专有权障碍。而且android系的优越性已经在众多的移动设备上得到验证。因此,选择基于android的车载虚拟仪表人机界面设计变得非常有意义。1.2相关领域的研究现状 android一词的本义指“机器人”,同时也是指google于2007年11月5日宣布的基于linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 安卓主要有这几个优点:1、系统基于linux,非常稳定,怎么折腾都不死机。2、系统代码年轻并且精简,手机运行比较快。3、系统升级后以前的软件都可用,支持的软件很多。4、安卓操作界面很人性化,象苹果手机一样很多界面都是动态的,酷炫且华丽,并且在图标甚至空白处长按三秒有类似电脑鼠标右键的快捷菜单弹出,很方便。今年来android的发展非常迅速,市场占有率很高,支持的设备广泛,软件众多,android已然成为行业里的中坚力量。虚拟仪表是伴随着计算机技术和通信技术的高速发展而出现的,是传统硬件到软件的根本转变,对社会的发展有着深远的影响。虚拟仪器技术是美国国家仪器公司(nationalinstruments,ni)在1986年提出的一种构成仪器系统的新概念,其基本思想是:用计算机资源取代传统仪器中的输入、处理和输出等部分,实现仪器硬件核心部分的模块化和最小化;用计算机软件和仪器软面板实现仪器测量和控制功能。所谓虚拟仪器,就是以计算机为核心的硬件平台上,其功能由用户设计和定义,具有虚拟面板,其测试功能由测试软件实现的一种计算机仪器系统。虚拟仪器的实质是利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果;利用计算机强大的软件功能实现信号数据的运算、分析和处理;利用i/o接口设备完成信号的采集、测量和调理,从而完成各种测试功能的一种计算机仪器系统。使用者利用鼠标或键盘操作虚拟面板,就如同使用一台专用测量仪器一样。因此,虚拟仪器的出现,使测量仪器和计算机的界限模糊了。虚拟仪器的“虚拟”两字主要包含以下两方面的含义:(1)虚拟仪器的面板是虚拟的。虚拟仪器面板上的各种“图标”与传统仪器面板上的各种“器件”所完成的功能是相同的。由各种开关、按钮、显示器等图标实现仪器电源的“通”、“断”,被测信号的“输入通道”、“放大倍数”等参数的设置,及测量结果的“数值显示”、“波形显示”等。传统仪器面板上的器件都是“实物”,而且是由“手动”和“触摸”进行操作的;虚拟仪器前面板是外形与实物相像的“图标”,每个图标的“通”、“断”、“放大”等动作都可以通过操作计算机鼠标或键盘来完成。因此,设计虚拟仪器前面板就是在前面板设计窗口中摆放所需的图标,然后对图标的属性进行设置。(2)虚拟仪器测量功能是通过对图形化软件流程图的编程来实现的。虚拟仪器是在以pc为核心组成的硬件平台支持下,通过软件编程来实现仪器的测量功能的。因为可以通过不同测试功能软件模块的组合来实现多种测试功能,所以在硬件平台确定后,就有“软件就是仪器”的说法。这也体现了测试技术与计算机深层次的结合。1.3论文的主要研究内容本论文所要实现的内容是以real210硬件平台为基础,利用android提供的组件设计虚拟仪表人机界面的各个功能逻辑模块,使得模块设计更为合理模块之间的耦合性更小。从而实现功能更加丰富,操作更加友好,便于升级维护,能更好的满足客服市场的需求。系统的硬件设计方面,系统采用的硬件平台是real210,cpu处理速度600 mhz1 ghz,基于cortex-a8架构。系统中主要的硬件模块有音频模块、can模块、液晶显示模块、串口和以太网通信模块。系统软件的设计方面,由于android最初是基于手机软件开发平台进行设计的,而且其中大部分模块都是为手机通信所设计,为节约开发板资源,需要将android系统中不必要的组件剪裁掉,保留必要的最小系统。因此必须对框架进行修改,将与电话、短信等相关的模块移除。仅留下必需的android的核心模块,包括packagemanager、systemservice、input service、hardware service和system server等。通过修改system server的加载过程可以去掉不需要的服务和模块,另外还要实现底层硬件的驱动程序,重新交叉编译linux 2.6内核,并在驱动程序实现的基础上封装函数库,以便android的应用程序通过jni的方式访问底层驱动。1.4论文的内容安排 本论文第一章所主要阐述的是虚拟仪表的发展背景,以及相关领域的发展现状。介绍了论文的主要内容,以及内容结构安排。 本论文第二章主要是对所选择的技术路线的具体阐述,包括理论依据,以及所涉及到的技术的基本原理的分析。 本论文第三章是对系统硬件体系的分析与设计,介绍硬件系统架构,以及需要注意的指标。 本论文第四章是对android软件系统的定制,介绍软件开发的环境,以及具体的软件系统设计。 本论文第五章是应用系统的设计与实现,通过package manager提供的各个apk的信息以菜单方式对各个功能模块进行调用,从而使整个系统的功能实现。 本论文第六章是对整个系统的总结与展望,总结当前技术下,设计过程中存在的不足,展望未来系统发展前进方向。技术理论介绍以及分析2.1汽车仪表及其显示装置的作用和组成 在驾驶员前方台板上都装有仪表报警灯及电子显示装置,用来指示汽车运行以及发动机运转的状况,以便驾驶员随时了解和掌握汽车各系统、各部件的工作状态,保证汽车可靠而安全地行驶。 汽车上较常用的一般有5种仪表和3种相应的传感器,即电流表、机油压力表、水温表、燃油表及车速里程表,机油压力传感器、水温传感器、油量传感器。仪表板总成分垂直安装式和倾斜安装式两类,二者又各有组合式和分装式#种。分装式仪表板总成,它是由薄钢板先冲压成一块仪表板,然后将每只单个仪表用夹板及螺栓固装在仪表板上。2.1.2汽车仪表的使用条件1.温度 汽车是被广泛使用的交通运输工具,要在各种环境温度下都能正常运行,因此要求汽车仪表在-40+55范围内都能正常工作。温度传感器用于监测冷却液(水箱)温度。2.湿度 由于汽车仪表工作的环境条件所限,因此它还将受到湿度的影响。潮湿的空气将使仪表零件(特别是黑色金属零件)表面生锈,电气绝缘件的绝缘性能降低甚至漏电。还由于潮湿空气的变冷,使毛细管内的水分凝聚,引起指示误差以致堵塞。因此,金属零件尤其是黑色金属零件要进行表面处理,如电镀、化学处理、喷漆等工艺。要求仪表应能在相对湿度为90%的环境下工作,并通过耐潮试验及绝缘介电强度试验3.振动 汽车行驶引起的车身振动,发动机高速运转引起的汽车各部件振动,都会影响仪表指示的准确性,缩短仪表的使用寿命,因此必须在仪表板外面加放橡皮减震垫圈等,以保证仪表零件的足够强度和紧固件的牢固性。4.其他 汽车仪表的工作环境还可能遇到其他气候条件(如暴雨、灰尘的侵蚀,阳光辐射,油腻的沾污,霉菌的腐蚀,海洋盐雾的浸蚀以及冰冻等)的影响,因此仪表零件的各种金属材料,非金属材料以及各种油类、保护层等都要根据不同的气候条件加以选用。装有电子钟的仪表板总成,要防止汽车电气设备产生的高频振荡对电子钟走时性能的干扰。2.2虚拟仪表技术 虚拟仪表是指在测量中,不存在直接的物理传感器实体,而是利用其他由直接物理传感器实体得到的信息,通过数字模型计算手段得到所需检测信息的一种功能实体。虚拟仪表综合运用了计算机软件、智能测试、模板及总线的标准化、数字信号处理的高速专用集成电路制造等技术,是建立在标准化、系列化、模块化和积木化的硬件与软件平台上的一个完全开放的系统。 虚拟仪表的基本思想是利用计算机来管理仪表,组织仪表系统,进而逐步代替仪表完成测量,最终达到取代传统电子仪表的目的。虚拟仪表中的硬件是完成数据的输入与输出,真正实现测量功能的是计算机的软件,因此,有“软仪表或软测量”的说法。虚拟仪表是基于计算机(pc)构成的,它的硬件部分往往具有很大程度上的通用性,软件是系统的核心,这样使它的实现不是强调其物理形式。虚拟仪表的优点:(1)性能价格比高。虚拟仪表的价格一艘是同类功能的传统仪表15110,而且可以重复利用,技术更新快。(2)开放性好。用户可根据需要组成仪表或系统,甚至不用更改任何硬件,只需应用相应的软件模块即可构成新的虚拟仪表。(3)智能化高。计算机强大的分析、计算、逻辑、判断能力,可以在其上建立一套专家系统。对于数据则可以编辑、存储、打印,在完善的数据库基础上,还可以实现数据的检索与分析。(4)界面友好,使用方便。在基于视窗技术的虚拟仪表面板上,用户通过鼠标即可完成所有功能,人机界面十分友好,测量结果可通过显示器直观地显示出来。(5)具有网络功能。虚拟仪表是面向应用的系统结构,可方便地与网络、外设及其他应用相联系。(6)误差小。在虚拟仪表的测量过程中,由于减少了硬件的使用,使误差有所减少。2.3 real210 核心板介绍realarm出品的e210corev2核心板功能如下:1、基于三星a8处理器1ghzs5pv2102、521mbyteddrii内存,256mbyteslc型nand flash3、 集成声卡wm9713,支持音频互联,phone连接模式4、dm9000aep支持100m以态网5、智能单片pmicwm8310电源管理,支持充电和dvs动态电压调整6、230脚tqfp封装,引出大部分接口7、仅6cm*6cm,适合内嵌各种设备8、核心板全速工作在1ghz,功耗大约5v/200ma2.4核心板引脚功能分类电源支持1、 支持5v电源输入(dc5v引脚)2、 支持锂电池输入(vbat引脚)3、 支持锂电池充电,充电电流500ma,支持电池温度检测4、 支持usb供电5、 支持vbatvusbdc5v无逢切换,优先级为dc5vvusbvbat6、 支持低电平按键开机7、 支持开关机键检测8、1.83vrtc后备电池输入引脚显示接口1、 rgb24bit接口2、 支持hdmi输出3、 tvout输出4、touch接口支持系统总线1、16位数据总线2、216地址空间3、支持单字节和双字节读写camera接口1、支持一路camera8bitrgb或yuv输入串行总线1、 两路iic接口2、 四路ttluart,其中两路三线,两路五线3、 两路spi4、 一路usbhost2.05、 一路otg2.0sdio接口1、两路4bitsdio接口,可接sdio设备和sdmemoy以态网接口1、一路100m以态网接口音频1、 支持两路差分mic输入2、 支持一路单端mic输入3、支持一路耳机输出(带插入检测)4、支持两路差分speak输出,输出增益可调5、一路左右声道line信号输入键盘接口1、 支持8*8矩阵键盘2、 可做为gpio使用外部中断接口1、 支持gpio输入输出,支持外部中断2、 共18路外部中断入支持boot配置引脚1、支持nand和uart引脚配置jtag支持仿真器调试系统硬件体系的分析与设计一 硬件系统构架 以嵌入式系统的硬件为背景,对主要部件给予客观的分类和评价。硬件是软件的基石,固然它硬件是有多么的重要。嵌入式系统开发与软件开发有巨大的差别!只有充分了解硬件,软件才能更大限度的挖掘硬件的能力。所谓硬件系统,是指构成计算机的物理设备,即由机械、光、电、磁器件构成的具有计算、控制、存储、输入和输出功能的实体部件。如cpu、存储器、软盘驱动器、硬盘驱动器、光盘驱动器、主机板、各种卡及整机中的主机、显示器、打印机、绘图仪、调制解调器等等,整机硬件也称“硬设备”。随着电子系统的复杂化,系统设计已经成为一门重要的学科,传统的反复试验法已经越来越不适应时代的发展。发展迅速的软硬件协同设计技术越来越受到人们的重视。它是在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系统软硬件之间的并发性,协调设计软硬件体系结构,以使系统工作在最佳工作状态。虽然android是作为一款手机软件平台进行开发的应用程序框架和应用程序但其本质是一个嵌入式软件开发平台。若将android用于车载虚拟仪表系统的开发,需要对仪表系统应用的特点进行调整,系统采用的硬件平台是real210,cpu处理速度600mhz1ghz,基于cortexa8架构。系统中主要的硬件模块有音频模块、can模块、液晶显示模块、串口和以太网通信模块,如图所示。二 硬件系统分为三种典型结构1、单总线结构 即用一组系统总线将计算机系统的各部分连接起来,各部分之间可以通过总线交换信息。这种结构的优点是易于扩充新的i/o设备,并且各种i/o设备的寄存器和主存器的存储单元可以统一编址,使cpu访问i/o设备更方便灵活;其缺点是同一时刻只能允许挂在总线上的一对设置之间互相传送信息,也即分时使用总线,这就限制了信息传送的吞吐量,这种结构一般用在微型计算机和小型计算机中。2、双总线结构 为了消除信息传送的瓶颈,常设置多组总线,最常见的是在主存和cpu之间设置一组专用的高速存储总线。这种结构的优点是控制线路简单,对io总线的传送速率要求低;其缺点是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技术。同时,还采用了 jazelle rct技术,可以支持java程序的预编译与实时编译。针对cortex-a8,arm公司专门提供了新的函(artisanadvantage-ce)。新的库函数可以有效的提高异常处理的速度并降低功耗。同时,新的库函数还提供了高级内存泄漏控制机制。结构特性:cortex-a8采用了复杂的流水线构架a. 顺序执行,同步执行的超标量处理器内核 13级主流水线10级neon多媒体流水线 专用的l2缓存基于执行记录的跳转预盼b.针对强调功耗的应用,cortex-a8采用了一个优化的装载/存储流水线,可以提供2dmips/mhz的性能.c.采用armv7构架支持thumb-2,提供了更高的性能,改善了功耗和代码效率 支持neon信号处理,增强了多媒体处理能力 采用了新的jazellerct技术,增强了对java的支持采用了trust zone技术,增强了安全性能d.集成了l2缓存编译的时候,可以把缓存当作标准的ram进行处理缓存大小可以灵活配置缓存的访问延迟可以编程控制e.优化的l1缓存可以提高访存储问速度,并降低功耗f.动态跳转预判 基于跳转目的和执行记录的预判 提供高达95%准确性提供重放机制以有效降低预判错误带来的性能损失2.3a8和arm11的区别cortex-a8:基于armv7指令架构,运行速度可以达600mhz至1ghz,功耗在300mw以下。cortex-a8处理器复杂的流水线架构基于双对称的,顺序发射的,13级流水线,带有先进的动态分支预测,可实现2.0dmips/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软件系统的定制1android系统架构 由于android最初是基于手机软件开发平台进行设计的,而且其中大部分模块都是为手机通信所设计,为节约开发板资源,需要将android系统中不必要的组件剪裁掉,保留必要的最小系统。因此必须对框架进行修改,将与电话、短信等相关的模块移除。仅留下必需的android的核心模块,包括packagemanager、systemservice、inputservice、hardwareservice和systemserver等。通过修改systemserver的加载过程可以去掉不需要的服务和模块,另外还要实现底层硬件的驱动程序,重新交叉编译linux26内核,并在驱动程序实现的基础上封装函数库,以便android的应用程序通过jni的方式访问底层驱动。经过定制和修改过的android系统架构如图所示。车载虚拟仪表人机界面的应用程序需要进行重新开发,主要是界面模块、can模块、数据访问模块和告警模块。其中can模块设计成service的方式。数据访问模块设计为contentprovider。告警模块采用的通知方式为broadcastreceiver和notifica。系统通电后,在android的systemserver中首先启动can模块,然后启动主界面的程序2程序重新开发应用程序的设计与实现应用程序的系统架构。通过package manager提供的各个apk的信息以菜单方式对各个功能模块进行调用。51cto为大家介绍过androidsnk初探,android开发必须要了解构造块,android应用程序是由四个重要组成部分组成的,这四种构造块如下:activityintentreceiverservicecontentprovider51cto推荐专题:android开发应用详解但是,并不是每一个android应用程序都需要这四种构造块,这不是必须的,某些时候,我们只需要这四种中的几种组合成我们的应用。当我们明确了我们的应用需要哪些构造块后,我们就需要在android manifest.xml中登记这些构造块的清单。这是一个xml配置文件,这个配置文件用于定义我们的应用程序的组件、组件的功能及必要条件等。这个配置文件是每个android应用必需的。对于android manifest.xml的schema,参考sdk包附带的文档。以下,我们对四种构造块做一些说明:一、activityactivity是android构造块中最基本的一种,在应用中,一个activity通常就是一个单独的屏幕。每一个activity都被实现为一个独立的类,并且继承于activity这个基类。这个activity类将会显示由几个views控件组成的用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏幕,就是一个activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一个屏幕。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,android将会保留从主屏幕到每一个应用的运行屏幕。android使用了intent这个特殊类,实现在屏幕与屏幕之间移动。intent类用于描述一个应用将会做什么事。在intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:main(activity的门户)、view、pick、edit等。而动作对应的数据则以uri的形式进行表示。例如:要查看一个人的联系方式,你需要创建一个动作类型为view的intent,以及一个表示这个人的uri。与之有关系的一个类叫intent filter。相对于intent是一个有效的做某事的请求,一个intentfilter则用于描述一个activity(或者intentreceiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个intent filter,这个intent filter要知道怎么去处理view动作和表示一个人的uri。intent filter需要在android manifest.xml中定义。通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用start activity(intentmy intent)方法。然后,系统会在所有安装的应用程序中定义的intent filter中查找,找到最匹配my intent的intent对应的activity。新的activity接收到my intent的通知后,开始运行。当start activity方法被调用将触发解析my intent的动作,这个机制提供了两个关键好处:a、activities能够重复利用从其它组件中以intent的形式产生的一个请求;b、activities可以在任何时候被一个具有相同intent filter的新的activity取代。二、intentreceiver当你希望你的应用能够对一个外部的事件(如当电话呼入时,或者数据网络可用时,或者到了晚上时)做出响应,你可以使用一个intentreceiver。虽然intentreceiver在感兴趣的事件发生时,会使用notification manager通知用户,但它并不能生成一个ui。intentreceiver在android manifest.xml中注册,但也可以在代码中使用context.register receiver()进行注册。当一个intentreceiver被触发时,你的应用不必对请求调用intentreceiver,系统会在需要的时候启动你的应用。各种应用还可以通过使用context.broadcast intent()将它们自己的intentreceiver广播给其它应用程序。三、service一个service是一段长生命周期的,没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity会使用context.start service()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用context.bind service()方法,连接到一个service上(如果这个service还没有运行将启动它)。当连接到一个service之后,我们还可以service提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。四、contentprovider应用程序能够将它们的数据保存到文件中、sql数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其它

温馨提示

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

评论

0/150

提交评论