您好, 访客   登录/注册

基于多种框架的农产品电商平台Android端的研究与设计

来源:用户上传      作者:

  摘要:随着移动互联技术的发展,农产品销售也进入互联网时代。该项目是一个农产品电商平台,具有多种客户端:网页,手机网页,Android客户端,IOS客户端,微信小程序等。该文主要研究Android端应用程序的架构设计。根据项目的特点及要求,对多种Android网络通信框架,Android图片加载框架进行比较后,选择Volley框架负责与服务器端进行网络通信;选择Gson框架实现JSON数据与Java对象的转换;选择Fresco框架完成大量商品图片的下载和缓存。通过在项目中引入多种框架,使得系统的架构设计更加高效,更加合理。
  关键词:Android程序;Volley;Gson;Fresco
  中图分类号:TP311.52       文献标识码:A
  文章编号:1009-3044(2019)24-0282-02
  开放科学(资源服务)标识码(OSID):
  在我国乡村振兴战略的指引下,移动互联技术迅速融入农业发展的各个方面,农产品的销售途径也因此有了很大的变化。从单一的实体销售,向移动电子商务的方向迅猛发展起来。为了方便用户的使用,利用移动互联技术,电子商务平台为用户提供电脑网页、手机网页和APP,或是微信小程序等多种访问方式实现农产品信息的快速、便捷地购买。
  1 系统整体设计
  本电子商务平台的后台采用Struts2,Spring框架设计完成,分为商家、顾客、管理者三类用户。商家具有申请开店、编辑商品信息、商品上架、商品下架、商品发货等功能;顾客具有浏览商品,加入购物车、编辑购物车、编辑收货地址、付款、查看个人信息,查看订单等功能;管理者可以管理用户,查看订单、查看商品、审核商家等功能。
  根据当前的用户需求和技术发展趋势,提供多种访问方式:电脑网页、手机网页、App、小程序。用户对某系统依赖度较低,使用频次较少时,更愿意选择手机网页或是小程序的方式,其主要优点是不需要下载安装,不占存储空间。但这些方式的缺点是不能记录用户登录状态,使用时需要登录,或是因为条件限制功能不够完善。基于Android系统的App是其中重要的一种访问方式。Android手机是当前手机用户的主要选择,因此一款基于Android的App仍然是一个应用系统的必备用户访问方式。
  2 Android端设计
  在Android端主要供农产品购买者使用,实现的功能主要包含三大模块:个人管理、商品瀏览、购物管理。用户通过个人管理模块可以实现用户登录与退出,修改密码,查看个人信息,管理收货地址等功能;商品浏览模块主要包含首页、商品分类查询,商品列表,商品详情展示等功能;购物管理模块包含添加商品到购物车,支付管理,订单管理等功能。
  在项目的架构设计上,项目分成模型层、接口层、核心层、界面层。模型层封装所有的实体类。在Android程序与服务器端交换数据格式是JSON对象,在Android程序中需要转换为Java对象。这个转换比较复杂,流程比较烦琐,采用数据解析框架简化步骤,提高效率。在接口层完成Android程序调用服务器提供的API,需要控制网络的访问与服务器的连接。在核心层在接口层和界面层之间,负责处理业务逻辑。界面层主要负责向用户展示商品,提供操作交互的窗口。为了提高效率,构建统一的界面风格,采用Fragment类和Activity类相结合的方式设计完成。
  3 网络访问框架
  本系统需要Android端与服务器进行频繁的数据交互,传统的两种方法HttpURLConnection和HttpClient使用率非常高。但是这两种方法使用起来稍显复杂,如果封装得不适当会造成极大的代码重复,甚至会影响程序的稳定性[1]。Android平台上有很多网络通讯的框架:Volley,Retrofit,OKHttp等获得广泛的应用。
  Volley是Google推出的异步网络请求框架和图片加载框架,特别适合数据量小,通信频繁的网络操作。OkHttp是Square公司推出的高性能 http 请求开源库,但使用的时候稍显复杂[2]。Retrofit是Square公司出品的基于OkHttp封装的一套RESTful网络请求框架。该框架使用注解进行配置,方便简化程序[3]。Retrofit功能强大,但门槛较高;OkHttp性能较高,但需要再次封装;Volley封装更好,不适用于较大数据的发送。综合各方面考虑,本系统采用Volley框架完成网络层的网络通信工作。
  4 数据转换框架
  本系统采用服务器/客户端的结构,服务器与客户端需要频繁交互数据,因此必须选择一种数据量小、安全、通用的数据格式作为传输的载体。JSON作为一种轻量级的数据交换语言, 具有安全、快速、通用、数据通信量小等特性, 这让JSON成为理想的数据通信方式[4]。但是在Android应用程序与服务器进行数据交互的过程中,需要将JSON格式与Java对象进行转换,这个转换是很烦琐的。为了提高效率,在本项目中采用Gson框架实现数据转换。Gson是Google提供的用来进行数据JSON格式化和JSON数据解析的开源库[5]。通过Gson框架,一个复杂烦琐的解析过程只需要几行代码就可以实现转换,可以获得非常好的封装性和效率,使用简单。
  5 图片加载框架
  电商平台需要展示较多的图片,图片需要占用较多的内存。当用户在浏览商品页面时,通常会需要快速展示大量图片,直接访问图片将会导致卡顿,用户体验不佳,甚至出现内存溢出。在Android中有许多优秀的开发框架,它们有封装了较好的算法和缓存策略,可以解决各种图片加载引起的问题,比较常见的图像处理框架有[6]:Android Universal Image Loader是一个加载、缓存、展示图片的库,但已停止更新,不建议使用;Picasso是著名的开源组织Square出品的图片下载和缓存的框架,使用者较多;Glide是Google的员工基于Picasso开发,优化的,Android官网推荐使用的图片处理框架;Fresco是Facebook开源的图片处理框架,真正做到了三级缓存,功能强大。   由于本项目的需要下载和缓存大量各种不同大小、分辨率的商品图片,因此选择Fresco框架进行图片的加载。Fresco中有一个叫作Image Pipeline的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计。Fresco中有一个叫作Drawees模块,它会在图片加载完成前显示占位图,加载成功后自动替换为目标图片[7]。当图片不再显示在屏幕上时,它会及时地释放内存和空间占用。
  6 总结
  在Android应用程序的开发中,出现了许多优秀的开源框架,利用这些框架可以有效地提高效率,简化步骤,获得较高的性能。本项目是一个农产品电商销售平台,需要频繁与服务器进行数据交互,需要加载大量的图片。根据项目特点,在整体设计上采用了Volley框架实现网络通信访问,采用Gson框架简化JSON与Java对象的转换,采用Fresco框架有效下载和缓存图片。这样的系统架构设计能够有效提高系统的效率,简化开发的过程,具备较好的可用性和用户体验性。
  参考文献:
  [1] 孟远. Android 网络通信框架 Volley 的解析和比较[J]. 軟件, 2014, 35(12): 66-68.
  [2] VaFlower. Android主流常用网络请求框架简介[EB/OL]. https://www.jianshu.com/p/2bbfc27cffeb.2018.4.4.
  [3] SHERLOCKvv. 网络加载框架 – Retrofit[EB/OL]. https://www.jianshu.com/p/0fda3132cf98.2018.1.8.
  [4] 赵鹏, 骆德汉, 梅领亮. 一种基于JSON的Android终端远程获取解析数据的方法[J].微型机与应用, 2017, 36(21): 57-60.
  [5] 李海平, 陈荣征, 李海文. 基于JSON的Android校园助手研究与设计[J]. 电脑与电信, 2016(16): 24-26.
  [6] Yoo-jeong SONGSoo-bin OUJong-woo LEE. An Analysis of Existing Android Image Loading Libraries: Picasso, Glide, Fresco, AUIL and Volley[C]. Proceedings of 2016 International Conference on Informatics, Management Engineering and Industrial Application (IMEIA 2016), 2016(4).
  [7] Fresco[EB/OL]. https://www.fresco-cn.org/.
  【通联编辑:谢媛媛】
转载注明来源:https://www.xzbu.com/8/view-15031093.htm