You are on page 1of 4

计算机工程与设计

农丽萍,王力虎,黄一平:Android 在嵌入式车载导航系统的应用研究
Computer Engineering and Design 2010,31 (11) 2473

嵌入式系统工程

Android 在嵌入式车载导航系统的应用研究
农丽萍 1, 王力虎 2, 黄一平 1
(1. 广西师范大学 电子工程学院,广西 桂林 541004;2. 广西师范大学 物理科学与技术学院,广西 桂林 541004)

摘 要:为缩短嵌入 式 车 载 导 航 系 统开 发 进 程 ,提 高系 统 维 护 和 升 级 能力 ,研 究 了 Android 平台的特点及 车载导航系统 的性


能需 求。建立基于 Android 操作系统、GPS 以及 GPRS 等技术 为核心的车载导 航系统终端软 件,对系统平 台和各主要功 能模
块进 行了详细的分析 。结果表明,利用 Android 的通用 框架,开 发人员为车载导 航编写的应用 软件,便于 在不同平台间 移植
和升 级,该导航系统 设计合理、具有广 阔的应用前景 。
关键 词:Android; 嵌入式系统 ; 车载导航; 全球定位系统; 电子地图
中图 法分类号:
TP316 文献标 识码:A 文章编号:1000-7024 (2010) 11-2473-04

Application research of Android in embedded vehicle navigation system


NONG Li-ping1, WANG Li-hu2, HUANG Yi-ping1
(1. College of Electronic Engineering, Guangxi Normal University, Guilin 541004, China;
2. College of Physics and Technology, Guangxi Normal University, Guilin 541004, China)
Abstract:To shorten the development process of embedded vehicle navigation system, improve the maintenance of system and capability
of upgrade, the characteristics of Android platform and the performance requirement of vehicle navigation system are researched. Based
on Android operating system and GPS and GPRS technology, the software of vehicle navigation system is constructed. The platform of
system and main modules are analyzed in detail. The result shows that the common structure of Android is used for developers to design
application software of vehicle navigation, is easy to port and upgrade in different platforms. The system is proved to be designed fairy,
and will be widely used in the future.
Key words:Android; embedded system; vehicle navigation; GPS; electronic map

作原理决定了它是目前最具可移植性的移动设备操作系统 [8],
0 引 言
本文在众多嵌入式软件中选择 Android 操作系统作为车载导
随着城市化的进展和汽车的普及,交通拥挤加剧,交通事 航系统终端软件,便于软件升级和维护,能够有效降低软件的
故频发,交通环境恶化,这成为长期以来困扰发展中国家和发 成本,降低移动设备价格;系统内部使用开源库类,既为开发
达国家的严重问题 。在美国、日本等发达国家,车载导航已
[1]
人员提供一个非常便捷的开发环境,也为同行设计人员的方
经成为大众生活的辅助工具,中国由于技术和自主研发能力 案设计提供有用参考,促进嵌入式系统的发展。
的落后和不足,导致车载导航产品“物美”并不“价廉”[2]。车载
1 Android 操作系统介绍
导航系统是集中应用了自动定位技术、地理信息系统 ( 简称
GIS)与数据库技术、计算机技术、无线通信技术的高科技综合 Android 是 Google 于 2007 年 11 月宣布的基于 Linux 平台
系统 [3-4]
。依据车载导航系统把车辆和道路综合起来考虑,运 开源手机操作系统名称,号称是首个为移动终端打造的真正
用各种高新技术系统可以有效解决交通问题 [5]。我国市场上 开放和完整的移动软件。Google 重新设计了 Java 虚拟机和系
高档的 GPS 测量设备和 GPS 接收模块仅限于自主式导航终 统,使得 Android 的 Java 应用更接近于底层系统,效率更高;另
端产品,技术不够完备,市场化程度低 [6]。随着对导航系统信 外使用虚拟机技术使得 Android 的应用在被监控的情况下运
息服务能力要求的进一步提高和终端硬件成本不断降低,软 行,安全性更高。Android 包括移动电话工作所需的全部软件,
件操作系统所占比例越来越大,因此选择一款易于开发、维护 而且不存在任何以往阻碍移动产业创新的专有权障碍,具有
和升级,并且兼容性强的操作系统软件来支撑终端硬件系统 平台标准化、用户可定制以及服务免费等特色。是一个对第
的运行就显得异常重要 [7]。 三方软件完全开放的平台,突破了 iPhone 等只能添加为数不
由嵌入式 Linux 和 Java 构成的 Android 系统,其架构和工 多的固定软件的枷锁;同时与 Windows Mobile、Symbian 等厂

收稿日期:2009-07-06;修订日期:2009-09-10。
基金项目:广西研究生教育创新计划基金项目 (2008106020809M263)。
作者简介:农丽萍 (1985-),女 (壮族),广西桂林人,硕士研究生,研究方向为嵌入式系统; 王力虎 (1962-),男,广西桂林人,博士,教
授,研究方向为计算机网络; 黄一平 (1983-),男,广西桂林人,硕士研究生,研究方向为嵌入式系统、智能卡开发。E-mail:pingarm@qq.com
2474 2010,31 (11) 计算机工程与设计 Computer Engineering and Design

商不同,Android 操作系统免费向开发人员提供,这样可节省 平台,方便管理人员对相关车辆进行实时监控与调度,提高工


近三成成本。 作效率和运营效益;GPS 系统具有全天候、全球覆盖、三维定
Android 平台由操作系统、中间件、用户界面和应用软件 速、定时、高精度、快速、省时、高效率、应用广泛、多功能等特
组成。Linux 内核层用来提供系统的底层服务,位于硬件和其 点,因此,可广泛应用于陆地、海洋以及航空航天等;而 GPRS
它软件层之间,采用 YAFFS2 文件系统。Android 运行库包含 无线通信模块则可方便地完成移动终端与服务器之间的数据
一组核心库和 Dalvik 虚拟机,Android 提供丰富的库类支持且 交互,实现实时远程监控;Google Map 地图的使用,直观地将
大部分为开源代码,如采用嵌入式数据库 SQLite。应用框架 丰富的城市地图、全国的公路网图、加油站、便利商店、政府机
层为 Android 开发人员提供了访问框架应用程序接口的全部 关、旅游景点、餐馆、医院、停车场等信息同步地在 LCD 液晶
权限,采用结构化设计简化了组件之间的重用。在应用程序 显示屏上显示出来,方便终端使用人员进行查询参考。
层,Android 本身附带了一些核心的应用程序,大大简化了 And-
3 车载定位导航系统软件设计
roid 应用程序的开发。
因此,利用 Android 操作系统作为车载导航终端的应用平 在车载导航系统软件设计过程中,主要利用了 Android 软
台,由于操作系统与软件免费,导航终端更便宜;统一平台克 件平台的 5 大功能模块,分别为 Android 应用程序层、应用框
服格式问题,功能更多元;使用者决定功能,比个人电脑更个 架层、普通函数库、Java 程序运行环境和 Linux 内核层。在应
人、更贴近消费者。 用程序层利用 Android 的各种组件 API 接口开发了针对车载
导航的 GPRS、GPS、Google Map 电子地图的 Java 应用程序并在
2 系统框架设计
内核层提供了相应的底层驱动。系统整体软件结构框图如图
本系统通过 GPS 定位系统进行导航,通过语音提示实现 2 所示。
路径引导;具有 GPRS 无线通信功能,使得车载终端能以短信 (1) Android 应用程序层:Android 本身包含一些由 Java 语
方式与服务器通讯,实现控制中心对车辆的实时监控与调度; 言开发的应用程序,如桌面、短信收发程序、日历、电话通讯
具有丰富的地理信息和查询功能,通过 Google Map 电子地图 录、浏览器、E-mail 客户端等,开发者还可以在此基础上开发
并配合 Android 系统软件的 API 接口,具有不断升级的地图库, 出更多有特色的 Android 应用程序,如本系统开发的 GPRS 和
并能按照用户的需求进行各种信息查询;真正实现一个体积 GPS 应用等。
小、耗电少、成本低并且人机界面友好的嵌入式操作系统平 (2) Android 应用框架层:Android 应用程序开发是基于框
台。系统整体结构框图如图 1 所示。 架和组件的,因此在该层中,开发人员拥有访问框架 API 的全
利用 Android 操作系统在 ARM 硬件平台上实现车载导航 部权限,在开发应用程序时调用 Android 本身自带的许多组
终端各功能模块的整合,配合相应的软件驱动,完成指定的功 件,也可以开发新的组件,并将该组件放入应用程序框架中,
能,如对定位信息进行数据处理,计算所在位置的经度,纬度, 以供自己和其它应用程序调用,如定位管理、视图管理都是
海拔,速度和时间等,并实时将定位的参数传输到服务器管理 GPS 和电子地图开发所需要的组件,这样的模块大大提高了

卫星
车载远程监控服务器

Internet 防火墙 卫星

Google
Android 嵌入
Map 电子
式操作系统
地图
卫星

SP 短消息网关
液 车载导航终 串
10.4 寸 LCD 晶 GPS 数据接
端硬件平台 口
液晶显示屏 接 收处理模块
1
口 ARM 核心板
GSM 网 CPU、ROM、
RAM、时钟、
复位

串 摸
GPRS 无线
口 屏 触摸屏输入
通讯模块 2 接

语音提示

图1 车载导航终端整体结构框架
农丽萍,王力虎,黄一平:Android 在嵌入式车载导航系统的应用研究 2010,31 (11) 2475

回经度数据;
Android 应用
对于海拔高度,hasAltitude() 判断是否有海拔数据,而 get-
桌面 短信收发程序 日历 电话通讯录 浏览器
Altitude() 则以米为单位返回海拔数据;
E-mail 客户端 GPRS GPS Google Map 地图
对于方向,hasBearing () 判断是否有方向数据,而 getBea-
Android 应用框架
ring() 则以度为单位返回其值;
项目管理 窗口管理 内容提供 视图管理 软件包管理
对于速度,hasSpeed () 判断是否有速度值,而 getSpeed() 则
电话管理 资源管理 定位管理 通告管理
以米每秒为单位返回速度数据。
Android 普通库 Android 运行环境
3.2 Google Map 电子 地 图 显 示 处 理
界面管理 媒体功能库 SQLite 引擎
Java 内核库 利用 Android 平台开发导航地图过程中,主要采用 Android
3D 图形库 游览器引擎 标准 C 函数库
Dalvik 虚拟机 提供的 MapView 和 MapActivity 这两个类实现。其中 MapView
位图和矢量 2D 图形库 安全套接层
是一个展示地图的视图,它可以获取键盘事件 (onKeyDown 和
Linux 内核 onKeyUp) 来支持地图移动和缩放功能,同时也支持多层 Over-
液晶驱动 触摸屏驱动 音频驱动 GPRS 驱动 GPS 驱动
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-Traffic ()
version 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 颗卫星和原子钟来获取当前设备的坐标数据。对 Android 的 RIL(radio interface layer,无线接口层 ) 提供了电
于位置服务而言,稳定工作是关键,而 Android 完美的实现了 话服务和 radio 硬件之间的抽象层。RIL 负责数据的可靠传
这一点。Android 提供多种定位相关函数,使得开发人员可以 输、AT 命令的发送以及 Response 命令的解析。应用处理器通
灵活应用。使用 LocationProvider 对象进行 GPS 定位,而使用 过 AT 命令集与带 GPRS 功能的无线通讯模块通信。在 Linux
Criteria 对象来实现自定义定位功能。在本文设计的导航系统 内核的驱动中,提供了相关的驱动程序的支持,可以建立在
中,我们希望 GPS 设备尽可能的省电,定位尽可能的精确,并 UART 或者 SDIO,USB 等高速的串行总线上。
且需要获取运动物体的速度。因此,可以这样设置 Criteria 对象:
4 实验结果与分析
Criteria c = new Criteria(); //创建一个 Criteria 对象
c.setAccuracy(10); //设置定位精度 基于 Android 操作系统和 ARM 微处理器进行设计的车载
c.setPowerRequi main modules rement(c.POWER_LOW ); 导航系统,利用 Android 通用框架和与设备无关的应用程序开
//设置低电量参数 发平台,实现了车载导航的软件总体架构。其内部集成的 Web-
c.setSpeedRequired(true); //设置允许获取当前速度 Kit 浏览器、Dalvik 虚拟机等模块及提供的 Views、Intents、Acti-
接着将 Criteria 对象传递给 LocationManager 对象,Loca- vity、Permissions、Resource Types、Services、Notifications、Map-
tionManager 对 象供了 多种 方式 来获 取经纬 度坐 标和 其它 数 View、MapActivity、ContentProviders 以及 XML 支持的 API 接
据,它获取定位数据的方法如下: 口,可以方便开发出自身的人机界面应用程序。GPS 和 GPRS
对于经纬度,getLatitude() 返回纬度数据,getLongitude() 返 系统都有相应的 Android 接口函数支持,通过 PC 机模拟 GPS
2476 2010,31 (11) 计算机工程与设计 Computer Engineering and Design

数据不断的与 Android 手持终端模拟器进行通信。在系统的 和扩展性能。在移动导航终端的应用中,以 GPS 导航及 GPRS


设计中充分考虑了 Android 系统的易移植、高效率等优点,集 无线通信为代表的综合信息管理平台将是未来移动终端通讯
中使用了 Android 系统各接口 API 模块,使系统从开发效率和 及导航产品的发展趋势,而 Android 系统在导航终端的应用将
运行效率上都有较大的提升。图 3 为车辆定位显示的应用程 会逐步成熟和发展,产品价格也将最终接近大众消费水平,届
序窗口,截图所示范围为广西师范大学附近,绿色点为汽车所 时导航产品将成为人们休闲、娱乐、旅游探险的必备工具。
在点,图标上显示了具体的位置信息。
参考文献:
[1] 李欣,俞斌.一种改进的地图匹配技术在车载导航系统中的应
用[J].电子测试,2008(5):60-65.
[2] 马海波,陈阳舟,崔平远.嵌入式车载导航系统信息平台的开发
[J].计算机测量与控制,2007,15(2):188-191.
[3] 商庆瑞,吴晴,徐喆,等.车载导航系统现状及 GPS /DR 定位系
统车载实验[J].现代电子技术,2006(9):113-115.
[4] 黄帅.嵌入式车载导航的设计和实现[J].微计算机信息,2008,24
(10):284-285.
[5] 管素清,刘捷,冷青,等.嵌入式车载导航系统的设计 [J].计算机
工程与设计,2005,26(5):1320-1322.
图3 利用 GPS 和 Google map 获取自身定位
[6] 王媛媛,陈文杰,王军利.智能车载导航系统在道路交通管理中
的应用 [J]. 中国人民公安大学学报 (自然科学版), 2008 (3):
5 结束语
78-81.
利用车载导航系统的设计方案并结合 Android 系统的特 [7] 宋栋,陈闳中.基于交通网格的车载导航系统在 eBoxII 上的实
性设计的嵌入式系统,可嵌入到手机、PDA、POS 机、机顶盒、 现[J].计算机工程与设计,2008,29(2):466-468.
数字电视、家庭媒体播放器等其它终端设备,具有很好地移植 [8] 马越.Android 的架构与应用[D].北京:中国地质大学,2008.

(上接第 2434 页)

对已知蠕虫和未知蠕虫的检测同时降低了系统的误警率。初
8
7 步实验表明,该系统的设计是可行有效的,达到了设计目标。
6
5 参考文献:
时间/s

4
3 [1 ] Chen Shigang,Ranka Sanjay.Detecting Internet worms at early
2
stage [J]. IEEE Journal on Selected Areas in Communications,
1
0 2005,23(10):2003-2012.
192.168.0.1 192.168.0.10 192.168.0.30 192.168.0.63 192.168.0.100
可疑主机检测; 感染主机检测
[2 ] Chen S, Tang Y. Slowing down Internet worms [C]. IEEE

图6 Slammer 检测结果 ICDCS'04,2004:312-319.


[3 ] 陈博,方滨兴,云晓春.分布式蠕虫检测和遏制方法的研究[J].通
从图 5、图 6 可知,当主机感染蠕虫后,系统可很快将该主 信学报,2007,28(2):9-16.
机列为可疑主机。从图 5 可知,利用基于 Snort 的误用检测, [4 ] 田俊峰,张驰,刘涛,等.基于本地网主机传播行为的蠕虫预警新
很快检测出了可疑主机感染了 CodeRedII 蠕虫。从图 6 可知, 方法[J].通信学报,2007,28(5):80-89.
对于未知蠕虫感染的可疑主机,只有当蠕虫感染足够多的主 [5 ] 辛毅,方滨兴,贺龙涛,等.基于通信特征分析的蠕虫检测和特征
机时才能够构建关联图,通过关联分析确定这些主机感染了 提取方法的研究[J].通信学报,2007,28(12):1-7.
未知蠕虫。因此,这些目标主机虽然被标识为可疑主机的时 [6 ] 贺卫红,高为民.分布式蠕虫检测与主动防御系统的研究与实
间不同,其被确定感染蠕虫的时间是相同的。 现[J].计算机工程与设计,2008,29(22):5735-5737.
[7 ] Whyte D, Kranakis E, OorSchot PC. ARP-based detection of
4 结束语
scanning worms within an enterprise network[C]. Proceedings
本文设计了一个分布式的蠕虫检测系统,并对系统的结 of the Annual Computer Security Applications Conference,
构、部署和关键算法进行了详细设计和讨论,系统采用的分阶 2005.
段检测方式减少了需要处理的网络数据量,提高了系统检测 [8 ] 卿斯汉,文伟平,蒋建春,等.一种基于网状关联分析的网络预警
效率。系统将误用检测技术和异常检测技术相结合,实现了 新方法[J].通信学报,2004,25(7):62-70.

You might also like