【《基于Android的购物App的设计与实现》13000字(论文)】_第1页
【《基于Android的购物App的设计与实现》13000字(论文)】_第2页
【《基于Android的购物App的设计与实现》13000字(论文)】_第3页
【《基于Android的购物App的设计与实现》13000字(论文)】_第4页
【《基于Android的购物App的设计与实现》13000字(论文)】_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页用用基于Android的购物App的设计与实现摘要随着互联网发展迅速和智能手机不断普及,从最初的2g时代到3g再到4g乃至于现在的5g网络的到来,上网的网络环境不断的进行升级。在现在这个社会基本上每个家庭甚至说每人都会有一台属于自己的智能手机。说到智能手机就不能不提Android和ios,大家都知道这是智能手机最流行的两个操作系统。他们占据了智能手机中的绝大多数,而其中的Android系统更是了不得。其中大部分都是基于Android的操作系统,他是一个开源的手机系统,运行手机厂商根据其去设计修改。国内比较火的小米,魅族,华为,oppo,vivo等等手机品牌采用的也是Android的操作系统,基于Android系统上再根据自家品牌特色进行了一些修改。本文基于Android开发和设计实现了一个购物系统app,使用集成开发环境采用Java语言编写后台api接口,数据库采用的是MySQL。用户可以通过该app实现随时随地购物,让用户体验到网上购物的乐趣。基于Android需要如何设计和开发一个购物app的过程是本文的主要内容。首先分析了现在的社会背景环境,然后介绍了需要用到的工具和环境,然后进行了需求分析和购物app的设计,然后再设计好数据库。然后再简单得介绍了商城的具体实现,贴出伪代码和主要代码帮助进行理解。最后进行总结,提出不足和对未来的展望。关键词:Android;Java;MySQL;网上购物;app;目录TOC\o"1-5"\h\z\u摘要 1Abstract 2第1章 绪论 51.1 研究背景 51.2 国内外发展现状 61.3 研究目的以及意义 61.4 论文结构 7第2章 开发技术以及环境 82.1 Android 82.1.1 android简介 82.1.2 Android系统架构 82.1.3 Springboot框架 92.2 MySQL 92.3 开发软件环境 92.3.1 androidstudio 92.3.2 IntelliJIDEA 102.3.3 Postman 112.3.4 navicatpremium 112.4 开发硬件环境 11第3章 系统分析与设计 113.1 需求功能分析 113.2 性能分析 143.3 数据库设计 153.3.1 数据库的整体设计 153.3.2 数据库表的具体设计 163.4 服务端设计 203.5 购物app前端设计 213.5.1 用户注册登录功能 213.5.2 购物流程设计 22第4章 商城功能具体实现 234.1 注册登录页面的实现 244.2 app首页的实现 264.1 商品列表页实现 274.2 购物车实现 284.3 商品详情页 304.4 咨询客服页的实现 314.5 商品分类搜索页 32第5章 服务端功能具体实现 335.1 登录注册功能 345.2 商品列表功能 345.3 购物车添加/修改功能 34第6章 总结与展望 356.1 全文总结 356.2 不足与展望 35参考文献 37

绪论研究背景智能手机人手一部在当今看来已经很正常,并且随着5g时代的到来以及智能手机的不断迭代发展。现在智能手机不管是刷短视频,看直播,购物等等,体验都日益递增。不得不说现在的年轻人思维比较地活跃,比较喜欢尝试新事物。对于新事物的接受程度非常的高,相比于线下购物,他们更热衷与网上购物。国内近些年也不断涌出很多手机品牌,比如小米、华为、vivo、oppo和一加等众多优秀等。而除了苹果公司外使用ios系统以外,绝大多数智能手机都采用的是Android系统。国内的优秀智能手机品牌也基本上基于Android为底层系统,再根据自家的品牌特色,不断进行修改从而形成自家的手机系统。我们其实不难看出,智能手机操作系统主要就是Android系统。而说到智能手机就不能不提起网上购物了,网上购物拥有着许多传统线下购物不能媲美的优点。比如价格更低、购物更方便、商品更齐全等。网上购物已经成为每个新时代成年人的基本技能。国内现在比较火的购物平台有淘宝、京东、拼多多,国外的贝宝钱包(PayPalWallet)、谷歌钱包(GoogleWallet)等。他们都已经实现了很不错的网购体验,可以说是比较完善了。尽管已经有了很多不错的购物平台,但是我们可以从不断的更新升级的购物app可以看出。用户的需求不断地改变,消费者的使用习惯和使用感受也可能会随着时间的推移产生变化。设计和开发一个简单易用的网购app也还是可行的方案。而且现在中国的物流速度达到了很多西方国家望尘莫及的速度,一般网上购物最长时间也就是隔天就能到,稍微近一些第二天就能送到,甚至还能实现早上下单下午送到。网上购物的发展当然也和物流的速度息息相关。再者就是国家根据网购出台的七天无理由退货的政策以及各保险公司退出的运费险也大大打消了消费着担心买到不适合的商品的顾虑。使得人们更愿意去进行网上购物。可以说网上购物是顺应了时代的潮流,达到了天时地利人和。近年来,我国的传统销售行业开始感受到压力,原因是年轻人更青睐于网上购物。以前上网主要是去网吧,而现在,家家户户基本上都能实现在家上网。网络的普及,使得网上购物的门槛更低,而且网上购物还可以省去层层代理。减少厂家到消费者的中间的多层环节,进而减少不少的成本,减少出现最终价格远超商品价值的现象,使得消费者能够享受到更优惠的价格。同时,网上购物由于突破了地域的限制,能够将商品销往更远的地方。销往全国各地已经很普遍,现在网上跨国交易已经不是什么新鲜事了。突破地域限制而获得收益的不仅仅是商家,还有消费者。有时候消费者需要的东西比较小众,而实体店为了保证自己的利润,很可能就会选择不进货相关产品,导致消费者很难在实体店购买到。可一旦到了网络上,只需输入关键字一搜,小众的产品也可以搜索到很多商家在售。由此一来可以看出网购的便捷性,它能够能够节省消费者到处跑寻找商品的精力和时间成本。以往网上购物的时候,由于运费的存在,有时候消费者需要购买价值比较低的商品时,很容易出现运费比商品还贵的现象。而现在很多商家都已经和快递公司达成了合作,实现全国包邮。使得消费者在购买价值较低的商品也不用再担心邮费,有效地减少遇到了邮费超过商品价值的情况。还有就是网购由于只能通过照片或者商品等方式去了解商品,很多消费者会担心质量的问题,又或者担心买来了又不合适。退货的话需要承担邮费比较心疼。后来许多商品都支持了七天无理由退货,假一赔三等政策,再配合上花几毛钱就可以购买到的运费险服务。消费者不再过多的担心质量问题,也不用担心买来不喜欢不合适。网上购物的几个比较大的问题得到了很好的改善。由于可以去掉很多层中间商的原因,更加低廉的价格能吸引到等多的消费者,商家也越来越愿意在网上售卖商品。有的厂家甚至直接在网上进行出售自己的商品,直接省掉了中间商的环节。网上购物因为诸多的优点从而以迅猛的速度发展。国内外发展现状不管是在中国还是在国外,国内和国外电子商务的发展都非常地迅速,电子商务公司如雨后春笋般接连出现。而智能手机性能的不断升级,不断提升用户体验,电子商务带来新的发展。比如国内的淘宝和京东以及拼多多等,国外也的亚马逊(Amazon),易趣网(eBay)、宜家(IKEA)等等。这些都是我们耳熟能详的公司。国内外的公司对电子商务都是十分的重视,而网上购物是电子商务的一部分。自然而然地就使电子商务得以慢慢走进大众的日常生活。过去人们上网方式主要是个人计算机,而随着智能手机的发展,智能手机上网逐渐超过个人计算机。我们不难看出智能手机将会是是未来电子商务的主导趋势。近几年来,随着互联网发展,丰富的互联网生活使人们越来越喜欢足不出户,诞生了一些词比如说宅男宅女等等。现在智能手机人手一台,手机网上购物,可以达到随时随地进行。因为网络,人们的生活方式慢慢地被改变,手机网上购物越来越受大家欢迎。随着手机的操作系统不断完善和性能的不断提高,在加上第三方支付的出现,比如微信支付宝等,使得手机网上购物越来越容易上手。从热爱新事物的年轻人开始,也逐渐地发展到了中年人。大家都越来越喜欢网上购物。而安卓作为最流行的智能手机操作系统,有着极高的市场,各个公司不断进击手机网上购物市场。研究目的以及意义这篇论文主要讲述的是如何用Java开发一个操作系统的购物app,当然这个app是基于Android。该系统主要分为Android的前端界面和采用目前非常火的SpringBoot的框架技术来对服务端设计与开发,还有MySQL——一个开源免费好用的数据库。本项目以idea和Androidstudio作为主要开发工具,希望能给用户设计出一个可以便捷实用的购物app。该系统应该实现用户注册登录,浏览商品,搜索商品,根据分类筛选商品,查看商品详情,与客服聊天,购物车等等基本的网购功能。对于商家来说,可以将商品通过该平台进行售卖,获得更大的流量,而且不用担心房租水电等的产生。对于消费者来说,通过智能手机进行网上购物更加方便。只要你有一台能上网的手机,即可在任何地方24小时随时随地查看并购买商品。而且商品内容极其丰富,你更容易买到你想买的小众商品。手机网上购物是时代的选择。论文结构本片论文主要有以下几个章节:第一章节绪论。本章节阐述了该课题研究的背景和国内外发展的现状以及研究目的以及意义,再简单描述论文的结构。第二章节开发技术以及环境。本章主要介绍了Android开发所需要的开发技术以及环境。第三章节系统分析与设计。本章主要针对购物app的需求功能进行了分析,还对其性能进行了分析,紧接着对数据库进行了设计,再简单的描述了购物app前端的设计。第四章节商城的部分具体实现。这个章节针对App中的某些功能具体是怎样做出来的进行了介绍,主要包括注册登陆界面的实现、app首页的实现、商品列表页的实现、购物车的实现、咨询客服页的实现、商品详情页的实现。第五章节服务端功能具体实现。本章主要对服务端的几个Api接口进行了描述,分析其中的逻辑,最后得出实现流程。第六章节总结与展望。本章对全文进行了总结,介绍了主要工作的内容,思考设计的不足之处以及对未来的展望。开发技术以及环境Androidandroid简介Android也就是我们常说的“安卓”系统。主要用于电视盒子,如智能手机、平板电脑、移动设备等,是目前世界上市场占有率最高的移动操作系统。国内的厂商比如小米、华为、oppo、vivo等等主流厂商。使用的也都是安卓系统。都是在安卓系统的基础上针对自家的品牌特色进行修改。Android系统架构Android系统我们大致可以分为四层架构,这四层架构对于Android来说非常重要。Linux内核层Android系统是基于Linux系统内核的,Android设备的各种硬件的底层驱动很大一部分都属于Linux内核层,比如蓝牙驱动,WiFi驱动,视频驱动等。系统运行库层不难看出,运行库,这就是该层通过C/C++来给Android系统提供主要的支持。像是Webkit库提供浏览器内核支持,媒体库提供多种的音频以及视频的回放和录制、静态的图像文件格式支持等等应用框架层该层提供了许许多多开发者在创建一个Android应用程序时候可能会用到的各种接口,自带的核心功能应用有一部分就是通过调用这些接口来进行开发完成。应用层Android手机上安装的所有应用都属于该层,比如说系统自带的通讯录、图库以及短信甚至包括你安装的王者荣耀等等。Springboot框架SpringBoot是一个简化Spring开发的框架。可以简化搭建Spring应用的过程,而这是因为它使用了简化配置。此外,同名的依赖包冲突和引用不稳定一直是开发的一个痛点,Springboot通过继承了大量的框架来很好的解决这个问题。开箱即用和约定优于配置是Springboot的两个重要的策略。从名字我们可以很清晰的看出,开箱即用(Outofbox)也就是说在我们开发的过程中,我们可以通过很便捷的方式即在meaven项目中,如果需要给项目添加依赖包,那么只需要在pom文件中添加。就可以使用约定好的相应的注解来管理配置和管理生命周期,可以再通过繁琐的xml来配置和管理。通过这个方式,使得开发者可以更加注重项目的业务逻辑,不必再耗费精力到复杂而又无营养的配置文件和依赖管理工作。还有约定优于配置,是一种软件设计范式,目标的结构由Springboot本身来配置,而开发者只需要在机构中添加信息。虽然降低了代码的灵活程度,还更加难以定位bug的位置,但是这大大的减少了xml的配置工作,降低了需要做出决定的数量,还可以将代码进行编译和打包并且实现了工作的自动化。MySQLMysql由sun公司创建,然后又被甲骨文公司收购。是最流行的开源数据库。通过key-values键值对的方式,也被我们称为关系型数据库。被广泛地用在各种中小型网站上。随着MySQL的不断发展完善,它也逐渐地被大规模网站和应用程序采用,比如Google和维基百科等网站都采用了MySQL。还有非常流行的开源组合LAMP其中的M就代表着MySQL。MySQL对PHP有着非常好的的支持,他采用了GPL协议,你甚至可以通过修改源码来开发实现自己的mysql系统。开发软件环境androidstudioAndroidStudio是一个基于IntelliJIDEA,专门为Android开发特殊定制的一个集成开发环境。2013年5月16日在Google发布会上发布,可以在windows,macos上运行。此外构建支持也是非常的先进。基于模板的向导来生成比如说登录,侧滑导航栏等等,拥有功能非常强大的布局编辑器,可以自由地拖拽ui控件的位置并预览效果。是一个非常强大的工具。他还内置apk分析仪,通过检查应用APK文件的内容,找到机会减小Android应用大小,即使该文件不是使用AndroidStudio构建的。集成了一个仿真安卓虚拟机。IntelliJIDEAIntelliJIDEA是JetBrains公司开发的一个商业化销售的java集成开发环境工具软件,是现在非常流行的ide。他有着丰富的功能,同时支持插件管理。用户可以搜索下载适合自己的插件。通过插件系统,你甚至可以运行python,web等等各种语言。如果你有好的想法,你甚至可以为你自己写一个插件来对这个ide进行拓展以更加符合你的编程习惯。Idea有很多的优点,其中包括有历史记录功能:通过本身的程序就可以实现查看工程中任意文件的历史更改记录,而不用通过类似于git的版本管理软件或者是服务器,开发人员可以很容易的恢复到想要的历史版本。还支持动态语法检测,对于代码中存在的语法错误或者是不符合java规范,亦或是自己定义的规范,都将加亮显示方便开发人员更好的注意到。对于JSP,还可以原生的进行支持,不需要安装任何额外的插件即可实现完美支持。还拥有完美的自动代码补全功能,Idea可以很智能的检查各种类中的方法,如果发现方法名是唯一时,就可以自动补全,大大减少了开发的工作。此外版本控制功能也是非常的好用,对于市面上的版本控制插件,比如git,svn等等,都进行了集成。可以让开发人员在工程中就可以对代码进行提交、检查冲突等等,不必再几个窗口中来回切换。我们在开发过程中,随着项目的逐渐庞大,有些代码我们会写了然后用不到,而Idea中,如果你的项目中的代码没有使用到,那么他会给予提示,开发人员可以根据需要选择保留或者删除,有利于提高代码的质量。开发人员在写java的时候,或多或少都能用到JavaDoc以快捷地生成api文档,而Idea中直接就加入的对于JavaDoc直接预览的功能,只需要在JavaDoc的代码中按住Ctrl+Q即可快速地显示,方便开发人员更好的把控Doc文档的质量。PostmanPostman是一个接口测试工具,它可以模拟发送请求调用借口。他包用来测试我们所写的接口是否正常,非常的好用。navicatpremiumNavicatPremium是一套数据库开发工具。可以让用户以可视化界面的方式去便捷的观察和操作数据库,甚至还能给数据库快速的生成测试数据。并且可以实现从一个应用程序中同时连接多个相同甚至是不同类型的数据库。它与许多公司的云数据库兼容。开发维护人员可以通过该软件非常轻松便捷地对数据库进行创建、管理和维护等操作。他的的功能已经可以满足专业人员要求,但是新人想要上手也很容易。如果开发人员想在几种数据库系统之间传输数据,那么只需要通过简单的拖拽就可以便捷地实现。或者采用sql文件进行开发硬件环境笔记本一台:AMDRyzen74800H16.0GBRTX2060Windows11专业版21H2手机一台:RedmiNote7Pro6.0GBMIUI稳定版12.5.4Android10显示器一台:AOC23.8英寸I2490VXH/BS系统分析与设计需求功能分析注册功能:用户进入到注册页面中,页面会显示出相对应的提示和输入框。用户可以根据提示在输入框中输入所需要的信息,通过验证没有问题以后用户就可以完成注册。登录功能:用户进入到登录页面中,用户需要根据登录界面所提示的信息进行输入,系统验证无误后即可登录成功。程序首页:首页有一个广告轮播图和一个和搜索框和根据用户喜好进行个性化推荐的商品列表。购物车:在商品详情页面,用户可以通过点击某个图标实现将商品添加到购物车,而且还可以在购物车可以调整数量和显示合计金额。商品分类:用户可以在商品分类列表中可以根据自己的喜好选择某一个分类,然后系统会将所选的分类下对应的商品显示出来。商品查找:在搜索栏输入商品想要查询的商品,可以查询到对应的商品,支持模糊搜索。商品详情页:商品详情页有商品的轮播图,还可以点击查看大图,此外可以对商品进行收藏,查看商品评分。客服咨询:在客服咨询页可以与客服进行沟通。我的收藏:在个人中心可以看到我的收藏入口,用户点击进入后可以在我的收藏页面可以看到已经收藏的商品列表浏览记录:在浏览记录页面可以查看曾经浏览过哪些商品。用户打开app后默认进入商城首页,这时候能进行商品的浏览,根据商品分类查看商品,也可能模糊搜索商品以及查看商品详情等基础功能。不过当用户点击购物车用户信息等需要登录才能使用的功能时,会弹出提示框提示用户前往登录,用户可以选择取消或者继续登录操作。如果用户已经进行了登录,那么就可以体验商城的全部功能,比如说可以进行浏览商品,挑选自己喜欢的商品添加到购物车,完善个人信息比如收货地址联系方式等等,然后就可以生成订单进行支付,就可以完成商品的购买。还可以查看浏览记录,我的收藏等等。基于以上可以得出图3-1用户用例图、图3-2购物流程图、图3-3应用的功能结构图。图STYLEREF1\s3SEQ图\*ARABIC\s11用户用例图图STYLEREF1\s3SEQ图\*ARABIC\s12购物流程图图STYLEREF1\s3SEQ图\*ARABIC\s13功能结构图性能分析启动时间:在普遍的手机配置下,应用的启动时间不应超过5s。响应时间:忽略网络和设备的配置影响,本地测试点击响应速度应为0.5s以内。运行内存占用:用户正常操作情况之下,运行内存占用不应超过100Mb。硬盘空间占用:用户在正常使用的情况之下,包括缓存,合计商城app所占硬盘空间不能超过700M;数据库设计在一个系统设计中当中,选择什么样类型的数据库非常的重要。系统的性能和应用的设计或多或少都会受到数据库的影响。本系统采用了非常火爆的的开源数据库Mysql。它不仅开源免费而且性能还很不错,所以被很多公司所使用。然后我还选择了NavicatPremium作为数据库操作的辅助工具。他有着方便易用的可视化界面。数据库的整体设计数据库方面共设计了13个表。分别是用来用户表(储存用户基本信息),用户地址表(为用户保存收货地址)、品牌表(储存所有品牌相关的信息)和优惠券信息表(用于保存优惠券相关信息)、物流表(专门用来储存物流状态等等的信息)、订单表(存放所有用户生成的订单,包括已完成未完成已取消的订单)商品表(存储商品的基本信息)、商品图片表(专门用来保存商品的轮播大图和详情图)、商品类型表(保存一个商品是属于什么类别的)、用户浏览记录表(保存用户浏览记录)、购物车表(用户把商品弄到购物车后的数据就在这里存放)、用户收藏表(保存用户的收藏商品)、用户反馈表(存储用户反馈的内容)。可得数据库的整体关系模型如图3-4所示。图STYLEREF1\s3SEQ图\*ARABIC\s14数据库的整体关系模型数据库表的具体设计用户表用户表拥有用户id(根据数据库主键按顺序自动生成,每个用户都有不相同的编号)、用户名(由用户自定义,可以由用户进行修改)、密码、昵称(用户可以根据自己的想法给自己取一个名字)、头像、联系电话、邮箱字段。可以得到用户表结构图3-5图STYLEREF1\s3SEQ图\*ARABIC\s15用户表表结构图用户地址表用户地址表拥有地址id为主键采用自动生成,此外还有用户id(可以同来关联用户,通过这个字段实现两个表的联系)、收货人(这里主要存的是收货人的名字)、手机号、省市区和详细地址字段。可得用户地址表图,如图3-6所示。图STYLEREF1\s3SEQ图\*ARABIC\s16用户地址表表结构品牌表品牌表拥有品牌id(主键,自动生成策略),品牌名和品牌图片地址(主要是存放品牌的logo)。品牌表结构图如图3-7所示。图STYLEREF1\s3SEQ图\*ARABIC\s17品牌表结构图优惠券信息表优惠券信息表有优惠券id(主键,自动生成策略)、用户id(用来识别是哪个用户拥有这张优惠券)、优惠券类型、优惠券说明字段(这里存放一段描述,方便用户知道这张优惠券的使用方法)。优惠券信息表结构图如图3-8所示。图STYLEREF1\s3SEQ图\*ARABIC\s18优惠券信息表结构图物流表物流表有发货方式、物流id、物流公司、运单id(主要用来保存快递单上的号码,以便查询)、物流详情(主要用来保存物流的状态,随着物流的信息更新,不断增加内容但又不覆盖)字段。其中物流id字段采用主键自动生成策略。物流表结构图,如图3-9所示。图STYLEREF1\s3SEQ图\*ARABIC\s19物流表结构图订单表订单表拥有订单id、订单日期、用户id(根据这个字段用来和用户表建立来连接)、订单说明、订单金额(订单的总金额,是用户实际需要付款的金额)、订单状态、优惠券id(根据这个字段来识别用户用的哪一种优惠券)、物流id(根据这个字段用来和物流表建立来连接)、运费、发票、支付模式、支付时间、付款方式字段。其中订单id为主键采用自增的策略。订单表结构图如图3-10所示。图STYLEREF1\s3SEQ图\*ARABIC\s110订单表结构图商品表商品表拥有商品id、商品类型id、商品名、商品原价、商品描述、商品新价格(也就是打折后的价格)、商品图片、商品状态(上架或者下架)、商品单位、品牌id、库存(该字段不能为小于0)、上架时间、商品规格字段。其中,商品id为主键,采用自增的策略。通过商品类型id、品牌id去关联相应的表。商品表结构图如图3-11所示。图STYLEREF1\s3SEQ图\*ARABIC\s111商品表结构图商品图片表商品图片表拥有商品图片id、商品id、商品图片路径(商品id不唯一,可以通过商品id来存放很多种图片)字段。其中商品图片id采用自增策略。通过商品id去管理相对应的商品。商品图片表结构图如图3-12所示。图STYLEREF1\s3SEQ图\*ARABIC\s112商品图片表结构图商品类型表商品类型表有商品类型id,商品类型名、商品类型图(主要是透明的logo图)字段。其中商品类型id为自增的主键。商品类型表结构图如图3-13所示。图STYLEREF1\s3SEQ图\*ARABIC\s113商品类型表结构图用户浏览记录表用户浏览记录表有用户浏览记录id、用户id、商品id字段。其中以用户浏览记录编号为自增主键,通过用户id和商品id去关联用户表(gd_tbl_user)和商品表(gd_tbl_product)。用户浏览记录表结构图如图3-14所示。图STYLEREF1\s3SEQ图\*ARABIC\s114用户浏览记录表结构图购物车表购物车表拥有用户id、商品数量、商品id字段。通过商品id去关联商品表(gd_tbl_product)。购物车表结构图如图3-15所示。图STYLEREF1\s3SEQ图\*ARABIC\s115购物车表结构图如图用户收藏表用户收藏表有用户收藏id、用户id、商品编号id字段。其中用户收藏id为递增主键,通过用户id和商品id分别对应去关联用户表(gd_tbl_user)和商品表(gd_tbl_product)。用户收藏表结构图如图3-16所示。图STYLEREF1\s3SEQ图\*ARABIC\s116用户收藏表结构图用户反馈表用户反馈表拥有用户反馈id、商品id、用户id(这个字段并不是唯一)、联系方式(可以是邮箱也可以是联系电话)、反馈内容(主要是文本格式)、星级(对该商城的评分)的字段。以用户反馈编号为主键,采用递增的策略。通过用户id和商品id分别去连接用户表(gd_tbl_user)和商品表(gd_tbl_product)。用户反馈表结构图如图3-17所示。图STYLEREF1\s3SEQ图\*ARABIC\s117用户反馈表结构图服务端设计服务端负责为购物app提供api接口。采用经典是MVC(Model-View-Controller)设计模式,结构清晰,方便理解使用简单。购物app为了展示数据库的数据,通过对应的方法使用网络请求向服务端发送信息。服务端收到购物app发来的请求后,通过各种相对应的方法对传来的信息进行解析,然后进行数据库处理的操作。然后将数据返回到购物app。购物app前端设计用户注册登录功能注册登录是一个商城app必不可少的功能。如果用户需要进行注册登录以体验商城app的全部功能的时候,可以通过弹出的提示对话框进行跳转至相应的注册或者登录页面来进行注册登录。当用户通过点击进入注册页面之后,首先系统会在比较明显的地方提示用户输入相关信息,其中主要信息为用户名和密码,为了防止用户因为某种意外的因素,导致密码输入有误,所以密码需要输入两次。随后前台通过客户端的逻辑判断检验用户两次密码输入一致是否一致,然后再由服务端检查用户名是否已经存在。如果没有存在就可以完成注册的操作。用户注册完毕后会自动给用户跳转到登录页面,用户可以输入用户名和密码进行登录。如果忘记密码,也可以选择进行密码的找回。有一个专门管理找回密码的页面,用户可以在里面输入相关验证信息,通过验证后即可找回修改密码。该页面加入了正则表达式判断用户的输入是否符合规范,避免密码过短过于简单或者是用户名太短的问题。用户的注册以及登录的流程图分别如图3-18和图3-19所示。图STYLEREF1\s3SEQ图\*ARABIC\s118用户注册流程图图STYLEREF1\s3SEQ图\*ARABIC\s119用户登录流程图购物流程设计商品浏览功能为最基本的功能,即便用户不登陆也可以使用。用户通过各种商品列表页可以进行浏览商品,然后点击可以进入商品详情页。当用户登录后还可以在商品详情页用户可以点击页面下方的购物车图标,将商品添加到购物车,还可以与客服聊天,收藏商品等操作。用户登录后商品浏览操作功能流程图如图3-20所示。图STYLEREF1\s3SEQ图\*ARABIC\s120用户登录后商品浏览操作功能流程图商城功能具体实现App的文件结构见图4-1。Activity文件为主要的逻辑实现部分,而res/layout/文件夹下存放的是Android的布局文件。App的配色主要采用了橙色的配色,通过统一的配色,能够让用户不管在访问哪一个界面都不会感受到任何唐突的感觉。整体布局简约,没有多余的按钮等等。通过简洁的外观能够让用户的减少很多不必要的视觉干扰从而增强用户对该App的满意程度,增强用户的粘性。同时App还在很多页面还加入了下拉刷新的功能,通过刷新的功能可以更新查看到页面的内容。还导入了侧滑返回的手势操作,用户的手指在屏幕左侧往右划动的时候即可进行返回操作,非全面屏手机也能够很方便地进行返回。这对于有些还在用非全面屏手机的用户来说,能够大大的提升用户的体验。图STYLEREF1\s4SEQ图\*ARABIC\s11App的文件结构注册登录页面的实现在注册登录页面,用户可以输入账号密码通过验证后自动跳转至首页。针对用户的登录行为做了比较晚上的判断。如用户未输入用户名或密码点击登录的话,会提示用户名/密码不能为空。用户也可以点击下面的随便看看,跳过登录步骤进行商城的浏览。整体界面采用的是橙色的主题配色,对按钮进行了圆角处理,同时点击相应的输入框后该框和该框的提示信息也会变成橙色,使界面更加的生动美观。登录界面如图4-2所示。图STYLEREF1\s4SEQ图\*ARABIC\s12用户登录界面图在注册界面用户可以输入用户名和密码,通过验证后即可注册成功。如果输入过短或者使用连续数字等安全性极低的密码登录,则会提示用户修改密码以确保安全。注册界面的配色采用了和登录界面统一的配色,按钮和布局都非常接近,使用户跳转到注册页面的时候不至于会感觉到唐突。具体的界面见图4-3用户注册界面图。图STYLEREF1\s4SEQ图\*ARABIC\s13用户注册界面图app首页的实现app首页上方是是一个搜索框。用户可以输入相关的信息进行搜索。接下来是轮播图,可以展示商品的大图。以下是几个分类,下方则是根据用户的喜好来推荐商品。而最下方则是底部导航栏,是由几个fragment嵌套到activity完成。使用fragment可以很好的减少系统资源的使用,特别是内存,以便提升App的整体性能。App首页见图4-4app首页图。图STYLEREF1\s4SEQ图\*ARABIC\s14app首页图Fragment的切换通过replaceFragment()方法,传入对应的fragment,然后replaceFragment()方法内识别传入的fragment是属于哪个页面,然后再通过渲染显示出相对应的页面。商品列表页实现商品列表页实现的地方这里就选取热门单品分类来说明。列表其实是通过一个个小的item通过遍历实现。首先根据所需要展示的信息,去构建出一个商品的界面,也就是item。然后用列表对服务端返回的数据进行循环,即可生成这样子的一个商品列表页。整体界面见图4-5商品列表图。图STYLEREF1\s4SEQ图\*ARABIC\s15商品列表图列表页主要是使用了官方自带的gridView来实现,首先设计一个xml布局文件,然后通过Activity文件配合进行单个商品item的布局设计。然后再对服务端发起请求,服务端会通过数据库来返回相对应的商品列表。然后客户端再通过对返回的Json数据进行解析,获取到其中的商品列表数据,再根据列表循环遍历然后渲染出客户端界面。购物车实现购物车实现相对复杂些,主要需要考虑的因素有商品的多选,数量修改,选中商品价格的合计金额。不能简单的设置单个适配器item就可以实现,要往适配器里添加自定义按钮,实现数量的修改。对数量的调整进行限制,要求数量是不超过商品库存的非0自然数,如果商品数量减到1时还继续点击减数量,则会提醒用户是否把该商品移出购物车。此外,如果想快速从购物车删除某个商品,在购物车左滑可以显示删除按钮。具体页面见图4-6购物车图和图4-7购物车左侧滑图。图STYLEREF1\s4SEQ图\*ARABIC\s16购物车图图STYLEREF1\s4SEQ图\*ARABIC\s17购物车左滑图商品详情页商品详情页是展示商品信息的主要页面,从上往下依次是顶部显示商品名称,然后到大的轮播图,用来展示商品。点击还可以进入大图浏览,支持双指移动缩放等基础操作,方便用户更好的了解商品。然后界面上还有商品的市场价,也称原价,还有现在的价格(会员价),还可以看到商品的评分。用户可以挑选直接满意的商品添加到购物车。整体界面见图4-8商品详情页图。图STYLEREF1\s4SEQ图\*ARABIC\s18商品详情页图如果用户想要进行加入购物车功能的时候,如果没有登录的话,App会提示用户先去登录。见图4-9对话框提示图。图STYLEREF1\s4SEQ图\*ARABIC\s19对话框提示图咨询客服页的实现客服聊天页主要是通过即使渲染的列表完成。首先根据聊天框等制作相对的item。然后当服务端收到聊天数据的时候,将聊天内容以及用户信息等添加到RecyclerView然后再进行渲染。具体界面见图4-10咨询客服聊天图。图STYLEREF1\s4SEQ图\*ARABIC\s110咨询客服聊天图商品分类搜索页在该页面用户可以选择通过来进行筛选查找相关的商品,也可以在上方输入关键字来进行模糊搜索商品。具体界面如图4-11商品分类搜索页图。图表4-11.商品分类搜索页服务端功能具体实现服务端由springboot实现,服务端文件结构如图5-1。其中config用来储存服务端的相关配置信息,比如说数据库配置文件,日志配置文件,应用配置文件等等。Controller文件里放的是各种api接口。Dao包里主要是操作数据库的集成支持,方便快速地对数据库进行操作,而model放的是实体类,主要是根据数据库文件来生成。采用JDBC驱动来对Mysql数据库和服务端进行连接,还使用了Mybatis框架对数据库进行了一些快捷的映射。通过它可以很好的避免了JDBC代码和手动设置参数。图STYLEREF1\s5SEQ图\*ARABIC\s11服务端文件结构图登录注册功能登录功能由login()方法实现,服务端接收到客户端传来的User对象,通过bean来进行解析,再通过遍历数据库,来验证用户名和密码是否正确,如果正确则返回用户信息的数据。商品列表查询功能。注册功能通过join()方法来实现,同登录功能一样,服务端通过接收客户端传来的User对象,然后根据其中包含的用户名字段来对数据库进行遍历查询,如果已经存在那么返回给客户端用户已经存在的。如果遍历查询不存在即可完成注册。商品列表功能商品列表功能比较简单,可以简单划分为查询所有商品,根据查询,模糊查询等。就拿根据品牌查询做例子。购物app通过用户的点击然后根据相对应的品牌id发送给客户端,随后服务端在queryProductType()通过传入的品牌id在数据库进行遍历操作,搜索满足条件的商品,然后将对应的商品列表信息等进行返回。购物车添加/修改功能当用户在购物app上点击添加购物车的时候,会向后端发送一个UserCart对象的http请求,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论