Android课程设计.docx
《Android课程设计.docx》由会员分享,可在线阅读,更多相关《Android课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
Android课程设计
移动互联网开发
课程设计报告
学生姓名:
余安慧学号:
*********
专业:
计算机科学与技术班级:
0314404
设计题目:
茶百科
学年学期:
2016年秋季学期
******
一、设计题目
茶百科
二、设计目的
随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备。
因此,手机的应用服务将会有很大的发展空间,手机茶百科软件就是其中的一项。
Android平台提供给用户非常方便的茶百科查询功能,这将为茶百科查询服务的设计与实现提供了更好的平台。
另外,Android平台基本上是免费的,所以能够有效降低软件的成本,最终让每个用户能够自由地获取信息,也为手机茶百科查询服务的普及做出贡献。
本文对目前应用的Symbian、WindowsMobile、MacOSX和RIM等平台的现状进行了分析与比较。
进而研究分析了Android平台的系统架构和组件模型,接着解析了Android中的重要API和应用构成。
主要应用了数据库,碎片,图片缓存等技术,在此基础上,基于Android平台设计和开发手机茶百科查询软件。
本系统界面友好、操作便捷,具有良好的可扩展性和可维护性;系统经过测试,可以稳定运行,能够满足手机用户的基本需求。
通过设计开发茶百科安卓客户端,综合训练安卓系统开发能力,进一步提升对安卓程序开发及运行的理解和认识,复习、巩固java语言的基础知识,进一步加深对java语言的理解和掌握,搭建一个完整的安卓开发环境。
为学生提供了一个既动手又动脑,独立实践的机会,开发出界面与功能都有特色的安卓应用软件。
三、设计原理及方案
1使用的软件工具和环境
(1)PC计算机
(2)JDK安装包:
JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。
JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库
(3)Eclipse安装包:
是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境
(4)Android SDK安装包:
Android SDK 指的是Android专属的软件开发工具包
(5)ADT插件:
使用Eclipse进行android应用开发需要给Eclipse装ADT件,这样Eclipse就可以和android sdk建立连接
2需求分析与概要设计
“茶百科”应用的功能需求是这样的:
1.首页界面:
在首页界面有头条、百科、咨询、经营、数据五个业务需求页面,用户可以在这五个页面中获得茶信息。
⑴头条:
是关于茶的最新信息,用户能获得最新的茶信息。
⑵百科:
是关于茶的各种信息,用户可以随便看。
⑶咨询:
是关于茶的一些做法,存储方法等信息,提供给用户咨询。
⑷经营:
是关于茶叶买卖如何经营的信息,提供给用户学习。
⑸数据:
是关于茶的一些经营统计数据信息,让用户了解。
2.抽屉界面:
在这个页面可以进行搜索,,我的收藏,浏览记录,版本信息,意见反馈等功能实现。
⑴搜索:
用户希望快速得到某年或者某类茶的信息,进行搜索显示。
⑵我的收藏:
用户查看了某条茶信息,觉得很好,进行收藏。
⑶分享:
用户查看了某条信息,觉得很好,分享给一些社交应用上的好友。
⑷版本信息:
让用户了解该应用的版本信息。
⑸意见反馈:
用户有意见或建议可以在此进行反馈。
⑹浏览记录:
用来保存用户都浏览过哪些界面,方便用户回看。
根据这些业务需求,可画出功能模块流程图如图1所示:
图1功能模块流程图
“茶百科”软件只是一款便于用户查找有关茶的信息的应用软件,经过功能流程的分析,可得出其功能需求如下:
1、首页界面:
这里面包含头条、百科、咨询、经营、数据五个页面。
头条是显示茶的最新信息内容,百科是显示茶的各种信息内容,咨询是显示茶的一些做法,存储方法等内容,经营是显示茶叶买卖如何经营内容,数据时显示茶的一些经营统计数据内容。
然而这些功能需求的目的都是为了用户能够方便的获取查看和茶有关的信息。
2、抽屉界面:
在这个页面可以进行搜索,显示搜索结果,可以查看自己的收藏内容,可以查看版本信息,显示版本信息页面,进行意见反馈,显示提交结果。
3数据库设计
在本应用软件中,有三个地方需要存储数据。
第一处是:
头条、百科、咨询、经营、数据这五个界面中的内容需要存储数据,它们都需要存储title(标题)、source(数据来源出自哪里)、description(内容描述)、wap_thumb(图片)、create_time(创建时间)、nickname(名称)、category(种类,是指数据为头条,百科,资讯,经营,数据,用于区分是哪一种数据),所以该处取名为:
Maindata。
第二处是:
头条这个界面的网络图片显示需要存储关于图片数据,有title(标题)、name(名称)、link(连接)、content(内容)、image(图片1)、image_s(图片2),所以该处取名为:
Viewpagerinfo。
第三处是:
在抽屉界面中我的收藏那里需要保存数据,有title(标题)、source(数据来源出自哪里)、description(内容描述)、wap_thumb(图片)、create_time(创建时间)、nickname(名称),所以该处取名为:
Collect。
根据以上分析可以得出以下实体:
1、Maindata实体:
其属性有title、source、description、wap_thumb、create_time、nickname、category,如图2所示:
图2 Maindata实体图
2、Viewpagerinfo实体:
其属性有title、name、link、content、image、image_s,如图3所示:
图3Viewpagerinfo实体图
3、Collect实体:
其属性有title、source、description、wap_thumb、create_time、nickname,如图4所示:
图4Collect实体图
4详细设计和关键问题
在程序开发阶段,首先确定“Android平台茶百科软件”的工程名MyTea,跟据程序模块设计的内容,建立MyTea工程。
MyTea工程结构图如5所示:
图5工程结构图
在工程中我们可以看到应用程序目录结构
(1)src,在这个包内放的是源代码;
(2)gen,是自动生成的res资源文件类R;
(3)assets,是放置的资源文件不再R类中生成;
(4)bin,是编译后的class文件等目录;
(5)libs,是存放项目中的第三方类库;
(6)res包,在这个包中放的是xml布局文件、图片和其他格式文件等;
(7)AndroidManifest.xml这个清单文件很重要,需要在这个文件中注册所用的四大组件(Activity、Service、IntentReceiver、Content Provider),声明应用包名和应用版本号,用户权限使用声明,硬件访问声明,还有指定编译环境SDK版本信息等,不然应用程序运行不了。
src包中所涉及的内容如图6所示:
实现技术:
(1)欢迎界面(view+viewpager),使用ViewPager+view来实现屏滑动。
我们可以用一个容器来形容ViewPager,在ViewPager中存放多个view,然后在Activity中添加view存放在list集合中然后用适配器,来实现屏幕的滑动。
(2)UI中首页上方Tab,和其对应Fragment;点击ListView对应的Activity
(3)侧滑界面(Fragment+ViewPager+DrawLayout+Activity) ,其中DrawLayout是指抽屉效果,当用户点击时出现抽屉的效果。
(4)获取网络数据,HTTP联网下载数据,Json解析数据,HTTP是web浏览器和服务用来交换信息的一种Internet应用协议,该协议允许用户使用一个客户端程序通过URL在web服务器上检索文本、图像、声音等信息。
JSON,全称是JavaScript Object Notation,是一种轻量级的数据交换格式,主要用于跟服务器进行交换数据。
(5)本地数据库存储SQLite,在Android中,相关的SQLite数据库的库文件已经被放入Android系统平台的底层库文件,因此,我们可以直接通过相关的API来调用,从而实现数据库的各种功能。
(6)xml布局,xml文档是文本文件,在这用来存储布局文件。
(7)PullToRefresh下拉更新下载,下拉页面的时候,页面会更新加载据。
详细设计:
1.欢迎界面
欢迎界面是由三张图片构成,可以滑动。
这是由fragment和viewpager实 现布局,图片上的圆点跟着图片的滑动而变化这是在Activity中的代码实现的,然后从最后一张图片点击跳转进入头条首页界面。
下面是实现上述功能的代码及效果图如图7,图8所示:
图7跳转前图图8跳转后图
2.首页界面模块
首页界面:
有头条、百科、咨询、经营、数据五个界面,都包含网络获取数据,下拉更新内容,返回和收藏功能,由欢迎界面进入的首页,首页界面上方有个三张图片的动画效果,在这个页面,可以上下滑动,点击每个列表,你可以进入具体的茶信息页面,在这个页面 ,点击收藏,会告知收藏成功,点击返回,回到头条界面,然后进行其他页面操作,可以点击那些标题进入其他页面,也可以侧滑页面进入。
1、网络获取数据
网络获取数据:
判断是否有网络,在有网络的情况下,获取那些关于茶的信息。
在没有网络的情况下如效果图9所示,在有网络的情况下如效果图10所示:
图9无网络图图10有网络图
实现网络获取数据功能,首先根据服务端给的接口,实现联网,以下是接口路径与网络下载实现代码:
3.返回
返回:
返回上一级页面。
当进入二级页面浏览完页面信息时,需要返回上一级页面时,实现这个返回界面时的效果图如图11,图12所示:
图11返回前图图12返回后图
实现返回功能的部分代码如下:
4、收藏
收藏:
把需要的茶信息收藏到我的收藏中,便于下次直接查看。
当用户看到感兴趣的茶信息时,为了下次方便找出来,所以进行收藏在我的收藏里出现,这部分也就是使用数据库存储数据,实现的效果图如图13,图14所示:
图13进行收藏图图14显示收藏图
实现数据存储的功能代码如下:
5.抽屉实现部分
抽屉界面:
包含搜索、我的收藏、查看访问记录、版本信息和意见反馈功能模块。
点击抽屉按钮,向左弹出一个抽屉页面,在这个页面上有搜索、我的收藏、查看访问记录、版本信息和意见反馈,再点击抽屉按钮,退出此页面。
实现抽屉效果,我们需要在布局文件中用DrawerLayout布局,然后在代码中实现监听事件,效果图如图15所示:
图15实现效果图
6.搜索
设置关键字,搜索存入数据库中的内容,先判断输入的是否是关键字,如果是就显示相关的页面,如果不是就无显示。
显示效果图如图16、图17所示:
图16搜索成功图17搜索失败
7.版本信息
版本信息是显示这个应用软件版本权限信息,点击,显示版本信息,但这只是一个静态页面,实现的效果图如图18所示:
图18版本信息图
8.意见反馈
意见反馈是用户对软件提出的意见,进行提交然后得到反馈,但是由于能力有限,只做了个页面,页面的显示效果如图19所示,及代码实现如下:
图19意见反馈图
四、实现效果
1、欢迎页面
从第一个界面向左滑动进入第二个界面,再向左滑动进入第三个页面,然后点击“立即体验”进入带导航的首页,如图5所示:
图5欢迎界面
2、首页界面
左图为头条模块的首页 ,右图为抽屉界面可以实现搜索,以及收藏夹,如图6,图7所示
图6首页界面图7抽屉界面
3、抽屉界面
(1)在抽屉界面中我的收藏界面和查看访问记录界面如图8,图9所示
图8收藏界面图9访问记录界面
(2)在抽屉界面中还有版本信息,意见反馈界面设计图如图10、11所示
图10版权信息界面图11意见反馈
五、设计体会
这次课程设计本来是纯粹的Android端的开发,但是进入这样的开发一段时间之后,我就感觉到这个课程的魅力所在。
虽然课上并没有提到移动互联网开发里面这个互联网开发,但是通过这次的课程设计亲切的感受到Android开发的魅力。
课程设计当中提到了web端和Android端的互通,真正的实现互联网这个词,我现在对这门课真的很感兴趣,如果这样的开发多了我相信以后的经验的积累会更快。
但是这次课程设计里也是有很多不懂的问题,这样其实也就是按部就班的进行开发,对于一些技术还掌握不到位,包括里面的实现web端和Android端的数据同步就是这样的例子,说明自己的功底以及相应知识还是不熟,欠练。
这次课程设计是我自己选的素材,也是我想要追寻的方向,虽然不能达到像工程师那样熟练,但是起码给了我自己这样一个学习方向。
互联网其实是现代接触最为接近的核心网络技术之一,掌握这样的技术无论是以后找工作,还是以想开发自己想要的服务都是一个莫大的帮助。
我现在正在往这方面进行发展,等到学好这门技术我希望能开发出一个完全属于自己的项目。
参考文献
1埃克尔,陈号鹏.Java编程思想中文.第4版.北京:
机械工业出版社机械,2007
2蔡翠平.Java程序设计.北京:
北方交通大学出版社,清华大学出版社,2004
3候国峰.面向对象程序设计导论.北京:
电子工业出版社,2002
4叶核亚,陈立.Java2程序设计实用教程.北京:
电子工业出版社,2005
5陈天河.Java数据库高级编程宝典.北京:
电子工业出版社,2005
6程峰,黄若波,章恒翀.Java2核心技术.第6版.北京:
机械工业出版社,2003
7VikramVaswani,许小青译.MySQL完全手册.北京:
电子工业出版社,2004
8杜波依斯,杨涛.MySQL权威指南.第2版.北京:
机械工业出版社,2004
9王珊,萨师煊.数据库系统概论.第4版.北京:
机械工业出版社,2006
10郑人杰,殷人昆,陶永雷.实用软件工程.北京:
清华大学出版社,1997