基于Android的珠海免费信息搜罗助手毕业论文.doc

上传人:文库蛋蛋多 文档编号:3015511 上传时间:2023-03-08 格式:DOC 页数:9 大小:39.50KB
返回 下载 相关 举报
基于Android的珠海免费信息搜罗助手毕业论文.doc_第1页
第1页 / 共9页
基于Android的珠海免费信息搜罗助手毕业论文.doc_第2页
第2页 / 共9页
基于Android的珠海免费信息搜罗助手毕业论文.doc_第3页
第3页 / 共9页
基于Android的珠海免费信息搜罗助手毕业论文.doc_第4页
第4页 / 共9页
基于Android的珠海免费信息搜罗助手毕业论文.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于Android的珠海免费信息搜罗助手毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Android的珠海免费信息搜罗助手毕业论文.doc(9页珍藏版)》请在三一办公上搜索。

1、吉林大学珠海学院毕业设计基于Android的珠海免费信息搜罗助手The ZhuHai Free Information Search Helper For Android完成日期 2013年 4月 19 日吉林大学珠海学院本科毕业论文(设计)开题报告摘要珠海市免费信息搜罗助手是一款基于Android平台开发的应用软件,它能为使用者提供有限的珠海市内的免费信息,如景点、班车等,使用者亦可以通过本软件的爆料功能为我们的数据库添加有用的数据,完善市内免费信息,当然爆料必须通过我们的审批才能入库。作为一款服务类应用,珠海免费能在一定程度上使市民的生活便利化。本次设计结构严谨,业务层次分明,条件判定比较

2、全面,基本可以控制所有异常、错误或空值,并在UI做出反应。关键词: Android;免费;爆料;动态AbstractThe ZhuHai Free Information Search Helper is a application software based on Android, it can provide the user limited free information. Such as scenery, buses and so on. The users can also help us add useful information by broking the news, o

3、ff course the news must through the approval. As a kind of service application, the ZhuHai Free can make the publics life more easy to soma extend.This time, our application is structured and included comprehensive judgment. All the exception and possible errors are under control.Key words:Android;f

4、ree;told;dynamic目录1 绪论11.1 研究背景11.2 Android简介11.3 SQLite简介11.4 Tomcat简介22 需求分析32.1 系统需求32.2 需求分析32.3 系统功能分析图33 总体设计53.1 系统结构图53.1.1 公众客户端:珠海市免费信息搜罗助手53.1.2 管理员客户端:爆料审批63.1.3 后台业务架构63.2 总体功能设计73.2.1 查询73.2.2 搜索73.2.3 保存(增添)83.2.4 删除83.2.5 公众客户端主界面83.2.6 可滚动字体的标题栏83.3 数据库设计83.3.1 系统E-R图83.4 数据词典123.4.

5、1.免费巴士表(表名:BUS)123.4.2 免费景点表(表名:SCENERY)123.4.3 免费看房团表(表名:HOUSEGROUP)133.4.4 公益活动表(表名:PUBLICACTIVITY)133.4.5 市民爆料表(表名:TOLD)143.4.6 搜索结果表(表名:COMMONCOLUMN)144 设计思想与实现154.1 闪屏154.2 珠海免费-主界面154.3 进度框164.4 珠海免费-右边列表174.5 珠海免费-详细界面184.6 珠海免费-搜索界面184.7 珠海免费-搜索结果194.8 珠海免费-市民爆料194.9爆料审批-主界面204.10爆料审批-爆料详情21

6、4.11爆料审批-保存214.12爆料审批-爆料的编辑修改225 系统测试与运行235.1 系统运行环境235.2 系统测试235.2.1 查询测试235.2.2 按条件搜索测试245.2.3 保存测试265.2.4 删除测试286 结束语29参考文献30致谢311 绪论1.1 研究背景在近一百多年来,总有一些公司很幸运地、有意识或者无意识地站在技术革命的浪尖之上。一旦处在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前漂个十年甚至更长的时间。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。WAP时代已经过去,目前我们正处于移动互联网这个浪潮之中,而我公司新成立的移动应用软件

7、部正式标志我们也加入这个浪潮之中。身处这个部门,本着移动互联网应用开放的精神,借本次机会,从便民利民的角度出发,尝试建立一免费的信息平台珠海市免费信息搜罗助手,使民众日常生活进一步便利化、时代化。1.2 Android简介Android是我们最为熟悉的操作系统系统之一。它是一种基于Linux的自由及开放源代码的操作系统,主要用于便携设备,如智能手机和平板电脑。2005年由Google收购注资,并组建开放手机联盟开发改良。2008年10月第一个Android智能手机发布。2011年第一季度,Android在全球的市场份额首次超过塞班,跃居全球第一。截止2012年11月,中国市场占有率为90%。A

8、ndroid主要包括Linux微内核,中间件(SQLite等),关键应用(电话本、邮件、短信息、GoogleMap、浏览器等),提供Java框架,以及Android中的JVM。而android的应用主要由四个关键部分构成,分别为Activity、IntentReceiver、Service、ContentProvider。其中Activity为必要部分。1.3 SQLite简介SQLite是一款轻量级数据库,是遵循ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它的资源占用率非常低,在嵌入式设备中,可能只需要几百K内存就够了。它能支持Window

9、s/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来说,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。1.4 Tomcat简介Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Apache Tomcat7.x是目前的开发焦点。它在汲取了Tomcat 6.0

10、.x优点的基础上,实现了对于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。除此以外的改进列表如下:1) Web应用内存溢出侦测和预防2) 增强了管理程序和服务器管理程序的安全性3) 一般 CSRF保护4) 支持web应用中的外部内容的直接引用5) 重构 (connectors, lifecycle)及很多核心代码的全面梳理2 需求分析2.1 系统需求珠海市免费信息搜罗助手(以下简称珠海免费)是基于Android平台,配合SQLite数据库和Tomcat服务器,经过对市内免费搜集和归类,而研发的一款方便市民生活的服务生活类应用。系统要求界面友好,有不错的交互性,稳定性。并且需

11、要在对功能点进行实现的基础上,美化UI,以提升用户体验,尽可能达到锦上添花的效果。2.2 需求分析A. 系统需求分析:a. 要求对免费信息进行归类,以列表形式展示;b. 需要提供搜索功能;c. 提供一个“爆料”入口,市民可以通过此入口向我们的服务器提交他们所知的免费信息,以提升产品的可用性;d. 由于爆料内容存在真实性问题,需要一个用于审判爆料的管理员客户端,用于人工去判断爆料数据是否可以入库;e. 主界面以类似抽屉的形式展示,分为左列表和右列表,且右边列表可以左右滑动。B. 系统性能要求:a. 系统安全、可靠、无中断性错误;b. 数据读取流畅。2.3 系统功能分析图注:以下是系统主要功能(注

12、:分为公众客户端(珠海免费)和管理员客户端(爆料审批)。图2-1 珠海免费功能分析图珠海免费(进入)查询大巴景点看房团公益活动搜索市民爆料验证保存界面滑动图2-2 爆料审批功能分析图爆料审批(进入)查看某项详情删除指定项编辑修改刷新列表保存到对应表手动刷新3 总体设计3.1 系统结构图本次设计分两个客户端:公众客户端和管理员客户端,前者面向市民,后者面向系统管理员。后者任务只有一个:对市民的爆料进行审批。图3-1 珠海免费系统结构图3.1.1 公众客户端:珠海市免费信息搜罗助手闪屏珠海免费后台加载数据主菜单开始左菜单列表右数据列表免费巴士免费景点免费看房团公益活动关于市民爆料搜索结果列表详情界

13、面3.1.2管理员客户端:爆料审批图3-2 爆料审批系统结构图闪屏爆料审批后台加载数据开始详细界面爆料列表刷新列表编辑修改保存删除列表项3.1.3 后台业务架构上面介绍的是客户端一层的东西,现在介绍一下后台结构,这也是本次设计重点研究的部分。本次设计使用的是企业中惯用的设计模式,如下图,Views到Proxy属于客户端部分,Service到DAO属于服务端部分,他们是上层调用下层的关系。Views负责控制界面,BC负责数据组装,DAO负责数据库操作,Proxy负责请求网络,Service是Tomcat负责服务端方法。注意到这里BC和DAO出现了两次,他们分别管理着客户端本地的数据库和服务端的数

14、据库,作用是不同的。图3-3 后台业务架构结构图ViewsBCDAOProxyServiceBCDAO服务端数据库客户端本地数据库服务端3.2 总体功能设计3.2.1 查询1. 对指定表的全查2. 用线程的方式请求网络3. 结果以列表展现的形式在客户端显示3.2.2 搜索1. 用户输入关键字2. 用线程的方式请求网络3. 后台针对该关键字对所有表的属性“TITLE”进行查询4. 结果以列表展现的形式在客户端显示3.2.3 保存(增添)1. 在客户端通过编辑内容组建好对象2. 用线程方式请求网络3. 将数据插入对应表4. 操作结果在客户端用Toast展示3.2.4 删除1. 用于管理员客户端2.

15、 删除指定内容,单个删除3. 以线程的方式请求网络4. 操作结果在客户端用Toast展示3.2.5 公众客户端主界面1. 分左右两块区域,左右占屏幕比利1:12. 都以列表形式展示3. 左边为菜单,右边为数据4. 右边列表可左右滑动3.2.6 可滚动字体的标题栏1. 如果标题栏文字过长,可以通过滚动让用户看到全称2. 俗称“走马灯”效果3.3 数据库设计3.3.1 系统E-R图图3-1 免费巴士E-R图免费巴士标题图片ID内容运营时间路线类型标示图3-2 免费景点E-R图免费景点标题图片ID内容类型标示可到此处的公交图3-3 免费看房团E-R图免费看房团标题图片ID集合时间类型标示内容集合地点

16、目的地楼盘图3-4 公益活动E-R图公益活动标题图片ID类型标示内容活动时间活动地点举办方图3-5 市民爆料E-R图市民爆料标题内容时间地点上传时间爆料类型3.4 数据词典3.4.1.免费巴士表(表名:BUS)描述:其中TYPE:0表示巴士,1表示景点,2表示看房团,3表示公益活动,数字通过枚举器获得。表3-1 免费巴士表3.4.2 免费景点表(表名:SCENERY)表3-2 免费景点表3.4.3 免费看房团表(表名:HOUSEGROUP)表3-3 免费看房团表3.4.4 公益活动表(表名:PUBLICACTIVITY)表3-4 公益活动表3.4.5 市民爆料表(表名:TOLD)表3-5 市民

17、爆料表3.4.6 搜索结果表(表名:COMMONCOLUMN)描述:这个表用于组装搜索结果,它包含了除了爆料表以外,其他所有表的列属性,且不能有默认数据存放(空表)。表3-6 搜索结果表4 设计思想与实现4.1 闪屏1. 持续2秒的logo界面;2. 2秒期间,线程请求网络,在后台加载数据;3. 2秒后进入主界面,并finish掉闪屏,避免在主界面按下返回键后回到这里。4. 闪屏作用:给后台充足的时间访问网络和让UI美观。5. 关键实现技术:线程延迟。设置2秒后执行线程中方法。图4-1 闪屏4.2 珠海免费-主界面1. 如图划分为左右两部分,左菜单一个选项对应右边一个界面;2. 左菜单列表固定

18、,右边界面可左右滑动,左右两个界面装入一个大容器中形成一个整体(该容器是由我的同事完成的);3. 左边结构:最顶端标题栏,有一个搜索按钮,可进入搜索界面;菜单部分由动态生成技术完成,在代码中只组装列表项类,即可通过该技术生成,这里主要是体现设计的灵活性,当然右边列表也是一样的思想和方法;4. 右边结构:顶端有一个“返回”按钮,点击可使右边界面向左滑动或恢复;也可以通过手势的左右滑动完成滑动效果;列表部分本质是一个ListView,但经过我们一层封装,简化实用,简化的地方主要体现在生成列表项这块儿,现在我们只需拿到列表项的list,即可通过setList(List list)方法完成;5. 图4

19、-2 主界面关键实现技术:动态生成。不写死界面,在设计时尽量让自己站在一个比较高的位置去观察这个模块,要时刻保持“方便修改和给他人使用”这样的想法,这样做出来的东西就可以具有比较好的复用性。使用者只要考虑给控件设置数据,而布局则是由控件类的私有方法完成。4.3 进度框1. 进入线程请求网络时,弹出的进度框;2. 网络请求完成时,关闭进度框。3. 作用:确保线程进行时,没有其他干扰,并当作提示。4. 关键实现技术:进度框Progressdialog的封装,对外提供显示进度框的showProgressdialog()和关闭进度框的cancleProgressdialog()两种方法即可。4.4 珠

20、海免费-右边列表1. 在主界面,将右边列表往左滑动使其占满屏幕,得到如图效果;2. 标题栏文字,随菜单项选择变化;3. 列表项动态生成,可以看到第一行文字背景是不同的(黑、绿),这个效果在适配器中完成:获取列表项的position,做一个除法余数判断position%2 = 0,true的话更换列表项的background;4. 仔细看的话标题栏存在两层backgroud,形成一种纹理效果;5. 关键实现技术:动态生成、适配器adapter、android布局绘制功底。图4-4 右边列表4.5 珠海免费-详细界面1. 点击右边列表项,进入对应详细界面;2. 界面构造比较简单,分为标题栏和文本内

21、容区域,其中文本内容区域由一层滚动条包住。这里是纯数据展示,没什么特殊的技术;3. 注意线条使用技巧。这里的文本区域用到了两条线:一条黑色,一条白色,黑在上白在下相互紧贴。线条是用高度为1dp的linearlayout绘制的;4. 关键实现技术:数据传递,JSON转化对象为字符串。数据是如何传递进来的呢?在列表界面的列表项点击事件中,做如下事情:拿到当前位置的序号,取出list中对象,用JSON将其转换为字符串类型,放入Bundle,随Intent跳转到详细界面,这里关键的地方就是JSON转换字符串了。图4-5 详细界面4.6 珠海免费-搜索界面1. 用户输入关键字搜索,不支持多条件,在数据库

22、中查询时是这样的:%keyword%;文本编辑框下面区域是一个linearlayout容器,装载ListView控件;2. 搜索过程:以用户输入的关键字为条件,经过本地BC层、Proxy层请求网络,到达服务端,经过服务端BC层,搜索所有表的TITLE属性,获得搜索结果后,在服务端BC层中组装成CommonColumn类型的list逐层返回到客户端;3. 为什么要重组成CommonColumn类型?原因是因为每张表对应不同类,如果不重组的话放进Map中返回不方便客户端展示,干脆用一个包含所有表列属性的CommonColumn类,以list形式返回。4. 关键实现技术:线程、数据重组。图4-6 搜

23、索4.7 珠海免费-搜索结果1. 搜索结果展示,同图4-6;2. 如果有数据会如图以列表形式展示,若没有数据或网络异常则会出现Toast提示。4.8 珠海免费-市民爆料1. 点击提交按钮会收集用户填写的信息,经过一个内容有效性的判断方法,true的话请求网络,进行保存数据操作,false的话Toast提示;2. 有一个值得一提的地方,第一个“选择分类”这个按钮其实是一个TextView控件,而非很多人所想的多控件组合效果,大家应该注意到TextView里有一系列很有用的与图片组合使用的方法,如DrawableRight等。3. 关键实现技术:线程、格式判断检查、数据控制和传递。4.9爆料审批-

24、主界面.1. 界面分为两部分,标题栏和列表容器;2. 标题栏右边是一个刷新按钮,点下后线程请求网络,获得最新数据后刷新列表;3. 列表项较公众端的不同点是多了一个删除按钮,体现我们管理员的权限,点下后直接删除该项并刷新列表,这里不采用确认提示,以简化操作;4. 关键实现技术:线程、ListView控件的封装。图4-9 市民爆料主界面4.10爆料审批-爆料详情1. 点击列表项,进入如图的详情界面,在这里可以查看详细的爆料内容;2. 标题栏左方是返回键,右边是一个保存按钮。当管理员确定该爆料有效时可以点击保存进入下一步;3. 数据传递方式同公众端(在4-5)。4. 关键实现技术:TextView走

25、马灯、数据传递、JSON转化对象为字符串。图4-10 爆料详情4.11爆料审批-保存1. 点下保存后弹出的对话框;2. 选择一项后,系统会记住类型标示,进入到下一个界面;3. 简单介绍一下这个对话框:经过对Dialog一层封装的YGDialog,简化使用,开发人员要做的是构建一个列表项列表,写一个点击事件,设置标题,而这其中列表项类已经一起封装在YGDialog中。4. 关键实现技术:android的Dialog封装。图4-11 爆料保存4.12爆料审批-爆料的编辑修改1. 进入这个界面首先会获取市民的爆料内容并进行填充;2. 管理员在经过必要修改,最终确认可行后,点击下方按钮可以进行网络请求

26、,将数据保存到数据库中对应的表;3. 完成操作后显示Toast显示操作结果,成功的话返回审批主界面,失败时不跳转;4. 解释一下如何保存到对应表的:爆料的类名是Told,而最终保存是需要转换为Bus、HouseGroup、Scenery、PublicActivity中的一种,在之前的对话框选择一种类型后,系统会将Told数据取出,重组成所选的类型,随intent一起传入到这个界面。5. 关键实现技术:线程、数据重组、数据传递。图4-12 爆料编辑修改5 系统测试与运行5.1 系统运行环境A. 本次设计模拟器运行环境:Intel(R) Core(TM) i5-2450 CPU 2.5GHz ,4

27、.00GB内存,40GB硬盘空间。B. 本次设计手机运行环境:型号AMOI N821,版本Android 4.0.4。C. 最低运行环境:p3以上CPU,1GB以上内存,2.1GB硬盘剩余空间。D. 最低手机运行环境:Android版本2.3以上。E. 推荐运行环境:p4以上CPU,1.5GB以上内存,6.4GB硬盘剩余空间。F. 推荐手机运行环境:Android版本4.0以上5.2 系统测试系统需要测试的地方很多也很杂,几乎每做好一个界面期间都需要测试三四遍甚至十几遍,由于大多都是位置上微调的问题或者是像if判断细节方面的把控,这里头并非都值得一提,那么我们主要需要测试只有:服务端功能接口(

28、增删查)。5.2.1 查询测试以查找bus列表为例,在网络通畅、服务部署完毕、数据库建立完成且有数据的情况下(以下默认这两项没有问题),客户端按下“免费巴士”按钮后,系统开始通过线程请求网络数据,如图5-1,我在服务端的getBusList()方法上打了断点,此时程序运行到次数暂停,观察被busBC.getBusList()方法赋值的属性ret,可以看到list为null,说明我们现在没有免费巴士的数据。服务端将放回null,因此客户端将不会有列表显示,并会提示“没有找到结果”。图5-1 bus查找结果再以查景点列表为例,用ctrl+shift+i查看服务端的sceneryBC.getScen

29、eryList()方法,可以看到elementDate Object里有数据,说明这里已经正确拿到了Scenery的数据,这时只需将这个list返回到客户端即可。图5-2 scenery 查找结果5.2.2 按条件搜索测试测试搜索方法主要是看搜索过程是不是按我期望的进行。我们把断点打在服务端的搜索BC层上的方法里,如图5-3,简单介绍一下流程:系统先进入每张表,根据关键字去查一遍结果,分别保存在busRes、sceneryRes、houseGroupRes、publicActivityRes中,再分别去判断它们的值是否存在(这里因为篇幅关系只给出判断busRes,思路都是一样),弱不存在则跳过

30、进入下个判断,弱存在,就去循环这个Res列表,取值重组成CommonColumnBO类型,再add进List resList 列表中,最终以返回值形式返回。如图5-4,可以看一下返回值。图5-3 搜索组装搜索结果方法图5-4 搜索结果5.2.3 保存测试图5-5 格式检查另一个测试重点,市民爆料。如图5-5,测试的是点击提交后,系统的格式检查方法。当用户输入信息不完整时,系统提示“以上均为必填信息,请检查”,说明我们的格式检查方法没问题。如图5-6,我们把断点打在服务端保存爆料的方法上,当有数据进来时,系统会尝试进行保存toldBC.saveTold(told),这个方法结果是boolean类

31、型,根据处理结果,如图5-7返回对应的字符串到客户端,如图5-8客户端会展示返回结果。图5-6 判断图5-7 保存爆料返回值图5-8 保存爆料客户端展示操作结果5.2.4 删除测试图5-9 删除爆料如图5-9,有重复数据,此时需要删除。我们期望点下按钮后能删除该项,表现在:界面上这一项消失、数据库中这一条数据被删除。好,那么测试开始,如图5-10先在服务端的删除方法打好断点,点下按钮后,进入到这里,系统将尝试toldBC.deleteTold(told)方法删除库中数据。图中处理结果已经很明显,结果是true,说明操作成功,接着返回字符串形式的处理结果告诉我们的客户端操作成功了。图5-10 服

32、务端删除爆料代码6 结束语整个3月顶着压力,从无到有,找数据,查资料,集成技术框架,搭建业务框架,编写后台,调试、配置服务.在不断的加班和同事的帮助下,珠海免费第一版终于在4月3号正式宣布诞生。本次设计,运用到了几乎我在实习期间学习到的所有技术,涉及面也比较广,因为无论是后台功能还是界面绘制都是我一个人完成的。不过有一个东西,就是客户端的主界面容器,是拿同事已经做好的来用的,而这个容器存在一个bug,描述起来比较困难,大概就是说右边界面拉满整个屏幕后,会有穿透现象,你可以点击到被他覆盖的菜单。这个问题困扰了我一整天,同事也没找到方法解决,后来想起做走马灯的那种焦点变换思想,让背景变成可点击的可

33、聚焦的,问题一下解决。从时间进度上来看,这次设计仅仅是第一版,若要细化结构和功能,需要完善的地方还有很多,有些可能会是颠覆性的修改,比如表设计方面。不过没什么害怕的,每一次困难的到来都是自我突破的机会。突然想起一个月前那种不自信,现在成果出来了,顿时觉得没什么。参考文献1 埃史尔(著)、 陈昊鹏(译).Java编程思想(第四版)M. 电子工业出版社, 2011.6.2 杨丰盛.Android应用开发揭秘M. 机械工业出版社, 2010.1.1.3 郑萌.Android应用开发和典型案例M. 电子工业出版社, 2012.10.4 赵瑞莲.软件测试.北京:高等教育出版社,2004.5 Gamma E. 李英军,等译.设计模式: 可复用面向对象软件的基础.北京:机械工业出版社, 2000.6 李明慧.三层架构技术即模式分析.现代计算机,2001,9.7 梁玉强.E-R模型中联系状态研究及应用. 计算机工程与应用. 2012(09)8 张海越,范曦.JDBC连接Oracle和SQL Server数据库探析. 沿海企业与科技. 2012(01)9 罗海滨,范玉顺,吴澄.工作流技术综述.软件学报,2000,11(7):899-907致谢在这次毕业设计中要感谢我的同事们,无论我向他们提出什么问题他们都能耐心为我解答,其次要感谢指导老师,给我提出了不少建议,对论文的定稿帮助很大。

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号