发人员提供了访问框架应用程序接口的全部 关、旅游景点、餐馆、医院、停车场等信息同步地在LCD液晶权限,采用结构化设计简化了组件之间的重用。
在应用程序 显示屏上显示出来,方便终端使用人员进行查询参考。
层,Android本身附带了一些核心的应用程序,大大简化了And- 3车载定位导航系统软件设计mid应用程序的开发。
因此,利用Android操作系统作为车载导航终端的应用平 在车载导航系统软件设计过程中,主要利用了Android软台,由于操作系统与软件免费,导航终端更便宜;统一平台克 件平台的5大功能模块,分别为Android应用程序层、应用框服格式问题,功能更多元;使用者决定功能,比个人电脑更个 架层、普通函数库、Java程序运行环境和Linux内核层。
在应人、更贴近消费者。
用程序层利用Android的各种组件API接口开发了针对车载 导航的GPRS、GPS、GoogleMap电子地图的Java应用程序并在2系统框架设计 内核层提供了相应的底层驱动。
系统整体软件结构框图如图 本系统通过GPS定位系统进行导航,通过语音提示实现 2所示。
路径引导;具有GPRS无线通信功能,使得车载终端能以短信 (1)Android应用程序层:Android本身包含一些由Java语方式与服务器通讯,实现控制中心对车辆的实时监控与调度: 言开发的应用程序,如桌面、短信收发程序、日历、电话通讯具有丰富的地理信息和查询功能,通过Google M印电子地图 录、浏览器、E.mail客户端等,开发者还可以在此基础上开发并配合Android系统软件的API接口,具有小断升级的地图库, 出更多有特色的Android应用程序,如本系统开发的GPRS和并能按照用户的需求进行各种信息查询;真正实现一个体积 GPs应用等。
小、耗电少、成本低并且人机界面友好的嵌入式操作系统平 (2)Android应用框架层:Android应用程序开发是基于框台。
系统整体结构框图如图l所示。
架和组件的,因此在该层中,开发人员拥有访问框架API的全 利用Android操作系统在ARM硬件平台上实现车载导航 部权限,在开发应用程序时调用Android本身自带的许多组终端各功能模块的整合,配合相应的软件驱动,完成指定的功 件,也可以开发新的组件,并将该组件放入应用程序框架中,能,如对定位信息进行数据处理,计算所在位置的经度,纬度, 以供自己和其它应用程序调用,如定位管理、视图管理都是海拔,速度和时间等,并实时将定位的参数传输到服务器管理 GPS和电子地图开发所需要的组件,这样的模块大大提高了 图l 车载导航终端整体结构框架 万方数据农丽萍,王力虎,黄一平:Android在嵌入式车载导航系统的应用研究 2010,31(11) 2475 回经度数据: 圆 回 Android应用 对于海拔高度,hasAltimdeO判断是否有海拔数据,而get- I短信收发程序l I电话通讯录l l浏览器I AltitudeO贝IJ以米为单位返回海拔数据; E.mail客,、端l GPRS GPS GoogleMap地图l 对于方向,hasBearing()判断是否有方向数据,而getBea一 臣回匝亘司匝囹匝亟卫匝圃 Android心用框架 血甙)则以度为单位返回其值; ■阐陌网压网啊稠 对于速度,hasSpeed0判断是否有速度值,而getSpeed()则 以米每秒为单位返回速度数据。
匝叠司匝圈区固 Android普通库 An&oid运行环境 臣固匝圃匾圃 3.2 Google Map电子地图显示处理 Java内核库l 利用Android平台开发导航地图过程中,主要采用Android 匝圃臣圃匪圈 Dalvik虚拟机l 提供的MapView和MapActivity这两个类实现。
其中MapView 是一个展示地图的视图,它可以获取键盘事件(onKeyDown和 匝亘口匝圃臣圃匝圃匝回 匪四匪圊臣圊臣圆 Linux内核 onKeyUp)来支持地图移动和缩放功能,同时也支持多层Over- lay,可在地图上画坐标、写地名、画图片等。
MapView只能通 过MapActivity来建立,因为MapView需要在后台使用文件系 统和网络,所有这些线程需要在Activity的生命周期中被控制。
图2系统整体软件结构框架 如何利用Android的强大地图功能将GPS模块定位得到应用程序开发效率。
的经纬度信息在地图上显示出来呢?地球上的任何一个地点 (3)Android普通函数库:Android的普通函数库包括:标准 都可以利用经度+纬度来表示。
在Android的类库中,Point类C函数库、媒体功能库、浏览器引擎、2D和3D图形库及SQLite 代表了一个地点的经纬度,函数格式为:Point(int latitudeE6,int引擎等。
开发者利用这些功能可方便开发出人机界面友好的 longitudeE6),E6是微度,即度数乘以1000000。
如果要指定地应用程序接口,极大地缩短了开发进程。
图地点,须传递一个Point类到地图中。
然后调用setMapLoca- (4)Java程序运行环境:Android的程序运行环境包含一组 tionCenter方法将地图移动到合适的位置,最后调用MapCon.Java内核库及Dalvik虚拟机,它们有效地优化了Java程序的 troller对象的animateTo方法可以将该坐标设置为地图的中心运行过程。
点。
在实际应用中,可以使用zoomTo(int)缩放到需要的级别, (5)Linux内核层:Android系统平台基于优化了的Linux 同时利用mapView.toggleSatellite()和mapView.toggle-Tm伍c0version 2.6.23内核来开发,该层用来提供系统的底层服务,提 来获得卫星图和路况图。
供诸如内存管理、进程管理、设备驱动、安全管理、电源管理等 3.3 GPRS无线通讯模块处理驱动模块,作为一个虚拟的中间层,该层位于硬件与其它的软 系统采用带RS232串口输出的GPRS模块,可直接与硬件层之间,同时也是手机软硬件的连接层。
在系统开发中,也 件平台的UART接口直接连接,扩展方便、实用。
采用BENQ需要针对自身的硬件模块添加对应的驱动,如GPRS驱动、GPS M32的GSM/GPRS无线模块,该模块体积小巧,性能稳定,支驱动、液晶和触摸屏驱动等。
持GSM语音,数据,传真,短信息及GPRS数据传输等。
其下3.1 GPS定位模块软件处理 行理论速度为85.6Kbps,上行理论速度为42.8Kbps。
在软件开 Android操作系统支持GPS API—LBS,可以通过集成GPS 发方面支持标准AT命令,该模块在远程监控和无线公话以及芯片或外接GPS设备来接收卫星信号,通过GPS全球定位系 无线POS终端等领域都具有广泛的应用。
统中至少3颗H星和原子钟来获取当前设备的坐标数据。
对 Android的RIL(radio interface layer,无线接口层)提供了电于位置服务而言,稳定工作是关键,而Android完美的实现了 话服务和radio硬件之间的抽象层。
RIL负责数据的可靠传这一点。
Android提供多种定位相关函数,使得开发人员可以 输、AT命令的发送以及Response命令的解析。
应用处理器通灵活应用。
使用LocationProvider对象进行GPS定位,而使用 过AT命令集与带GPRS功能的无线通讯模块通信。
在LinuxCriteria对象来实现自定义定位功能。
在本文设计的导航系统 内核的驱动中,提供
上一篇:
基于ARM2440平台的Android操作系统的移植
下一篇:
7*30m公路预应力混凝土连续梁桥上部结构设计