写点什么

Mobile Ruby 综述:Symbian Ruby 1.9、Android、JME、iPhone 及 Mono

  • 2008-11-23
  • 本文字数:1017 字

    阅读完需:约 3 分钟

Ruby 1.9 针对 Symbian 的版本已经发布了,之前针对 Symbian 的 Ruby 1.8 版也早已出现(同时还有 Python for Symbian)。

除了应用于 Symbian 的 Ruby,现在还缺少对移动电话上的 Ruby 的支持。不过我们可以在 Android 上运行 Ruby 的 ARM 版

既然 Android 基于 Java,我们当然就可以在它上面运行 JRuby 了。一个需要注意的问题是 Android 不会执行 Java 字节码,而是执行 Dalvik 字节码(我们必须将 JVM 字节码转换成 Dalvik 字节码)。在 JRuby 用户列表的一个讨论中,JRuby 的 Charles Nutter 列举出了如下可能的解决方案

有如下两种可能的执行场景会突破这些限制: * 纯解释,所有的代码在设备上完成了解析并且通过我们的 AST-walking 解释逻辑执行。其速度可能比我们想的要慢点但实现起来很简单。

* 纯编译,所有的调用和处理都提前生成好。

在当前的代码基上已经实现了这两种方式;还需要做的一件事就是生成一个可用的.jar 文件,该文件只会提供其中一种方式并且不会依赖于另一种方式。

当前在 JME 上运行 JRuby 实在不是一个好主意。早在2007 年的JavaOne 大会上就已经介绍了针对JME 的JRuby 版本。这个链接页面上的Zip 文件含有该介绍的幻灯片,它详细说明了如何得到JRuby 的一个子集以运行于JME 上。因为JME 是Java 的一个简化版,因此要想让JRuby 运行于其上需要对JRuby 的很多内容进行重写。当前版本的JRuby 依赖于Java 5——但正如幻灯片中所述,JME 缺少Java 1.2 之后所增加的那些类和方法。其中最缺少的就是正则表达式和大部分Collections API。

针对iPhone 的IronRuby 和Mono 很快就要出来了。但iPhone AppStore 不提供解释器的下载,最新版本的Mono 提供了一个解决方案:提前编译,也就是说将CIL 中的代码编译到CPU 指令中,对于iPhone 来说就是编译到ARM 指令中。因为IronRuby 可以将Ruby 代码编译到CIL 中而不是对其进行解释,所以我们可以将Ruby 应用编译到CIL 中,接下来AOT 再来编译并在iPhone 中运行该应用。正如 Miguel de Icaza 所述,要想成功运行 IronRuby 代码,我们还需要解决一些小问题

当然,一旦移除了 JIT,你将无法使用任何动态生成的代码。这意味着如果没有 Reflection.Emit,也就没有了 IronPython/IronRuby。 John Lam 在 PDC 上跟我说他们正在研究如何实现 IronPython/IronRuby/DLR 的静态编译,因此这种限制很可能是短暂的。

查看英文原文: Mobile Ruby Roundup: Symbian Ruby 1.9, Android, JME, iPhone and Mono

2008-11-23 23:22842
用户头像

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

关注

评论

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

天猫商品描述API返回值中的商品参数对比与竞品分析

技术冰糖葫芦

API 接口 API 文档 API 测试 API 性能测试

软件测试学习笔记丨二叉树:添加练习

测试人

软件测试

CocosCreator 快速部署 TON 游戏:Web2 游戏如何使用 Ton支付

股市老人

文档转换API功能与特性全景:选择指南与应用洞察

幂简集成

API

《Programming from the Ground Up》读后感

codists

汇编 编程人

鸿蒙应用示例:键盘管理从避免遮挡到显示监听的方案实践

zhongcx

繁星·数智思享会第2期:流程挖掘,全知视角驱动业务增长

望繁信科技

流程挖掘 流程资产 流程智能 望繁信科技 数字换转型

倒计时1天 | 第三届OpenHarmony技术大会——明天,上海见!

OpenHarmony开发者

鸿蒙应用示例:单例工具类实现防抖动策略

zhongcx

鸿蒙应用示例:应用开发中的动态获取属性与调用方法技巧

zhongcx

鸿蒙应用示例:ArkTS中设置颜色透明度与颜色渐变方案探讨

zhongcx

鸿蒙应用示例:ArkTS中实现一键置灰功能

zhongcx

一文读懂HyperWorks的耦合求解功能

智造软件

CAE altair hyperworks

老韩运维知识解析系列02:深入理解网络监控指标与实战应用

Geek_a83400

鸿蒙原生应用开发者激励计划发布,冲刺HarmonyOS NEXT正式商用

最新动态

鸿蒙应用示例:NEXT 中 Map 类型的使用及注意事项

zhongcx

鸿蒙应用示例:Java与ArkTS中的方法重载及数值类型对比

zhongcx

Python:条件分支 if 语句全讲解

不在线第一只蜗牛

Python

ECCV 2024 亮点!RoboTwin:首个双臂协同机器人策略学习Benchmark

松灵机器人

前沿科技 人工智能’ 具身智能 松灵机器人 双臂智能机器人

鸿蒙应用示例:利用attributeModifier解决样式抽离与组件状态管理

zhongcx

鸿蒙应用示例:基于 promptAction 封装全局弹窗工具类

zhongcx

鸿蒙应用示例:跨组件通信实践父组件调用子组件方法及状态共享

zhongcx

鸿蒙应用示例:状态管理与UI刷新机制从@State到@ObservedV2的进阶

zhongcx

鸿蒙应用示例:API功能集成示例及注意事项

zhongcx

Mobile Ruby综述:Symbian Ruby 1.9、Android、JME、iPhone及Mono_Java_Werner Schuster_InfoQ精选文章