用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付
当前位置:完美毕业网毕业设计下载计算机毕业设计安卓Android毕业设计

基于Android系统的唯快点餐接单平台的设计与实现

联系方式:点击这里给我发消息QQ212181988
官方主页:www.biye114.com
图片预览: ;论坛转帖
插件情况:
售后服务:请联系客服QQ:212181988
一键分享拿折扣:
  • 好的评价 如果您觉得此软件好,就请您
      0%(0)
  • 差的评价 如果您觉得此软件差,就请您
      0%(0)

软件简介

 
近几年,外卖客户端将互联网和外卖做了一个很好的结合,深深地改变了人们点餐的方式。据调查,外卖占餐饮行业的营业份额和堂食比起来,还是堂食比较多,所以我们希望针对堂食开发一个点餐系统,让人们可以在线点餐,到店就食。
本文讲述的接单 APP 的设计与实现是点餐系统的一部分,接单 APP 主要有五个模块:基础模块,订单模块,菜品管理模块,蓝牙模块,对账模块。基础模块包括登录,心跳服务,网络连接与数据解析,本地数据缓存等基础功能。订单模块包括订单推送,实时显示今日已接收订单,实时显示今日未接收订单,按照日期查询历史订单,点击查看订单详情等功能。对账模块是按照日期查询商家的财务支出,收入,奖励等账单数据,方便我们公司与商家对账。蓝牙模块负责蓝牙打印机的搜索和连接,发送数据和指令给蓝牙打印机,如果打印机断开了可以自动重新连接。菜品管理模块能够分类浏览商家的菜品图片与名称,提供菜品上架和下架的管理。整个项目的搭建,采取 MVC 的架构模式,使用了友盟推送,友盟自动更新,Restrofit,Fresco,OKHttp,superslim 等业内常用的第三方框架。
目前,随着我们公司项目的推广与试点,接单客户端已经在多家餐馆与我们的点餐客户端配套使用,使餐馆在原来的点餐流程上增加了一套基于移动互联网的点餐流程,从而给顾客带来更好地点餐体验。

关键词:安卓;接单;OKHttp;Fresco



ABSTRACT

In recent years, the take-out client is a very good combination of the Internet and take out,which bring a deeply change in the way of people eat. According to the survey, the business share of takeaway for food is more than the business share of eat-in in catering industry, so we hope to develop a food-ordering system, so that people can ordering online and eat in the restaurant.
This article describes how to design and develop a order-received client based on Android.Order-received client mainly has five modules: basic module, order module, menu management module, bluetooth module and reconciliation module. The basic module includes login, heartbeat service, network connection and data analysis, local data cache and other basic functions. Order module includes orders push, real-time display today-received orders, real-time display today-not-receive orders, inquiry history orders by data, click to view details of orders and other functions.Reconciliation module includes inquiry busines financial expenditure, income, incentives and other billing data by date, which is convenient for the reconciliation with the business. Bluetooth module is responsible for the search and connection of Bluetooth printer, send data and instructions to the Bluetooth printer, if the printer is disconnected, it can be automatically re connected. Menu management module can be used to browse dishes by category and provide dishes on shelves and off shelves function. The entire project is builded according to the MVC architecture model with a lot of third party fundations which is commonly used in industry,such as U-Push,Youmeng automatic update, Restrofit, Fresco, OKHttp, Superslim.
At present, with the promotion of our company’s pilot project, order-received client has been used in several restaurants, which adds a set based on mobile Internet ordering process besides the original ordering process,thus to bring better dining experience for customers.


KEYWORDS:Android;Take-out;OkHttp;Fresco


目 录
中文摘要 I
ABSTRACT II
目 录 III
1引言 1
1.1 项目背景与意义 ................................................... 1
1.2 本人的主要工作 ................................................... 1
1.3 论文的组织结构 ................................................... 2
1.4 本章小结 ......................................................... 2
2相关技术介绍 3
2.1 U-PUSH ............................................................. 3
2.2 RESTROFIT ........................................................... 3
2.3 OKHTTP ............................................................. 4
2.4 FRESCO .............................................................. 4
2.5 友盟自动更新 ....................................................... 4
2.6 JSON ............................................................... 5
3系统需求分析 6
3.1 功能性需求 ....................................................... 6
3.1.1 整体功能概述 ................................................. 6
3.1.2 基础模块 ..................................................... 7
3.1.3 订单模块 ..................................................... 7
3.1.4 蓝牙模块 ..................................................... 9
3.1.5 对账模块 ..................................................... 9
3.1.6 菜品管理模块 ................................................ 10
3.2 非功能性需求分析 ................................................ 11
3.3 本章小结 ........................................................ 11
4系统概要设计 12
4.1 点餐系统整体架构 ................................................ 12
4.2 接单客户端架构 .................................................. 13


4.3 接单客户端包设计 ................................................ 13
4.4 接单客户端界面交互与业务逻辑设计 ................................ 14
4.4.1 登录界面 .................................................... 14
4.4.2 主界面 ...................................................... 16
4.4.3 订单中心 .................................................... 16
4.4.4 菜品管理 .................................................... 17
4.4.5 对账中心 .................................................... 18
4.4.6 “更多”界面 ................................................ 19
4.5 网络接口设计 .................................................... 20
4.5.1 登录接口 .................................................... 20
4.5.2 请求订单接口 ................................................ 20
4.5.3 确认订单已打印接口 .......................................... 21
4.5.4 心跳包接口 .................................................. 21
4.5.5 获取菜品列表接口 ............................................ 22
4.5.6 更改菜品状态接口 ............................................ 22
4.6 系统数据库设计 .................................................. 23
4.6.1 系统 ER 模型设计 ............................................. 23
4.6.2 数据表设计 .................................................. 23
4.7 本章小结 ........................................................ 29
5系统详细设计 30
5.1 基础模块的设计 .................................................. 30
5.1.1 消息推送的设计 .............................................. 30
5.1.2 网络模块的设计 .............................................. 31
5.1.3 心跳服务的设计 .............................................. 31
5.1.4 本地缓存的设计 .............................................. 32
5.2 蓝牙模块的设计 .................................................. 33
5.2.1 BluetoothDevice 类的设计 ..................................... 33
5.2.2 Printer 类和 PrintApi 类的设计 ................................ 34
5.2.3 PrintService 类的设计 ........................................ 34
5.3 订单模块的设计 .................................................. 35
5.3.1 订单主界面的设计 ............................................ 35
5.3.2 订单模块的设计 .............................................. 36


5.3.3 日历控件的设计 .............................................. 37
5.4 菜品管理模块的设计 .............................................. 38
5.5 对账中心模块的设计 .............................................. 39
5.6 本章小结 ........................................................ 40
6系统实现 41
6.1 基础模块的实现 .................................................. 41
6.1.1 消息推送的实现 .............................................. 41
6.1.2 网络模块的实现 .............................................. 41
6.1.3 心跳服务的实现 .............................................. 42
6.1.4 本地缓存的实现 .............................................. 42
6.1.5 自动更新的实现 .............................................. 43
6.2 蓝牙模块的实现 .................................................. 43
6.2.1 BluetoothDevice 类的实现 ..................................... 43
6.2.2 Printer 类和 PrintApi 类的实现 ................................ 44
6.2.3 PrintService 类的实现 ........................................ 44
6.2.4 BlueToothActivity ........................................... 44
6.3 主界面的实现 .................................................... 45
6.4 订单模块的实现 .................................................. 46
6.4.1 订单主界面的实现 ............................................ 46
6.4.2 RecyclerViewFragment 类的实现 ................................ 47
6.4.3 今日未打印订单的实现 ........................................ 47
6.4.4 历史订单的实现 .............................................. 48
6.4.5 日历控件的实现 .............................................. 49
6.5 菜品管理模块的实现 .............................................. 51
6.6 对账中心模块的实现 .............................................. 51
6.7 “更多”界面的实现 ................................................ 53
6.8 本章小结 ........................................................ 54
7系统测试 55
7.1 功能性测试用例设计 .............................................. 55
7.2 性能测试 ........................................................ 57
7.3 本章小结 ........................................................ 57
8总结与展望 58


参考文献 59
致 谢 60
附 录 61

1引言

本章首先介绍项目的背景与意义,接下来介绍了笔者在毕业设计中参与的主要工作,最后介绍毕业论文的组织结构。

1.1项目背景与意义

2009 年 4 月,饿了么公司创立,尝试将外卖订餐的业务和互联网结合起来,让用户可以利用手机搜索身边的外卖。不到几年,大街小巷的餐馆很多都入驻了饿了么的平台,改变了很多学生、上班族的点餐习惯,各大互联网巨头看到这么“大块蛋糕”,也开始推出自己的外卖平台,例如支付宝的口碑外卖,百度外卖,美团外卖。
由此可见,餐饮行业成为了互联网不可忽略的一块业务。据调查,外卖占餐饮行业的营业份额和堂食比起来,还是堂食比较多,而且每到吃饭时间,在各个办公大楼里的餐馆的点餐台前就会挤满了人,看上去有一种场面混乱的感觉,用户可能会选择别的餐馆就餐。所以我们公司希望开发一个提前在线点餐,到店不用等待就可以用餐的客户端。对于用户来说,这样可以改善用户的点餐体验,同时用户通过在线支付,也变相免去了收银这一步骤。对于商家来说,我们也可以开发一个后台管理系统,记录每一天的收银信息,统计菜品售卖信息等数据,以便商家更好的经营管理。
随着我们项目的推广与试点,我们发现在线点餐,然后通过移动流量将订单信息发送到商家打印机会出现问题,有些商家因为地理位置的原因,打印机的信号不好,所以有时会接收不到订单。我们了解到市面上有蓝牙打印机,手机的信号比打印机信号好,我们可以开发一个接单的客户端,然后通过手机来接收订单,连接蓝牙打印机来打印订单,这样就可以解决这个问题。同时,经常会出现某个菜品售完了或者这个菜今天不做了,我们需要商家打电话通知我们去修改后台,这样比较麻烦,所以我们商家版客户端里加进了菜品管理功能。最后,为了方便与商家对账我们也加入了对账功能,商家可以看到每天的营业额,订单数。

1.2本人的主要工作

我参与了整个项目从需求分析,概要设计,详细设计,开发,测试,到最后发布的工作流程,该项目按功能模块可以分成基础模块,订单模块,蓝牙模块,对账模块,菜品管理模块等五个模块,我主要开发了(1)基础模块,主要解决如何与服务器保持心跳服务和网络连接与数据解析(2)订单模块,主要解决订单的分页加载与显示,下拉


刷新,上拉加载的界面效果(3)蓝牙模块,主要编写与蓝牙打印机的数据传输和指令交互的 api。(4)界面,主要编写了一个自定义的日期控件和一个可重用的滑动 tab 控件。

1.3论文的组织结构

本文共分为七章,具体结构如下:
第一章介绍了项目的背景与意义,阐明了本人在毕业设计中的主要工作,并且说明了论文的组织结构。
第二章介绍了项目开发中所用到的第三方框架的介绍。其中包括友盟推送概述,友盟自动更新概述,Restrofit 概述,Fresco 概述,OKHttp 概述。
第三章介绍了项目的需求分析。主要介绍了项目的整体需求和各模块的功能需求,以及项目的非功能性需求。
第五章介绍了项目的详细设计。主要通过类图介绍了项目各个模块的类。
第六章介绍了项目的实现。主要描述关键功能的实现细节以及界面图的展示。第七章介绍了项目的开发完之后的测试方法和工具。
第八章总结与展望。本章对全文进行总结并对项目的进一步完善提出展望。

1.4本章小结

本章介绍了项目的背景与意义,说明了笔者在项目中承担的主要工作,并且对论文的组织结构进行了详细的分析。


2相关技术介绍

本章主要介绍笔者在毕业设计中用到的一系列技术,包括用于订单推送的 U-Push,友盟自动更新,用于 Json 解析的 Restrofit,用于网络请求与连接的 OKHttp,用于图片加载和缓存的 Fresco。

2.1U-Push

U-Push 是友盟的消息推送组件,可以将消息主动推送给终端用户,例如客户端的内容更新或者活动通知。可以根据不同的需求,选择接收固定格式的消息或者自定义消息,推送消息可以设置是否以通知栏的方式展示,还可以设置点击通知的行为。为了减少手机的耗电量,友盟推送组件利用长连接复用的原理,可以让多个 APP 共享同一个长连接。
目前使用 U-Push 的客户端有:淘宝,迅雷,暴风影音,UC 浏览器,哔哩哔哩等。

2.2Restrofit

Restrofit 是 Square 提供的开源产品,是一个类型安全的基于 Rest 原则的 HTTP 请求工具,用于 java 和 android。它是基于注解,提供 JSON to POJO(Plain Ordinary Java Object ,简单 Java 对象),POJO to JSON,网络请求(POST,GET, PUT,DELETE等)封装。
Restrofit 用 Java 注解来描述一个 HTTP 请求,将一个 HTTP 请求抽象成一个 Java接口,然后用 Java 动态代理的方式,动态的将这个接口的注解“翻译”成一个 HTTP请求,最后再执行这个 HTTP 请求,开发者可以选择同步和异步的请求方式,HTTP 返回的数据 Restrofit 默认使用 Gson 解析,将服务器返回的 Json 格式的数据解析成 Java类型。
Retrofit 让用户创建接口,使用自己指定的规则进行网络访问,把接口传入 Retrofit,接口上附着的规则由 Retrofit 进行层层解析后,再进行实际的网络调用,帮助用户简化了大量的网络访问代码。


2.3OKHttp

OKHttp 是 Square 公司开源的一个高效的 HTTP 客户端,用于 Android 和 Java 的网络传输层,Restrofit 就是基于 OKHttp 来做网络请求。
目前,OKHttp+Restrofit 已经成为很多移动开发团队搭建安卓客户端网络层使用的一套简单,稳定,高效的第三方解决方案。

2.4Fresco

Fresco 是 Facebook 开源的一个强大的图片加载组件。
Fresco 内部有 2 个组件,图片管线组件可以加载网上或者本地的图片,图片显示组件可以显示图片,如果图片不在屏幕区域里,会释放图片占有的内存。
Fresco 的 image pipeline 模块的特色在于它对于图片的内存管理,Android 中的
Bitmap 占用大量的内存,会引发更加频繁的 GC(垃圾回收),在 Android5.0 以下,GC(垃圾回收)将会显著地引发界面卡顿。Fresco 将图片放到一个特别的内存区域,在图片不显示的时候,占用的内存会自动被释放。这会使得客户端更加流畅,减少因图片内存占用而引发的 OOM。其中也提供了一些很有用的特性,为同一个图片指定不同的远程路径,或者使用已经存在本地缓存中的图片;先显示一个低解析度的图片,等高清图下载完之后再显示高清图加载;完成回调通知对于本地图;如有 EXIF 缩略图,在大图加载完成之前,可先显示缩略图;缩放或者旋转图片;处理已下载的图片;WebP 支持。[4]
Fresco 的 Drawees 模块支持 Android 本身的图片库不支持的渐进式的 JPEG 图片格式, Gif 图,WebP 格式,仅仅需要提供一个图片的 URI 即可。其中也提供了一些很有用的特性,例如自定义居中焦点(对人脸等图片显示非常有帮助);圆角图;下载失败之后,点击重现下载;自定义占位图,自定义 overlay, 或者进度条;指定用户按压时的
overlay。

2.5友盟自动更新

友盟自动更新是友盟提供的一个客户端自动更新的组件,帮助开发者将移动终端上的应用升级到最新版本。
友盟自动更新服务首先将用户终端上的应用版本信息(version name 和 version
code)与友盟服务器上开发者上传的应用版本信息进行比较。如果服务器的应用版本更高,则会提示用户有新的应用版本(提示如下图所示,开发者可自定义界面)。用户选择更新之后,友盟自动更新则开始下载新版本应用,然后安装此应用。[3]


友盟自动更新支持每个渠道发布不同的渠道更新包,满足差异化需求。SDK 在 2.0版本后支持增量更新,默认下载增量包,节省时间和流量。开发者还可以自定义各种 UI样式。

2.6Json

JSON(JavaScript Object Notation)是 JavaScript 对象表示法,是一种轻量级的数据交换格式。JSON 的数据格式独立于具体的编程语言,是很多编程语言中数据交换的格式,它的优点是易于阅读和编写简单,也很容易编写程序去自动解析与生成。同时由于它独立于具体的语言,所以只需要学习这一种数据交换格式,就可以在很多语言平台上使用。目前,许多不同的编程语言已经有自己的成熟的 JSON 解析器和JSON 库支持。


3系统需求分析

本章将通过分析系统的功能得到系统的整体需求,并对系统的工作流程进行说明。然后将根据系统的整体业务流程划分系统的功能模块,并对系统的各个模块进行详细的功能性需求分析,最后将对系统整体的非功能性需求进行分析。

3.1功能性需求

根据系统的整体功能和业务流程,将该系统分为基础模块,订单模块,蓝牙模块,菜品管理,对账模块。本节将依次介绍各模块的功能性需求。


3.1.1整体功能概述

整个接单客户端分成五个功能模块,其中基础模块主要是客户端的非业务功能,例如登录,心跳服务,消息推送,网络连接,自动更新,数据缓存,为客户端的业务功能提供支持;订单模块为了会更好地显示订单,将订单分成三个今日未打印订单,今日已打印订单,历史订单三个模块显示;蓝牙模块负责搜索蓝牙设备,连接蓝牙打印机并发送数据;菜品管理模块负责分类显示菜品,并提供上下架菜品,添加,修改等管理功能;对账模块给商家提供按日期查询账单的功能。整体功能结构如图 3-1 所示。

图 3-1 客户端整体功能结构图


3.1.2基础模块

基础模块为客户端提供登录,网络连接与数据解析,apk 自动更新,本地数据缓存,心跳连接,消息推送,退出登录等各个模块都可能需要用到的功能。其中,apk 自动更新当程序开始运行时检测当前版本与最新版本是否一致,如果不一致则弹出更新提示框,提供下载 apk 并替换原来 apk 的功能。本地数据缓存保存用户用户名,密码,设置参数等数据,以实现自动登录的功能。心跳连接每隔一段时间给服务器发送一次心跳包,用来判断商家是否在线。消息推送用来接收服务器主动推送过来的订单信息,并且自动更新到今天未打印订单列表中。基础模块的子模块划分及子功能描述如表 3-1 所示。

下载地址

点击此处→注册会员上传设计赚钱
以上是大纲和介绍,如需要完整的资料请在线购买.

软件评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

下载说明

* 本站所有资料均已审核通过,内容原创保密,标准格式,质量保证
* 无需注册,点击在线购买后即可获取该套毕业设计(论文)完整
* 支付后请联系在线客服QQ:212181988发送资料
  • 官方微信