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