Android平台下“易书”APP的设计与实现

2018-09-10 16:20李晓康王成田张德青
电子商务 2018年5期

李晓康 王成田 张德青

摘要:论文从APP的需求分析入手,重点阐述了“易书”APP的框架设计,UI设计。系统运用Android的相关知识,以Android studio软件作为开发的主要工具,开发一款手机APP——“易书”。在该软件中可以实现废旧的纸质图书的重新利用,让使用该软件的人可以同城互换图书,卖掉废弃的图书,或者捐给灾区的孩子们去使用。

关键词:纸质图书;Android Java ;交换书籍

引言

随着互联网的兴起,一批又一批的产业也随之拔地而起。据统计,移动互联网市场价值已由2014年的1857亿元扩张到2017年的接近6000亿元的市场规模。从数字上看出,当今社会的互联网行业有着很大的市场潜力。借此契机,团队成员在一起萌发了一个去开发一款手机APP的念头。要开发一款APP产品,需要经历需求分析-原型设计-开发-测试-上线的一个流程,且流程中的各个阶段都无法越级实现。

1、“易书”APP的需求分析

此款“易书APP”可运行于Android系统的设备之上,目标是实现让用户去平台交换自己想看的书籍。平台开发以Java语言为基础,使用Android studio作为开发工具,采用MVC模式,对代码进行分层设计,同时使用XML语言进行界面的布局,然后再使用setContentView将内容加载在activity中。此APP主要实现以下几个功能模块:登陆、注册、换书、捐书、交友模块。用户只需将书籍信息上传至平台中,其他用户便可以搜索书籍,需要该书籍的用户可以通过本平台去联系发布者,详谈交换事宜。大学生若是使用了这款APP则会大大减少毕业季廉价出售书籍的现象。

2、“易书APP”主要功能介绍

这一软件主要面向在校大学生的群体,让更多的大学生可以在线上进行书籍的交换,同时社会人士也可以通过实名注册加入平台,并可以进行书籍的捐赠等。“易书APP”的功能框架图如图1所示。

2.1 以书会友

“易书APP”的用户可以通过本平台与发布者直接进行交流。在交流的过程中如果发现对方的读书爱好,就可以关注对方,这样就可以实时的关注对方的动态、读书记录、兴趣爱好等。这样不仅达到了书友们交换书籍的目的,还能实现书友之间的交流、学习。

2.2 公益捐书

“易书APP”的一个特色功能就是公益捐书,用户可以将自己不需要的书籍捐赠给贫困山区的孩子们。公益捐书模块在APP的首页中,用户可以在该模块中看到有关贫困山区学校的详细信息。捐书有两种方式,一种是用户通过捐书模块去捐书,另一种是用户自己将书籍寄送到贫困山区。

2.3 换书

用户在APP中注册账号后,既可以搜索所需书籍,也可以在书库中浏览选择其他书籍。这些书籍信息都是由用户上传到数据库中,点击书籍即可看到书籍发布者的详细信息,如:发布者所属地区、院校、书籍的新旧程度、换书的条件以及还包括发布者的联系方式等。如果用户与发布者达成共识并交易的话,用户便可以在平台下单。

3、“易书APP”的UI设计

3.1“首页”UI设计

首页在这里显示的不仅仅是本款软件的主要功能,还需要加上各种色彩的搭配,图片的美化和布局的整体美观性等等,让用户能有眼前一亮的效果。

3.2“我的书库”UI设计

书库的UI界面启发于“掌阅读书”,以简洁明朗为目标的设计方案,让用户感受到这个书库如同自己真正的书架一样,不仅排列整齐,还可以显示出书名和作者名,方便管理。

3.3“换书车”UI设计

此款换书车的UI设计,是启发于“淘宝”购物车,我们就借鉴了这一功能的优点,以“简洁、实用”为设计方案,打造出我们的“易书车”——可以将自己喜欢的图书添加到易书车中,最终再决定购买哪种书。

3.4“我的”UI设计

该页面的UI设计是对淘宝的购物界面的改进,以“方便、好用、布局清晰”为设计方案,打造出一种让用户似曾相识,但是又独具一格的风格,让用户在使用的过程中能方便地找到自己的需求。开发者利用原型设计来规划APP中xml文件的布局情况。

4、系统设计

系统由两部分组成:手机客户端和后台Bmob服务端。客户端作为信息展示和交互的平台,服务器端作为数据接收、数据的存储和业务处理的平台。

4.1 手机客户端用户界面的实现

Activity是Android系统提供的一个可用的用户交互接口,程序的基本组件之一,其主要功能是提供界面,所有用户的交互都可在其中完成。Activity在创建时生成各种组件和组件视图,由这些视图负责功能,Activity通常使用全屏模式,也有浮动窗口模式和嵌入模式。“易书APP”的所有页面的实现便是建立在Activity之上的。

4.1.1 登录页面的实现

“易书APP”的登录是基于Bmob后端云实现的,继承了BmobUser 类的实例化对象user,调用接口的注册方法signUp即可完成登录,其实现的部分代码如下:

if (name1.equals("")||passw1.equals(""))

{ return; }

final user userobj=new user();

userobj.setName(name1);

userobj.setPassw(passw1);

userobj.save(login_Activity.this, new SaveListener()

為了方便管理,易书APP的登录方式采用了邮箱登录,通过点击邮箱的链接进行登录,不仅方便了忘记密码与修改密码,也便于用户记忆。

4.1.2 MainActivity的实现

易书APP用户页面的实现是基于Activity之上的,主界面为MainActivity,在此基础上分为四个Fragment页面。页面的切换采用BottomNavigationView+Fragment形式的底部导航栏。Fragment表示Activity中界面的一个行为或者一部分,可以组合多个Fragment放在单独的Activity中以创建一个多区域的界面。本系统包括“首页”、“书库”、“易书车”和“我的”四个子场景,子场景活动于主场景之中,从而更方便切换,并且Fragment相对于Activity更轻便,增加了页面的切换速度。同时,BottomNavigationView+Fragment的底部导航栏符合Material风格,有着炫酷的切换动画。

4.1.3 其他页面的实现

易书APP中书城的页面通过TabHost+Fragment组成,TabHost+Fragment选项卡用于实现一个多标签页的用户界面,通过它可以将一个复杂的对话框分割成若干个标签页,实现对信息的分类显示和管理。使用该组件不仅可以使界面简洁大方,还可以有效地减少窗体的个数。选项卡的文本内容为书籍的分类,而书籍存放在不同的Fragment里,书籍的内容通过查询在Bmob后端云里查询显示。

其他还有设置、我的资料、发布信息等几个简单界面的实现,这些子界面通过简单的界面配置文件xml就可以很容易实现,然后添加对应的模块功能,完成界面各个功能的实现。

4.2 后台 Bmob服务端的设计

4.2.1 数据存储

在易书APP中所需要用到的数据、图片等资源,都交给Bmob后台管理系统操作处理。首先创建应用,然后申请创建多个数据库,并获得应用所对应的Key,最后在Android studio中Gradle Scripts脚本的 build.gradle文件中添加Bmob的maven仓库地址。

进而向APP的build.gradle文件中添加compile依赖文件,Bmob会自动更新组件所需要的资源文件。Bmob将组织后的数据,经过其内置的封装方法返回给平台显示。采用了Bmob移动云服务后台是因为它提供多样化接口,极大地简化了开发步骤。

4.2.2 图片、文字资源的上传与下载

由于当前手机像素都比较高,上传的图片资源较大,导致上传和下载图片缓慢,易书APP采用Base64编码,将图片资源压缩转换为字节数组字符串形式存储到Bmob云数据库中。下载时对字节数组字符串进行Base64解码并生成图片。

将图片资源转换成字节数组字符串形式:

Bitmap bitmaptostring=BitmapFactory.decodeFile (path);

ByteArrayOutputStream byStream=new ByteArray OutputStream();

bitmaptostring.compress(Bitmap.CompressFormat.PNG, 5, byStream);

byte[] byte1=byStream.toByteArray();

String imgToString=new String(Base64.encodeToString (byteArray, Base64.DEFAULT));

对字节数组字符串进行Base64解码生成图片:

String imgToString = s;

if (!imgToString.equals("")) {

byte[] byte2 = Base64.decode(imgString, Base64.DEFAULT);

ByteArrayInputStream byInputStream = new ByteArrayInputStream(byteArray);

Bitmap stringTobitmap = BitmapFactory.decodeStream(byStream);

imageView.setImageBitmap(stringTobitmap);

}

5、结语

随着“易书APP”的发布与推广,会有越来越多的用户注册使用,该软件将会在大学校园中广泛流传,让当代大学生解决了已用书籍无处置放的问题,防止再出现每逢毕业季就会有很多大学生出售旧书的尬象。当然该款APP处于发展的初期阶段,可能会在用户使用的过程中出现一些问题,团队会不停地对软件进行维护和修复bug,让用户拥有更好的体验。此外,在功能方面也会进一步完善增加,其中扫描图书后面的二维码上传书籍的功能正在研发中,应该会在下一个版本中出现,用户也可以通过反馈功能给我们提出建议或者发邮件给我们,我们会根据广大用户共同的喜好去完善APP的功能,让用户能更好的去使用“易书APP”。

参考文献:

[1] 糊涂熊.移动互联网时代的9大赚钱机会.[EB/OL] http://www.jianshu.com/p/2c7c2fdadd5a 2014.10.08

[2] 罗文.Android應用开发教程[M].北京:机械工业出版社,2013.09

[3] Clifton.I,G.Android用户界面设计[M].北京:电子工业出版社,2013.09

作者简介:李晓康,安徽三联学院 计算机工程学院。王成田,安徽三联学院 计算机工程学院。

指导教师:张德青,硕士,讲师,安徽三联学院 计算机工程学院, 研究方向:信息管理。