1、研究背景
随着计算机和网络的日趋普及,网络在人们的生活中占据了不可替代的地位。根据CNNIC发布第46次《中国互联网络发展状况统计报告》显示,截至2020年6月,我国移动端网民规模达9.40亿,互联网普及率达67.0%。
如今,手机移动端购物相对PC购物方式来说更加的简单、快捷、操作方便,人们不必被限制在电脑前购物,也不用刻意的找时间去上网购买商品,不需要在客服固定的上线时间咨询产品信息。只要拥有一款Android智能手机,你就可以随时随地的查看商品,这很大程度上来说大大的增加了购物的效率。
目前国内各大网站都有自己对应的手机客户端,他们抓住手机网上购物的消费者,从而更好的提高自己的销售额度。国内优秀的手机移动客户端用户基群大,数据交互庞大。尽管国内已经有了很多优秀的APP客户端,但是从客户端的不断更新,功能上推陈出新,以及用户提出的使用习惯,需求,货品种类更新来考虑,开发设计一个更加新颖的APP永远是这个市场最需要的。
设计并实现一个基于Android平台的手机网上商城。用户可以通过Android系统手机登录该商城,登录商城之后,可以完成对商品的搜索,浏览,购买支付,同一款商品之间价格的比对,以及用户可以针对购买的商品进行撰写详细描述和使用感受等功能。
2、系统需求分析
一个基于Android平台的手机网上商城系统,该系统提供用户注册和用户登录功能,登录商城系统后用户可完成商品浏览,商品搜索,购物车,发表商品笔记,浏览商品笔记,订单管理等一系列功能。
3、系统详细设计
1. 登录模块设计
登录模块主要包括Login Activity、User Info三个类文件。其中:
Login Activity文件是登录页的主页面,实现登录页面的UI展示和登录逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户触发登录按钮的点击事件处理。
User Info文件存储用户登录名、密码,手机号,收货地址等相关参数的Bean对象。
2. 注册模块设计
注册模块主要包括Register Activity、User Info三个类文件。其中:
Register Activity文件是注册页面的主页面,实现注册页面的UI展示和注册功能逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户触发注册按钮的点击事件处理。
User Info文件存储用户登录名、密码,手机号,收货地址等相关参数的Bean对象。
3. 商品搜索模块设计
商品搜索模块实现商品的搜索功能,商品价格比一比功能,加入购物车功能。主要包括Search Activity、Dao Util、Product Info三个类文件。其中:
Search Activity文件是搜索功能的主页面,实现搜索页面的UI展示和搜索功能逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户触发搜索按钮的点击事件处理。
Product Info文件是存储商品信息如:商品名、商品价格,商品图片等相关参数的Bean对象。
Dao Util文件是针对数据库操作的文件,调用Query Product Info(String name)方法,根据关键字从数据库中查找相关商品并以集合的方式返回。
4. 购物车模块设计
购物车模块可对商品完成删除,选中,支付操作。主要包括Shopping Car Activity文件。
Shopping Car Activity文件是购物车模块的主页面,实现购物车页面的UI展示和购物车商品选中,商品删除,商品支付逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户触发选中按钮,删除按钮,支付按钮的点击事件处理。
5. 订单模块设计
订单模块主要为了便于用户查看自己的支付订单,目前只支持查看功能。主要包括Order List Activity、Dao Util、Order Info三个类文件。其中:
Order List Activity文件是订单模块的主页面,实现订单页面的UI展示和逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户刷新列表的事件处理。
Order Info文件是存储订单信息如:订单号,商品名、商品价格,商品图片,用户名,订单时间,订单数量等相关参数的Bean对象。
Dao Util文件是针对数据库操作的文件,调用Query Order List(String user Name)方法,根据用户名从数据库中查找该用户的所有订单信息列表,并以集合的方式返回。
6. 发布商品笔记模块设计
该模块用于用户购买商品之后,针对商品编写详细描述和使用感受,并发布到该系统平台上供其他用户浏览。模块主要包括Send Notes Activity文件。
Send Notes Activity文件是发布商品笔记模块的主页面,实现发布笔记页面的UI展示和逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户触发发布笔记按钮的点击事件处理。
7. 商品笔记浏览模块设计
笔记浏览模块主要包括Notes List Activity、Notes Info文件。其中:
Notes List Activity文件是笔记浏览模块的主页面,实现笔记页面的UI展示和逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户刷新列表的事件处理。
Notes Info文件是存储笔记信息如:用户名、发布时间,笔记标题、笔记内容、笔记图片等相关参数的Bean对象。
8. 商品浏览模块设计
商品浏览模块用于展示商品信息,该模块除浏览功能外还可以对商品进行价格比对,添加购物车的功能。主要包括Product List Activity文件。其中:
Product List Activity文件是商品浏览模块的主页面,实现商品浏览页面的UI展示和逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户刷新列表的事件处理。
9. 个人信息模块设计
个人信息模块用于管理个人信息,用户可更改自己的账户名,手机号,收货地址,身份证等信息。该模块主要包括Persion Info Activity、User Info文件。其中:
Persion Info Activity文件是个人信息模块的主页面,实现个人信息页面的UI展示和功能逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户触发保存按钮的点击事件处理。
User Info文件存储用户登录名、密码,手机号,收货地址等相关参数的Bean对象。
10. 商品支付模块设计
商品支付模块采用第三方支付宝支付。主要包括Order Detail Activity文件。其中:
Order Detail Activity文件是支付模块的主页面,实现支付页面的UI展示和功能逻辑处理,该文件实现On Click Listener接口的On Click方法,用于响应用户触发支付按钮的点击事件处理。
11. 数据库结构设计
本系统采用的是SQLite数据库,存放着系统页面中的动态数据,基于系统功能需求中的各项功能,数据供需4张表。分别是用户信息表、商品信息表、文章信息表、订单信息表。
(1)用户信息表。用户信息表具有用户ID,用户昵称、密码、手机号、收货地址、身份证等基本信息。设置用户uid为主键,主键的生成策略采用自动增长的方式。
(2)商品信息表。商品信息表具有商品ID、商品名称、商品价格、商品图片、商品描述等基本信息。设置商品ID为主键,主键的生成策略采用自动增长的方式。
(3)笔记信息表。笔记信息表具有笔记ID、笔记标题、笔记描述、笔记图片、用户ID、发布时间等基本信息。设置笔记ID为主键,主键的生成策略采用自动增长的方式。
(4)订单信息表。订单信息表具有订单编号、用户Id、用户昵称、用户姓名、用户手机号、收货地址、商品名称、商品数量、商品价格、订单状态、订单日期等。设置订单编号为主键。
4、系统实现
手机购物商城是一个完善的购物系统,用户能够完成商品浏览、商品购买、商品搜索、购物车、编写商品笔记、查看商品笔记等功能。根据系统功能区分共涉及16个页面,具体有登录页面,注册页面,首页,购物车页面,搜索页面,订单管理页面,个人信息管理页面等。
1. 登录功能
登录页面是指需要提供账号密码的页面,用户输入自己的账号和密码进入商城系统。
2. 注册功能
注册页面用户提供账号,密码,手机号,身份证号,收货地址等注册信息,系统对注册信息的格式进行检查,注册成功后跳转系统首页并将注册信息插入数据库。
3. 首页
首页是系统的主页面,该页面提供首页、发现、编辑、购物车、我的这5个功能按钮,分别对应商品浏览、浏览商品笔记、发表商品笔记、添加购物车、个人信息管理这五个功能。
4. 搜索页面
检索商品的信息,输入框中输入关键字,点击搜索按钮将所有检索到的商品信息在列表展示,该功能的意义在于,面对琳琅满目的商品,用户根据自己的需求快速定位商品,节省时间提高效率。
5. 购物车页面
用户可将选中的商品放入购物车,页面展示商品名,商品价格,商品图片等信息。在购物车页面用户可完成商品的选择,商品删除,和立即支付三个功能。
6. 编辑商品笔记
该页面是用户针对购买的商品撰写商品的详细描述和商品的使用感受,商品编辑支持文字描述和添加图片,商品编辑完成后,点击发布按钮,将编辑信息和图片保存数据库。
使用Edit Text控件支持文字输入,文字换行。
使用Input Stream和Output Stream输入输出流,读取图片信息,并将图片信息利用Output Stream输出流写入本地文件。
7. 浏览商品笔记
用户发表商品笔记后可在该模块查看,也可以浏览其他用户发表的笔记。该功能的意义在于帮助用户更加详细的了解商品,从用户需求来说,比较人性化。
笔记列表,展示所有用户发表的笔记,支持上拉刷新,笔记展示信息有商品图片,笔记标题,用户名,笔记发表时间等信息。使用了Recyclerview、Adapter、Grid Layout Manager技术,在布局重用,代码简洁性方面来说有很大的改善,布局采用两列布局,界面美观大方。
8. 我的页面
页面主要对一些信息的管理,功能分为三部分个人资料管理、订单管理、退出系统。
9. 比一比功能
比一比功能是一个很人性化的设计,充分根据用户的需求所设计,通过比一比功能用户可以花最少的时间买到最便宜的商品,大大提高用户效率。在商品浏览模块,长按某一个商品图片,弹出比一比功能按钮,点击比一比按钮后,系统将商品名作为关键字在数据库中查找相关信息,并显示在当前列表中,用户可加入购物车等执行一系列的后续操作。
5、总结
本系统采用Android技术和SQLite数据库相结合而成。程序采用Java语言编写,利用Java面向对象的继承和封装特性,程序对公共代码部分做了很好的封装,大大的提高了系统的开发效率。
系统集成了Green Dao框架,Green Dao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案,Recycler View内部封装了viewholder的回收复用,并提供一个耦合度更低的方式来复用View Holde,故代码实现更加简单,也很好的解决了卡顿和布局错位的问题。
未来随着移动端用户越来越多数据越来越庞大,为了能够很好的对数据进行管理,再者考虑订单支付安全性,后续将结合Java Web技术实现客户端与web服务器的网络交互。客户端的订单列表等数据均从后台数据库拉取,保证了数据的唯一性。