毕业设计基于Android系统的失物招领平台的设计与实现.docx
《毕业设计基于Android系统的失物招领平台的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计基于Android系统的失物招领平台的设计与实现.docx(66页珍藏版)》请在冰豆网上搜索。
毕业设计基于Android系统的失物招领平台的设计与实现
太 原 理 工 大 学
毕业设计(论文)任务书
毕业设计(论文)题目:
基于Android系统的失物招领平台的设计与实现
毕业设计(论文)要求及原始数据(资料):
1.综述生活中失物招领工作的现状,说明该项目实现的意义;
2.深入分析失物招领事务的业务逻辑划分,证明项目的技术可行性;
3.深入研究Android客户端程序与后台服务器进行网络通信的机制;
4.熟练Android客户端前端逻辑处理的设计和实现;
5.掌握搭建服务器的关键技术,学会搭建简单的后台服务器;
6.实现Android客户端与后台服务器交互完成业务处理;
7.训练检索文献资料和利用文献资料的能力;
8.训练撰写技术文档与学位论文的能力。
毕业设计(论文)主要内容:
1.综述线下失物招领工作普遍遇到的问题和困境;
2.了解目前流行的服务器框架搭建的技术;
3.深入分析失物招领的业务逻辑,设计后台数据库;
4.搭建后台服务器,响应客户端的数据提交和数据请求;
5.划分Android客户端的功能模块,设计项目的实现框架;
6.Android客户端UI显示和逻辑处理代码的编写;
7.完成失物招领平台的设计和实现。
学生应交出的设计文件(论文):
1.内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;
2.包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。
主要参考文献(资料):
[1]李欢.捡东西成累赘?
探访失物招领现状[N].大河报,2015-01-06
(2)
[2]李刚.疯狂Android讲义[M].北京:
电子工业出版社,2013
[3]耿海宵,张丽梦.校园失物招领系统设计[J].SiliconValley,2012,(4)
[4]董伟东.失物招领系统的建立[J].计算机光盘软件与应用,2014,
(1):
251-252
[5]Lübke,Robert1;Schuster,Daniel;Schill,Alexander..Aframeworkforthedevelopmentofmobile social softwareon android[C].MobileComputing,Applications,andServices-ThirdInternationalConference,MobiCASE2011,(3):
207-225
[6]袁伟华.多线程技术在Android应用程序与服务器通信的应用[J].电脑编程技巧与维护,2014,(4)
[7]卜炟编.开发参考:
JSTL网络标签与SSH类参考手册[K].北京:
中国铁道出版社,2010
[8]Chandrashekar; Sushruth.Androidapplicationforschoolofartanddesign[D].SanDiegoStateUniversity,2014
[9]ScottOaks,HenryWong.JavaThreads[M].O’Reilly,2004
[10]上海杰普教研组.Android高级编程[M].上海:
上海杰普,2014
专业班级
软件1110班
学生
王杰
要求设计(论文)工作起止日期
2015年3月23日~2015年7月3日
指导教师签字
尹珂男
日期
2015年3月23日
教研室主任审查签字
日期
系主任批准签字
日期
基于Android系统的失物招领平台的设计与实现
摘要
基于Android系统的失物招领平台是基于当下各传统失物招领平台和一些网站型失物招领平台的不足而建立的一个新兴失物招领平台。
新平台客户端部署在Android手机端,实现真正的移动失物招领。
新平台架构采用Android客户端、Web服务器和MySql数据库架构,使信息交互不再依赖浏览器,手机应用添加主流手势解锁、手势登陆,操作更加简便,并且信息交互界面更加友好、便捷。
新平台允许失主发布物品丢失信息、允许捡拾者发布见到物品信息,并且增加一键联系失主/捡拾者功能,大大提高了失物招领的工作效率。
新平台更增加了“中国正能量”模块,宣传近期好人好事,弘扬点滴正能量。
关键词:
失物招领;Android系统;平台;手势解锁;工作效率
TheDesignandRealizationoftheLostandFoundbasedonAndroidplatform
Abstracts
TheLostandFoundsoftwarebasedonAndroidplatformisanewsolutionwhichdifferfromthepresentvariouslostandfoundsoftwareandsomesitesofthelostandfound.NewsoftwareisdeployedintheAndroidmobileterminalplatform,realizestherealmobilelostandfound.NewplatformhastheAndroidclient,WebserverandMySqldatabasestructure,maketheinformationinteractionisnolongerdependentonthebrowser,mobileapplicationswithmainstreamgesturestounlock,gestureslanding,operatingmoresimple,andtheinformationinteractioninterfacemorefriendlyandconvenient.Thisnewplatformtoallowtheownerreleasedlostinformationandallowedtopickupseeitems,andaddfunctionofone-keycontactingowner/pickerfunction,greatlyimprovingtheefficiencyofthelostandfound.Newplatformmoreadded"Chinaisenergy"modulepublicityrecentgooddeeds,carryforwardtheintravenousdrippositiveenergy.
Keywords:
LostandFound;platform;Android;gesturelanding;efficiencyofoperations
1绪论
1.1选题来源及现实意义
随着我国社会经济的不断发展,人们的生活节奏也在不断加快,加之现在生活中越来越多的物件小型化,我们不免会偶尔疏忽而遗忘物品。
生活中谁没有丢东西的经历呢?
就体积而言,大到雨伞、书包、行李箱、各类书籍,小至银行卡,钥匙,身份证,眼镜、钱夹等等。
雨伞可以买,银行卡可以挂失补办,钥匙可以重新配;书丢了可以买新的,但是以前的笔记是买不到的,身份证一时半会都补办不下来,尤其是人在外地时更是麻烦!
遇到这种情况怎么办呢?
生活中我们也会偶然捡到别人遗失的物品,捡到的东西该怎么处理呢?
捡到工作证、学生证,上边有单位信息可以很方便地联系;但身份证上的信息联系起来代价太大,难以联系;如果捡到的是雨伞、书籍,连个联系的人都没有;捡到钥匙不知道该还给谁或是交给谁,而失主还焦头烂额地发愁进不了家门;捡到银行卡就只能交给发卡行了,但是实际上丢银行卡的人到银行补办银行卡时几乎不会有机会找到丢失的卡......
以上种种丢失物品或是捡到物品的情况在我们日常生活中频繁的出现,丢东西的人着急着急找失物像大海捞针,而捡到东西的人有心寻找失主却无从找起!
那么怎么能减少这种情况——让失主知道谁捡了自己丢的物品,让捡到东西的人知道怎么联系失主呢?
加之智能手机普及以及移动互联网的发展,几乎每个人至少有一部以上的智能手机。
这一部部智能手机将世界上一个个游离的个体人,不管距离多远,不管何种语言,连接成为一个整体。
智能手机将我们的世界缩小到一部手机上,通过一块几英寸的屏幕将形形色色的数据以光速传播着。
人们可以随时随地通过手中接入互联网的智能手机来获取各种信息,并可以发布自己独有的信息。
而在智能手机领域,Android手机占有很大的市场份额。
基于对以上这些情况的考虑,我们可以在手机上安装一个专门用来进行发布失物找回和寻找失主信息的软件,搭建一个在线的失物招领平台,将失主和失物的信息进行采集发布,极大地扩展双方的信息沟通渠道,减少失物招领的精力花费、时间代价和经济代价,从而提高生活品质。
由于只是局限性,本次选定Android手机作为开发平台,来完成“失物招领平台”的搭建。
1.2失物招领平台的现状
现阶段的失物招领平台主要是这样一种组织运作方式——有一个实体的运维部门(或是政府机构,或是企事业单位如铁路航空,或是民间团体,也有盈利性公司)作为主体,被动的接收失物信息(当有人捡到丢失物并且愿意花时间精力归还时才对交给它),并由工作人员人工录入失物信息,进行分类(有的也不分类)保管,然后在一个特定的信息发布平台发布失物招领信息,等待失主有机会看到这些信息后来联系,最终完成这个失物找回的流程。
这些平台很多都是线下的运行,像一些社区的失物招领处,特别是中国铁路竟然没有一个成熟的失物招领平台,中国铁路各大车站每日客流量达几万到十几万,即使有万分之一的乘客丢失了行李,各大车站加起来也是一个很庞大的数据!
这些平台几乎都是区域性的,只服务周边的社区、城市。
如果你不幸到另一个城市然后丢了物品,那么这几乎就不可能找回了。
综上所述,现阶段还没有一个服务范围广,信息在线收集、在线发布并且为广大群众所熟知的失物招领平台。
在移动互联网高度发展的今天,失物招领仍然是阻碍和谐社会发展的一块绊脚石。
1.3选题的发展前景
生活中,每个人都会由于一时疏忽大意而丢失遗落物品,价值和使用价值有大有小,但不管价值大小,在你发现物品遗失而正要好要用到时,每个人都会焦虑不安而又到处找不到,大大影响了一段时间的心情和工作效率,影响了生活品质。
在没有一个完善的失物招领平台的支持下,几乎丢了东西找不回来已经是一个“常识”,而能找回来就成为了一件幸事。
我国正在大力倡导建设社会主义和谐社会,全面提高国民素质,怎么能让这么一个问题成为一块绊脚石呢?
运行于Android手机端的失物招领APP有可能将每一个使用Android手机的用户连接到我们的失物招领平台,让每个人都成为一个失物招领的一个主体和子结点,让每个人都成为失物招领平台的受益者和工作者。
本选题旨在搬除这一块绊脚石,要让大家意识到,丢了的东西是有可能找回来的,是有专门的软件帮助你找回来的!
而且这个软件有一个庞大的用户群,你的忧虑可能只是别人动动手指就能帮你解决的事情。
当你被人帮助,我相信下一次你捡到东西会很乐意动动手指来帮助别人,我们要让每个人切实感受到和谐社会的微暖,共同为和谐社会的建设添砖加瓦!
我们要在本APP的使用过程中培养用户的习惯并改变用户的认知,让大家相信这是一款实用好用的应用,就像地图导航软件一样,装一个在手机里呗,万一啥时候不知道路就可以用。
让大家改变过去的意识,相信丢失的东西是可以找回来的,动动手指,你我都可以为和谐社会出一份力!
一起分享身边的故事,身边的感动,传递社会正能量,净化社会风气,共建文明城市,和谐社会。
2失物招领平台的现状与分析
2.1现有的失物招领平台
现阶段的失物招领平台还不是很成熟,总结起来主要有以下一些,按照不同的分类指标可以分为不同模式的平台。
(一)按照平台运行模式可以分为以下两种:
(1)传统的失物招领平台
传统的失物招领平台即线下运行的平台,都是人工操作,对失物收集分类、捡还者的信息登记、失主来找信息的登记分类都是线下操作,或者是手工登记,或是电脑录入,但是这些信息都是本地保存,不上传互联网。
(2)小范围的线上失物招领平台
这种平台是传统平台接入互联网的产物,相对与传统平台来讲有了很大的进步,将各方信息由系统管理员(工作人员)电脑录入,并发布在一个特定的信息平台,用户可以接入互联网查看相关信息,但是服务范围小。
(二)按照平台性质及组织方式分为以下三种:
(1)政府服务部门或是企事业单位的失物招领平台,如上海失物招领服务平台
(2)公益性的失物招领平台,如大连失物招领网
(3)营利性的失物招领公司,如南昌复失德商务信息咨询有限公司
2.2对传统平台的分析
传统的失物招领平台理论上只能服务于一个很小的区域,如临近的几个社区,或是一个城市的某个部门,如xx市公交公司的失物招领处等。
这些平台存在很明显的缺陷和不足:
2.2.1信息流不对称
传统平台只能依靠人力来完成信息的收集处理,信息发布没有一个可见性广的平台,造成了失物招领工作中信息流的即为不对称性,结果是很多失主根本不知道自己的物品已经被捡到,还在到处寻找无果,最后放弃找回;很多失物在等待失主来找时根本不知道失主正在到处寻找,以为失主不要了,最后长期滞留无法处理,需要更多的人力,地方来管理和存储;最后无奈销毁又造成资源的极大浪费。
2.2.2运营成本高
传统平台的日常运维需要大量工作人员完成物品信息的收集登记、捡拾者信息的登记、物品的分类保管、失主的来访接待、失主信息登记、失物与失主信息的匹配、以及捡拾者与失主双方接洽事宜的处理等等一系列工作,在信息互联网高度发达的今天这些人力成本成为这个平台运维成本的最大支出。
2.2.3服务范围小,受众面小
从服务的地域范围来讲,这些平台几乎都是区域性的,都是以一个城市,再小就是一个社区为服务单位,某些营利性公司可能拓展到周边的几个城市,但这相对于一个国家来说还是太小太微不足道了。
如此小的受众面,在当今人们活动范围极大拓展的今天其实是起不到什么实际作用的(不排除会有一些人还是会通过此途径找回失物,此处是相对选题进行比较)。
2.2.4被动接受信息,工作效率低
传统的失物招领平台都是被动地接收信息,只能等着捡拾者自己来上门登记捡到什么什么等信息,等着失主上门来找寻物品(且不论失主是否相信捡到东西的人会归还,不论失主是否知道有这么个失物招领处)。
而且各项工作流程都是人工完成,会导致工作效率底下,让群众不再对这项工作抱有期望。
2.3对线上平台的分析
现在的一些线上的失物招领平台已经有了一些起色,改善了传统平台的一些弊端,采用电子化办公大提高了信息收集管理的效率和人力成本;并通过互联网将相关信息发布在一个特定的平台上使得信息的传播范围极大拓展,使平台的受众面极大拓展;更重要的是允许注册用户自主发布丢失和招领信息,将无线的潜在用户变为这一工作的有力支持者。
但是还是存在几个问题:
(1)平台认知度低,没有吸引力。
对于失物招领平台,大家的普遍反映都是,“肯定是谁丢了东西采取上边找找有没有自己的东西被捡到”。
如果都是这样的想法,那么这个平台可以说是一个失败的平台,因为只有找的没有招领的,一条腿走路怎么能走得远呢?
这样的平台能起到什么在作用呢?
(2)平台缺乏有效监管。
以上海失物招领服务平台为例(只知道这个),俨然成了一个分成两类的贴吧,一个找东西,一个找失主。
甚至有人借机发布不实信息,留下广告或诈骗的电话,造成了即为不良的影响,一个本来造福民众的平台上竟然会有广告甚至诈骗电话。
(3)平台便捷性不足。
现在的失物招领平台都是一个个网站,用手机浏览器查看起来很不方便并且耗费大量流量费;而用电脑查看却不如手机方便,不如手机能方便随身携带,随时打开。
这也给平台的进一步发展造成困扰。
(4)仍然脱离不了地域的限制,仍是“xx市失物招领平台”,没有将互联网的优势充分利用。
2.4发现可利用资源
(1)积极向上的社会意识。
借着我国正在大力建设社会主义和谐社会,弘扬中国正能量的春风,我们可以将我们的产品推出来,率先倡导拾金不昧的优良传统,引导民众意识。
(2)便捷而广泛的智能手机平台。
失物招领平台的发展前进,可以借助智能手机普及的契机,将平台无限延伸,部署到每一台智能手机终端,通过移动互联网搭建一个覆盖整个网络的失物招领平台,让没一部智能手机都成为这个平台的一个节点,集结每个人的能量,让中国正能量在每个人之间激荡回旋。
(3)手机号码的身份验证。
现在的手机号都是实名办理的(不包括非法办理的黑户号码,这本身就是违法的),我们的账户可以只允许手机号注册,一定程度可以避免很多用户发布不实消息。
(4)信用机制的不断成熟。
我们可以加入一个等级成长系统,用来记录用户帮助他人的次数,这样的成长机制能够吸引用户奉献爱心,营造一个不断向上的社会意识。
3可行性分析
3.1经济可行性
本课题只为考察基于移动互联网、基于Android手机的失物招领平台的可操作性,为平台的正式开发奠定基础,不考虑经济市场因素,故而不必讨论本软件的经济可行性。
而且从长远利益出发,此类生活软件的总和效益必然产生巨大的经济效益。
3.2技术可行性
3.2.1Android平台的成熟性
Android系统原来的公司名字就叫做Android。
AndyRubin创立了两个手机操作系统公司:
Danger和Android。
谷歌公司在2005收购了这个仅成立22月的高科技企业Android。
Android系统也开始由谷歌接手研发,Android系统的负责人以及Android公司的CEO安迪·鲁宾成为谷歌公司的工程部副总裁,继续负责Android项目的研发工作。
在2007年11月5日这天,谷歌公司正式向外接展示了这款名为Android的操作系统。
并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。
这一联盟将支持谷歌发布的手机操作系统以及应用软件,将共同开发Android系统的开放源代码。
Android系统框架和上层应用是类java(不是正统的sunjava)开发的,实现了自己的java虚拟机dalvik,在基本主流的智能手机的软件平台上,android的执行速度是最快的。
1、资源文件的优化读取。
用xml文件来描述UI,这样有个好处是只要修改UI不用修改代码就可以修改界面的布局、显示风格和字体大小等。
界面定义变得灵活方便。
xml配置UI在qtopia运用也有但是这么强大并且也不广泛,因为xml文件有个不足是解析xml的效率很低。
但是Android在编译的时候就把xml文件进行了优化,android应用程序在解析时变得非常的高效。
我们看到apk文件解压后会有个优化过的资源文件。
2、安装时进行优化dex文件。
Android的应用程序都打包成一个apk文件,实际上就是一个zip文件。
系统第一次起来或应用程序第一次安装时,系统就把apk文件解压了,把可执行文件dex优化成odex文件并放在/data/dalvik-cache目录下。
优化后的dex文件启动速度会加快。
这解释了为什么android系统第一次启动是比较慢,以后起来很快了。
3、制作数据库。
Android的图形应用是加载整个sd卡内的所有图像的,但是为什么很快呢?
其实android提前把数据做成了数据库,所以不用每次扫描整个这个sd卡,大大加快了启动速度。
4、高效的虚拟机。
Android是基于类java虚拟机dalvik,一般的java虚拟机是基于栈的,而dalvik是基于寄存器的。
实事求是说我对两者的区别了解不是很深入,不过网上有专门的相关文论进行分析。
我的简单理解是栈的实现方式相对容易,相关数据是在内存中的栈里,而操作寄存器里数据的速度明显快与内存里的数据处理。
5、充分挖掘CPU的性能。
Android刚出来的时候虽然支持armcpu,实际上只支持armv5te的指令集的,因为android系统专门为armv5te进行了优化,充分利用armv5te的执行流水线来提高执行的效率,这也是在500M的三星2440运行效果不是很好,而在200M的omapcpu上运行比较流畅的原因了,所以在最新的代码中有专门针对x86和armv4的优化部分。
6、优化和裁剪的libc库。
Libc库几乎是所以库和程序的基础,但是android没有直接利用libc库,而是自己开发了一个库:
bionic,它实现了libc库的绝大多数的函数并根据平台进行了优化,但是有系统很少用并且消耗资源的少数函数是不支持的。
它只有几百k,节省了空间同时也提高了执行效率。
实际上体现了2-8原则,抓住少数重要的适当舍弃不必要的。
7、充分利用linux系统特性。
分析过linux内核的朋友知道,linuxfork一个新的进程是非常高效的,利用了COW机制。
Android是每个进程是个独立的虚拟机(听说这么设计是为安全考虑,某个时候进程崩溃了不会影响这个系统和其他进程。
)android里每个进程都是基于虚拟机的,并且也要加载基本的库,实际上这些都是共享。
所以android启动一个新的程序实际上并不消耗很多的内存和CPU资源。
同时android在后台有个emptyprocess运行,实际上就是运行一个虚拟机,当要启动一个应用时就直接在其上继续运行,qtopia也有这个机制。
8、高效的paint机制。
这个特性可能跟启动关系不大,但是也是android高效的特性之一。
界面变化时大部分实际上不是全屏内容变化的,只是局部变化,android会根据变化的内容只是跟新局部的内容,也提高了效率。
这个也提醒我们在开发应用程序时,重载paint方法时尽量不要paint全屏内容。
3.2.2平台架构的可行性
Android客户端与服务器、数据库的信息交换模型如下(图3-1平台架构模型):
图3-1平台架构模型
Android客户端与服务器之间采用http请求进行交互,可以通过移动互联网,也可以使WIFI网络,服务器返回给客户端信息以JSON格式进行封装,客户端接收到服务器返回信息之后进行解析,根据解析结果将信息呈献给用户;服务器采用Structs2框架,数据库用MySql数据库,服务器与数据库通过JDBC连接,进行数据操作。
3.2.3Android技术点的可行性
(1)Android本地数据存储
Android本地数据存储常用5中方式:
1.SharedPreferences方式
SharedPreferences是用来存储一些Key/Value类似的成对的基本数据类型,注意,它只能存储基本数据类型,也即int,long,boolean,String,float。
事实上它完全相当于一个HashMap,唯一不同的就是HashMap中的Value可以是任何对象,而SharedPreferences中的值只能存储基本数据类型(primitivetypes);
2.InternalStorage内部存储空间
手机内置的存储空间,称为内部存储,它是手机一旦出厂就无法改变,它也是手机的硬件指标之一,通常来讲手机内置存储空间越大意味着手机价格会越贵(很多地方把它称为手机内存,但我们做软件的知道,这并不准确,内存是指手机运行时存储程序,数据和指令的地方;这里应该是手机内部存储的简称为内存,而并非严格意义上的内存)。
内部存储空间十分有限,因而显得可贵,所以我