用Java语言开发物联网应用(1)
写在前面的话
2007年的时候,我还在SUN Microsystem工作。当时SUN把自己的JavaME虚拟机贡献给了开源社区,叫做phoneME,发布在Java.net上。我的team leader专门找到我,问我想不想用刚刚开源的phoneME项目搞点有意思的事情,在下一年的JavaOne上搞个presentation啥的。我也没多想,随口答应了下来。没想到后来这个项目一做就是4、5年,这就是PSPKVM的由来,一个在PSP游戏机上的JavaME虚拟机。当时PSP的装机必备软件列表上,PSPKVM一直都是常客。很多人用PSKKVM跑JavaME的浏览器(Operamini,UCWeb),各种手机JavaME网游,还有众多Google服务套件。每天在论坛和邮件里和PSPKVM的用户们交流,是我那几年每晚的乐趣所在。
时移世易,JavaME在手机上逐渐被Android和iOS取代,但是我与Java的故事并没有结束。如今,我在github上新开了一个项目,将phoneME的代码移植到MCU和各种嵌入式设备中去,并给这个项目起了个新的名字:JOSH,意思是JOSH Open Smart Hardware。这个项目基本上是把CLDC部分的代码保留,加入了访问物联网外设的接口(Device IO),将MIDP部分基本裁掉,达到缩小尺寸和内存占用、适配低成本物联网设备的目的。
目前的JOSH支持Linux和Windows模拟运行,也可以通过一个集成的RT-Thread内核跑在MCU上,还支持了ESP32 Wifi芯片。除此以外,我的下一个目标是将JOSH跑在无操作系统的MCU上&