当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于Android平台的智能导游系统设计方案

摘要:为了提高旅游业信息化水平,提出了一种基于Android 平台的智能导游系统的设计与实现方案。首先介绍了Android 系统的层次框架并研究了智能导游系统的硬件平台,给出了系统整体硬件平台框架和模块设计。在此基础上,基于Android SDK2. 1 开发了该系统的应用软件。该软件功能模块主要分为游客信息管理、多媒体应用、电子地图,并对各个模块的功能和界面的实现进行了详细地分析和设计。测试结果表明该系统操作简便,界面友好,并具有良好的可扩展性和维护性。

0 引言

随着全面建设小康社会的推进和人民生活水平的不断提高,旅游业成为一项极富发展潜力的产业。然而我国旅游业现阶段信息化水平低,旅游产品开发水平低,导游对旅游团游客的管理还停留在依靠团旗和喊话器来带领旅游团员,景点旅游团交叉重叠,环境嘈杂。在智能嵌入式系统得到广泛应用的背景下,开发具有良好用户体验、方便文件管理并且支持各种多媒体功能和网络应用的智能导游系统成为现实,并且国外出现了与人工智能技术结合,基于地理位置自动播放多媒体的导游系统。

现有的智能导游系统平台多种多样,主要有WinCE 和Linux.WinCE 的使用需要微软公司授权,实现成本很高; Android 系统本身是开源项目,源代码可以免费获取,比起WinCE,选用Android 平台来实现智能导游系统可以大大降低系统成本。另外Android操作系统基于Linux2. 6 内核,具备高稳定性和良好的移植性。应用程序开发语言为Java,具备良好的可扩展性,便于软件升级和维护,加之系统本身提供了非常丰富的UI 组件,故可以设计出交互性好的系统应用。此外,Google 公司提供了Google API 来支持Android系统运行如Google maps 等应用,极大地方便了应用程序开发。

本研究提出一种基于Android 平台的智能导游系统。

1 Android 操作系统简介

Android 操作系统在2007 年由Google 公司发布,是一款专门面向移动平台的智能操作系统。Android系统软件层次结构包括操作系统、中间件、用户界面和应用程序,其层次结构框图如图1 所示。

图1 Android 软件层次结构

最底层为Linux2. 6 内核,Android 系统依赖其提供核心服务,如: 进程管理、内存管理、网络协议栈实现、硬件驱动和安全服务等。

库和运行环境包含一些C /C + + 库,这些库能被Android 系统中不同的组件使用。核心库有: 系统C库、媒体库、图形库( SGL,3D Libraries ) 、数据库( SQLite) .核心库都针对嵌入式应用进行了优化。

应用层框架提供了各种视图组件、内容提供器、资源管理器、活动管理器等一系列的系统服务,方便开发交互性好的应用程序。

2 智能导游系统平台框架设计

该系统硬件平台选用ARM 平台,CPU 选用三星公司的S3C6410A.S3C6410A 为ARM11 内核,具备智能能量管理器,功耗低并且采用ARM Jazelle( R) 技术用以有效支持嵌入式Java 执行。此外,S3C6410A主频为533 MHz,可以流畅地运行Android 系统。

液晶触摸显示屏采用NEC 公司的4. 3″的触摸液晶屏,分辨率为480 × 272,完全满足导游系统要求。

系统移植的Android 内核版本为Android2. 1.

图2 智能导游系统平台框架设计。

智能导游系统通过Wifi 方式接入互联网,通过Google maps 提供的数据实现电子地图的功能。Wifi模块采用Marvell 8686,通过SDIO 接口与S3C6410 连接使用。

[!--empirenews.page--]

3 智能导游系统应用功能模块设计

智能导游系统的应用程序通过Android 2. 1 SDK来开发,数据存储采用嵌入式数据库SQLite.智能导游系统具有游客信息管理、多媒体应用、电子地图功能。智能导游系统功能模块框架设计如图3 所示。

图3 智能导游系统应用功能模块设计

3. 1 游客信息管理模块

游客信息管理模块负责对团队游客的信息进行管理,支持数据存储、查询、修改等功能,以随时记录游客信息,方便对旅游团队进行管理。

Android 系统中可供选择的存储方式有如下几种:

SharedPreferences、文件存储、SQLite 数据库存储、内容提供器( CONtent provider) 和网络存储。在该系统中,游客信息数据存储采用SQLite 数据库进行存储。

SQLite 是Android 系统所带的一个轻量级嵌入式数据库,支持SQL 语句,实现了事务的原子性、一致性、独立性及持久性( ACID) ,最大支持2 TB 的数据存储。

SQLite 存储数据实现方式: 首先实例化一个SQLiteDatabase 类,即得到一个SQLite 数据库。SQLite数据库对象有3 个方法: ①onCreat( ) : 在数据库第一次生成的时候,系统调用这个方法用来生成数据库表;②onUpgrade( ) : 当数据库更新的时候,系统会调用这个方法将数据库从旧版本跟新到新版本; ③onOpen( ) : 打开数据库时的回调函数。通过在onOpen( ) 方法中调用数据库实例的execSQL( ) 方法,就可以在打开该数据库的时候执行一条SQL 语句,从而完成相应数据库操作功能。

游客信息数据库字段定义如表1 所示。

在数据库中对游客信息进行增加、修改、删除等操作的设计方案,通过采用事件监听模型来完成,从而使应用程序具有良好的交互性。笔者以查找功能的实现为例,来阐述智能导游系统对游客信息管理的查找事件处理的流程。

表1 游客信息数据库字段

查找事件处理过程的事件源为查找按钮findBut-ton.首先程序将监听器clickLiSTener 通过setOnClick-Listener( ) 方法注册到findButton.当外部动作触摸到findButton 的时候,系统产生click 事件,并将其传入到事件监听器clickListener.事件监听器调用事件处理器做出相应动作,即在onClick 方法中调用系统函数startActivity,启动一个intent( 意图) ,从而实现界面的跳转,再通过调用数据库的execSQL( ) 方法来实现数据库查找操作功能。

[!--empirenews.page--]

3. 2 多媒体应用模块

多媒体应用模块主要完成3 个功能: 景点音频解说、景点图片预览、景点视频播放。利用解说音频的播放可以有效降低导游的工作强度,而且通过景点图片和视频的预览,可以补充展现景点珍贵的历史图片和特定时间段的景色,从而更加展现出景点的魅力。

3. 2. 1 多媒体应用模块的主界面设计

本研究以景点为"西湖十景"为例,多媒体功能主界面如图5 所示。

图5 多媒体应用主界面。

多媒体应用模块的主界面采用组件ListView,以列表方式来展现。当开发人员进入多媒体应用模块的主界面后,在该界面的onCreate( ) 方法中,使用newListView( ) 语句新建一个ListView,通过setAdapter( )方法将其与数组适配器ArrayAdapter 进行绑定,从而在ListView 界面对数据进行显示。数组适配器Array-Adapter 将数组里定义的数据一一对应地显示在List-View 组件。

本研究在多媒体应用主界面需要实现在不同的选项选择,并进入相应的界面功能。通过创建并绑定一个选项选择监听器: itemSelectedListener,并通过setOnItemClickListener() 方法来将其绑定到Lisview.当选中相应的景点时,就可以进入对应的功能界面。

3. 2. 2 多媒体功能的实现

Andriod 系统提供了常见的媒体编码、解码机制,如MP3, JPG,MPEG4,h. 264 等编码格式,因此可以非常容易地集成音频、视频和图片等多媒体到应用程序中。播放音频功能的实现需要实例化一个MediaPlayer类,然后调用setDataSource( ) 方法来设置音频文件的路径,再调用start( ) 实现音频的播放。视频播放的实现方法类似于音频播放,借助VideoView 和Media-Controller 组件即可以实现。图片预览的实现采用网格视图GridView,本研究通过调用网格视图的setAdapter方法将待预览的图片的引用和该视图对象进行绑定,可以将很多图片以一定的大小同时显示出来,适合图片预览的应用。

3. 3 电子地图功能模块

该系统的电子地图功能借助Google maps 的API来进行编程实现。经过申请Google maps 的API key之后,本研究使用Android 系统提供的map 包( com.google. android. maps) ,从而在显示界面完成显示电子地图及其他应用的功能。

电子地图功能模块的框图设计如图6 所示:

图6 电子地图功能框图设计

视图模式功能模块根据选择来分别显示卫星图、街景图、交通图,并对地图进行放大和缩小操作。视图功能的实现通过采用MapView 类来实现。MapView类是一个展示地图的视图,它可以获取键盘事件( on-KeyDown 和onKeyUp) 来支持地图移动和缩放功能。

本研究通过使用mapView. toggleSatellite ( ) 和map-View. toggletraffic( ) 的两个方法可以分别选择显示卫星图或者路况图。电子地图的设置大小的功能通过MapController 的setZoom( ) 方法来实现。

地点查找功能通过输入目的地名称,调用get-FromLocationName( ) 方法来返回查询结果并在地图上显示,可以方便找到目的地的位置。目的地经、纬度借助LocationManager 的getLastKnownLocation 方法来得到: 通过getLastKnownLocation 方法得到一个新的Location对象,那么该点的经度和纬度分别由该类的get-Latitude( ) 和getLongitude( ) 方法来得到。

除此之外,景点周围信息查询功能模块通过预先存储的内容,为游客提供周围的交通和食宿信息。

4 结束语

ce="Verdana">Android 平台因其优异的性能和开放性,日益在智能手机、平板电脑、车载导航仪、数字电视等嵌入式终端系统获得广泛应用。本研究提出了一种基于Android平台的智能导游系统的设计和实现方案,分析了各个功能模块的设计和实现方法,测试结果表明,该系统运行稳定,操作简单,能提供丰富的多媒体应用并具有良好的人机交互界面,在旅游业中有广泛的应用前景。另外,该系统还可以结合地理位置信息,实现自动选择相应的多媒体应用的文件,该功能有待进一步研究和实现。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭