基于多种框架的鹅大侠农产品公益平台Android 端的研究与设计
2021-04-04徐亚飞刘璇刘雯刘丹丹张梁政康海燕
徐亚飞,刘璇,刘雯,刘丹丹,张梁政,康海燕
(北京信息科技大学,北京,100089)
0 引言
在我国乡村振兴战略的背景下,移动互联技术有效促进了农业的快速发展[1],农产品的线上销售占比也日益增多,从以往的实体销售逐渐向互联网销售的方向不断发展。何沛认为Android 平台开发的软件实质是基于Linux 开发的C/C++语言编程开发, 采用虚拟机运行机制, Android 平台上运行的软件程序都是Java 编写的,为农产品销售网站的建设提供了技术参考资料。[2]余璇、戴丹认为农产品销售的手机App 软件是符合时代发展的潮流,能在一定的程度上依托农产品的地域性优势,更好优化整合农产品资源,在保证产品质量,新鲜度的情况下,实现更好的销量。[3]以上平台都为农产品销售提供了技术支持和运用思路,能够在根本上解决农产品销售难的问题,但是在平台引流和公益性方面存在不足之处。因此,为了更好的拓展农产品的销售渠道,鹅大侠农产品公益平台能够缓解农户低收入问题,带动农户的积极性,使农产品质量更有保障。基于多种框架的鹅大侠农产品公益平台Android 端的研究与设计,为本项目的落地实施提供了技术支持和保障。
1 系统整体设计
鹅大侠农产品公益平台的后台应用Struts2 和Spring框架设计,分为农户端、玩家端和合作端口、。农户可通过注册并认证农户专属账号,在平台上上传产品信息进行宣传,玩家可在平台上直接购买产品。玩家可以通过鹅大侠公益平台直接购买产品或通过积攒货币在平台兑换产品,玩家下单后,由农户内部人员指导与快递公司合作,物流送货至玩家手中。由于本平台为公益平台,玩家可以提出捐款意向,捐款到平台的资金。平台所得的投资资金、盈利资金等收入全部用于帮助农户销售农产品,开拓市场渠道,扩大平台影响力,并将部分结余捐款到慈善机构、,形成一个合理的平台运营闭环。
根据现阶段互联网技术的发展趋势和用户的使用习惯,鹅大侠农产品公益平台提供电脑网页、手机网页、App、小程序等多种访问形式。由于手机网页和小程序具有无需下载安装,不占存储空间等优点,更容易获得用户的青睐。但其不能记录用户的登录状态,用户在每次打开网页或者小程序时,都需要重新登录,为用户的使用带来了不便。Android 手机目前市场占有率最高,手机使用频率高,时间长。因此,一款基于Android 的App 仍然是一个应用系统的必备用户访问方式。
2 Android 端设计
在Android 端主要供玩家端(农产品购买者)使用,主要功能分为个人中心、购物管理和商品浏览。个人管理模块主要包含用户的登录和退出,查看个人购物和浏览信息,修改账户密码,添加和删除收货地址等功能。购物管理模块包含支付管理、订单管理、添加商品到购物车等功能。商品浏览模块主要包含商品分类查询、首页、商品详情展示、商品列表等功能。另外,玩家可以通过参加平台活动,玩游戏,领红包,捐赠等方式丰富用户使用体验。
鹅大侠农产品公益平台的架构设计分为产品模型层、接口设计层、核心功能层和用户界面层。模型层可以封装所有的模型实体类。 JSON 对象作为一个android 应用程序与系统服务器和终端用户交换系统数据的主要格式,一个android 应用程序运行中我们需要将其进行转换后成为一个java 中的对象,转换过程比较复杂,流程烦琐,转换数据过程比较复杂,流程比较烦琐,因此我们可通过运用新的数据格式解析系统框架可以简化转换步骤,提高效率。在接口管理层完成Android 程序需要调用控制服务器网络提供的接口API,需要通过控制机器网络的端口访问与控制服务器的网络连接。在业务核心层在用户接口管理层和用户界面管理层之间,负责共同处理整个业务层的逻辑。界面展示层主要用于负责向用户展示各类商品,提供用户操作交互的窗口。为了大大提高效率,构建统一的设计界面风格,采用 Fragment 类和Activity 这两类相互结合的设计方式进行设计即可完成。
3 网络访问框架
HttpURLConnection 和HttpClient 作为常用的两种数据交互方法,能够实现Android 端与服务器之间的频繁的数据交互。然而,其封装如果不当,难免会出现代码重复的现象,使用起来较为复杂且使得应用程序的稳定性降低。因此,Volley,Retrofit,OKHttp 等网络通讯框架的应用也较为广泛[6]。Volley 适用于数据量小且通讯频繁的网络操作,是谷歌推出的图片加载和异步网络请求框架。Retrofit功能强大,性能高,但需要再次封装且难度较大。OkHttp 作为一项高性能 http 请求开源库,则使用较为复杂。[4]考虑到鹅大侠农产品公益平台数据量不大,体量较小,因此选用Volley 框架完成网络层的网络通信工作。
4 数据转换框架
本操作系统主要采用网络服务器/网络客户端的网络结构,服务器与网络客户端之间需要频繁交互传输数据,因此传输载体需要满足安全性高,数据量较小,通用等特点[5]。JSON 具有安全性高,响应快速,通用性好和数据通信量小等优点,但在Android 应用程序与服务器进行数据交互的过程中,需要将JSON 格式与Java 对象进行转换,转换过程较为复杂和繁琐。[6]Gson 作为JSON 数据解析的开源库,能够便捷的进行数据JSON 格式化,封装性非常好,操作简便,效率更高,因此本项目选择Gson 框架进行数据转换。
5 图片加载框架
平台首页需要同时展示较多的商品图片,图片展示需要同时占用较多的网络内存。当手机用户在网上浏览手机商品展示页面时,通常可能会出现需要快速才能展示大量商品图片,直接无法访问这些图片将可能会直接导致卡顿,用户浏览体验不佳,甚至可能出现手机内存大量溢出。在我的android 中发现有许多优秀的图片开发软件框架,它们能够有效的封装了较好的缓存算法和文件缓存处理策略,可以有效解决各种企业图片文件加载过慢引起的缓存问题,比较常见的企业图像图片处理开发框架主要有:Android Universal Image Loader 能够有效加载缓存和图片,但作为已经停止更新的数据库,已不适合使用[7]。Pi-casso 作为图片下载和缓存的框架,使用较为广泛。Fresco 作为Facebook所使用的图片处理框架,功能强大,能够实现三级缓存。鹅大侠农产品公益平台的框架需要缓存和下载大量图片,且各类农产品的图片大小和分辨率等信息各不相同,因而,Fresco框架更适合大量图片的快速加载和缓存。另外,Fresco 中的Drawees 模块,能够在一个图片文件加载工作完成前,自动显示目标占位效果图,加载成功后自动进行替换它成为一个目标占位图片。当这些图片不再正常显示在电脑屏幕上时,它们就会及时地自动释放并使内存和存储空间不被占用。
6 结论
在Android 应用程序的设计开发中,出现了许多优秀的应用开源开发框架,利用这些开源框架我们可以有效地帮助提高效率,简化开发步骤,获得较高的开发性能。本项目是一个农产品公益销售平台,需要频繁与服务器进行数据交互,需要同时加载大量的视频和图片。根据鹅大侠农产品公益项目的自身特点,在网络整体架构设计上项目采用了Volley 框架有效实现了网络通信数据的访问,采用Gson 框架有效简化 JSON 与 Java 两个对象的数据转换,采用Fresco 框架有效实现下载和管理缓存网络图片。这样的系统架构设计方案能够有效率地提高系统的运行效率,简化系统开发的操作过程,具备较好的系统可用性和改善用户操作体验性。