基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx

上传人:b****8 文档编号:9200634 上传时间:2023-02-03 格式:DOCX 页数:37 大小:707.89KB
下载 相关 举报
基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx_第1页
第1页 / 共37页
基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx_第2页
第2页 / 共37页
基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx_第3页
第3页 / 共37页
基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx_第4页
第4页 / 共37页
基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx

《基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx(37页珍藏版)》请在冰豆网上搜索。

基于Android平台的个人旅游系统的设计与实现本科毕业论文.docx

基于Android平台的个人旅游系统的设计与实现本科毕业论文

基于Android平台的个人旅游系统的设计与实现

摘要

随着社会经济发展,人们生活工作改善、闲暇时间增多,极大地促进了旅游活动的迅猛发展。

旅游业成为当今世界上发展速度最快,发展势头最强劲的新兴产业之一。

以全球数字化信息网络高速发展为背景,通过基于位置和地图信息技术的结合来帮助旅游者更快地获取旅游景点相关信息,更好地分享旅游过程的点点滴滴,成为人们的迫切需要。

本课题将旅游产品和智能终端结合,提出了一种基于Android平台的旅游系统的设计与实现方案。

该系统使用Eclipse和AndroidSDK为开发环境,开发旅游应用软件,实现多媒体应用、电子地图、游记记录等功能。

多媒体应用支持旅游景点的图片浏览。

电子地图模块实现了XX地图在终端设备的展示和对终端设备的定位。

游记记录模块利用Android自带的SQLite数据库,实现了游记录入、修改、展示等功能。

该系统采用AndroidSDK,Eclipse作为开发工具。

关键词:

Android;旅游系统;智能终端

 

1绪论

1.1课题背景

旅游是人类社会发展到一定阶段后的社会活动,是人们为了满足其休憩、消遣、文化和商务等活动的需要好离开自己定居地前往旅游目的地并在那里做短暂停留的访问活动,而旅游产业是在旅游活动上发展而来的综合性产业,以游客为服务对象,以游客需求为中心,是一门资源密集型、服务综合性、发展依托型新型产业。

旅游产业主要包括6大产业,分别是旅行社业、旅游交通业、住宿餐饮业、景点景区业、娱乐业、购物业,形成一个完整的产业链,共同为游客提供全方面的服务。

我国幅员辽阔,历史悠久,地理环境和人文环境多种多样,具有良好的旅游资源,为旅游产业的发展奠定了坚实的基础。

随着全面建设小康社会的推进、人民生活水平的不断提高以及对外交流的不断深入,旅游消费需求正在大幅提升,旅游业已经成为我国发展最快的产业之一,成为国民经济中规模较大、产出水平较高的新型产业。

以入境游游客数为例,从1978年到2013年,我国的入境游人数增加了69倍,而入境游收入也不断攀升。

然而现阶段我国旅游业存在信息化水平低,旅游产品开发水平低的问题,比如导游系统依然大多数停留在人工阶段(如靠旗帜和扩音器)、绝大多数的电子旅游系统集成度低,仅仅能提供如音频等应用,而对于更丰富的服务,如视频、图片、电子地图、地理信息位置等服务的功能都无法提供。

另一方面,随着以谷歌公司的Android系统和苹果公司IOS系统为代表的智能操作系统日益得到大规模地应用和发展,智能终端被广泛用于移动终端、媒体播放器、消费电子等领域。

从而以全球数字化信息网络高速发展为背景,通过基于位置和地图信息技术的结合来帮助旅游者更快地获取旅游景点相关信息,更好地分享旅游过程的点点滴滴,成为人们的迫切需要。

1.2旅游系统的发展

旅游信息化已在世界发达国家经历了几十年的发展,涉及到旅游目的地信息、旅游企业服务信息、旅游政府监督信息、旅游者个人信息、旅游产品信息五大类,综合复杂,范围较广。

随着理论的不断进步,这前后也经历了几次大的信息技术应用变革。

第一次是1959年美利坚航空公司和IBM公司联合开发了世界上第一个计算机定位系统SABRE,这是旅游业信息化萌芽的标志;第二次是1978年美国推出的航空管制取消法案,增大了旅游者购买机票的选择范围,并使得计算机预订系统延伸到旅行代理商;第三次是到1994年底,美国开始出现新式的“电子机票”,实行“无票旅行”方式。

在信息技术迅猛发展的大环境下,旅游系统也快速发展,2005年Google公司推出的谷歌地图就是典型的代表。

我国旅游业信息化开始于20世纪80年代初期,起步比较晚,基础比较薄弱,整体化水平相对比较低。

但国内许多学者在国外学者研究的基础上,进行了大量的探讨,提出了一些具有中国特色的旅游系统模型,如有吴必虎提出的在Gunn-Mill-Morrison模型框架上合并交通和促销为出行子系统,增加支持子系统等。

2000年国家旅游局正式开通了国家旅游门户站点—“中国旅游网”网站,同时筹建了旅游办公自动化。

进入21世纪以后,我国旅游信息化开始了高速发展,包括旅游饭店、旅行社、旅游景区景点的信息化建设等都取得了一定的成绩。

各大旅游资讯网站也如雨后春笋般涌现,不仅网易、新浪、搜狐、腾讯等这样的门户网站有旅游版块,而且还有许多像去哪儿、携程等这样的旅游电子商务网。

旅游系统最初几乎是在PC机上实现的,但是用户在旅游的时候需要随时了解景点的最新信息、发布最新动态以及使用定位功能等传统旅游系统无法满足的需求,鉴于目前移动平台使用的普及,在手机上使用旅游系统资源显然更适应发展。

在Android手机上使用旅游系统,首先得开发一个基于Android的旅游软件安装包,这个软件需具有传统PC旅游系统的功能,由于它的载体手机具有便携性,其优势也就凸显出来了。

但是由于某些景点可能存在没有手机信号的情况,此时基于手机的旅游系统也就失去了意义。

1.3本文主要工作

本文首先介绍了Android操作系统的四层架构及基于Android系统的应用程序开发方法。

接下来以旅游系统的研发过程为例,详细阐述了开发Android系统应用程序的具体过程。

结合实际情况,设计并开发一个基于Android平台的个人旅游系统,主要功能包括:

1)登陆功能:

设置账号、密码登陆系统;

2)个人相册功能:

查看、编辑、删除照片,并配以文字说明;

3)设置照片浏览功能,可以设置背景音乐;

4)考虑系统的功能扩充:

每个模块可以独立运行使用,某些模块可以软件化的部分软件产品,在硬件配置时,配置要合理,要尽量降低系统成本。

 

2Android系统简介

2.1Android系统概述

Android一词本意是指“机器人”,是Google公司推出的开源手机操作系统作为Google移动互联网战略的重要组成部分,Android操作系统借助于Google这个强大的推手和开放手机联盟的支持,由默默无闻变得备受瞩目,各种各样基于Android系统的设备相继问世。

虽然Android系统从推出到现在不过短短几年时间,但作为移动终端设备操作系统中的重量级一员,它的影响力越来越大,吸引了越来越多的开发者、设备生产商和软件开发商等加入。

作为一个推出不久的移动终端开发平台,为何会有如此强大的发展潜力和如此迅猛的发展速度,每个人都会有自己的答案。

总结起来,可能包括以下几点:

1)系统的开源性和免费性:

Android系统是一个对第三方软件完全开放的平台,开发者在编写Android应用程序时具有更大的自由度。

2)移动互联网的发展:

Android采用WebKit浏览器引擎,与其它系统相比,更强调搜索功能,界面更强大,是一种融入全部Web应用的互联网络平台。

3)相关厂商的大力支持:

从组建开放手机联盟开始,Google一直向服务提供商、芯片厂商和手机销售商提供Android平台的技术支持,帮助他们开发出更好的Android设备。

凡事都具有两面性,作为一个如此受欢迎的系统也不例外。

Android系统也有自身的一些缺点,具体如下:

1)技术需要进一步完善:

每个系统都不是完美的,Android也不例外,系统自身的一些bug需要进一步完善。

尤其是Android系统作为一个开源的系统,面临的攻击会比其它封闭系统要多,这是Android系统要持续发展所必须解决的一个重要问题。

2)开放手机联盟模式的挑战:

Android由开放手机联盟开发、维护和完善,这种模式,是否会对Android未来的发展、定位起到阻碍作用,这些都不能下定论。

3)其他技术的竞争:

微软因为拥有PC操作系统市场最大的占有率,在未来手机与电脑互相联动并实现无缝对接方面WindowsMobile相比Android具有先天优势,此外,即使在智能终端自身的操作系统上,iOS系统也是Android的一个劲敌。

这些都给Android系统的进一步发展带来了巨大挑战,如果能很好的解决这些问题,也将会进一步促进系统的发展。

 

2.2Android系统架构

Android系统采用了软件栈的设计结构,从上到下由四层组成,分别是Linux内核层、中间层、应用程序框架(ApplicationFramework)和应用层(Applications)。

如图2-1所示。

图2-1Android系统架构

下面对每层进行具体的描述:

(一)Linux内核:

Android系统的内核在Linux2.6内核的基础上进行了相应的裁剪和改进,继承了Linux内核安全性、内存管理、进程管理、网络协议栈和驱动模型等。

Linux内核同时也为硬件和软件之间提供了衔接,屏蔽了下层硬件的具体细节来为上层提供服务。

(二)Android函数库:

Android包含一个能被不同组件使用的C/C++库,这些库通过Android应用程序框架来为上层应用程序提供服务,下面是一些常用的核心库:

1)libc:

系统C库,从BSD发展而来的标准C函数库,是专门为基于嵌入式Linux设备所定制的。

2)媒体库:

基于PacketVideoOpenCORE,支持多种常用的音频、视频格式回访和录制,同时支持静态图像文件。

3)SurfaceManager:

管理显示子系统,为多个应用程序提供2D和3D图层的无缝融合。

4)SGL:

底层的2D图形引擎。

5)3Dlibraries:

基于OperGLESI.OAPI实现,可以使用硬件3D加速或高度优化的软件3D加速。

6)RreeType:

位图和矢量字体显示。

7)SQLite:

一个对所有应用程序可用的、功能强大的轻量级关系型数据库引擎。

(三)Android运行时:

Android运行时环境由一个核心库(CoreLibraries)和一个Dalvik虚拟机组成,核心库为上层应用程序编程提供了Java语言核心库的大多数功能。

Dalvik虚拟机是一个不同于其他标准虚拟机的虚拟系统,采用寄存器架构,能在一个设备中同时高效运行多个程序。

它基于Linux内核的一些功能,如多线程机制和内存管理机制等。

Dalvik虚拟机可以运行Android程序,这些程序需要使用dx工具转换成.dex类型的可执行文件,该格式文件在大小方面往往比同样的.class文件压缩成的.jar文件更小,可以降低对内存的要求。

(四)应用程序框架:

包含编写核心应用所使用的API接口,开发者可以使用这些接口来编写自己的应用程序,该程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,同时还可以使用其他程序发布的功能块(但是要遵循安全限制)。

每个应用都会包括一系列的服务和系统,具体如下:

1)丰富而又可扩展的视图:

构建应用程序时可以将这些视图进行各种组合来形成各式各样的应用程序界面。

常用的视图包括:

列表、网格、文本框、按钮和内嵌的浏览器等。

2)内容提供器:

提供数据共享的途径,如联系人数据库。

3)资源管理器:

管理非代码资源,如字符串、图片和布局文件等并提供这些资源的访问方式。

4)通知管理器:

帮助应用程序在状态栏中显示各自的提示信息,如收到短信

5)活动管理器:

管理应用程序的生命周期,还提供导航或回退功能等。

(五)应用程序:

包括电话、短信、口历、地图、浏览器、通讯录等核心应用程序。

 

2.3Android开发环境配置

由于Java语言具有强大的功能和与平台无关的特性,并且还具备强制类型安全,因此Google选择使用Java语言来开发Android系统下的应用程序。

Eclipse是一个开放源代码的、基于Java的且具有良好扩展性的开发平台。

Eclipse本身只是一个框架和一组服务,但是通过加入插件可以构建针对不同语言的开发环境,目前支持的主要开发语言有Java和C/C++。

基于以上优点选择使用Eclipse来搭建Android程序的开发环境并详细介绍环境的配置过程。

搭建Android开发环境有以下五个主要步骤:

下载并安装JDK;下载并安装Eclipse;下载AndroidSDK;下载并安装ADT插件;配置AndroidAVD。

1)下载并安装JDK;

JDK是JavaSEDevelopmentKit的简写,其中包括了Java运行环境、Java开发工具和一些Java核心类库等。

在安装Eclipse之前,必须先下载和安装JDK。

JDK是由SUN公司开发,因此要下载最新的JDK,只要登录SUN公司的官网,选择适合自己电脑的版本下载并按照提示安装即可,如图2-2所示。

图2-2下载安装JDK

JDK安装完成后,还得配置相应的环境变量才能使用。

环境变量的配置分为两部分,一是JAVAHOME变量的配置,二是CLASSPATH变量的配置,这两者的配置方法类似。

2)下载并安装Eclipse;

进入http:

//www.eclipse.org/downloads/页面,选择合适的Eclipse版本下载,如图2-3所示。

安装时注意选择合适的安装路径。

图2-3下载安装Eclipse

3)下载AndroidSDK;

AndroidSDK是Android专用的软件开发包工具,包括程序开发中用到的函数库、编译程序等资源,是开发Android程序必备的工具之一。

SDK的下载网址是http:

//developer.ALocation框中选择SDK的解压路径,点击Apply按钮,最后单击OK完成。

如图2-4。

图2-4加载AndroidSDK

4)下载并安装ADT插件;

ADT是为方便Android应用而开发的插件,包含一系列强大的扩展功能,可以方便、快捷的创建、运行和调试Android程序。

安装ADT的步骤如下:

首先,打开Elicpse,选择Windows-Preference-Help-SoftwareUpdates然后选择AvailableSoftware接着选择AddSites,在弹出的地址框中输入http:

//dl-

5)配置AndroidAVD。

在AndroidSDK1.5版本以后的开发中,必须至少创建一个AVD来模拟一套虚拟设备运行Android应用程序。

创建AVD有两种方式,一种是命令行方式,另一种是在Eclipse中创建,无论哪种方式,系统都会在默认文件路径下自动创建一个Android文件夹来保存与AVD有关的配置信息。

这里只介绍在Eclipse中创建AVD的方法,步骤如下:

打开Eclipse,单机Android小机器人打开AndroidSDKandAVDManager;点击左侧面板的VirtualDevices,再点击右侧的New;填入Name,选择Target的API,SDCard大小任意;点击CreateAVD即可完成AVD的创建。

如图2-5。

图2-5配置AVD

 

2.4Android程序开发

2.4.1程序开发组件

一个Android应用程序通常由以下五个组件中的任意多个组成:

活动(Activity)、意图(Intent)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供器(ContentProvider)。

Activity负责应用程序的界面显示;Intent负责不同组件之间的交互;Service在后台运行,负责执行程序中比较费时的任务;而ContentProvider为不同的应用程序之间提供了一种数据共享方式。

其中Activity组件是每个应用程序所必须用到的,因为任何一个应用程序都必须具备与用户交互的界面。

(一)Activity:

最基本的应用程序组件,通常表示为一个单独的屏幕。

每个Activity都是通过继承来被实现为一个单独的活动类,一个应用程序通常由多个Activity组成,每个Activity都具有自己的生命周期。

Android系统中通过一个被称为Activity栈的东西来管理各个Activity之间的关系,当有新的Activity启动时,它被置于栈顶,之前的Activity被保留在栈中,不再出现在前台,直到当前的Activity退出为止。

打开前一个Activity可以通过回退来实现。

Activity的生命周期如图2-6所示,主要有以下4种状态,分别是:

1)活动状态,此时Activity处于栈顶位置并可以与用户交互,具有可见性。

2)暂停状态,此时的Activity失去了焦点,但是依然保持可见状态(非全屏或是透明)并保存所有的信息,在内存过低时可能被“销毁”。

3)停止状态,此时的Activity由于被其他Activity所遮挡而处于不可见状态,但是依然会保存所有的信息,在系统内存过低时会被“销毁”。

4)结束状态,此时的Activity已经被从内存中销毁,下一次启动时需要重置之前被保存的状态。

图2-6Activity的生命周期

从上图可以看出,Activity有以下三个循环过程:

1)一个Activity的生命周期从onCreate(Bundle)开始,到onDestroy()结束,在onCreate()中会设置所有的状态和资源,在onDestroy()中回收这些资源,例如一个Activity中由于存在比较耗时的任务,会重新开启一个后台线程,这个线程可以在onCreate()中创建,在onDestroy()中停止。

2)在onStart()到onStop()之间,Activity处于生命周期的前两个状态,此时无论该Activity是否能与用户交互,都具有可见性,可以保存相关的信息。

3)从onResume()开始到onPause()结束,Activity处于活动状态,可以实现和用户的交互。

Activity可以经常在resumed和paused状态之间切换,如当一个新的Intent被发送时。

Activity的整个生命周期由以下几个函数定义,其中每个函数都可以重载。

publicclassActivityextendsApplicationContext

{

protectedvoidonCreate(BundlesavedlnstanceState);

protectedvoidonStart();

protectedvoidonResume();

protectedvoidonPause();

protectedvoidonStop();

protectedvoidonDestroy();

}

(二)Service:

没有可视化的用户界面,在后台运行,通常用来完成比较耗时的工作,并且可以与其它程序进行交互。

最典型的Service应用是在后台播放音乐或是从网络上下载数据。

有两种不同的方式可以来启动一个Service,第一种方式是通过调用Context.startService()来启动,调用Context.stopService()来结束,这种方式无论调用了多少次startService()方法,都只需要调用一次stopService()方法来停止服务。

第二种方式是建立一个到服务对象的链接,通过调用这个链接来获得服务。

这个链接通过Context.bindService()方法建立,并通过调用Context.unbindService()方法来关闭。

多个用户可以绑定至同一个服务提供对象。

一个Service也具有一定的生命周期,如图2-7所示。

图2-7service的生命周期

从上图可以看出,service主要有以下两个循环过程:

1)完整的生命周期:

从onCreate()开始到onDestroy()结束,在onCreate()函数中完成初始化,在onDestroy()函数中释放所有的资源。

例如一个音乐播放程序,可以在onCreate()中创建音乐播放线程,在onDestroy()中终止这个线程。

2)活跃的生命周期:

从onStart()开始,在这个函数中处理传递给startService()的Intent对象。

例如对于一个音乐播放程序,会在Intent中找到需要播放的音乐曲目。

(三)BroadcastReceiver:

用来接收广播信息,并给出相应的处理结果。

这些广播信息也许来自于系统自身,如电池电量低、拍摄照片、来电话或短信等;也许来自应用程序,比如下载完成时发送通知来告知用户。

每个应用程序拥有的广播接收器没有限制,并且可以对任意感兴趣的通知进行响应,广播接收器也不具有用户界面。

广播接收器的生命周期很短,只有在广播消息抵达接收器并且接收器中的onReceive()函数被调用时处于活跃状态,一旦onReceive()函数返回后,广播接收器就处于失活状态。

(四)Intent:

协助前面提到的三种组件完成通信过程,一个Intent由动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Component)和扩展信息(Extra)等内容组成,系统根据Intent中所携带的不同描述信息来决定将此Intent交给哪个组件以及该组件获得Intent后要采取的动作。

(五)ContentProvider:

为应用程序之间共享数据提供了一个统一的接口并隐藏了具体的数据来源,Android系统中为一些常见的应用(如联系人、音乐、图像等)定义了相应的ContentProvider,调用者通过相应的URI来对数据进行访问。

通常ContentProvider将一个应用程序的数据封装,并向需要使用该数据的其他应用程序赋予权限,这样就可以使得数据在多个程序之间共享。

需要注意的是,ContentProvider是基于权限控制的,这种做法可以提高数据的安全性。

2.4.2程序界面开发

Android系统为开发者提供了丰富的可视化界面设计组件,包括菜单、对话框、按钮、文本框等,其中最主要的界面元素包括以下三类。

1)视图组件(View:

是基类Android.view.View的一个实例,用来存储屏幕上特定矩形内的布局和内容属性,由视图又衍生出了一个子类Widgets(窗体控件),用来处理屏幕区域的测量和绘制,常用的Widget包括Text,EditText,Button,CheckBox和ScrollView等。

2)视图容器(ViewGroup:

是基类Android.view.ViewGroup的一个实例,用来承载和管理一组下层的视图和其他视图组,通常称为View的容器。

3)布局管理:

Android使用布局管理器来管理应用程序中各用户界面的组件,这样做的好处是可以避免因手机分辨率、尺寸等的差异导致编写的应用程序无法移植,因为布局管理器能根据运行平台调整组件的大小。

所有的布局管理器都是ViewGroup的子类,图2-8表示布局管理器中各类的关系。

图2-8Android布局管理器的类图

1)LinearLayout(线性布局):

该布局中元素之间成线性排列,常用的布局有水平布局和垂直布局。

2)RelativeLayout(相对布局):

该布局中元素之间根据相对位置排列,即在指定一个元素位置时往往会以它的父元

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1