郝波
【摘要】 计算机技术和移动通信技术的飞速发展, 终端设备的信息化与智能化的结合已成为推动世界经济和社会发展的新引擎,在此基础上基于智能操作系统的移动互联技术正广泛地应用于各个领域,本课题研究基于Android系统的应用于智能终端的自助旅游系统开发与海南(三亚)旅游资源的结合。该系统是一款以Java为开发语言,集成了Android SDK软件开发工具包的Eclipse为开发环境的应用软件, 实现景区的选择,景区多媒体展示、地图定位、游志分享等功能。
【关键词】 Android Eclipse SDK 自助旅游系统
海南作为我国重要的旅游目的地,2009年国务院正式批复海南建设国际旅游岛,海南的旅游业迎来了一个前所未有的发展机遇[1]。在信息化大趋势下基于智能操作系统的移动互联技术正被越来越广泛地应用于旅游信息发布,旅游目的地的导航定位,旅游资源的勘查,旅游自助服务等。
Android是开放的操作系统平台,基于Android平台的开发的智能终端能有效的应用和移植各种应用软件。移动技术与网络技术的融合使信息传输在终端设备间更畅通,解决了数据传输瓶颈 [2]。同时结合GPS,BaiduMap,网络传输,多媒体应用等技术,为实现网络环境下Android平台和开放平台之间的数据交换提供了一种有效的解决方法。
一、 系统的组件与应用
应用程序组件是Android应用程序的基础,是系统进入应用程序的通道。本课题的组件主要包括:Activity组件、Service组件和ContentProvider组件。
1.1 Activity组件及应用
Activity是为用户操作而展示的可视化用户界面,用户从开始点击应用程序图标到系统与人的信息交流都要通过一个良好的人机交互界面来实现,每个界面都是一个Activity(活动),界面上包含了按钮、对话框、菜单、图片等等,程序都是从Activity类开始执行。Activity 从开始执行到切换到下一个Activity被称为一个生命周期,这个过程包含了创建、开始、唤醒、暂停和退出五步,它由系统通过堆栈来管理。
1.2 Service组件及应用
Service服务是运行在后台的服务,主要执行较长时间的操作和远程进程工作,没有可视化的用户界面,用户在启动一个服务后可以在后台播放音频资料、从网络上获取数据计算结果提供给需要这个运算结果的activity使用。开发Service有如下两个步骤。
(1)定义一个继承Service的子类。
(2)在AndroidManifest.xml文件中配置该Service。
1.3 ContentProvider组件与应用
ContentProvider(内容提供者)提供标准的接口来获取和操作数据,把数据封装到ContentProvider中提供给其它应用程序使用,搭建起了应用程序之间数据交换的桥梁。数据可以存储于文件系统、SQLite数据库及其它存储方式。然而,应用程序并不直接调用这些方法,而是使用一个 ContentResolver 对象,调用它的方法作为替代。 ContentResolver可以与内容提供者进行通讯,与其合作来对所有相关交互通讯进行管理。
二、系统的设计
2.1系统结构设计
(1)根据Android系统结构,结合的业务需求本系统采用基于Android应用程序框架基础上的三层系统结构,UI层:为用户提供应用服务的图形界面层、逻辑处理层: 为系统提供应用程序和数据资源之间的调用与控制,资源层:存放各种数据资源,如图片,音频,文字信息等,同时管理数据满足应用服务对数据的调用。
(2)项目实施流程设计,根据旅游自助系统的业务分析,旅游者的实际需求,按照应用软件流程的设计方法,制定整个项目的实施流程图如图1所示。
(3)系统具体功能流程设计,用户通过智能移动终端登陆系统提供主界面,定位手机现在的城市位置,也可切换需要选择的城市,用户可以在景点、酒店、美食和购物模块中做相应的选择。同时通过地图应用显示地图, GPS定位所处位置,选择合适路线。 (图2)
(4)旅游目的地需求流程;在旅游目的地主要介绍当地城市的景点、餐饮,住宿、当地特产信息,用户点击相应模块进入对应界面,显示相应信息,包括内容介绍,方位导航,目前位置,天气状况等,同时提供预订服务。
2.2 旅游自助系统核心技术
通过系统业务的分析要实现旅游自助系统的各项功能,要完成如下工作
(1)旅游自助系统是通过不同的界面来实现人机交互,给用户提供丰富的信息服务,实现各个界面的有效切换是完成业务功能转换的关键,每一个界面都是一个Activity,Android提供了Intent机制来完成应用组件间的交互与通讯,从而实现程序的运行,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。
(2)通过系统需求分析可以知道旅游自助系统中旅游者要获取所处城市及具体位置信息,本课题主要研究地图技术和GPS定位来获取用户的地理信息的方法。主要的关键技术包括地图显示、地图覆盖层的显示、GPS定位,基站地位。
(3)Android 数据存储技术及获取数据方法,本课题中系统应用程序所需的各种数据,用户通过界面获得的各种信息数据,支持地图及GPS定位信息的各种数据都需要合理的使用数据存储机制,让用户方便的检索、查询和使用数据。Android 数据存储技术有: SharedPreferences存储、文件存储、SQLite数据库存储、使用ContentProvider存储、网络存储 [3]。根据旅游自助系统特点本课题主要采用以下数据存储技术。
三、系统软件设计
3.1 系统工程项目建立
打开安装了Android SDK 的Eclipse平台建立一个Android Application project,命名为HNLY (海南旅游)。该工程由Android系统生成如下目录。
Str: 存放整个Android工程项目的源程序代码。
Gen: 在建立工程时自动生成一个r.java 文件,当修改和编写资源文件时会相应的在r.java 文件中做出标记,是程序与资源文件的联系的纽带[4]。
Assets: 存放资源文件,与res中的资源不同,它与r.java不产生联系,在调用时通过Assetmanger来实现,在本课题中主要存放音频文件和JPG图像文件。
Bin; 在项目运行后会产生apk文件,下载到虚拟器或手机中运行。
Res;资源文件,主要包含drawable:图像或图像描述文件;layout:Android应用程序的布局XML文件;Vaules:应用程序常用文件,包含有字符串,样式以及颜色的定义;Menu;放置菜单选项的布局文件。
3.2工程项目模块的设计
根据系统业务的分析系统主要功能包括景区的选择,实现景区的切换;景区信息的交互,实现景点的选择与信息的获取;景点的导航与旅行分享,实现地图显示定位于微博分享。因此整个系统包含的主要模块设计如下:
(1)主界面模块设计:是定位城市与切换城市模块,为用户显示手机定位
城市和海南城市列表,通过LocalActivity和CityActivity来实现,CityActivity为用户提供海南热门城市列表,通过数据库SQliteDateBase获得其他城市列表,通过触摸或输入城市名来选择城市,本地城市的获取通过LocalActivity完成。
(2)景点详情模块设计:用户选择目的旅游点,展现用户旅游景点的图片,
介绍景点、美食和住宿等服务信息,模块的功能通过LocalTourActivity类和
LocalTourDetailActivity类来实现,LocalTourActivity完成景点,美食,住宿,购物的列表介绍,LocalTourDetailActivity则是通过用户点触LocalTour—Activity的图片向用户展现和介绍以上几方面的具体信息。
(3)地图显示模块:用户点击景区地图,屏幕显示整个旅游目的地的景区
地图,在这个界面用户选择地图模式,导入百度地图,可以显示当前景点位置和个人位置,电子地图模块通过Baidu Maps Api接口来实现,Android平台提供了一个Map包(com.baidu.android.maps),来实现Baidu Maps在Android平台的展示,
实现地图的显示、位置定位和切换等功能.电子地图模块由StaticMapActivity和MapNavigationActivity组成,分别实现景区地图展示和景点交通图的显示和位置定位功能.在获得Baidu Maps Api的支持,可以获取百度地图。
(4)微博分享模块;用户在旅游景区选择景区模块,通过点击微博分享按键,记录旅行行程,旅游心得,通过分享按钮连接到相应微博发布旅行日志。该模块通过WeiboShareActivity和Oauth2Activity组件来完成,两者之间的通过Intent机制进行数据传递。
参 考 文 献
[1] 海南省国际旅游岛发展纲要(2010—2020),2010
[2] 周乐,基于XML和J2EE的物流数据交换技术的研究[J],计算机时代, 2009(02): 25-27
[3] 杨功元,Android应用程序开发课程建设探索[J],计算机教育,2012(16):86-88
[4] 佘志龙, Google Android SDK开发范例大全(第3版) [M], 人民邮电出版社, 2012, 15-1