写点什么

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

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

关注

评论

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

苹果Mac强大的远程管理工具:Royal TSX for Mac激活版 支持M1

彩云

Royal TSX 远程连接管理

软件测试|一文教你学会Python文件 I/O 操作

霍格沃兹测试开发学社

谷歌SEO搜索引擎优化怎么做?

九凌网络

软件测试|教你使用Python实现五子棋游戏(一)

霍格沃兹测试开发学社

软件测试|Python matplotlib教程(二)

霍格沃兹测试开发学社

软件测试|教你用Python操作Word文档(二)

霍格沃兹测试开发学社

软件测试|带你了解Python正则表达式模块(一)

霍格沃兹测试开发学社

Util应用框架快速入门(三)- UI 快速入门

何镇汐

开源 后端 开发软件

选择困难症的我,最终选择了Amazon EC2 云服务器

不叫猫先生

云服务器 Amazon EC2 云服务器

软件测试|教你使用Python快速绘制酷炫词云图

霍格沃兹测试开发学社

九凌网络:谷歌seo优化和外贸建站的五大优势

九凌网络

FomePay 充值 ChatGPT Plus 详细教程

月满楼

ChatGPT ChatGPT4 chatgpt app chatgpt api

外贸网站优化常用流程和一些常识

九凌网络

Util应用框架快速入门(二)- Web Api 快速入门

何镇汐

开源 后端 软件开发

软件测试|教你用Python 操作Word文档(一)

霍格沃兹测试开发学社

软件测试|Python绘图神器matplotlib教程(三)

霍格沃兹测试开发学社

亚马逊云服务器成了我的首选服务器

StackOverflow

云服务器 亚马逊云

在 LangChain 尝试了 N 种可能后,我发现了分块的奥义!

Zilliz

Milvus langchain rag chunking

软件测试|matplotlib中文不显示的解决方案

霍格沃兹测试开发学社

工赋开发者社区 | 智能物联网:概念、体系架构与关键技术

工赋开发者社区

软件测试|带你了解Python正则表达式模块(二)

霍格沃兹测试开发学社

如何规划并新建大数据平台的独立生产域?5步走

奇点云

奇点云 DataSimba 对象体系

罗拉ROLA-IP代理IP:稳定性、纯净性、响应速度的保证

Geek_bf375d

全面解析独立服务器:如何选择最适合你的方案?

一只扑棱蛾子

独立服务器

软件测试|Python数据可视化神器——pyecharts教程(四)

霍格沃兹测试开发学社

潮玩宇宙APP系统开发

薇電13242772558

NFT

一般的仿真软件需要什么配置的电脑?

思茂信息

仿真软件 仿真技术 仿真建模 仿真模拟

轻量应用服务器到底香在哪?

格致君的planB

数字化 亚马逊云科技 轻量应用服务器

融云荣登「2023 年度 PaaS 企业排行榜」

融云 RongCloud

互联网 PaaS 通信 企业 即时通讯

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