详细设计与实现Word下载.docx
- 文档编号:21441000
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:24
- 大小:499.21KB
详细设计与实现Word下载.docx
《详细设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《详细设计与实现Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
第1章系统概述2
§
1.1开发背景2
1.1.1Android系统的发展历程2
1.1.2Android系统的发展前景3
1.1.3本地通应用与Android系统结合的优势4
1.2国内外研究现状4
1.2.1国内的研究现状4
1.2.2国外的研究现状5
1.2.3结合相关应用来对比该应用的优势5
1.3系统创新点6
1.3.1向用户提供双向式的信息交流6
1.3.2交互性的应用形式6
1.3.3实时性的信息交互7
1.3.4更方便用户的便捷性7
1.4系统意义7
1.4.1对用户的意义7
1.4.2对旅游行业的意义8
第2章系统分析9
2.1系统要点分析9
2.1.1广泛的用户参与是该应用推广的前提9
2.1.2完善的应用功能是该应用可以推广的基础9
2.1.3便捷的应用环境和定位功能是该应用的又一突破9
2.2系统流程分析10
2.3系统功能结构分析12
2.4系统数据库的分析14
第3章主要功能模块的设计16
3.1攻略文章的设计16
3.2推荐必到点17
3.3游客路线的选择以及到达方式17
3.4路线上传及分享18
3.5文章和标签的匹配18
第4章数据库设计19
4.1概念结构设计19
4.2逻辑结构设计20
第5章详细设计与实现21
5.1应用界面设计21
5.1.1应用登陆首页设计21
5.1.2攻略文章界面设计22
5.1.3推荐必到点界面设计23
5.1.4我的行程界面设计23
5.2基本界面的实现24
5.2.1Activity24
5.2.2数据库文件的打包27
第6章系统实现28
6.1开发技术及系统架构28
6.1.1开发技术选择28
6.1.2安卓各种开发工具的选择28
6.2本次开发过程中的技术难点29
6.2.1系统的技术难点主要有以下方面29
6.2.2技术难点的实现29
结论30
参考文献31
致谢32
第5章详细设计与实现
5.1应用界面设计
移动终端主界面包括攻略文章、推荐必到点、我的行程等三个界面。
通过这三个界面为用户展示攻略文章、特色景点以及点的位置,并帮助用户制定管理路线,三个主界面都由标签来相互转换。
5.1.1应用登陆首页设计
应用登陆首页是设计思路:
该应用是首先呈现在各地来洛阳游玩的游客们眼前的,所以项目组选择了清新亮丽的登录页面,给用户一种很亲近的感觉;
首页中的牡丹,更是让游客在第一时间感受到洛阳的特色景点。
并且操作简单,容易上手。
图5-1应用首页
5.1.2攻略文章界面设计
攻略文章界面默认为程序启动后显示的主界面,目的是让用户打开程序后首先看到攻略文章,在攻略中找到感兴趣的点。
攻略文章中的各个标签都是各具特色,让游客可以很清晰了解所要浏览的内容,同时不同攻略之间的对比,也充分展示了洛阳本地的各种风景与特色。
攻略文章界面顶端包含三个Tab键,分别为总攻略、对比攻略、点攻略,三种不同的攻略由粗到细为用户展示景点的特色,帮助用户对景点有个全面的了解。
中间两个文本框显示了两篇热门攻略文章的概要文字,让用户进入界面后能够先看到文章的内容并引导用户点击进入查看详细的文章内容,这样来提高攻略文章的点击率。
界面右下角的点击查看更多按钮,用户点击后,会进入详细的攻略文章列表,总攻略、对比攻略、点攻略分别对应一个列表。
攻略文章界面如图所示:
图5-2攻略文章页面
5.1.3推荐必到点界面设计
推荐必到点界面为用户展示该城市受用户喜爱或推荐的景点、特色或小吃等,帮助用户快速准确的选择行程。
用户可以根据美食、景点、商场等分类对这些信息进行筛选,快速的找到想要去的地点。
点击每个地点,都会进入该地点的详细介绍界面,为用户展示与该地点有关的地址、联系方式、相关攻略文章、评论等信息,帮助用户详细的了解后做出适合自己的选择。
推荐必到点界面如图所示:
图5-3推荐必到点页面
5.1.4我的行程界面设计
我的行程界面为用户提供添加、删除、排序等管理行程的功能,用户在查看攻略文章时添加的地点都会在我的行程界面显示。
用户通过点击删除按钮、拖动地点对行程进行删除、排序操作。
点击行程中的每个点都会进入地图界面,为用户展示该地点的位置。
我的行程界面如图所示:
图5-4我的行程页面
5.2基本界面的实现
5.2.1Activity
Activity是Android应用组件中最基本的一种,在应用中,一个activity通常就是一个单独的屏幕。
每一个activity都被实现为一个独立的类,并且继承于Activity这个基类。
这个activity类将会显示由几个View控件组成的用户接口,并对事件做出响应。
大部份的应用都会包含多个的屏幕。
本应用应用程序的攻略文章界面、推荐必到点界面和我的行程界面都是一个继承Activity类的类。
而每一个activity都有生命周期,从创建到销毁,在编写程序时要格外注意。
当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。
用户可以返回到历史堆栈中的前一个屏幕。
当屏幕不再使用时,还可以从历史堆栈中删除。
默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。
程序中的每个activity都要在AndroidManifest.xml中注册,而且必须制定一个程序默认启动的activity。
在本程序中,默认启动的activity是程序启动界面。
注册代码如下:
<
activityandroid:
name="
.Start"
>
<
intent-filter>
actionandroid:
android.intent.action.MAIN"
/>
categoryandroid:
android.intent.category.LAUNCHER"
/>
/intent-filter>
/activity>
...
在这个例子中,name为要注册activity的名字,<
action>
属性定义这个activity的启动类型,本例中Start这个activity被定义为第一个启动的activity。
1.Service
Service是运行在后台的一段代码,没有用户界面,它可以运行很长时
间,相当于后台的一个服务。
它可以运行在它自己的进程,也可以运行在其他应用程序进程的上下文(context)里面,这取决于自身的需要。
其它的组件可以绑定到一个服务(Service)上面,通过远程过程调用(RPC)来调用这个方法。
例如媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐依然可以继续播放,这时就是由服务(service)来保证当用户界面关闭时音乐继续播放的。
因为Service会在后台运行,不会阻碍UI线程的运行,用来处理较耗
时的操作,对用户是透明的,而且还可以复用。
所以本应用程序用Service定时发送Http请求,判断后台是否有发送推送信息,有则接收。
Service也有生命周期,有startService()和bindService()两种启动Service方法,每种方法Service的生命周期是不一样的。
1)通过startService()
Service会经历onCreate-->
onStartCommand(),stopService的时候直接onDestroy。
如果是调用者直接退出而没有调用stopService的话,Service会一直在后台运行。
下次调用者再起来仍然可以stopService。
2)通过bindService()
Service只会运行onCreate()-->
onBind()这个时候调用者和Service绑定在一起,unbindService的时候onUnbind()-->
onDestroyed()调用者退出了,Srevice就会调用onUnbind()-->
onDestroyed()。
(1)BroadCastRecevicer
Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。
BroadCastRecevicer接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。
可以使用BroadcastReceiver来让应用对外一个外部的事件作出响应,本程序的目前不设计程序之间的通信,因此该组件没有运用到本程序中。
(2)ContentProvider
ContentProvider即内容提供者,可通过它来共享自己的数据给外部调用,给第三方应用提供数据访问的接口。
ContentProvider主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。
ContentProvider负责组织应用程序的数据和向其他应用程序提供数据。
Android系统为一些常见的数据类型(如音乐、视频、图像、手机通信录联系人信息等)内置了一系列的ContentProvider,这些都位于android.provider包下。
持有特定的许可,可以在自己开发的应用程序中访问这些ContentProvider。
让自己的数据和其他应用程序共享有两种方式:
创建自己的ContentProvier(即继承自ContentProvider的子类)或者是将自己的数据添加到已有的ContentProvider中去,后者需要保证现有的ContentProvider和自己的数据类型相同且具有该ContentProvider的写入权限。
对于ContentProvider,最重要的就是数据模型(datamodel)和URI。
本程序的数据都是私有的,存储方式用的是SQLite存储,因此该组件也不会用到本程序中。
§
5.2.2数据库文件的打包
因为本程序目前用的是外部数据库文件,因此需要把数据库文件和程序的其他资源文件一起打包到APK文件中。
具体方法是:
在程序根目录中创建assets文件夹,将数据库文件复制到该文件夹下。
程序在打包时会自动将数据库文件打包到APK文件中。
但是,将数据库文件打包进入APK后,程序仍然不能使用数据库,因为,程序在安装时不会自动将文件复制到程序的数据目录/data/data/程序包名/databases/下,因此,需要程序在启动时,手动将数据库文件复制到该目录下:
InputStreammyInput;
StringoutFileName=DB_PATH+DATABASE_NAME;
OutputStreammyOutput=newFileOutputStream(outFileName);
for(inti=ASSETS_SUFFIX_BEGIN;
i<
ASSETS_SUFFIX_END+1;
i++){
myInput=mContext.getAssets().open(ASSETS_NAME+"
."
+i);
byte[]buffer=newbyte[1024];
intlength;
while((length=myInput.read(buffer))>
0){
myOutput.write(buffer,0,length);
}
myOutput.flush();
myInput.close();
}
myOutput.close();
本例中,将数据库文件用输出流的方式打开生成InputStream对象,在/data/data/程序包名/databases/下新建一个文件,打开生成输入流OutputStream对象,将InputStream流中的数据写入到OutputStream对象中,实现数据库文件的复制。
第6章系统实现
6.1开发技术及系统架构
6.1.1开发技术选择
本系统采用目前流行的开源的开发工具Eclipse,利用AndroidSDK和AndroidADT在其上搭建Android开发环境,以实现本次应用的开发。
6.1.2安卓各种开发工具的选择
1.环境简介
Netbeans是2000年6月由Sun公司开源,其项目包括两个系统:
NetbeansIDE,一个开源的集成开发环境;
NetbeansPlatform,一个应用程序的通用框架。
Eclipse是一个相当著名的开源JavaIDE,由IBM公司开源。
Eclipse主要以其开放性、极为高效的GUI、先进的代码编辑器等著称,其项目包括许多各种各样的子项目组,包括eclipse插件、功能部件等,任何人都能够轻易的将自己的软件做成eclipse的插件。
2.特性比较
Netbeans由于采用了纯Java开发并以Swing库编写GUI,因此界面色调偏暗,使用起来跟本机程序感觉不同,刚开始用的时候可能有些不习惯。
EclipseGUI却是相当漂亮,且简洁高效,甚至是Microsoft的VS.net都是抄袭它的界面。
由于采用的是SWT界面库,因此在多种平台下的eclipse都具有该平台的界面风格,使用起来就和通常的本地程序一样。
3.文档:
Netbeans基本上都是在线文档,有联机帮助、IDE使用指南、快速学习指南、支持和文档,另外还具有Javadoc文档索引搜索功能。
Eclipse基本是都是本地文档,不过其帮助系统会首先建立一个本地的网页服务器以显示其文档,因为这些文档都是jsp格式的。
所有插件及功能部件的帮助文档都会统一安排到eclipse帮助中心的首页,浏览起来很舒服并且有很强的搜索功能。
同时,IBM的知识库中也提供了大量Java及eclipse相关的文章。
基于以上的分析,虽然eclipse在配置环境、安装的时候多少有下繁琐,但是我们还是选择了eclipse作为该应用的开发环境。
6.2本次开发过程中的技术难点
6.2.1系统的技术难点主要有以下方面
1.系统内接口间的结合
由于系统的集成了移动互联网、数据挖掘技术,系统的主要的功能模块分为WEB、文本语义数据化管理,在开发时要考虑不同模块间的接口调用,让各模块都能很好的进行相互调用,满足系统的需要。
2.自动生成路线
系统根据游客选择的点自动的制定最适宜的旅游线路。
3.文本语义的标签匹配
随着文章数据和标签数据的增加,系统要能动态、高效率的匹配两个表的数据,达到文章和标签匹配的及时性、一致性。
6.2.2技术难点的实现
1.为了能让系统不同接口间能进行良好的相互调用,把系统分解成不同的模块,确保模块内的业务逻辑没有问题,最后在进行模块间的接口结合。
系统的接口设计要可靠性、可用性高,接口间调用时,保证接口的调用传递参数的正确性。
2.根据游客选择的游玩点,系统根据游玩点间的距离及游客的游玩时间为游客生成一个游玩路线。
3.文本语义变迁匹配采用自动和手工匹配两种方式来实现,匹配时,根据标签表的数据量的多少来进行匹配。
逐条取出标签表的数据,然后拿取出的标签去和文章表里的文章进行文本匹配。
这样做比较省时、效率比较高,系统在做文本匹配时占用的系统资源可能比较多,所以匹配工作应设置在系统午夜运行的时间段内。
结论
该应用基本上实现了设计的目标以及设计要求的主要功能,能为游客提供比较真实的、丰富的、可靠的、参考价值比较高的旅游信息,来帮助游客选择自己感兴趣的点,合理的安排自己的游玩行程,同时也给游客提供了一个交流、分享的平台,不仅让游客充分感受到旅途中的愉快,也让游客更进一步的体会到分享的乐趣。
该应用虽达到了一定预期目标,实现了基本的功能,但是同时,系统还有一些功能和设计上的不足:
1.部分页面的处理速度比较慢。
2.在路线地图模块实现的不太好,没能做到XX、google地图等的效果。
3.系统设计里缺少最热的游玩路线、游客最喜欢的游玩点的展示等。
下一步需要将这些地方来加以改进,在使系统更加完善的同时,也为该应用的用户提供更好的出游体验。
参考文献
[1]W.RichardStevens,尤晋元等译.UNIX环境高级编程(第2版).北京:
人民邮电出版社,2006
[2]于志龙.GoogleAndroidSDK开发范例大全.北京:
人民邮电出版社,2010
[3]Americ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 详细 设计 实现