版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android的志愿活动平台的设计与实现内容摘要伴随着移动互联网的迅速发展,“互联网+志愿服务“方式出现并衍生了许多相关应用与产品,志愿服务方式也更为多元。诸如“志愿汇”、“i志愿”等此类智能手机应用软件正逐渐得到社会大众的青睐与认可。通过设计与开发此类软件能够满足人们参加志愿活动、公益服务的需求。因此基于Android系统的志愿服务平台的应用研究具有重要意义。
论文中阐明了整个软件系统的设计思路,并对各部分进行了细致分析,最终形成了一个完整的实现方案。本应用软件主要面向于活动发布组织和广大志愿者用户,包含了志愿活动的发布、报名等核心功能。客户端软件采用MVC设计模式和Okgo网络框架等技术进行开发,提高软件的稳定性和健壮性。此外,还基于简洁、易用、美观的原则进行设计,充分结合了用户的使用习惯和特点,给用户带来更佳的使用体验,享受参与公益建设、服务助人的乐趣。关键词:Android 移动终端志愿服务应用软件AbstractWiththerapidgrowthofmobileInternet,"Internet+volunteerservice"hasemergedandderivedmanyrelatedapplicationsandproducts,andthewayofvoluntaryserviceismorediverse.Suchsmartphoneapplicationsas"volunteercollection"and"Ivolunteer"aregraduallygettingthefavorandrecognitionofthepublic.Throughthedesignanddevelopmentofsuchsoftware,peoplecanfulfilltherequirementsofparticipatinginvoluntaryactivitiesandpublicservice.Therefore,theapplicationresearchofvoluntaryserviceplatformbasedonAndroidsystemisofgreatsignificance.Inthispaper,thedesignideaofthewholesoftwaresystemisexplained,andeachpartisanalyzedindetail,finallyacompleteimplementationschemeisformed.Thisapplicationsoftwareismainlyfortheactivityreleaseorganizationandthemajorityofvolunteerusers,includingthecorefunctionsofthereleaseandregistrationofvolunteeractivities.TheclientsoftwareisdevelopedbyMVCdesignmodeandokgonetworkframeworktoimprovethestabilityandrobustnessofthesoftware.Inaddition,thedesignisbasedontheprinciplesofsimplicity,easeofuseandbeauty,fullycombiningtheuser'susehabitsandcharacteristics,bringingbetteruseexperiencetousers,andenjoyingthefunofparticipatinginpublicwelfareconstructionandservingpeople.Keywords:AndroidMobileterminalsVolunteerserviceApplicationsoftware目录第一章绪论 绪论1.1课题背景与研究现状在过去的几年里,以智能化和信息化为核心的移动互联网正迅速地席卷而来,促使整个社会和人们生活方式快速转变,智能手机、平板电脑等众多智能设备的涌现给人们的生活带来诸多便利,从中感受到科技的进步。而在志愿服务领域里,新的转变也在如火如荼进行中。作为现代文明社会不可或缺的重要组成部分,志愿服务已被推向整个现代社会文明的进步与发展。其每一次的发展都离不开社会的进步和变革。以往传统的志愿服务模式突显出许多诟病与不足,难以促进志愿服务和公益事业等方面的发展,尤其是在宣传和报名参与的方式更显落后乏力。志愿服务的开展,具有着深刻意义。党和政府尤为重视,强调广泛开展志愿服务,推动学雷锋活动、学习宣传道德模范常态化“四个推进”工作。而移动互联网的浪潮正迎合了“互联网+志愿服务”方式的出现和变革,引领着移动应用软件、线上志愿服务平台和线下志愿V站等方式促进了志愿服务的开展。在当前网络互联的社会中,人们最离不开的莫过于手上滑动的智能手机。借助诸如智能手机、平板电脑等移动设备进行操作,通过使用志愿服务客户端进行志愿活动的浏览与报名,为社会大众带来了更方便和简易的操作,很大程度上激发人们参与志愿服务的热情和信心,感受助人的快乐。Android是基于Linux为底层的开放型移动操作系统,因其在硬件配置的优势更为明显,广泛应用在移动设备终端上。Android系统架构包括应用层、应用架构层、函数层和Linux内核层。由于底层代码开源,自由程度较高,使其成为全球主流和热度最高的移动端操作系统。此外,Android系统还具有性能强、稳定高效、价格低廉,开发者数量比例占多等优势。根据数据研究公司IDC公布的最新结果显示,在过去的2019年里,Android在移动系统的市场份额中占比高达82.6%,且Android系统OEM厂商的手机出货量将近达到11.6亿台。从数据上不难发现,Android在移动系统市场中占据极其重要的地位。新兴的“互联网+志愿服务方式”为社会上广大志愿者队伍提供更加便捷、高效的宣传和报名方式,助力志愿者队伍的推广和扩大,提高活动组织方的工作效率,也让志愿服务方式和公益事业更加普遍化、便捷化、多元化。1.2研究目的与意义当前,中国很多地区的志愿公益服务工作仍存在着很多不足和缺陷。例如公益志愿宣传不到位、志愿者队伍分工不明确、志愿工作开展缓慢、活动进展效率低下等相关问题。为了解决这些问题,通过设计和实现“志愿行”APP,能够有力宣传志愿服务活动,为广大市民提供便捷的方式参与到志愿服务中,让爱心随时掌握在人们手中,也让人们更方便、轻松地传递爱心。基于Android系统的“志愿行”客户端,是一款主要公益性应用软件。主要面向和服务于社会大众。在客户端中,市民可通过注册成为志愿者,随时参与到志愿服务行列中。通过志愿活动平台的建设,努力宣传志愿者活动,让社会中更多的人体验到志愿服务的乐趣和意义。在使用客户端的过程中,人们可根据个人情况选择是否参加志愿活动,报名后按照活动要求进行参加即可。“志愿行”客户端的意义在于能够吸引更多的市民参与志愿服务活动,为社会发展尽一份微薄之力,凝聚正能量,共铸公益梦;同时也为志愿活动的发布组织带了更便捷的操作,提高运作效率。第二章相关知识与技术背景2.1Android开发技术2.1.1Android发展历程简介Android本意是“机器人”,寓意为机械化,智能化。最早出现在科幻小说《未来夏娃》一书上,被作者取名为Android。从2003年10月Android开发团队组建到2007年11月Android系统的正式问世,在此之间,Google也发布了Android的源代码。可见Android这个开发项目备受重视,系统代码的开源性更意味着后续会吸引源源不断的开发者群体加入到这个系统中,系统的功能更为丰富。一年后,即2008年,Google正式推出了Android1.0系统,这也是Android系统第一个版本,对于如今的智能手机具有非凡意义。随后几年里,Google也陆续发布了Android的几个迭代版本,并都以食物名称取名。其中在2010年内,Android应用数量达到了10万,增速飞快。2011年7月,Android设备数量达到了55万部,而Android系统设备的用户总数达到了1.35亿。此时,Android系统已经成为全球智能手机领域占有率最高的系统。也正是从这一年开始,Android系统的占有率在智能手机市场中也呈现出空前的大发展趋势。2012年,在谷歌的AndroidMarket上已有超过40万活跃度非常高的应用软件,且多数应用程序均为免费。
从2013年的Android4.0系统发布以来,每一版的Android系统更新都给我们带来许多实用的功能和不同的UI风格,也让系统变得更为智能强大。从上述的发展历程中,不难察觉到在Android系统的发展和成长速度之快和功能强大。在10年的发展里,让Android一跃成为全球最大的手机操作系统,也带来了很多优秀的开发者群体和一众智能设备终端设备厂商。正因如此,助力Android系统不断发展。Android操作系统由操作系统、用户界面、中间件和应用软件4个部分组成,正因其框架设计让Android系统的各个层次具有低耦合和分工明确的特性,深受开发者群体的青睐,进一步促进Android系统带来更多新颖、强悍、实用的功能。2.1.2Android系统优势当前主流的手机操作系统主要包括Android和iOS。本课题选择研究Android系统,其主要原因包括以下几点。(1)Android系统的开源性。Android平台允许任何移动终端厂商加入到Android联盟中,促使Android系统愈发强大和智能,技术相对更加成熟和先进。(2)Android手机价格适中。考虑到开发的APP能让社会上更多不同职业的用户群体使用,可供选择的硬件设备余地大,在价格方面上,相较于搭载iOS系统的苹果手机,Android智能手机更加实惠,普适性更好。(3)系统自定义程度高。在进行Android应用开发的过程中,UI可以进行个性化设计或定制,风格更偏向于大众,吸引更多用户群体。2.1.3Android系统架构Android系统的架构体系如图2-1所示。图2-1Android系统架构图Android系统架构与其他操作系统类似,采用分层架构的设计思想。从架构图看,由高到低依次分为四层:应用层、应用程序框架层、类库层和Linux内核层。应用层:该层主要指运行在Android设备上的所有应用程序。包括系统预装的应用和第三方应用软件,主要基于Java语言编写并运行在虚拟机上。开发者主要是在这层中通过Android提供的组件和API进行开发,设计和开发各种应用软件。应用程序框架层:作为Android应用开发的核心,这一层集中体现Android系统的组件设计思想,为开发者提供了很多基础API框架。应用程序框架层由多个系统服务组成,组件之间的通信交互是通过这一层提供的服务来实现。常见的API框架包括ActivityManager、PackageManager等。类库层:该层主要由类库Libraries和Android运行时Androidruntime两个部分组成。在进行Android应用开发中,类库层为开发者提供了许多优秀的系统原生类库和其他第三方类库,提供相应支持。Linux内核层:该层为充当着软件与硬件之间的抽象层,主要实现内存管理、进程调度、进程间通信等核心功能。2.2软件架构模式软件系统的开发离不开架构模式和架构风格。软件架构模式描述了组件组件的关系,可以有效解决特定的架构问题。通过引用架构模式,能够有效降低代码耦合度,提高开发效率。常见的软件架构模式包括以下几种:(1)分层模式。该模式主要被分成几个平行层次,每个层次都有着特定的功能与职责,各层次间职责分明。常见的有表示层、应用层、业务逻辑层、数据访问层等。(2)客户端-服务器模式。该模式将客户端和服务器区分开来。客户端向服务器发起请求,服务器为客户端提供响应并进行监听,减少系统的通信开销。(3)主从模式。包括一主一从,即主组件和从组件。作为多线程模式,主从模式可以提高计算效率,有效实现信息隐藏。(4)管道-过滤器模式。在该模式体系结构下,每个模块包括一组输入和一组输出。从模块输入端接收数据流,经过内部处理后按照顺序送到输出端进行数据输出。(5)代理模式。代理模式给某个对象提供一个代理对象,通过代理对象进行对原对象的引用,即充当着代理类和委托类的中介。(6)点对点模式。即对等模式,主要作用在于降低数据遗失风险,体现了网际网络技术的重要性。(7)事件-总线模式。在Android开发中大多数会用到该模式,通过使用事件-总线模式可以实现事件订阅者和发布者的解耦,还能够在activity等组件之间传递消息。(8)模型-视图-控制器模式。即MVC模式,也是软件开发中常用的设计模式之一。本课题采用就是MVC设计模式,由模型、视图和控制器三个部分组成。模型包含核心功能和数据,模块抽象化视图向用户显示信息控制器处理用户输入和业务逻辑MVC模式的优势在于将视图、业务逻辑等分离开,降低代码耦合度,提高可重用性。此外,还具有部署快、生命周期成本低等方面的优点。(9)黑板模式。通过多种不同数据处理逻辑相互影响和协同来完成数据分析处理。(10)解释器模式。该模式主要用于设计解释专用语言编写的程序组件。2.3Okgo框架Android开发中的网络请求离不开HTTP协议。HTTP协议工作原理可以理解为:客户端向服务器发送一条HTTP请求,服务器接收到请求后返回数据给客户端作为响应,客户端接收数据并进行解析。在本课题中,客户端的开发采用了OkHttp框架封装后的成果Okgo框架进行http网络通信。Okgo库基于HTTP协议,封装了OkHttp网络框架,能够完美地与RxJava相结合,比Retrofit更为简单易用。Okgo框架支持常用的Get、Post、Put等请求方式,在进行Android开发中,只需要添加引用Okgo的核心库即可,使用简单,极大提高开发效率。此外,Okgo框架还具有特有的网络缓存方式、方便易用的扩展接口和强大的cookie保持策略等优势。综上分析,“志愿行”客户端的开发采用Okgo框架进行网络通信更为合适,效率更高。第三章系统分析与设计3.1可行性分析(1)技术可行性。志愿活动平台的开发,并不需要过于复杂的技术,开发难度较低。客户端和后台管理系统的主要开发语言均为Java,需要学习并且能够熟练运用Java语言和相关框架技术,便可以完成志愿活动平台的开发。志愿活动平台的UI设计较为简洁,功能明确。因此在技术上面来说是具备可行性。(2)经济可行性。在硬件方面,“志愿行”客户端可以运行在搭载Android系统的移动设备上,而市面上多数Android系统手机的价格比较适中,人们普遍可以购买使用。而客户端后台管理系统部署在云服务器上运行,可以稳定地让APP正常运行。在硬件设施上,不需要非常特殊的硬件支持志愿活动平台的运作,因此从经济的可行性角度来看,志愿活动平台是可行的。(3)操作可行性。志愿活动平台主要由“志愿行”客户端和客户端后台管理系统组成,分别对应不同的角色操作。整个平台的界面设计优雅美观、交互良好,并且UI布局分布明确。在功能上需求方面,功能模块划分清晰,功能明确,操作简单,适合开始使用。因此从操作方面来说,志愿活动平台具备可行性。3.2需求分析在我们的日常生活中,不乏存在着这一群体。他们热衷于奉献自己的爱心,热情于参加公益事业,热爱于加入到助力护航的行列中。他们就是光荣的志愿者和参与公益志愿的热心人士。然而传统的活动发布和报名方式比较单调、落后,难以跟上时代的步伐。公益志愿的创新,离不开以新技术为载体的升级变革。随着移动互联网及物联网的深入发展,传统公益志愿的宣传和参与方式也逐渐地发生着改变。以“互联网+”为核心的志愿服务方式已逐渐出现在人们生活中,在新技术的加持下公益志愿事业将变得更加普遍化,便捷化,透明化。基于Android系统的志愿活动平台,是一款公益性软件系统平台。志愿活动平台包括“志愿行”客户端和客户端后台管理系统。“志愿行”客户端主要面向和服务于社会大众和活动发布组织。在客户端中,人们可通过注册账号进行登录客户端,随时参与到志愿服务行列中,奉献自己的一份爱心。通过志愿活动平台客户端的建设,大力宣传公益志愿活动,点燃人们参与志愿服务活动的热情和信心,为社会的志愿服务事业尽一份微薄之力。客户端后台管理系统能够更好地管理客户端软件和用户群体,保证客户端的稳定运行。3.2.1用户需求分析本文采用了用户驱动的分析方法进行需求分析与说明,首先明确用户群体的范围和行为特征,然后根据用户群体描述系统的参与者和用例,最终创建用例分析模型。通过对客户端系统的角色进行分析,最终得出功能需求。志愿者用户通常意义上的志愿者用户,我们可以把该类用户群体的行为模式定义为富有爱心,喜欢参与公益活动,热衷于志愿服务以及乐于奉献社会,在不计物质报酬的前提下推动社会发展。这一类用户的功能需求包括:注册登录浏览活动列表查看活动详情报名志愿活动查看报名活动活动签到签退问题反馈用户信息设置活动发布组织通常意义上的活动发布组织,是指在特定环境中完成目标和任务,对资源合理配置的过程。这里我们特指从事社会公益事业和志愿服务的社会团体或机构,是非营利性社会组织,强调“奉献、友爱、互助”。这一类群体的功能需求包括:注册登录浏览活动列表查看活动详情发布志愿活动审核报名信息查看签到签退问题反馈组织信息设置管理员通过意义上的管理员,是指具有专业从事计算机系统管理的工程师,能够管理并维护软件系统,保证系统的稳定运行和数据安全。在这里我们特指管理整个志愿活动平台的管理员。这一类用户的功能需求包括:志愿者用户管理发布组织管理志愿活动管理问题反馈管理客户端软件维护3.2.2系统功能需求分析结合当前的移动互联网环境及围绕“志愿行”客户端的需求分析,“志愿行”客户端分为志愿者用户端和发布组织端。志愿者用户端主要功能包括:用户注册登录、浏览活动列表、查看活动详情、报名志愿活动、活动签到签退、活动报名审核、相关问题反馈、用户信息修改等。发布组织端主要功能包括:组织注册登录、浏览活动详情、发布志愿活动、活动报名审核、相关问题反馈、组织信息修改等。“志愿行”客户端总体上可以分为以下几个功能模块:用户注册模块用户注册模块为用户提供了注册账号的功能,通过采用EditText、ImageView等控件和LinearLayout布局实现。用户在注册页面中输入账号、密码等相关信息,并进行数据和格式的合理化检验后,点击“注册”按钮完成账号注册。用户注册的用例分析如表3-1所示。表3-1用户注册用例分析表用例名称用户注册参与者志愿者用户、发布组织前置条件用户已经填写完成注册信息填写、数据库以及连接事件流1.进入客户端注册页面,输入注册信息2.点击“注册”按钮3.客户端向数据库插入用户的注册信息4.验证通过后返回登录界面用户登录模块用户登录模块为用户提供了登录客户端的功能,通过采用EditText、ImageView等控件和LinearLayout布局实现。用户在完成账号注册后,在登录页面填写账号密码并点击“登录”按钮进行数据验证。验证通过后进入客户端首页。用户登录的用例分析如表3-2所示。表3-2用户登录用例分析表用例名称用户登录参与者志愿者用户、发布组织、后台管理员前置条件用户已经注册、用户信息已经保存、数据库已经连接事件流1.进入客户端登录页面,输入账号、密码2.用户在账号、密码输入框中输入个人账号、密码,点击“登录”按钮3.客户端向数据库验证用户信息4.验证通过后进入客户端首页UML用例图如图3-1所示图3-1用户注册登录用例图发布志愿活动模块发布组织在客户端首页通过点击右上方的“发布图标,可以进入活动发布页面。在该页面中填写志愿活动信息并进行提交。提交后的活动信息会传递到后台管理系统交予管理员进行审核。发布组织进行活动发布的用例分析如表3-3所示。表3-3活动发布用例分析表用例名称发布志愿活动参与者实例发布组织、管理员、数据库前置条件服务器端正常启动、数据库已经连接、发布组织已登录事件流1.进入发布组织端首页2.点击“发布”图标,进入活动发布页面3.填写活动信息,点击“发布”按钮进行发布4.活动信息的数据传输至后台管理系统,等待管理员审核UML用例图如3-2所示图3-2活动发布用例图报名志愿活动模块在管理员审核通过后,志愿活动会以列表方式显示在客户端首页,志愿者用户登录后可在首页中浏览查看。选择好志愿活动后,点击可进入活动的详情页面。在详情页面中,用户可以查看活动标题、时间、地点等信息并选择是否报名。若选择报名,可点击下方的“报名”按钮进行活动报名,活动报名信息将由发布组织进行审核。报名志愿活动用例分析如表3-4所示。表3-4报名志愿活动用例分析表用例名称报名志愿活动参与者实例志愿者用户、数据库前置条件志愿者用户浏览完活动详情后,点击“报名”按钮,服务端正常启动,数据库已连接事件流1.打开志愿者用户端,浏览活动详情页面2.点击“报名”按钮3.查看报名信息4.等待发布组织审核UML用例图如图3-3所示。图3-3活动报名用例图活动报名审核模块志愿者用户报名参加志愿活动后,报名信息由发布组织进行审核。发布组织登录客户端,在客户端的活动详情页面中查看志愿者用户的活动报名信息并进行审核。在报名信息弹出框中选择是否同意参加活动,同意参加则代表报名审核通过,否则报名审核不通过。活动报名审核用例分析如表3-5所示。表3-5活动报名审核用例分析表用例名称活动报名审核参与者实例发布组织、数据库前置条件服务器端正常启动、数据库已经连接、志愿者用户已报名、发布组织已登录事件流1.进入发布组织端首页2.点击活动列表,进入活动详情页面3.在活动详情页面下方,查看志愿者用户的报名信息4.点击报名信息,在弹出审核框内进行审核。5.审核后,报名状态改变UML用例图如图3-4所示。图3-4活动报名审核用例图活动签到签退模块按照活动要求,志愿者用户需要准时到达活动地点。在志愿活动开始后,使用客户端进行签到操作。签到后,志愿活动正式开始。志愿者们需要听从指挥,落实自己的活动岗位和任务。在活动结束后,同样地通过客户端进行签退操作。活动签到签退的用例分析如表3-6所示。表3-6活动签到签退用例分析表用例名称活动签到签退参与者实例志愿者用户、发布组织前置条件活动报名审核通过,活动已开始,服务器端正常启动,数据库已连接事件流1.打开志愿者用户端,进入对应的活动详情页面2.活动开始后,点击“签到”按钮3.活动结束后,点击“签退”按钮4.用户和发布组织查看签到签退记录UML用例图如图3-5所示。图3-5活动签到签退用例图问题反馈模块在客户端的“反馈”页面中,用户可以向系统管理员进行问题反馈或者提交客户端评论。在反馈页面中填写内容后提交即可。该功能能够有效地解决用户在使用客户端过程遇到的问题,提高用户体验。用户信息设置在客户端的“我的”页面中,用户可以自行修改已经注册号的用户信息,如修改头像、密码、联系方式等。若选择了修改头像,可以进行手机拍照或读取图库进行头像上传;若选择了修改密码,填写原密码、新密码和确认密码后保存即可。客户端后台管理系统主要使用者是专业性技术人员,主要功能包括对已经注册登录的志愿者用户和发布组织进行管理、审核提交的活动发布、回复用户提出的问题反馈等。后台管理系统功能模块说明如下:志愿者用户管理模块该模块主要是对已经登录客户端的志愿者用户进行管理,如进行新增、删除、修改操作。当志愿者用户信息被删掉后,志愿者用户将无法登录客户端。发布组织管理模块该模块主要是对已经登录客户端的发布组织进行管理,如进行新增、删除、修改操作。当发布组织信息被删掉后,发布组织将无法登录客户端,并且已经发布的志愿活动也会被一同删掉。志愿活动管理模块该模块主要是对发布组织所提交的志愿活动进行审核,在查看活动发布信息后,管理员可进行审核操作,此外也可以删除提交的活动发布信息。问题反馈管理模块该模块主要是管理员对用户在使用客户端时所提交的问题或反馈进行回复,能更好地解决用户在使用客户端时遇到的难题。3.2.3系统非功能需求分析非功能需求是软件需求分析中不可忽视的一环。非功能需求影响着软件产品是否可以持续稳定并高效的提供服务。志愿活动平台从以下几个方面进行非功能需求分析。(1)APP页面需求:志愿活动平台界面需要考虑到不同的使用者群体,努力设计能够符合用户的界面风格,尽可能简化相关操作。(2)完备性需求:在完成基本功能的前提上,还应该充分认识到软件系统后续的扩展性和维护性。(3)性能要求:能够满足广大志愿者的使用需求,提供给用户简单易用的操作方式,不需要过多复杂、繁琐的步骤即可使用。在用户并发量很大的情况下,客户端也能够正常运行。(4)安全性要求:在用户使用过程中,客户端会保护用户信息等个人隐私,并且保证客户端的网络、数据通信等能够正常运行。3.3志愿活动平台架构介绍3.3.1总体框架设计志愿活动平台主要是基于C/S模式进行架构设计,由“志愿行”客户端和客户端后台管理系统组成。“志愿行”客户端是志愿活动平台的核心,是志愿者用户和活动发布组织体验参与公益服务的关键点,具有灵活、便捷的特点。志愿活动平台以HTTP通信协议完成与后台管理系统的数据传输:如用户注册登录、发布组织提交活动发布信息、用户进行问题反馈、用户信息编辑等信息交互。系统管理员能够在PC端登录后台管理系统,进行用户信息管理、审核活动发布、回复用户的问题反馈等,让用户及时浏览最新的志愿活动,解决用户提交的反馈。志愿活动平台的架构设计图如图3-6所示。图3-6志愿活动平台架构设计图志愿活动平台总体功能模块图如图3-7所示。图3-7志愿活动平台总体功能模块图3.3.2客户端框架设计“志愿行”客户端是面向于志愿者用户和发布组织,所以在开发APP的过程中,需要从用户角度进行思考并进行相关调研,切身地了解用户的使用体验。需要对客户端进行准确规划,让用户能够感受到流畅运行、交互友好、响应迅速的完美体验。此外还需要后期更多的测试与优化。“志愿行”客户端采用了比较主流的MVC设计模式,实现了功能模块之间的职责分离,降低代码耦合性,简化了业务的实现逻辑,并且更好地提高开发效率和后期维护效率,更重要的是为用户带来更好的使用体验。“志愿行”的MVC结构图如图3-8所示。图3-8MVC结构图3.3.3客户端功能模块设计志愿者用户和活动发布组织是“志愿行”客户端的主要使用者。本客户端设计的最终目的是为了提高用户参与志愿活动的热情和信心,为用户提供更为便捷灵活的使用操作,提高活动组织工作方的工作效率。考虑到使用对象的不同,功能权限也不一致。基于上述情况,“志愿行”客户端分成了两个使用端:志愿者用户端和发布组织端。“志愿行”客户端整体功能模块如图3-9所示。图3-9客户端功能模块图志愿者用户的需求是建立在客户端功能的基础上,因此志愿者需要通过“志愿行”的志愿者用户端才可以体验到相关服务。志愿者用户端的核心功能如表3-7所示。表3-7志愿者用户端功能表功能名称功能介绍志愿者用户注册登录用户可以在使用“志愿行”前需要进行账号注册,填写注册信息完成注册。在注册成功后,使用该账号登录,进入志愿者用户端首页。活动列表浏览在志愿者用户端首页,用户可以滑动浏览志愿活动列表。查看活动详情用户可以在活动列表选择相关的志愿活动,点击进入活动详情页面,在该页面里面有活动的具体介绍和要求。进行活动报名在用户浏览完活动详情后,可以根据自身情况选择报名参加与否。若选择报名,点击下方报名按钮即可。查看报名结果用户可在活动详情页面中或“我的报名”页面里,查看发布组织审核后的报名结果。活动签到签退用户在报名成功后,按照活动详情页面里的要求准时到达指定地点参加活动即可。在活动开始前,通过客户端获取位置进行签到。签到后开始进行志愿活动,活动结束后进行签退。进行问题反馈用户在使用客户端过程中遇到操作问题或进行评论,都可以在客户端的反馈页面里填写问题描述,填写完提交即可。管理员在收到问题反馈后,可以进行回复解答。用户信息修改用户可以查看并更改基本信息,例如修改密码、手机号码、头像等发布组织端主要是面向于活动的发布组织,方便于发布志愿活动,提高工作效率。发布组织端的核心功能如表3-8所示。表3-8发布组织端功能表组织注册登录发布组织可以在使用“志愿行”前进行账号注册,填写注册信息完成注册。在注册成功后,使用该账号登录,进入发布组织端首页。发布志愿活动发布组织在进入客户端后,在首页进行志愿活动发布的操作。发布组织需要填写活动的相关信息,填写完成后,点击发布按钮即可。查看发布结果发布组织在提交活动发布信息后,信息会发送到“志愿行”后台管理系统中。管理员对活动的发布信息进行审核。查看活动报名发布组织可以在活动详情页面查看志愿者用户端提交过来的活动报名信息。活动报名审核发布组织对用户的活动报名信息进行审核。若符合活动要求,提交的报名可以通过;若不符合活动要求,报名无法通过。活动报名信息审核后,志愿者用户也可以在发布组织端中查看报名结果。问题反馈发布组织在使用客户端过程中出现操作问题或进行评论,都可以在客户端的反馈页面里填写问题描述,填写完提交即可。管理员在收到问题反馈后,可以进行回复解答。组织信息修改查看和修改发布组织的基本信息,如组织名称、登录密码、头像等3.4数据库设计数据库的结构设计分析离不开概念结构设计、逻辑结构设计和物理结构设计。通过数据库结构分析,能够更好地提高后期开发效率。3.4.1数据库E-R图设计E-R图是数据库中表示概念结构设计的一种常用方式,也称为实体-联系图。E-R图由实体、属性、联系组成,包含着1对1、1对多和多对多的联系。志愿活动平台的E-R图如图3-10所示。图3-10志愿活动平台E-R图通过观察E-R图能够更好地把握软件系统的业务流程和所涉及的各个实体对象之间的联系。如志愿者用户可以报名一个或多个志愿活动,而活动报名信息由一个或多个活动发布组织进行审核,这里已存在着多对多的业务逻辑关系。3.4.2逻辑结构设计数据库的逻辑模型设计是对真实数据库的描述,如通过设计表结构来体现数据库的逻辑设计。数据库表结构设计如表3-9至3-14所示。表3-9志愿者用户表序号字段描述类型和长度主键可空默认值1uid志愿者编号int是否无(自增)2USER志愿者账号varchar(11)否否无3pswd登录密码varchar(20)否否无4sex性别varchar(2)否是无5NAME志愿者姓名varchar(20)否是无6remark介绍text否是无7icon图片varchar(100)否是无8phone联系电话varchar(11)否是无9email邮箱varchar(20)否是无10addr住址varchar(100)否是无11pol政治面貌varchar(50)否是无12occ职业varchar(50)否是无13age年龄varchar(10)否是无14type用户类型int否是无表3-10发布组织表序号字段描述类型和长度主键可空默认值1uid发布组织编号int是否无(自增)2USER发布组织账号varchar(11)否否无3pswd登录密码varchar(20)否否无4sex性别varchar(2)否是无5NAME发布组织姓名varchar(20)否是无6remark介绍text否是无7icon图片varchar(100)否是无8phone联系电话varchar(11)否是无9email邮箱varchar(20)否是无10addr住址varchar(100)否是无11pol政治面貌varchar(50)否是无12occ职业varchar(50)否是无13age年龄varchar(10)否是无14type用户类型int否是无表3-11活动发布表序号字段描述类型和长度主键可空默认值1aid活动编号int是否无(自增)2uid发布组织编号int否否无3title活动主题varchar(110)否否无4TIME活动时间varchar(20)否否无5location活动地点varchar(50)否否无6content活动内容varchar(200)否否无7lat纬度varchar(10)否是无8lng经度varchar(10)否是无9status审核状态int否否无表3-12活动报名表序号字段描述类型和长度主键可空默认值1apid报名编号int是否无(自增)2aid活动编号int否否无3uid志愿者用户编号int否否无4TIME报名时间varchar(20)否否无5time1签到时间varchar(20)否否无6Time2签退时间varchar(20)否否无7status报名状态int否否无表3-13反馈表序号字段描述类型和长度主键可空默认值1fid反馈表编号int是否无(自增)2uid志愿者用户编号int否否无3TIME反馈时间varchar(20)否否无4content反馈内容varchar(200)否否无5fcontent回复内容varchar(200)否否无6status状态int否否无表3-14管理员表序号字段描述类型和长度主键可空默认值1uid管理员编号int是否无(自增)2USER管理员账号varchar(11)否否无3pswd登录密码varchar(20)否否无4sex性别varchar(2)否是无5NAME管理员姓名varchar(20)否是无6remark介绍text否是无7icon图片varchar(100)否是无8phone联系电话varchar(11)否是无9email邮箱varchar(20)否是无10addr住址varchar(100)否是无11pol政治面貌varchar(50)否是无12occ职业varchar(50)否是无13age年龄varchar(10)否是无14type用户类型int否是无3.4.3物理结构设计志愿活动平台的数据库采用MySQL,不同的功能需求所使用的数据库设计方案也就不同,主要分成关系型数据库和非关系型数据库。MySQL是比较常用的关系型数据库并且数据库的管理语言也最为常用。此外,MySQL还具有体积小、执行速度快、适应性强等优点,从而让数据管理和分析更加快捷、灵活。由于MySQL属于大型数据库,具有可控性,数据的安全性程度高,因此也更适用于中小型企业和一些大型企业网站的开发。 通过以上分析,可以发现MySQL具有更佳的逻辑性,物理结构设计更好。因此志愿活动平台的开发现在MySQL数据库。第四章系统功能实现4.1Android开发环境搭建开发环境和工具的搭建,是软件开发的先行条件,好的工具会让开发效率更佳更高效。Android系统的开发语言可供选择的有很多:Java、kotlin甚至是Scala,Java是Google推荐的开发语言,而目前最为主流的安卓开发IDE为AndroidStudio。而“志愿行”客户端就是采用AndroidStudio进行开发,在64位的Windows10操作系统下Android的开发环配置步骤如下:(1)java开发环境配置:包括JDK1.8和JRE1.8的安装、环境变量的设置;(2)下载与安装AndroidStudio:本文采用AndroidStudio3.5.2版本;(3)配置AndroidSDK:AndroidStudio中可以灵活下载所有版本的SDK,“志愿行”客户端的开发基于Android6.0(API23)版本;(4)配置模拟器:可选用AndroidStudio自带的模拟器,用于调试程序。此外,也可以选择第三方模拟器进行调试,如夜神、雷电等模拟器。“志愿行”采用Android系统的智能手机进行测试。4.2客户端与后台数据交互在实现客户端主要功能的过程中,需要考虑客户端与web端的数据通信操作,从而为后续主要功能的实现做好铺垫。MySQL存储了大量数据在后台中,客户端需要通过web端与MySQL数据库进行数据交互。“志愿行”客户端与后台管理系统的数据通信方式是通过采用HTTP协议,并以封装好的JSON格式实现客户端与后台管理系统之间的数据传输。通过Okgo网络框架实现需要的网络服务。而Okgo主要以get/post方式发送http请求到服务器端。在接收请求后,服务器端根据请求的参数对数据库进行读写操作,数据进行服务器端封装后,以JSON格式返回给客户端。数据交互流程图如图4-1所示:图4-1数据交互流程图用户使用客户端中,若开启了后台数据传输的点击事件,客户端会调用OKgo框架的Get或Post方式向web端后台管理系统发送请求,如注册登录请求、活动发布提交等。在请求前需要获取后台管理系统的IP地址,Get请求方式的核心代码如下。4.3客户端设计与实现4.3.1用户注册登录模块用户打开客户端软件后,首先进入欢迎页面。此页面由com.app.zufang包中的logoActivity类实现。在logoActivity类中设计3秒的倒计时,3s后客户端自动跳转至登录页面。(1)用户注册页面。由于用户是首次使用“志愿行”,因此需要先完成账号注册。在登录页面中点击“注册”按钮后,客户端会跳转至注册页面。注册页面如图4-2所示(左图为志愿者用户端,右图为发布组织端)。图4-2用户注册界面用户在注册页面里填写完用户相关信息后,客户端会对输入信息进行格式验证和判断,在验证通过后将数据提交到客户端后台管理系统,最后插入到数据库中。核心代码截图如下:(2)用户登录页面。注册账号成功后,客户端会自动返回登录页面。用户在登录页面的账号、密码输入框中进行填写,客户端登录页面如4-3所示。图4-3用户登录页面当用户输入账号、登录密码后客户端会对其格式进行判断与验证,在验证通过后传输至后台进行检验,最后进入客户端首页。点击“登录”按钮后,触发点击事件。在客户端通过验证后,将账号密码等信息传输至后台。通过将账号、登录密码和动作状态三个参数以post请求方式发送给服务端,然后被服务端servlet包下的do类进行接收,并做出响应。核心代码截图如下:4.3.2发布志愿活动模块(1)活动列表页面。发布组织端首页是活动列表页面,主要是通过使用ListView控件达到列表循环效果。通过获取活动数据信息,并将数据与适配器进行绑定,页面渲染出活动列表。点击列表中的任意志愿活动可以进入到活动详情页面。活动详情页面中活动地点、活动时间的信息。活动列表界面如图4-4所示:图4-4活动列表界面活动列表通过创建适配器类PicAdapter进行内容填充,并在ShowPicActivity中显示出来。核心代码截图如下:(2)活动详情页面。用户可以在活动列表中可以点击任意志愿活动,点击后客户端自动跳转至活动详情页面。该页面由活动标题、活动时间、活动地点、活动要求等内容组成。用户可根据自身情况进行报名参加与否。活动详情页面如图4-5所示。图4-5活动详情页面活动详情页面中由上往下包括活动标题、活动地址(位置定位)、活动介绍、活动照片和活动时间等内容。通过JsonObject对象获取传递过来的json对象数据值。核心代码截图如下:(3)活动发布页面。发布组织在该页面进行活动信息填写和发布操作。该页面由多个EditText控件组成,通过getText()方法获取输入的数据,并将数据传输至后台交由管理员进行审核。活动发布页面如图4-6所示。图4-6活动发布页面对添加的图片和时间设置相关格式,在通过客户端验证后,以post请求方式向服务端传递参数。核心代码截图如下:4.3.3报名志愿活动模块用户在浏览完活动详情后,可以根据实际情况选择是否报名参加。若选择报名,在页面下方点击“报名”按钮即可。报名后志愿者用户可以在“我的报名”页面中查看报名记录。发布组织在详情页面里对志愿者用户的报名信息进行审核。在报名后,报名状态为未审核。在审核通过后,报名状态变为报名成功;若审核不通过,报名状态为报名失败。报名后的“活动信息”页面和“我的报名”页面如图4-7和图4-8所示。图4-7报名后的详情页面图4-8我的报名页面在获取到服务端url后,通过调用isBM方法,动态改变按钮内容。用户在点击“报名”按钮后,“报名”按钮变为“签到”按钮。核心代码截图如下:4.3.4审核活动报名模块用户在报名志愿活动后,将由发布组织进行活动报名的审核。发布组织登录后,进入到活动列表页面。选择志愿活动进入活动详情页面。在详情页面下方查看报名人数和报名信息。点击报名信息后,弹出报名审核框。若选择“同意参加活动”,审核通过,当前状态为报名成功;若选择“拒绝参加活动”审核未通过当前状态为报名失败。报名审核页面如图4-9所示,报名成功页面如图4-10所示。图4-9报名审核页面图4-10报名成功页面根据传入的报名表编号,在弹出框中选择审核操作。发布组织根据报名信息决定是同意志愿者用户报名参加活动还是拒绝参加。报名未审核,状态值为1,若同意参加活动,状态值设为2,;若拒绝参加活动,状态值设为3。通过传入url访问服务端以获取当前报名人数,并进行显示。核心代码截图如下:4.3.5活动签到签退模块志愿者用户在报名成功后,根据活动详情里的要求,准时到达活动的指定地点参加即可。在活动开始后,通过客户端进行签到操作;活动结束后,进行签退操作。活动签到签退功能主要是通过获取当前地址进行签到,签到范围不可以超出活动地点的1000米以外,若超出有效范围,则视为签到失败。志愿者用户和发布组织都可以在详情页面下方查看签到签退记录。通过活动签到签退功能,能够更好地记录和统计报名者的参加情况,同时也能有效防止报名者恶意占用相关资源,更好地激发参与公益志愿服务的热情。活动签到页面如图4-11所示,活动签退页面如图4-12所示。图4-11活动签到页面图4-12活动签退页面活动签到签退功能主要是通过使用百度地图SDK,来获取当前活动地点。并调用BaiduMap的相关方法获取签到位置。在志愿者用户报名后,“报名”按钮变为“签到”按钮。只有在活动开始后,“签到”按钮的点击事件才会被执行。签到操作会判断用户当前的位置是否为活动地点,若超出活动地点1000米外,则不允许进行签到操作。此外,活动开始10分钟后,同样是不允许再进行签到操作。若当前时间已经是活动开始后的时间,则通过访问服务端url获取签到时间和签退时间。当志愿者用户点击“签到”按钮时,客户端会调用定位方法判断当前位置是否为活动地点,若当前位置不准确或者超出活动地点范围,则不允许签到。核心代码截图如下:签退操作和签到操作类似。在点击“签到”按钮后,按钮会自动变为“签退”按钮,在活动结束后,志愿者用户点击“签退”按钮进行签退操作。4.3.6用户问题反馈模块在“志愿行”客户端的“反馈”页面中,用户可以填写使用客户端时所遇到的问题或者相关评论进行提交。该页面的作用主要是考虑到用户在使用客户端的过程中,可能会遇到客户端的相关操作困难或者其他相关问题而受到困扰,影响用户体验。此外,用户在使用客户端后,若想提交对“志愿行”客户端的一些意见看法或者评论都是可以在此页面里进行操作。管理员在收到反馈后,可以及时回复用户以及时解决用户的困扰。客户端问题反馈页面如图4-13所示。图4-13问题反馈页面4.3.7用户信息修改模块 在“志愿行”客户端中,用户是可以在“我的”页面中对已经注册的信息进行修改。例如修改用户头像、密码等操作,若需要修改头像,可以选择手机拍照或者读取图库照片进行上传;若需要修改密码,在修改密码页面中输入原密码、新密码和确认密码后保存修改便可。用户信息修改页面如图4-14所示图4-14用户信息修改页面4.4后台管理系统实现“志愿行”客户端后台管理系统主要由志愿者管理、发布组织管理、活动管理和反馈管理四个模块组成。客户端管理系统主要使用者为后台管理员,主要职责为对使用“志愿行”客户端的用户进行管理,审核发布组织所提及的活动发布信息,并确保“志愿行”客户端的正常运行和信息安全。后台管理系统使用了当前比较流行的layUI前端框架。layUI是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。此外layUI还具有外表极简、体积轻盈、兼容性好等优点。通过引入layui.js、layui.all.js等js文件,便可进行二次开发。下面简单介绍客户端后台管理系统的各个模块页面。(1)登录页面。客户端后台管理系统登录界面比较简洁,主要由form表单组成。如图4-15所示:图4-15后台管理系统登录界面(2)志愿者管理页面。该页面主要显示已经注册的志愿者用户信息,管理员可以进行相关管理。如删除或修改选中的用户记录、添加志愿者用户的信息、查看用户上传的头像等。志愿者管理页面如图4-16所示。图4-16志愿者用户管理界面(3)活动组织管理页面。该页面主要显示已经注册的发布组织信息,管理员可以进行相关管理。如删除或修改选中的组织记录、添加发布组织的信息等。活动组织管理页面如图4-17所示。图4-17活动组织管理界面(4)活动管理页面。该页面主要显示了发布组织所提及的活动信息。管理员对活动组织所发布的志愿活动进行审核。若审核通过,志愿者用户可以在客户端中浏览活动列表,并进行活动报名参与公益服务。活动管理如图4-18所示。图4-18活动管理界面(6)问题反馈页面。该页面主要显示了用户在使用客户端时若遇到相关操作问题或者对客户端作出评论,都是可以在客户端反馈页面进行反馈。然后管理员在该页面进行回复解答。问题反馈如图4-19所示。图4-19问题反馈管理界面第五章系统测试5.1说明软件测试是软件开发过程中的重要一环,对完成的软件项目进行全面测试是必不可少的。在这个过程中要尽可能地发现并修改错误,使软件的可靠性和稳定性能够得到更好提升。软件测试的目的就是为了确定软件是否能够正常运行,功能是否实现,UI设计是否合适。5.2测试环境软件测试的首要步骤是创造不同的测试环境和绘制图表列举测试项目,在不同的环境下进行测试会得到不同的测试结果。测试采用的硬件和软件环境如表5-1和表5-2所示。表5-1硬件测试环境资源名称配置描述Web服务器笔记本1台Android客户端小米5一台、荣耀5C一台表5-2软件测试环境资源名称配置描述Web服务器Windows10操作系统数据库MySQL5.6小米5Android8.0荣耀5CAndroid6.0Monkey工具adbshell5.3功能测试志愿活动平台的测试分为黑盒测试和自动化测试。黑盒测试中最重要的是编写测试用例,完成比较复杂的业务逻辑测试。而自动化测试是指借助相关的测试技术或工具来测试软件的功能,这里采取Monkey工具测试。通过结合两种测试方法,能够得到比较准确和全面的测试结果。(1)黑盒测试的测试用例如表5-3所示。表5-3“志愿行”测试用例表用例编号模块测试内容前置条件测试结果判定1登录注册模块是否可以成功注册与登录,并且进入客户端首页服务端已经启动,与服务端连接正常可以成功注册并且登录进入客户端首页通过2发布志愿活动是否成功发布志愿活动及查看活动列表与服务端连接正常,登录成功进入客户端首页可以正常发布志愿活动并且以活动列表显示通过3审核活动发布是否成功审核发布组织的活动发布信息与客户端连接正常,已提交活动发布信息管理员可以审核所提交的活动发布信息通过4报名志愿活动是否成功报名志愿活动已经进入活动详情页面可以点击“报名”按钮进行报名,并且报名成功通过5审核活动报名是否成功审核志愿者用户提交的活动报名信息用户已经报名发布组织可以成功审核志愿者用户的活动报名信息通过6活动签到签退是否可以成功进行签到签退操作用户已经报名成功可以点击按钮进行签到和签退操作通过7超时后不允许签到超时是否可以签到用户已经报名成功,活动已开始用户超出活动开始时间后10分钟后,不允许再次签到通过8超出活动地点1000米外不允许签到超出活动地点1000米外是否可以签到用户已经报名成功,活动已开始用户超出活动地点1000米外,不允许签到通过9问题反馈是否可以提交问题反馈与服务端连接正常,已进入问题反馈页面可以在问题反馈页面中提交相关问题通过10问题反馈回复是否可以回复用户提交的问题反馈与客户端连接正常,已经进入问题反馈管理页面管理员可以在后台管理系统中的问题反馈管理页面回复通过11用户信息设置是否可以更改用户的信息与服务端连接正常,进入“我的”页面可以更改用户信息,并成功保存通过12用户修改密码是否可以修改用户密码与服务端连接正常,进入“我的”页面可以修改密码,并成功保存通过13用户修改头像是否可以修改用户头像与服务端连接正常,加入“我的”页面点击头像后,可以选择手机拍照或图库进行上传通过14管理客户端已注册的用户信息是否可以编辑或删除已经注册的用户信息用户信息已经注册在后台管理系统中可以对已经注册的用户信息进行修改、删除通过从上面的测试用例表中可以看出,客户端的各项功能基本都可以顺利通过测试,APP是可以正常稳定地运行各项功能。(2)自动化测试黑盒测试在软件测试中具有非常重要的作用,可完成相关逻辑性很强的测试操作。但若需要进行机械性复杂的测试操作时,还应该进行自动化测试。自动化测试可以在测试过程中节约时间,提高了功能测试的准确性和客观性。AndroidStudio除了有优秀的开发环境外,在AndroidSDK中还提供了不同的自动化测试工具。Monkey便是其中之一。Monkey测试原理:Monkey测试是Android平台自动化测试的一种手段,通过Monkey工具模拟用户触摸屏幕、滑动页面、按钮点击等操作对软件程序进行测试。Monkey测试能够非常有效地测试软件的稳定性和健壮性。Monkey测试的主要步骤如下:启动AndroidStudio,使用数据线连接安卓手机,在安卓手机里运行“志愿行”。②在Androidstudio的terminal里输入adbshell命令,进入shell界面。③输入命令:monkey–pcom.app-v1000,其中-p表示对象包,-v表示反馈信息级别,该命令可以显示出详细的日志信息,包括测试中选中和为选中的activity信息。④执行上述命令后,在手机上打开或切换其他页面,观察LogCat窗口中打印的Log信息。Shell界面显示结果如图5-1所示。图5-1shell界面图对“志愿行”客户端进行1000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论