校园C2C租赁平台《易租》的设计与应用

2018-05-28 11:10陈浩高凡钧谢思燕洪居国
电脑知识与技术 2018年9期
关键词:移动APP租赁

陈浩 高凡钧 谢思燕 洪居国

摘要:随着智能手机的普及,互联网给我们生活带来的便利变得无处不在。目前,在大学校园内存在诸多租赁需求,如社团活动需要租用音响、麦克风、活动道具等,外出旅游需要租用相机、山地车等。这些都是低频、价格不低的物品,大多数学生没有太大的购买意愿。根据如上需求设计与实现基于Android系统的校园租赁平台——易租。结合软件工程的相关知识,在需求分析的基础上,设计出系统总体架构及功能。使用Java语言和Android Studio开发工具开发App,Servlet技术开发服务器端,MySQL进行数据库管理。在该平台上,用户可以实现闲置物品租赁、校园资讯浏览等功能。测试表明,平台满足了用户的需求,给用户的校园生活带来了更多便利。

关键词:Android;Servlet;校园服务;租赁;移动APP

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)09-0062-03

Abstract: With the popularity of smart phones, the convenience that the Internet has brought to our lives has become ubiquitous. At present, there are many rental needs in the university campus, such as club activities need to rent audio, microphones, activity props, etc., travel needs to rent cameras, mountain bikes, etc. These are low-frequency, inexpensive items, most students do not have too big purchase intention. According to the above requirements to design and implement the campus rental platform based on Android system - easy rent. Based on the relevant knowledge of software engineering, and the needs analysis, the overall architecture and functions of the system are designed. Use Java language and Android Studio development tools to develop App, Servlet technology to develop server, MySQL database to manage data. On this platform, users can realize functions such as idle item leasing and campus information browsing. Tests have shown that the platform meets the needs of users and brings more convenience to users' campus life.

Key words: Android; Servlet; campus service; lease; Mobile Application

1 背景

20世紀末,是以阿里为代表的B2B时代、淘宝为代表的C2C时代和京东为代表的B2C时代。在短短十几年间,电子商务和互联网经济的高速发展,网上购物逐渐成为大众消费的习惯。作为互联网经济中最活跃群体之一的高校师生更是习惯性在线消费,因而催生了一系列的经济产能的发展,电子商务在其中扮演着重要角色。高校大学生购买商品的多样化,导致物品使用效率大大降低,因而如何解决资源合理利用以及高效化,成为其更多高校社区的首要难题。

“使用但不拥有”将会成为一种消费时尚,比如有了滴滴就可以实现随时便捷出行,不一定非要自己买辆车,通过将不再使用或偶尔使用的闲置物品共享出租/转售,能最大化发挥闲置物品的价值,物品拥有者出租赚钱,使用者租借省钱,对双方都有价值。

基于安卓系统开发的校园C2C租赁APP,将会优化校内在校师生闲置资源的共享,极大提高物品使用效率,让提供租赁与租赁者,分别获取各自所需,实现双赢的局面。校园APP基于在校师生,所以双方交易物品方便快捷。

2 系统分析

2.1 系统目标

易租系统需要技术作为支撑,须开发出相应的计算机系统。该系统主要包括以下组成部分:服务器端,接收客户端所有请求,同时提供数据存储服务;安卓端,提供用户注册登录、发布租入/租出需求、接单、完成租赁等功能。

2.2 系统功能

易租App主要功能有注册登录、发布租入/租出需求、接单、完成租赁。如图1所示。

注册登录:为确保用户人身及资金安全,用户需提供学号密码进行注册以证明是在校师生,注册时提交学号密码到易租服务器端,然后服务器端将数据发送到正方教务管理系统进行校验,通过后即可将此学号作为易租账号使用,易租服务器端不对用户学号的密码进行保留,而是提示客户端进行易租密码设置,设置完即可登录使用。

发布租入/租出需求:登录且完成手机号绑定方可发布需求订单,用户可根据需要发布租入订单,也可以将自己的闲置物品租出(发布租出订单)。

接单:登录且完成手机号绑定方可接单,接单后可联系对方协商交易时间及地点。

完成租赁:在完成交易并归还物品后,即可完成租赁。

3 系统设计

3.1 基本架构

中商情报网资料显示,至2017年2月中国Android 手机市场已暴涨至86.4%,是智能手机的主流操作系统。易租App包括服务器端应用程序和客户端应用程序两部分。系统釆用Client/Server总体架构,如图2所示,该系统将支持Android移动设备通过网络连接云服务器来访问各项数据。

Web应用采用安全的HTTPS协议进行通信,利用JSON格式传输数据,客户端利用HttpClient建立与服务器的连接,服务端通过Servlet获取客户端URL请求,通过Http Request获取参数、查询数据库,进而生成JSON格式的数据,通过Http Response返回给客户端,客户端获取到结果后进行JSON解析并呈现给用户。

3.3 系统逻辑结构

本系统采用MVC框架(Model-View-Controller,即“模型-视图-控制器”)。其中,模型层主要负责业务流程的处理;视图层主要用于用户与平台之间的交互;控制层主要用于实现业务流程的控制,对模型层和视图层进行调度与控制。

3.4 界面流程设计

易租APP的界面流程设计如图3所示。

4 系统实现

易租系统采用C/S架构,是由客户端和服务器端两部分组成。

4.1 客户端Android 应用程序

安卓端采用Java编写,Android Studio开发。采用MVC架构,网络请求使用HttpClient类,本地数据存储使用SharedPreference类,对子线程统一使用自定义线程池管理。易租App的主要界面如图4所示。

其中首页使用自定义线程池管理类ThreadPoolManager提交网络请求,自定义请求工具类HttpUtil加载服务器端返回的网络数据,客户端获取到服务器返回的数据后由Handler类发送消息通知主线程更新UI界面显示,代码如下:

ThreadPoolManager.getInstance().addTask(new Runnable() {

@Override

public void run() {

String result = HttpUtil.post(HttpUtil.API + "loadRecords");

Message msg = Message.obtain();

msg.what = what_datas;

msg.obj = result;

mHandler.sendMessage(msg);

}});

其中ThreadPoolManager类采用单例模式,通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。此类的构造方法通过Runtime.getRuntime().availableProcessors()来获取安卓设备处理器的虚拟机的最大数量,然后通过该值创建线程池,用于统一管理所有网络请求线程,实现如下:

public class ThreadPoolManager {

private ExecutorService service;

private ThreadPoolManager() {

int num = Runtime.getRuntime().availableProcessors();

service = Executors.newFixedThreadPool(num * 2); }

private static ThreadPoolManager manager;

public static ThreadPoolManager getInstance() {

if (manager == null) {

manager = new ThreadPoolManager();}

return manager; }

public void addTask(Runnable runnable) {

service.submit(runnable); }}

Handler主要用于異步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。上述mHandler对象收到消息后,通过switch语句判断出此消息为数据获取,则调用initDatas方法解析json数据并更新UI界面,代码如下:

private Handler mHandler = new Handler() {

public void handleMessage(Message msg) {

String result = msg.obj.toString();

switch (msg.what) {

case what_datas:

initDatas(result);

break;

...... }}

其中initDatas方法先通过JSONArray解析数据集合,然后通过循环语句逐个取出订单对象,最后用来初始化ListView的适配器对象,并通过ListView展示数据,实现如下:

private void initDatas(String result) {

try {

JSONArray ja = new JSONArray(result);

for (int i = 0, n= ja.length() ; i

JSONObject j = (JSONObject) ja.get(i);

Order o = new Order();

......

datas.add(o); }

mAdapter = new ChCommonAdapter< Order>(this, datas,

R.layout.item_list_goods) {

@Override

public void convert(ChViewHolder holder, final Order t) {

……

}};

orderList.setAdapter(mAdapter);

} catch (JSONException e) {

e.printStackTrace();}}

4.2 后台服务器端的实现

客户端应用程序主要通过WiFi或3G、4G网络连接方式连接到Web服务器端。客户端通过http请求将相关参数传输到服务器端(数据采用AES双向加密传输),服务器端接收数据后进行业务逻辑处理,对数据库的数据根据相应的操作进行增删改查,并将查询结果以JSON数据格式返回给客户端。服务器端采用Servlet提供后台服务和管理。其中,Servlet用于接收服务器请求,并将处理后的响应内容传给服务器,由服务器将响应内容返回给客户端。服务器端部署在某云服务器商上,数据采用MySQL数据库存储。

Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。在本系统中,服务器端应用程序使用Servlet的doPost方法返回json数据给客户端,返回订单数据的代码如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

OutputStream os = response.getOutputStream();

Connection con = null;

ArrayList orderList = null;

con = dbUtil.getCon();

orderList = dao.loadRecords(con);

JSONArray jsonArray = JSONArray.fromObject(orderList);

os.write(jsonArray.toString().getBytes("utf-8"));

os.close();

con.close();}

其中dbUtil為封装了数据库连接代码的工具类,dao为数据访问层对象,其loadHelps方法接收Connection对象作为参数,将通过访问数据库将获取到的订单数据封装成一个个订单对象并添加到ArrayList中,最后返回订单数据集,实现如下:

public ArrayList loadRecords (Connection con) {

ArrayList< Order> orderList = new ArrayList();

try {

String sql = "select * from t_orders where order_state='waiting' order by order_id desc";

PreparedStatement pstmt = con.prepareStatement(sql);

ResultSet rs = pstmt.executeQuery();

while (rs.next()) {

Order o = new Order ();

......

orderList.add(o); }

} catch (SQLException e) {

e.printStackTrace();}

return orderList; }

5 结束语

随着中国电子商务蓬勃发展,共享经济也趁势强劲发展,C2C所提供资源共享逐渐成为新的经济增长点,不管是校内租赁APP,实现的“使用但不占有”成为一种新的消费形式,整个市场也逐渐出现诸多不同类型的共享平台,这是一种趋势。互联网下C2C模式,加速了整个社会资源的合理利用。

参考文献:

[1] 伊双清,董杰,谢君. 基于C2C模式的校园二手商品“双线”交易平台研究[J].科技视界, 2017(3): 82-83.

[2] 王福英,谢纬,范馨元.高校大学生租赁业务发展现状及其对策研究[J].辽宁经济,2017(10): 66-67.

[3] 李建华.移动互联网的未来:机遇与挑战并重[J].移动通信,2013(7):10-12.

猜你喜欢
移动APP租赁
信息技术环境下会计专业教学模式的构建
高校学习者对日语学习APP使用状况的研究调查
大学生利用移动APP自主学习英语的现状调查研究
移动APP在英语教学中的应用研究
国际租赁准则最新进展及其实务影响