本来第三篇应该是写到一线具体功能的实现的,但是有朋友问到了一些很基础的知识,才意识到我有很多东西没有讲清楚,因为这个软件看起来很简单,但是对学生朋友来说却是整合了很多资源,用到了很多不同的技术的,所以我再写一篇简单的介绍一下。本篇中的大部分内容,都来自我的毕业论文,介绍得很粗显,希望详细学习和了解的同学请自行查阅资料吧。
本设计包括三部分:移动端软件、云服务平台和热敏打印机模块。其中移动端软件基于Android系统开发,包括菜品录入、点餐和数据统计等多个部分。先由餐饮店铺管理者将本店菜品录入到手机软件中,录入的信息包括菜品名称、价格、规格、食材和示例图片等。录入信息将同步储存到移动终端和云平台上,并生成点餐界面。生成点餐界面即可进行正常点餐操作。点餐过程中由前台收银员手持移动终端,按照顾客要求选择菜品,点餐完成后生成菜单,结算总价并由顾客付款。付款后点餐信息发送热敏打印机。店铺可根据自身格局,选择将打印机放在收银台或后厨。打印机放在收银台可将小票直接交给顾客,由顾客凭小票到取餐处取餐。打印机放在后厨可让顾客到座位上等待,后厨按照小票将菜品准备好好端给客户。数据统计部分会对当天所受菜品做出统计,包括计算总营业额和售出菜品的分布等,便于管理者记账以及对次日的售出量进行预估,以便估算各种食材的进货量。
具体流程框图如下:
Android Studio
本设计中的Android端软件的设计开发,主要使用的开发工具是Android Studio。Android Studio是Google于2013 I/O大会针对Android开发推出的基于IntelliJ IDEA开发的开发工具。Android Studio 提供了集成的 Android 开发工具用于开发和调试。
2015年5月29日,在谷歌I/O开发者大会上,谷歌发布AndroidStudio1.3版,支持C++编辑和查错功能。AndroidStudio 1.3版开发码代码变得更加容易,速度提升,而且支持C++编辑和查错功能。
在2016年的Google开发者大会上,Google发布了Android Studio的2.0版本。Android Studio 2.0带来多项新特性和改进,包括“即时运行(InstantRun)”、集成一个测试真实设备的谷歌服务、更快的模拟器、更快的构建速度、GPU优化器和调试器、支持深度链接等。现在ANdroid studio已经以极快的频率更新到2.几了,我虽然没有在做应用开发,但是做一些客户维护案的时候经常还要用到,觉得超级好用,是一件趁手的兵器,即使不是做android开发的时候,也喜欢用它来看代码。
AndroidStudio 1.3.2的开发界面(1)
AndroidStudio1.3.2的开发界面(2)
作为Google专门为Android开发设计的编译器,Android Studio不管是在速度上和体验上,都比以往Android开发者使用的eclipse有了质的提升。其相教于eclipse的优势有以下几点:
(1)从界面来说,Android Studio的界面更具有极客气息,且界面风格的更换更加方便快捷;
(2)强大的智能提示补全功能,大大地提高了开发者的开发效率,符合当今移动开发“敏捷开发,快速迭代”的开发理念;
(3)智能保存,不需要Ctrl + S;
(4)整合Gradle构建工具,Gradle集合了Ant和Maven的优点,不管是配置、编译、打包都非常强大;
(5)UI编辑器自带了多设备的实时预览,多语言适配;
(6)内置终端直接替代cmd命令行;
(7)完善的插件系统,如Git、Markdown、Gradle等,直接下载即可使用;
(8)版本控制系统,安装的时候就自带GitHub、 Git、 SVN等流行的版本控制系统,可以直接check out项目,可边写代码边与其他版本进行对比修改。
蓝牙
本设计中Android端软件与热敏打印机之间使用的是蓝牙传输的传输方式。蓝牙是一种无线技术标准,可实现两个不同蓝牙设备之间的短距离数据交换。蓝牙基于设备低成本的收发器芯片,传输距离近、低功耗。蓝牙使用的是2.402GGHz到2.480GHz(包括防护频带)的ISM波段的UHF无线电波,使用跳频技术,将传输的数据信分割成多个数据包,通过79个指定的蓝牙频道分别传输不同的数据包,每个频道的频宽为1MHz。
多数蓝牙应用是为室内环境的信息传输而设计的,由于墙体的衰减和信号反射造成的信号衰落会使得射程远小于蓝牙产品规定的射程范围。两个敏感度和发射功率都较高的1类设备相连接,射程可远高于一般水平的100m,这取决于应用所需要的吞吐量。有些设备在开放的环境中的射程能够高达1km甚至更高。每个蓝牙设备都有一个唯一的48位的地址。然而这些地址并不会显示于连接请求中。但是用户可自行为他的蓝牙设备命名,这一名称即可显示在其他设备的扫描结果和配对设备列表中。
由于蓝牙在连接时步骤比较烦杂,现在已经逐渐被其他传输方式所替代,比如wifi。现在的手机的无线模组一般包括wifi模块和蓝牙模块。在本设计的早期,笔者本来也打算使用wifi进行Android端应用与热敏打印机之间的数据传输。但是考虑到本设计的具体应用场景,使用者(即小型餐饮店铺的经营者)可能需要使用手机的wifi模块进行其他网络操作,wifi模块会比较繁忙,蓝牙模块则处以一个相对闲置的状态,且在本设计的可能应用场景中,蓝牙的传输方式的特点(如频段和传输距离等)能得到很好的发挥,而其连接方式繁杂这一缺点也并会有特别明显的体现。所以在早期开发版本中,笔者率先选用的是蓝牙的传输方式。在后续的开发中,笔者将继续丰富其它的传输方式。
热敏打印机
本设计中票据的打印选用的是热敏型打印机。热敏打印机的原理是在淡色材料上(通常是纸)覆上一层透明膜,将膜加热一段时间后变成深色(一般是黑色,也有蓝色)。图象是通过加热,在膜中产生化学反应而生成的。这种化学反应是在一定的温度下进行的,高温会加速这种化学反应。当温度低于60℃时,膜需要经过相当长,甚至长达几年的时间才能变成深色;而当温度为200℃时,这种反映会在几微秒内完成。热敏打印机有选择地在热敏纸的确定位置上加热,由此就产生了相应的图形。加热是由与热敏材料相接触的打印头上的一个小电子加热器提供的。加热器排成方点或条的形式由打印机进行逻辑控制,当被驱动时,就在热敏纸上产生一个与加热元素相应的图形。控制加热元素的同一逻辑电路,同时也控制着进纸,因而能在整个标签或纸张上印出图形。
最普遍的热敏打印机使用一种带加热点阵的固定打印头,打印头设有320个方点,每一点为0.25mm×0.25mm。利用这种点阵,打印机可把打印点在热敏纸的任意位置上。热敏纸是一种加工纸,其制造原理就是在优质的原纸上涂布一层“热敏涂料”(热敏变色层)。变色层使用的是一种负责的无色染料,该染料的品种甚广,最常用的是荧光化合物;显色剂约占20%以下,常用的有双酚、对羟基苯甲酸;增感剂约占10%以下,其中含有苯磺酸酰胺类化合物;填料约占50%以下,常用的有碳酸钙(微粒);胶黏剂约占10%以下,如聚乙酸乙烯;稳定剂,如对酞酸二苯酰;润滑剂等。因此工艺难度大,技术要求高。
在本次设计中笔者选用的是佳博PT-260型的热敏打印机。其分辨率为384点/行,打印纸宽为58mm,打印纸厚度为0.06-0.08mm,打印速度为60mm/sec(max),接口类型是USB和蓝牙,可靠性为50公里,打印机尺寸为148.5(D)*86(W)*58.5(H)mm,选用1900MA/7.4V可充电锂电池,AC100-240V宽范围输入,支持边充电边打印,支持自动休眠。
热敏打印纸
佳博 PT-260型热敏打印机
佳博 PT-260型热敏打印机技术参数
产品名称 |
佳博 PT-260型热敏打印机 |
打印方式 |
热敏式 |
打印纸宽 |
58mm |
打印纸厚 |
0.06-0.08mm |
打印速度 |
60mm/sec(max) |
接口类型 |
USB+蓝牙 |
可靠性 |
50公里 |
打印机尺寸 |
148.5(D)*86(W)*58.5(H)mm |
移动云服务平台
在云服务方面,笔者选择的是Bmod云服务平台。Bmob是国内个人开发者用得比较广泛的一个移动云服务平台,提供了一套比较快速简洁的移动云服务解决方案,服务器端的数据操作十分简便,几乎为全可视化数据操作。开发者只要在平台上注册后创建一个应用,将该应用唯一指定的Application ID写入到应用源码中,然后在应用中导入BmobSDK,即可在应用中进行网络数据库操作。除了基本的数据库的增删改查,Bomb还在此基础上进行了拓展,提供的服务基本可以满足个人开发者移动应用开发的全部需要,包括:
(1)用户管理
提供专门的用户管理类BmobUser用于用户管理。注册登录方式包括新申请账户登录、邮箱登录、手机号码登录和第三方账户登录,其中第三方账户登录目前支持新浪微博账户、QQ账户和微信账户。
(2)文件管理
提供专门的BmobFile类将文件存储到服务器中,可存储的文件类型包括图像文件、影像文件、音乐文件和二进制数据文件等。提供文件的上传、下载、删除、批量上传及批量下载等功能。
(3)数据实时同步
实时数据同步即对数据库表或行进行实时监听,当数据有所改变时通知SDK。此功能多用于实时聊天工具、游戏等实时信息要求较高的应用软件的开发。使用数据实时功能,首先需要创建BmobRealTimeData对象,然后调用start方法连接服务器。start方法中的ValueEventListener参数用于监听连接成功和数据变化的回调。当有数据变化时会通过onDataChange回调方法反馈到客户端。开发者只需要处理得到的data就可以了。
(4)地理位置服务
(5)云端逻辑服务
(6)短信服务
(7)消息推送服务
Bmod云服务平台网址:
http://www.bmob.cn/