在JRuby成功的运行于Android上之后(通过Ruboto——Android对JRuby的支持),最近Charles Nutter开始尝试将JRuby引入到移动Java设备上。当前的Ruboto以解释的方式执行JRuby代码,而Charles打算扩展提早编译(AOT)能力以将Ruby代码完全编译成Java字节码,之后就可以将其转换为适合AndroidVM的字节码了:

同时还打算触及一下即时编译模式,因为我觉得这要比生成Dalvik字节码更容易上手。我已经想好怎么做了。你可以通过命令来“完全编译”目标脚本,这样就会创建.class文件,其中绑定了运行时会生成的所有方法。这个计划在我心中已经由来很久了。借助于“完全编译好”的Ruby代码,你可以轻松将其上传到设备中。

另一个重要步骤就是模块化JRuby:

假设很多人都会交付预编译的代码而很多库无法正常工作,这样我们就需要模块化JRuby以识别出不支持的库、解析器、解释器和编译器问题。这会减少二进制文件的总大小,同时我还有其他一些想法来实现这一点。

编译Ruby代码并且只使用JRuby中需要部分的能力对于资源受限的Java ME设备是尤为重要的,这也是Charles在其最近的项目jruby-cdc中所要解决的问题。正如之前所讨论的,人们已经在考虑JRuby on Java ME,但这绝对是个挑战,因为Java ME平台有太多的限制了(相比于JRuby的目标平台Java 5来说)。

现在人们已经将JRuby带到了Java ME CDC设备上了(CDC是Java ME的一组配置参数):

“cvm”是Sun对一种嵌入式JVM的参考实现,而且该特别的包还包含了PBP级别的API。这里我已经将jruby.jar从jruby-cdc项目中剥离出来了,但需要做一些转换以兼容于Java 1.3的字节码。

Rhodes项目已经对很多移动平台上的Ruby提供了部分支持,这是通过MRI(针对Symbian或Windows Mobile设备)或针对特定设备(如黑莓)的客户化XRuby实现的。剥离了某些特性的JRuby(可以提早编译为Java字节码)当然也可用于Rhodes项目了(Rhodes位于Github并且是开源的,这样一旦AOT编译可用,我们就可以拿JRuby实验了)。

Rhodes平台一个有意思的地方就是其基于HTML的GUI环境了,通过扩展它可以访问设备特性,如位置、摄像头等等。其观念类似于针对新WebOS的Palm,也就是说使用HTML、Javascript和其他Web技术来构建本地应用,区别在于Rhodes应用的后端可以用Ruby编写。

Rhodes的目标在于智能手机,而JRuby on JME想要占领低端市场,Charles指出:

为何烦心?现在仍有不少Java ME设备。虽然口袋中的设备可能不是Java ME,但卧室中的机顶盒或蓝光设备却可能是。技术还很绚烂,只是不如iPhone或Android那么惹人注意罢了。我们的目标是“Ruby everywhere”,你觉得可行不?

你对Java ME或Android设备上的JRuby有何高见呢?

查看英文原文:JRuby on Java ME/CDC

更多相关文章

  1. Android(安卓)NDK开发入门篇 .
  2. Android(安卓)adb常用命令
  3. 将keras或tensorflow模型迁移到android端(AndroidStudio)
  4. android Image zImage uImage boot.img分别是什么?个人笔记
  5. 如何在android平台上实现语音识别
  6. 在Android实现人脸识别的详细过程
  7. android 陀螺仪简单使用,判读手机是否静止状态
  8. android jar转dex
  9. Awesome Adb——一份超全超详细的 ADB 用法大全

随机推荐

  1. Android在WebView中注入Js代码
  2. How to build Android(安卓)adb for ARM
  3. Android电话窃听器的实现
  4. Android实时获得经纬度,发送给c++服务端
  5. 智能手机软件平台 Android(安卓)VS iPhon
  6. android 切换activity动画
  7. android adapter 异步加载图片
  8. Android之Fragment动态添加和移除Fragmen
  9. Android(安卓)USB Host and Accessory
  10. StringTokenizer用法