已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 论 文院 系 信息科学与工程学院 专 业 计算机科学与技术(软件工程) 题 目 基于Android的C2C众包平台 “有求必应”系统设计与实现年 级 2012级 学号 学生姓名 指导老师 职称 论文提交日期 2016年04月29日 南京大学金陵学院 毕业设计(论文)摘 要随着4G网络的发展,依附于网络的各种应用也应运而生。而基于LBS的应用也日渐成熟起来,Android手机操作系统的普及为其发展提供了硬件基础,网络的高速发展成为催化剂,使得LBS应用在人们的生活中占据相当地位。LBS应用为人们的生活提供了很大的帮助,使得人们的生活越来越便利。本系统是一款基于Android操作系统的LBS应用,可以作为一个C2C众包平台,一种新的O2O模式,类似于打车类软件而业务上又不同于打车类软件,业务上可以作为一款公益软件。生活中人们常常因有几件紧急度相同而很琐碎的事堆在一起而无法处理一些需要集中注意力的任务,本系统为他们提供一个互助平台,让需要求助的人摆脱找不到人帮忙的困境,让闲着的人可以利用闲暇时间去帮助别人。文中首先介绍了Android的历史以及系统开发所依赖的环境,其次描述了业务流程以及系统整体的架构,接着对各个功能模块的设计以及实现进行了详细介绍。关键词: 众包平台; LBS; 定位; 接口全套设计加扣3012250582 The C2C crowdsourcing platform based on AndroidSoft touch system designABSTRACTWith the development of 4 g networks, attached to the network has also created a variety of applications. Location-based applications are increasingly mature, the popularity of Android mobile phone operating system provides a hardware foundation for its development, with the rapid development of network become a catalyst, the LBS application occupy a position in the life of people. LBS applications for peoples life provides a lot of help, makes the life of people more and more convenient.This system is a based on LBS application of the Android operating system, can be used as a consumer-to-consumer crowdsourcing platform, a new O2O mode, a taxi is similar to the kind of software and business and a taxi is different from the kind of software, business can be used as a good software. Life is often because of a few pieces of urgent degree of the very same heap together to deal with some trivial things need to focus on tasks, this system provides a platform for mutual for them, let the people who need help out of this hole can not find people to help make idle people can make use of spare time to help others. This paper first introduces the history of Android development rely on environment and system, secondly describes the business process, and the overall system architecture, and then design and implementation of each functional module is introduced in detail.Keywords:Crowdsourcing platform; LBS; positioning; interface目 录摘 要iABSTRACTii目 录iii第一章 绪 论11.1 引言11.2 研究内容11.2.1众包平台11.2.2LBS云服务的应用11.3 研究意义11.4 研究现状和发展趋势21.4.1互联网移动终端发展趋势21.4.2众包平台发展现状21.4.3LBS服务研究现状4第二章Android的特征52.1 Android构架52.2 Android基本情况介绍52.3 Android的优势6第三章 需求分析103.1 开发工具需求103.1.1服务端103.1.2客户端123.2 功能需求133.3 性能需求143.3.1操作系统143.3.2用户界面153.3.3通信网络153.3.4数据库选择15第四章系统设计164.1开发环境配置164.1.1JDK的配置164.1.2Android SDK的配置164.1.3Tomcat的配置164.1.4MySQL的配置174.2 业务流程设计174.3 功能模块设计184.4 客户端文件结构设计204.4.1libs目录204.4.2src目录204.4.3gen目录224.4.4bin目录224.4.5res目录224.4.6AndroidMainfest.xml234.5 服务端设计234.5.1业务流程244.5.2数据库设计24第五章功能模块介绍265.1 登录注册模块265.1.1整体流程265.1.2界面设计265.2 定位模块275.2.1功能实现275.2.2界面设计275.2.3核心代码实现285.3 任务发布(下单)模块295.3.1整体流程295.3.2界面设计305.4 任务接收(接单)模块315.4.1整体流程315.4.2界面设计315.4.3代码实现325.5 数据传输模块34第六章总结356.1 系统整体的设计356.2 系统创新之处356.3 不足35结束语37致谢38参考文献39v 第一章 绪 论1.1引言“有求必应”是一款基于Android平台的LBS平台应用,用户通过应用获取位置,发布自己的需求并可被附近其他用户发现。用户通过识别任务确定自身是否有能力完成任务后,决定是否接单。在客户端同一用户可选择发布/接单模式,进行信息发布或接单操作。1.2研究内容1.2.1众包平台众包概念始于2006年。Howe第一次向公众提出众包的概念,他认为“众包是指一个公司或机构将过去由员工执行的工作任务以自由自愿的形式外包给非特定的(通常是大型的)大众网络的做法”。众包是由多人进行接入的线上支持,发起者可以是个人、公司、公共服务组织,甚至是非盈利组织以及各种社会机构,它们面向所有用户聚集一些各不相同的个体在非强制的情况下参与某项任务。众包还被定义为“组织或个人利用先进的互联网技术将传统上交由指定的机构或个人(通常为雇员或承包商)所做的工作以公开征集的方式外包给非特定的分布式网络大众来完成” 1。在一个众包平台中,有任务的发布者,也有任务的执行者,如果能将二者有序地统一在一个平台中进行调度,高效地做出匹配,将成为一种高效的共享经济。不仅仅是盈利为目的,更多的是公益性服务平台,提倡的是一种互相帮助、和善友爱的社会氛围,更加偏向于作为一个社交平台,用户以交友为目的而非盈利。1.2.2LBS云服务的应用LBS(Location Based Service),基于位置服务。用户无需自备服务器,不需要编写复杂的检索服务,只要专注于逻辑开发,通过LBS云存储API接口就可以实现用户数据的检索与计算、地图的展现,并且可以将海量数据存储到百度云空间。本系统即通过百度LBS云来实现对用户的定位、检索等复杂功能。1.3研究意义现代化城市中的人们生活节奏很快,这也使一些外地人常常会觉得举目无亲,缺乏归属感。当你走在城市中需要帮忙的时候,却发现很难找到有人会来;当你遇到紧急需求时,却发现有钱真的不是万能的。如何利用互联网来消除人们之间的冷漠,有求必应,将会使我们的城市更加具有人情味。只有找到对的人,才能做好对的事,走到困境再也不必烦恼,自有贵人来相助。让这个城市暖起来,热心帮助他人,我们的城市才会更加完美。1.4研究现状和发展趋势1.4.1互联网移动终端发展趋势随着互联网与移动通信的高速融合发展,移动终端逐渐成为人们日常生活中不可或缺的一部分,将互联网技术把网络融入到日常生活中已是大势所趋。随着手机的普及以及性能的不断提升,人们使用无线终端设备访问Internet的需求也越来越大、越来越多样化。2015年1月16日,中国互联网络信息中心(CNNIC)在北京发布的第36次中国互联网络发展状况统计报告中提出,截止到2015年6月,我国网民规模达6.68亿,互联网普及率为48.8%;我国手机网民规模达5.94亿,较2014年12月增加3679万人,依旧稳居上网终端第一位的宝座。网民中使用手机上的人群占比由2014年12月的85.8%提升至88.9%,比使用其他设备上网的用户比例高出很多,手机用户仍然是我国网民最主要的组成部分2。1.4.2众包平台发展现状一些网上众包平台(如Dell的“创意风暴”和IBM的“全球创新项目”)是由企业自己进行管理并寻找推动持续创新的商业渠道的;还有一些网上众包平台(如InnoCentive平台)并非由企业自己创建,而是由中介公司来组织、构建以及运营的,主要作用是为企业的发展提供一些创新的解决方案,扮演着一个企业虚拟的智囊团的角色。众包平台一般有两种,一种是解决问题的平台,另一种是创意产生的平台。解决问题的平台是一种开放的创新研发媒介,在平台中有问题的提出者,也有解决问题的方案的解答者,一般来说这些解答者都是科学家或者高校等研究机构中的一些高科技研究工作者。由美国亚马逊公司倾力打造的土耳其机器人是众包方案的一个典型的案例,它的本质是一个使用人特有的网络的优势来处理一些由计算机很难完成甚至就干脆不能完成的任务的Web服务应用程序接口。其中,机器人简单的执行流程可以简述为:当用户发出一个请求,服务平台的应用就会将这个请求发送给任务的执行者。人便会对这个请求做出回应,然后服务器将回应返回给请求方3。因此被认为是一种解决特定问题的中介平台.众包系统在国外有CrowdComfort、Croedfynd、Estimize等众包平台。Crowdfort可以收集承租人对住宅和办公场所舒适度的点评信息,包括暖气、空调等设备的情况,房东根据点评来不断改善房屋的舒适程度,对屋内设施进行维修。它还能为房东提供节省能源的机会。Crowfynd允许用户发布失误招领信息,如果你帮助丢失东西的人找到失物,还能获得现金奖励。Estimize这个社区中有这成千上万的分析师、投资组合经理和交易商,他们会根据收益预测来为用户提供一致的股市信息和股市警报。平台声称他们的预测中,69.5%的情况比华尔街分析师预测得更准。Fiverr 成立于 2011年,总部位于以色列特拉维夫市(Tel Aviv)。和美国跑腿外包网站TaskRabbit模式类似,Fiverr 是一家任务众包平台,平台上的任务被称为Gigs(“零工”)。人们在其平台上可以购买和出售几乎任何类型数字化零工服务。如网页开发、Logo 设计、写作、拍照、PS 等。在国内,则是有一些传统意义上的众包。比如猪八戒网、微差事、蚂蚁公社、蚂蚁微服(现称“蚂蚁微客”)已经刚刚推出的阿里众包。由上海喇叭信息技术有限公司创立的“微差事”APP是一款基于众包模式的B2C任务对接平台,提供企业和品牌发布个性化微型任务,通过平台上百万活跃用户传播、消化。所有移动端用户就如同企业和品牌的弹性兼职雇员,完成企业过去由内部团队或外包执行的工作,经审核后获得金额不等的现金报酬。蚂蚁公社是款为大学生和企业之间的联系建立桥梁的移动应用,企业把需求以任务的形式通过应用发布到互联网,而且学生可以在应用中看到这些任务,有选择性地去做这些任务,从而提高自身实力,如果表现突出者获得企业的青睐,可以去相应的企业实习。除此之外,学生每次完成任务,都会奖励一定的技能积分和蚂蚁币,蚂蚁币可以提现换成人民币,或者可以在旗下的蚂蚁商城中购物4。阿里众包是阿里巴巴集团客户体验事业群打造的一个为追求职业自由的青年人提供的预就业平台和兼职的云工作平台,它基于众包的模式,面向广大具有时间和技能 盈余的人们,提供类型丰富的认证任务,致力于在为业务需求方提供个性化解决方案的同时,将社会大众的闲置时间和技能转化为经济价值。而蚂蚁微服则是阿里众包的其中一个分支,性质是一样的。相似的平台有很多,但是大部分都是B2C模式。即使是包含有C2C模式的猪八戒网,也还是缺乏可接收任务,无法进行定位操作,且基本全是在线完成,这样就对可发布任务种类造成很大的限制。而且一个C2C的模式会让用户使用这个软件时更加方便。这个不仅可以给用户用,还能给企业、校园组织用,可谓一举三得。1.4.3LBS服务研究现状LBS服务的起源于发展LBS起源于美国军方以军事应用为目的所部署的全球定位系统(Global Positioning System,GPS),之后开始应用于测绘和车辆跟踪定位领域。同时在紧急呼叫服务上,在有线通信时代,跟踪到呼叫所在地比较容易,但是随着无线通信技术的发展,1996年美国联邦通信委员会(FCC)公布了E911(Emergency-911)的定位需求,要求无线蜂窝网路系统必须达到误差小于125m的定位服务,也就是位置服务的雏形。随着定位通信技术的发展,GPS民用化以后,欧美及东亚发达国家各自推出商用位置服务,并且都颁布了对移动位置服务规定的法律。2001年,我国由中国移动首次开通位置服务。2006年,随着我国互联网的高速发展,加之互联网地图的出现,众多地图软件厂商开发了许多在线LBS终端软件产品。在2012年9月3日的百度世界大会上,LBS云作为百度地图七大武器之一面世于开发者,大大降低了开发成本,彻底解决了基于位置数据的高并发检索瓶颈。在LBS云上,开发者可以借助云检索计算完成用户的请求而无需自备服务器。最后可在PC端、移动端等多种终端利用地图API实现数据的在地图中的展示,使得程序员可以专注产品本身开发逻辑,使得开发更加高效。第二章Android的特征2.1Android构架Android平台操作系统是由Linux内核和Java构建而成的。其中包含了SDK、Key Apps、Middleware、Linux Kernel四个部分。如图2-1所示,Android的架构是以Linux系统内核作为底层,把C/C+函数库作为系统库,运行在Dalvik虚拟机上,顶层由应用框架以及关键应用程序构成的。一般情况下,开发者所开发的应用程序是需要在Dalvik VM虚拟机上运行的5。图2-1Android架构2.2Android基本情况介绍随着手机的普及以及性能的不断提升,人们使用无线终端设备访问Internet的需求也越来越大、越来越多样化。据第36次中国互联网络发展状况统计报告,截止到2015年6月,我国手机网民规模达5.94亿,较2014年12月增加3679万人,依旧稳居上网终端第一位的宝座。而安卓在的市场占有率也是逐年递增,早在2011年,Android系统便成为全球最受欢迎的智能手机平台,当然也在平板电脑、电视领域占有一定的市场份额,由于其免费的特性,其市场份额占有率居全球第一,并仍然高速发展着。2.3Android的优势随着互联网的发展以及3/4G网络技术越来越成熟,移动通讯设备不再只用于打电话发短信,还用于浏览互联网。市面上出现了许多手机操作系统,比如现在市场份额比较大的Android、iOS、Windows Phone、BlackBerry等都拥有一定的用户基础,如表2-1所示,各大公司旗下的操作系统有着有多不同的属性,在不同的领域各自占有一定的优势,而由Google发布的Android移动终端操作系统凭借其开源、稳定性好等优点已经占据了大量的市场份额。而我国知名手机品牌基本上都在使用基于Android的操作系统,比如华为、中兴、小米、联想等。搭载基于Android操作系统的手机凭借其价格优势拥有相当庞大的用户群。表2-1手机操作系统对照表开放性移动设备Android平台目前已得到了大量开发者的关注,各种好的想法不断涌现出来,人们的思维方式也与以前大有不同,越来越灵活。低门槛的开发,使得大量的开发者受益于此,因此市场上也就出现了大量各种各样的手机应用,涉及到人们生活的各个方面,众多深受用户喜爱的应用为用户带来了更方便快捷的服务,不断刷新人们的生活方式,为人们的生活带来了翻天覆地的变化,人们对应用的需求也越来越多。总结起来,有下面几点优势相比:1、Android价格亲民 性价比比较高客户选购商品,价格自然是需要考虑的第一因素,搭载着iOS操作系统的iPhone家族在各方面的属性表现均很突出,引人瞩目,但是价格却是一个很高的门槛。苹果在手机操作系统中的地位就相当于汽车中的豪车,所有人都觉得它很出色,它也确实表现出众,但是不是所有人的消费能力能够企及的,只能看看。而Android,就像普通的汽车,不需要太高的价格去购买以及维护,但也毫不逊色,有一些厂商的某个功能在某个特定的环节上是可以与那些豪车相比肩的。虽然搭载Android的手机价格相对来说比较低,但是它们在性能上的表现却是非常出色,屏幕的触摸体验和搭载iOS的苹果也相差无几。安卓系统在操作上比较简单,其大多数功能也是比较实用的,而且对普通大众来说比较容易操作,在功能设计、外形设计方面,都有其特殊的代表足以抗衡iPhone。如果消费者因为iPhone相对来说比较高昂的价位放弃选择iPhone,转而转向Android阵营的手机产品中,也是可以选出一款适合自己的手机而不是一定要选择iPhone入手,iPhone也不是无可替代的,在某些方面也是会输给Android的6。2、手机平台程序迅猛发展对智能手机来说,应用生态圈是其很重要的一部分,虽然目前Android平台的应用在数量上稍差于苹果,其应用的质量相对于iOS来说略输一筹,但是随着Android越来越大的用户群,数量上,应用成数量级增长;质量上,也将越来越完美。在不久的将来,Android应用是有能力与iOS相竞争的。而Android应用商店最大的优势是,对应用程序的审查没有苹果那么严格,但这一点也可能是他的劣势。但就目前来说,在这一点上是利于它的发展的。3、手机厂商的支持苹果成功的一个很主要的因素便是其自控生态链,无论是硬件的品控还是优质的软件的审核,乃至于其与众不同的推广方式,苹果构建了一条很完善的闭环产业链。虽然在一个封闭的圈子中苹果创造了很多新奇的东西,实现了很多令人惊异的想法,在用户体验的提升上获得了很大的成功。但是长此以往,这并不满足长期发展的需求,更难以长期称霸。迄今为止,几乎世界各国生产智能手机的厂商都投入了Android的怀抱,并将其在售系列智能手机几乎全部搭载安卓操作系统。摩托罗拉、三星、HTC、LG、Lumigon等传统手机制造商无一例外地跟谷歌建立了Android平台技术联盟。随着加盟的厂商越来越多,手机终端的种类也就会越来越多,长此以往,Android的市场潜力不变大都难。近6个月来,Android系统在美国手机终端的市场份额的表现便印证了这一点。4、运营商大力推出营销政策在国内,由于Android系统终端的三大运营商共同发力,分别推出力度相当大的营销方案配合Android厂商推广新机。比如说,联通有“0元购机”活动,电信有千元3G的促销,移动也有自己的定制机。这些表现均表现出电信服务运营商对搭载Android手机操作系统的终端认可。在美国,T-Mobile、Sprint、AT&T和Verizon全部推出了搭载Android操作系统的合约机。此外,日本的KDDI,NTT DoCoMo,Telecom Italia(意大利电信)、T-Mobile (德国)、Telefnica(西班牙)等众多运营商也都是Android的支持者。有这么多的运营商均选择了Android平台的手机,巨大的市场份额自然而然会被Android所侵蚀。与Android平台的庞大的电信服务运营商阵营相较来说,只有AT&T一家只销售iPhone。而苹果iOS的封闭性,无论是对手机厂商还是电信服务运营商,都会使得大家处境很尴尬。Android手机联盟的形成,在某种层面上来讲,锋剑直指苹果。5、机型种类多 硬件配置高自从谷歌发布Android操作系统以来,各大手机厂商陆续为自己的产品搭载了Android操作系统,比如,HTC、索尼爱立信、魅族、摩托罗拉、夏普、LG、三星、联想等等,每一家手机厂商都推出了各自的Android手机,机型多种多样,不计其数。6、系统开源、开放,促进创新苹果的自我封闭性,最终的结果便是要想创新,内部是唯一的源泉。与之不同的是,Android是开源的,第三方开发者拥有修改的权限,这也就意味着厂家为了更好地适配硬件,可以根据自己的硬件的情况在原生系统的基础上做一些更改,使其二者能够进行效果更佳的结合。相对封闭的iOS来说,开源的Android在安全性能上可以获得进一步提升,开发人员也可以拥有更广阔的创新空间,同时也加速了Android系统版本的更新换代。7第三章 需求分析开放性移动设备Android平台目前已受到了很多开发者的青睐,好的想法层出不穷,人们的思维也越来越活跃。没有门槛的开发,使得大量的开发者从中受益,从而市场上也就出现了大量各种各样的手机应用,涉及到人们生活的各个方面,深受众多用户喜爱的它们为用户带来了更加快捷的生活方式,为人们的生活带来了翻天覆地的变化,人们对应用的需求也越来越多。现代化城市中的人们生活节奏很快,这也使一些外地人常常会觉得举目无亲,缺乏归属感。当你走在城市中需要帮忙的时候,却发现很难找到有人会来;当你遇到紧急需求时,却发现有钱真的不是万能的。如何利用互联网来消除人们之间的冷漠,有求必应,将会使我们的城市更加具有人情味。只有找到对的人,才能做好对的事,走到困境再也不必烦恼,自有贵人来相助。让这个城市暖起来,热心帮助他人,我们的城市才会更加完美。3.1开发工具需求3.1.1服务端腾讯云服务器腾讯拥有多年丰富的基础架构技术经验,其多年对大量互联网用户的服务经验,在社交、游戏等许多领域,都有足够的资格、成熟的产品来为用户提供更加优质的服务。腾讯在云端对机器进行重要部署,以致力于为开发者和企业在云上提供服务、数据、运营等解决方案,这种一站式服务的模式为客户提供了很大的方便。具体包括云服务器、云存储、云数据库和弹性web引擎等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ空间、微云、微社区等云端链接社交体系。正是由于拥有这些产品为腾讯云带来的巨大的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台8。高性能高稳定性的云虚拟机,可在云主机中提供自由可调节的弹性计算容量,使得开发者摆脱硬件的瓶颈;也可以购买自定义配置的机型,在短时间内便可获取到一个全新服务器,并根据需要使用镜像进行快速扩容。弹性Web 引擎(Cloud Elastic Engine)是一种Web 引擎服务,是一体化web 应用运行环境,弹性伸缩,中小开发者的利器。其已在服务器上部署好一些基础的web 环境,只要把自己写好的代码或者工程上传到服务器,简单调试部署,轻轻松松便能搞定web端服务的搭建9。腾讯云负载均衡服务,用于将业务流量自动分配到多个云服务器、弹性web 引擎等计算单元的服务,帮您构建海量访问的业务能力,以及实现高水平的业务容错能力。腾讯云提供公网及内外负载均衡,分别处理来自公网和云内的业务流量分发。EcpliseEclipse 是一款基于Java的可扩展开源开发平台。它自身只是由一个应用程序,由一个框架和一组服务构成,通过安装插件或者组件构建一个开发环境。但是Eclipse 的安装包自身就集成了一个标准的插件集,里面包含了Java最基本的开发工具(JDK ,Java Development Kit)10。很多人更喜欢把Ecplise当成Java集成环境使用,其实Ecplise还包括插件开发环境(Plug-in Development Environment,PDE),这个插件允许开发者构建与Ecplise环境无缝集成的工具。Ecplise的每样东西都是插件,可以说它是一个插件工具的集合,比如现在已经支持C/C+、PHP、Android等编程语言。Tomcat 8.0Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有Sun公司的参与开发和支持,最新版本的Servlet和JSP的规范都是会体现在Tomcat中的,Tomcat 5便支持最新的Servlet 4.0 和JSP TBD(据说是2.4)规范。因为Tomcat 技术先进,性能稳定,而且还免费使用、源代码开放,Java 开发者对其的喜爱程度是相当的高,不仅如此,还得到部分软件开发商的认可,是目前相对来说比较流行的轻量级小型Web 应用服务器。Tomcat服务器是一个免费的开放源代码的轻量级Web 应用服务器,适合在中小型系统中使用,不能够满足并发访问用户数量很大的情况,一般用于开发和调试JSP 程序。对于一个初学者来说,在机器上配置好Apache服务器,可以利用它来响应HTML页面的访问请求。Tomcat其实只是Apache服务器的一个扩展,只不过它以独立进程运行的,所以当tomcat启动时,它是作为一个与Apache独立的进程。当配置正确时,Apache为HTML页面提供服务,而由Tomcat运行JSP页面和Servlet。除此之外,Tomcat和IIS等Web服务器一样,可以处理HTML页面,并且它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,相对Apache服务器来说,Tomcat在处理静态HTML页面方面的能力有所欠缺。目前Tomcat最新版本为9.0。不过本系统服务端采用的是8.0版本11。MySQLMySQL是一个关系型数据库管理系统,起初是由由MySQLAB公司开发,目前已经被 Oracle收购。MySQL是目前最流行的关系型数据库管理系统,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关联数据库管理系统,关联数据就是将数据保存在各个不同的表中,而不是将所有数据存放在同一个容器内,这样,相对来说运行速度和数据库的灵活性便获得一定的提升。MySQL数据库使用的是访问数据库使用的的最常用的标准化语言SQL语言。MySQL软件分为社区版和商业版,采用双授权模式。由于其体积小、速度快、总体拥有成本低、开放源码这些特点,一般中小型网站的开发都选择 MySQL 作为网站的数据库12。其社区版的性能卓越,本系统是与Apache Tomcat搭配所组成的开发环境。3.1.2客户端ADTADT(Android Develop Tool,安卓开发工具),现评价较高的两款分别是Ecplise+ADT插件和Android Studio。Ecplise+ADT是相对较早的一款Android开发工具,Ecplise是一款基于Java的可拓展的集成开发环境,在Ecplise中安装ADT插件后即可进行Android开发。Java/JDK/SDKAndroid是基于Linux实现的系统,但是Google为开发者提供了很多Java和Android结合的jar包,大多数APK(AndroidPackage,安卓安装包)有:是基于Java编写的(即J2ME技术),所以对Android进行开发需要有Java环境的支持。JDK(Java Development Kit)是Java语言的软件开发工具包(SDK),JDK的基本组件有:javac(编译器),jar(打包工具),javadoc(文档生成器,用于提取注释),jdb(debugger,查错工具),java(运行编译后,后缀名为.class的Java程序),appletciewer(小程序浏览器),javah(产生可以调用的Java过程的C过程),javap(Java反汇编器),Jconsole(Java进行系统调试和温控的工具)。JRE为Java Runtime Environment的简称,Java Runtime Environment(包括Java Plug-in)是Sun公司的产品,包括两部分:Java Runtime Environment和Java Plug-in。Java Runtime Environment(JRE)是可以运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)-编译器、调试器和其它工具。JRE需要辅助软件Java Plug-in以便在浏览器中运行applet13。Java Plug-in软件允许Java Applet和JavaBean组件在使用Sun的Java Runtime Environment(JRE)的浏览器中运行,但是在缺省的Java运行环境的浏览器中是不可以运行。SDK(Software Development Kit,软件开发工具包),是软件开发工程师用于开发软件的工具的一个集合,Android SDK。Android是一个对第三方软件完全开放的平台,因此Android对开发者免费提供系统开发API。由于Android操作系统是不断更新的,不断会有新的版本发布,伴随的便是新的功能,当然也会有新版本的API放出。而本系统所使用的是Android 4.4,其对于接口版本为Android-1914。SQLiteSQLite是众多种数据库中的一种,属于轻量级数据库。支持Windows/Linux/Unix等主流操作系统,能够与C#、PHP、Java等主流编程语言相结合,同时也拥有ODBC接口,且处理相对较快。SQLite的数据类型比较特殊,是无类型,也就是说可以保存任何类型的数据。SQLite连接到数据库会成为程序的一部分而不是与程序进行通信的独立进程,直接使用API调用通信协议进行通信,这也是它处理速度相对较快的一个重要原因。3.2功能需求本系统的主要服务对象是移动客户,主要针对发布任务和执行任务两个角色,类似于打车软件中乘客和司机的关系。根据其性质的不同,他们各自对系统、资源、功能的需求也都各不相同。任务发布者类似于打车软件中乘客的角色,在注册、登录后,可以有选择地发布任务,根据对时间的不同要求可以选择预约或者即时发布任务。两种模式都可以在自动定位之后在地图中标注出来所在位置,然后客户可以输入任务的起始位置,系统自动计算出一天路线。确认之后会弹出一个对话框,如果是发布即时任务的话会让客户选择即时发布或取消,而如果是预约发布的话则会弹出对话框让客户填写需要预约的时间。客户的需求用例图如图3-1(a)所示。接单模式则类似于打车软件中司机的角色,只不过我们把司机和乘客的功能融合到了同一个APP中。接单模式在注册接单者信息后即可查看所有任务,对即时任务可以自动接单,可以手动开启或者关闭自动接单模式。如果成功接到订单的话,可以在信息中查看到需求方的联系电话以便取得联系。接单角色的需求用例图任意图3-1(b)所示。图3-1(a) 发布者需求用例图 图3-1(b) 接单者需求用例图3.3性能需求本系统不只是要求实现基本功能,在操作系统的选择、用户界面的跳转、通信网络功能、数据库的选择上也有一定的要求。3.3.1操作系统本系统是面向个人客户,其所依赖的操作系统应当亲民并拥有大规模用户群,没有门槛,简单易用。而且Android恰好符合这一要求,并且由于Android是开源的系统,开发成本较低,同时运行稳定,为系统的开发提供了基本条件。3.3.2用户界面对于普通用户来说,在移动设备上使用本系统,要求界面简单清晰,可操作性强,易于上手,良好地交互可以有效地提升用户体验效果。界面的设计要结构化,清晰化,甚至是可重用化。3.3.3通信网络本系统需要通过网络与后台服务器进行交互,因此需要实现实时数据传输,并且保证数据传递快速、高效。3.3.4数据库选择本系统需要进行大量的数据读写,同时因为涉及到用户资料,因此还要保证数据的安全性。多用户同时访问数据时,要保证数据不出错。因此,最终选择MySQL作为系统的数据库支持。第四章系统设计4.1开发环境配置4.1.1JDK的配置1)下载安装JDK安装包;2)右击计算机,选择属性,弹出属性框后选择高级设置环境变量;3)新建系统变量名JAVA_HOME 和CLASSPATH,其中详细配置如下:变量名:JAVA_HOME 变量值:D:Program FilesJavajdk1.8.0_20(JDK的实际安装地址)变量名:CLASSPATH 变量值:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;4)在系统变量中变量名为Path的变量值中加入”:%JAVA_HOME%bin;%JAVA_HOME%jrebin”;5)jre的文件夹名需要与环境变量中一致;6)在CMD窗口输入javac测试配置是否成功,输出帮助信息即为正确。94.1.2Android SDK的配置1)下载安装JDK安装包;2)右击计算机,选择属性,在高级设置中选择环境变量;3)在系统变量中变量名为Path的变量值中加入androidSDK中platform-tools和tools的目录路径;4)在CMD窗口输入adb测试配置是否成功,输出版本帮助信息即为正确。104.1.3Tomcat的配置1)确保系统中已配置好JDK;2)新建变量名CATALINA_BASE,变量值:D:apache-tomcat-8.0.23(tomcat安装路径);3)新建变量名CATALINA_HOME,变量值:D:apache-tomcat-8.0.23(tomcat安装路径);4)在系统变量中变量名为Path的变量值中加入“%CATALINA_HOME%lib;%CATALINA_HOME%bin”;5)启动tomcat服务。在CMD窗口输入startup,或者右击“计算机”-“管理”-“服务和应用程序”-“服务”,找到“Apache Tomcat”服务,双击打开该服务属性,将“启动类型”由“手动”改成“自动”并启功服务。6)测试tomcat。打开浏览器访问http:/localhost:8080,若出现tomcat自带的jsp页面,则表示环境搭建成功。4.1.4MySQL的配置1)下载安装MySQL安装包;2)右击计算机,选择属性,在高级设置中选择环境变量;3)在系统变量中变量名为Path的变量值中加入C:program filesmysqlbin;(MySQL安装目录中bin文件夹的路径)4.2业务流程设计业务流程主要是对“有求必应”系统的流程进行一个简单的描述,通过流程图来描述业务活动。主要业务介绍(如图4-1):1)打开软件,进入欢迎界面,然后自动转入登录界面;2)填写用户名、密码后弹出对话框,选择“接单模式”或者“发布模式”;3)若选择接单模式,则在数据库中查询是否为新用户,新用户跳入信息填写界面,之后进入mapView,非新用户则直接进入mapView;若选择“发布模式”,则进入用户界面,有随机发布、预约发布、常用路线、订单查询等六个选项,随机发布有单人模式和多人模式,之后跳入mapView;预约发布直接进入mapView。4)进入mapView后,若在接单模式,则可以选择开启/关闭接单;若在发布模式,则可发布即时或预约订单。图4-1 整体业务流程图4.3功能模块设计本系统从功能模块上来讲,主要分为以下几部分:客户端:用户登录注册、基于LBS的位置检索、路线规划、系统组件状态(包括网络、GPS等)检查、订单发布/检索、与服务端的通信;服务端:与客户端的通信、后台数据库管理。功能模块图如图4-2所示。图4-2 功能模块图以上的描述以及功能模块图基本介绍了本系统的几个模块,那么每个模块的功能如表4-1所示:表4-1模块功能模块名称功能描述服务端数据库操作系统的数据库放在服务器上,执行对数据库的读写。数据传输作为后台支持客户端的运行,与客户端进行交互。客户端登录注册注册用户,登录系统。位置检索对发布者、接单者进行实时定位。路线规划发布模式选定起始点后自动进行线路规划。系统组件状态检查判断网络、GPS等是否为开启状态。订单发布、检索发布任务。查看历史发布任务。与服务器通信与服务器的交互,信息发送接收。4.4客户端文件结构设计本系统工程名定位“Client”,工程下有libs(包含第三方库文件目录)、src(Java文件代码目录)、gen(资源文件标识符目录)、bin(编译生成程序文件目录)、res(Android资源文件目录,主要是layout布局文件夹和values字符资源文件夹)、AndroidMainfest(安卓配置文件)。4.4.1libs目录此目录中包含了一些应用的第三方类库,也就是一些第三方开发的java包,为程序提供了一些系统中没有提供的功能接口。本系统中所包含的第三方类库以及其简述如表4-2所示。表4-2 libs目录库名描述Android-support-v4包含Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabAtrip,Loader,FileProvider 等baidumapapi百度地图APIcplatform.privacy.encrypt数据加密算法API4.4.2src目录此目录中是一些程序的源代码,编译后生成计算机可以识别的目标代码,也就是一些二进制文件,它们是构成系统最主要的部分。如果源代码被修改,必须重新编译生成新的目标代码,否则修改无效。对不同包中各个类功能的描述如表4-3所示。表4-3 src目录包名文件名描述com.taxiCliect.activityAppMain.java百度API管理类DriverMainActivity.java接单模式主界面LoginActivity.java注册界面PassengerMainActivity.java发布者选项SplashActivity.java欢迎界面com.taxiCliect.activity.driverAppointmentListView.java定点气泡DriverAppointmentActivity.java接单预约菜单OverService.java完成任务执行类Panel.java自动接单开关按钮com.taxiCliect.activity.helpOnViewChangeListener.java接口类SwitchActivity.java首次启动界面辅助SwitchLayout.java地图移动辅助切换com.taxiCliect.activity.mapLongClickOverlay.java长按气泡MapMain.java地图主类OverItemT.java终点定义P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 必修3《政治与法治》综合测试题 2026年高考政治一轮复习 必修三 政治与法治 含解析
- 思源经济2011年度北京房地产市场研究报告106p
- 2025年入党积极分子发展对象考试通关试卷提供答案解析【综合卷】附答案详解
- 深蓝经济引领未来
- 化工生产设备升级方案方案
- 兼职人员协议书
- 衢州市人民医院芯片技术操作考核
- 宁波市人民医院儿童危重评分应用考核
- 泰州市人民医院整形手术术前设计能力考核
- 芜湖市中医院泌尿系梗阻B超考核
- 儿童与青少年心理健康护理
- 数码雷管培训课件
- 电气平行检验计划表格部分模板
- JG/T 421-2013土木工程用光纤光栅温度传感器
- 重症医学科护士述职报告
- 四川省成都市2025届高三上学期第一次诊断性考试化学检测试卷(附答案)
- 卒中后认知障碍风险预测模型的建立与评估2025
- 教育技术数字教材及教学服务平台建设方案
- 茶叶知识教学课件
- 健身教练个人简介简历
- 2025年中考数学总复习《二次函数与一次函数》专项测试卷(附答案)
评论
0/150
提交评论