前段时间 Rokid 研发工程师 Yorkie 受 GMTC 未来移动技术出品人的邀请,去北京分享了 JavaScript in IoT,希望大家能从他的分享中有所收获。
第一次参加 GMTC 这种比较大的会议,现场有很多值得听的演讲。在进入正题之前,我先分享一下参加这次活动的体会。
我先去听了 Qigsaw 的分享( https://github.com/iqiyi/Qigsaw),它是 Android App Bundles 在国内的解决方案,通过提供了兼容 Android 的 SDK 和服务,并且支持到 Android 4.0,这对于动态化方案来说,已经是十分方便了。
接着是一家上海游戏公司 CTO 的分享,讲了 Web-IR,其实名字看上去就知道是 IR 了,但是当他分享他们已经使用 WebAssembly 把很多原生游戏都移植到 Web 平台上时,我真的很佩服他们,希望他们继续加油!
好,接下来就开始进入本文的正题,JavaScript in IoT!
首先,什么是 IoT
如字面翻译,即物联网,但真正要解释起来,其实就是两点:
- IoT 是面向服务的 UI
- IoT 面临资源受限的问题
在物联网时代,我们不再像从前那样独立地使用某个固定、单一的产品,而是在享受着整个环境或者是网络给我们提供的服务,比如原来我们买一个闹钟回来,闹钟就是闹钟,在 IoT 环境下,闹钟是其中的一环,当它叫醒你后,整个系统会为你准备起床后需要的所有待办事物,这就是物联网。
接下来我们来看看资源受限的问题:
最右侧的手机自不必说,整个生态已经相当成熟了。最左侧的是目前的低端配置,可以看到内存和可用空间都是 MB 为单位的,CPU 也相当受限,因此这种设备上 Linux 也已经不满足运行的最低需求了,所以一般是采用更轻量级的 RTOS,流行的有 FreeRTOS 和 RT-Thread(国内)。
最中间的是以 Linux 为主的 128+128 组合的设备,最为我们所熟知的就是智能音箱(无屏),对于这类设备来说包括 Alexa、Rokid、小爱同学等,现在大多数厂商在设备端的开发语言也都以 C + Lua 为主,目前也仅有 Rokid 支持 JavaScript 直接运行在设备