写点什么

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:391003
用户头像

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

关注

评论

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

架构师0期作业-20200606

caibird1984

极客大学架构师训练营

小师妹学JavaIO之:目录还是文件

程序那些事

Java io nio Java 25 周年 小师妹

Chaos is a ladder——近期工作体会

石君

职场 职场成长 工作体会

UML 练习 食堂就餐卡

Mr.hou

极客大学架构师训练营

ARTS-第一周

爱睡的猫

食堂就餐卡系统架构设计文档

竹森先生

极客大学 架构设计 极客大学架构师训练营

食堂就餐卡系统设计

极客李

食堂就餐卡系统设计

Z冰红茶

Kafka系列10:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(下)

z小赵

大数据 kafka 面试 实时计算

源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)

小傅哥

spring 源码 源码分析 小傅哥 mybatis

String五连杀!

Bruce Duan

Java string equals

迷宫的生成: DFS与BFS算法的实现

lmymirror

DFS 迷宫 Cocos Creator BFS

架构师训练营 第一周 作业 食堂就餐卡系统设计

一雄

极客大学架构师训练营 作业 第一周

小师妹学JavaIO之:文件写入那些事

程序那些事

Java io nio Java 25 周年 小师妹

架构师训练营-作业1-食堂就餐卡系统设计

狂奔嘀兔纸

极客大学架构师训练营

架构师训练营第一周总结

小小杨

极客大学架构师训练营

Week1 总结

TiK

极客大学架构师训练营

小师妹学JavaIO之:文件编码和字符集Unicode

程序那些事

io nio Java 25 周年 小师妹

架构师训练营 听课总结 -- 第一周

fujin

极客大学架构师训练营

食堂就餐卡系统概要设计

小小杨

极客大学架构师训练营

架构师训练营 作业 -- 第一周

fujin

极客大学架构师训练营

游戏夜读 | vim一份极简手册

game1night

架构师训练营第一周总结

一剑

Char和编码

Hello

Java

Week 01 学习总结

卧石漾溪

极客大学架构师训练营

小师妹学JavaIO之:文件读取那些事

程序那些事

Java io nio Java 25 周年 小师妹

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

旭东(Frank)

架构 极客大学架构师训练营 作业

01学习总结

赵龙

小师妹学JavaIO之:文件File和路径Path

程序那些事

Java io nio Java 25 周年 小师妹

搞定 HTTP 协议(二):HTTP 协议总览

零和幺

HTTP

快速复制文件rsync、tar

唯爱

JRuby on Java ME/CDC_Java_Werner Schuster_InfoQ精选文章