智能硬件在美团到店场景下的应用
如果无法正常显示,请先停止浏览器的去广告插件。
1. 智能硬件在美团到店场景下的应用
到店事业群,孙凯
2021-11
美团到店事业部
2. 目录
1. 智能硬件在到店发展历程
2. 最佳实践(系统软件)
3. 踩雷、填坑分享
• 酒旅智能门锁 • 安卓收银机系统稳定性建设 • 安卓系统权限双刃剑
• 餐饮SaaS安卓收银机、打印机 • 零配置热敏网口打印机 • 通信模块
• 美团充电宝 • 远程协助
3. 硬件在到店发展历程 – 酒旅智能门锁
• 到店业务第一个量产的智能硬件
• 2015-06-24日第一次成功从云端开锁
2015-06-24
2015-10
2016-9
2017-10
4. 硬件在到店发展历程 – 酒旅智能门锁
酒店
• 用于酒店场景,不是C端消费者
• 门锁通过433M RF连接到控制盒,控制盒
通过Wi-Fi/Ethernet接入业务系统
Room N
433M RF
WIFI,以太网
业务系统通过控制盒间接向门锁下发业务
数据
•
控制盒
长连接
Room 102
业务系统
433M RF
控制盒
433M RF
Room 101
5. 硬件在到店发展历程 -
OEM+ODM
功能定制
成品采购
2018 ~ 2019
2016 ~ 2017 2020 ~ 现在
ODM 软硬件自研
外观定制 家族化设计
成品采购 智能化
互联互通
6. 硬件在到店发展历程 -
2020-07 2021-01 2021-07
T3充电宝/机柜/支架 T5机柜 TS支架
2020-03 2020-12 2021-06
T1/T2充电宝及机柜 T4机柜/支架 T4充电宝
TS机柜系列
• 快速上线,快速迭代
• 多种形态适应不同场景
• 可灵活扩展仓位设计
7. 硬件在到店发展历程 -
Cat1 4G
心跳,状态信息
扫一扫
充电宝业务系统
弹宝指令,OTA
8. 1. 智能硬件在到店发展历程
2. 最佳实践(系统软件)
3. 踩雷、填坑分享
• 酒旅智能门锁 • 安卓收银机系统稳定性建设 • 安卓系统权限双刃剑
• 餐饮SaaS安卓收银机、打印机 • 零配置热敏网口打印机 • 通信模块
• 美团充电宝 • 远程协助
9. 最佳实践 – 安卓收银机稳定性建设
为什么要做稳定性建设
• To B硬件稳定性至关重要,影响商家经营
• 硬件产品一些偶现问题量产后才会暴露出来
常见稳定性问题
硬件类
• 触摸屏跳点、Wi-Fi打不开、USB外设频繁断联
• 屏幕闪、没有声音、不能开机
• 商家的店内环境多种多样,比办公环境下容易出问题
• Android 11有大约1亿行代码,系统也有bug
• 需要建立技术指标来衡量安卓收银机系统稳定性
安卓系统相关
• Wi-Fi不稳定、蓝牙传大文件总失败、应用安装失败
• 收银机莫名重启
• 操作卡顿,应用崩溃弹窗去不掉
10. 最佳实践 – 安卓收银机稳定性建设
方案:保留现场;监控,主动发现问题
IoT
设备端
• MDM:收集详细的设备状态信息
• 离线日志系统、OTA、fd泄露监控
• 第三方应用安装控制
• 设备助手:诊断外设、网络环境、内置打印机
Android
Framework
监控大盘,OTA推送,远程工具
远程协助 设备助手
OTA App安装控制
离线日志 远程adb
MDM 异常关机重启
IoT云端
建立如下监控指标大盘
• 异常关机次数、应用ANR次数、应用卡顿次数
AOSP
• USB EMC干扰次数、USB设备断联次数、ROOT监控
远程解决问题
• 远程协助、远程adb、离线日志
• OTA推送
Linux Kernel
driver
Root检测
fd泄露检测
11. 最佳实践 – 零配置热敏网口打印机
痛点
• 打印机配置操作步骤多,人机交互方式差
• 打印机IP地址变化后需要重新添加打印机
• 多数商家不懂DHCP、静态IP地址
LAN
我提供 ”_mtethprinter._tcp”服务
谁提供 ”_mtethprinter._tcp”服务?
解决方案:利用NSD技术解决设备发现问题
安卓收银机
myname._mtethprinter._tcp
• Android 4.1开始支持Network Service Discovery (NSD)
query IP&Port
• NSD和Apple Bonjour兼容,Windows上需要单独实现
• NsdManager需要支持IP地址变化后给App发通知
IP, Port, Txt
热敏打印机
• 现状:厂家均不支持NSD,行业没有标准
• 自研固件支持mDNS协议和DNS-SD协议
• 提供ServiceType为”_mtethprinter._tcp”服务
单台打印机无需配置,多台只需配置一次
12. 最佳实践 – 远程协助
亮点
• 商服通过浏览器操作,无需安装客户端
• 和客服系统打通,一键发起协助
商服
IoT
• 支持使用美团ROM安卓收银机、Windows 7+
商家
• 支持Android 4.4及以后版本,低性能平台使用图片差分模式
迭代过程
• V1.0:基于VNC技术。早期收银机性能差内存小视频方案延时
大,被控端CPU占用率高
• V1.8:采用WebP替代VNC中jpeg编码,数据量降低50%
• V2.0:收银机性能和内存大小有提升,被控端导入H.264视频压缩
技术,浏览器端采用WebAssembly技术。通过调整H.264编码参
数和WebAssembly解决了协助交互延时大的问题
数据
每天协助8000+次
每分钟数据量1MB
从截屏到显示延时160 ~ 290ms @1600x900
13. 目录
1. 智能硬件在到店发展历程
2. 最佳实践(系统软件)
3. 踩雷、填坑分享
• 酒旅智能门锁 • 安卓收银机系统稳定性建设 • 安卓系统权限双刃剑
• 餐饮SaaS安卓收银机、打印机 • 零配置热敏打印机 • 通信模块
• 美团充电宝 • 远程协助
14. 踩雷、填坑分享 – 安卓系统权限双刃剑
Android系统权限带来的益处
• MDM拿到更多的设备状态信息
• 内存不足时不容易被kill
• 更好的控制设备能力:修改本机IP地址,IP冲突检测,Input事件注入(远程协助)
系统权限带来的问题
1) 其它系统应用crash,现象如右图:
原因:对于UID 一样的应用,Android 6.0启动阶段会把他们的ABI设成第一
个应用的ABI。远程协助和其它系统应用共享UID,远程协助只持支持32位
ABI,在64位系统上会导致其它系统应用以32位ABI运行,但是其它系统
App不支持32位,导致找不到资源,进而crash。
15. 踩雷、填坑分享 – 安卓系统权限双刃剑
系统权限带来的问题
2) 系统重启进入recovery
• 系统应用一段时间内crash多次会触发Android系统重启,直接进入recovery模式
总结
• 慎用系统权限,把系统权限接口做成服务供其他App调用,而不是把应用做成系统应用
• 确保App本身和第三方组件依赖的JNI库支持的版本和系统ABI保持一致
• 系统App不要保活,即使保活也要加策略控制
16. 踩雷、填坑分享 – 通信模块
信令风暴问题现象、解决方案
• 2020年8月,IoT后台监控秦皇岛地区充电宝机柜上下线次数增加到25次/天,远超大盘1.6次/天
• 美团移动联合排查结果是机柜重连逻辑触发了当地基站的信令风暴控制策略,导致机柜一段时间内被拒绝登录
• 调整心跳间隔为8秒、调整重连逻辑以避开信令风暴后问题解决
• 对实时在线有要求的业务,心跳间隔不要超过10s
其它通信模块bug
1. 某家模块驻网问题导致频繁上下线,需要通过额外AT指令
设置
2. 手册要求AT指令\r\n结尾,模块实际只处理\r。\n会被当
做数据发走。5个厂家的模块均有此问题
17.
18. 更多技术干货
欢迎关注“美团技术团队”