# WMPF 技术原理

WMPF 是微信小程序硬件框架 ( WeChat Mini-Program Framework ) 的简称,该运行环境能让硬件在脱离微信客户端的情况下运行微信小程序,目前已支持 Android ,未来会支持到更多的平台。

想要顺利地运行小程序,你需要安装两个 apk ,并使其同时运行:

  • WMPF Service apk:小程序框架的运行环境,又称 WMPF 框架,以 apk 的方式运行在安卓系统中,由微信侧提供
  • WMPF Client apk:Service 的调用方,又称 Launcher ,以 apk 的方式运行在安卓系统中,是小程序的容器。

Client 可以作为设备的“桌面”,用户可以从“桌面”启动小程序或者 App 。当用户点击“桌面上”的小程序入口(你可以自行定义入口样式),Client 就会触发 Service 调起对应的小程序。

建议硬件配置:

  • 四核 2GHz CPUxi
  • 内存 2GB RAM + 8GB ROM
  • 安卓 7.1 及以上

# WMPF 合作角色

完整的 WMPF 应用包括微信小程序、WMPF Service 、WMPF Client 、设备操作系统以及相关的驱动程序,分别由小程序开发者、硬件设备开发者和设备软件开发者进行开发:

如图所示,WMPF 接入方可以分为三种:

# 硬件设备开发者

硬件设备开发者一般是指设备的研发和生产商,为下游客户提供具备合理的硬件功能、操作系统( Android )和驱动软件的硬件设备。

如果你是一家智能跑步机的生产商,你可以通过 WMPF 来结合小程序的能力,从而创造出属于你的硬件设备的独特能力,例如结合屏幕画面控制跑步机的速度和坡度,实现趣味场景跑步能力;或者和另一台智能跑步机上运动的微信好友完成竞速挑战。

如果你专精于硬件的研发和生产,不熟悉 Android 开发,可以寻找其他设备软件开发者来帮助你完成 WMPF Client 的开发。但必须配合软件开发者对设备进行注册。

如果你的团队有 Android 开发工程经验,也可尝试自行开发 WMPF Client 。

# 设备软件开发者

WMPF Client 又称 WMPF Launcher ,以 apk 的方式运行在安卓系统中,是小程序的容器。开发者需要先完成详细接入流程中的所有步骤,然后再参考“快速上手”部分完成 WMPF Client 的开发。

开发者需要在 Client 中放置小程序的入口( icon 或卡片 ),当用户点击触发时调用对应的接口启动 WMPF Service 来运行小程序。开发者在完成相关注册流程后,可以在「微信终端合作平台」上绑定所需使用的小程序。只有经过绑定的小程序才可以通过 WMPF 启动。

开发者如果在 Client apk 上删除了某个小程序的入口( icon 或卡片),用户就无法启动该小程序了;因此,开发者可以通过放置入口的方式来允许或禁止用户启动某个小程序。

关于未在小程序中定义的特殊安卓接口,部分常用硬件(如打印机设备 SN 码)可以直接进行接口调用,与小程序完成通信;其他未定义的外接硬件,也可通过 WMPF 调用通道实现小程序和硬件的通信。

一般而言,在「微信终端合作平台」上绑定过的小程序可以运行在 WMPF 设备上。但已经发布到微信上使用的小程序已针对手机屏幕进行了 UI 设计的适配,如果你的设备屏幕尺寸、比例、分辨率、方向和手机差异较大,直接运行小程序的体验可能较差;可以通过专用接口调整小程序的显示区域,或者寻找合适的小程序开发者开发适应屏幕要求的小程序。

# 小程序开发者

小程序开发者可以将已在微信上发布的小程序授权给 WMPF 硬件使用,也可以针对硬件的特殊需要,定制开发专用小程序。小程序开发者若不愿意被 WMPF 硬件使用,可在微信开放平台关闭相关功能。

在基于 WMPF 硬件开发自己的小程序时,开发者可以通过调用与 wx.xxx 相似的 wmpf.xxx 接口, 完成小程序与 WMPF Client 端的通信,从而实现在 WMPF 下特有的功能。

WMPF 硬件具备部分手机未支持的能力,也有少量已在手机上成熟支持的接口在 WMPF 尚未稳定支持,开发者需要阅读 WMPF 小程序能力说明了解开发规范。

# 注意

在理解 WMPF 技术原理之后,还应该清楚 WMPF 中的各种名词概念。详细文档请访问:名词解释