写点什么

JRuby on Java ME/CDC

  • 2009-03-04
  • 本文字数:1152 字

    阅读完需:约 4 分钟

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

同时还打算触及一下即时编译模式,因为我觉得这要比生成 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

2009-03-04 23:391030
用户头像

发布了 88 篇内容, 共 264.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

ARTS打卡第二周

苏籍

算法 ARTS 打卡计划 arts 心得

软件测试 | 测试对URL长度的处理

测吧(北京)科技有限公司

测试

软件测试 | web测试—上传带有恶意文件名的文件

测吧(北京)科技有限公司

测试

软件测试 | 修改特定的元素属性

测吧(北京)科技有限公司

测试

C++中的const成员变量和成员函数

芯动大师

Mysql 查询语句怎么进行执行的

程序员在修行

MySQL

ARTS Week 2

Geek_c25301

Zebec在Nautilus Chain 开启质押,ZBC 将极致通缩

股市老人

代码随想录 Day57 - 动态规划(十七)

jjn0703

使用 S3 生命周期精确管理对象生命周期

亚马逊云科技 (Amazon Web Services)

存储 生成式人工智能

软件测试 | web测试-伪造浏览器头信息

测吧(北京)科技有限公司

测试

软件测试 | web跟踪元素属性

测吧(北京)科技有限公司

测试

Zebec在Nautilus Chain 开启质押,ZBC 将极致通缩

大瞿科技

代码随想录 Day56 - 动态规划(十六)

jjn0703

代码随想录 Day58 - 单调栈(一)

jjn0703

R语言之数据框的合并

timerring

R语言

电脑风扇控制推荐 Macs Fan Control Pro for mac激活中文

胖墩儿不胖y

Mac软件 风扇控制软件 好用的电脑风扇软件

Mac电脑图片降噪推荐 Topaz DeNoise AI 一键激活脚本

mac大玩家j

Mac软件 图片处理工具 图片降噪软件

Zebec在Nautilus Chain 开启质押,ZBC 将极致通缩

BlockChain先知

【架构篇】Supabase架构和功能介绍

张文平

postgres serverles sdk Baas Supabase

ARTS 打卡第 17 天

自由

ARTS 打卡计划

JRuby on Java ME/CDC_Java_Werner Schuster_InfoQ精选文章