写点什么

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

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

关注

评论

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

云运维过程注意事项简单讲解-行云管家

行云管家

云计算 企业上云 云管理 云运维

内卷了!阿里Java八股文面试题“惨遭”泄露,导致132人面进大厂

Java你猿哥

面经 金三银四 java 八股文 Java八股文

waf全称是什么?是干什么的?

行云管家

防火墙 waf

自动化软件开发工具有什么用?该如何选择?

飞算JavaAI开发助手

hoverfly 学习笔记

陈磊@Criss

上海堡垒机采购注意事项以及堡垒机厂商推荐

行云管家

信息安全 堡垒机 上海

OCR文字识别工具:OCRKit Pro 中文激活版

真大的脸盆

Mac 文字识别 OCR Mac 软件

供电电源的电磁兼容设计方法?5大要点快速收藏

华秋PCB

电磁 电路 兼容 电源 供电电源

测试左移和右移

陈磊@Criss

从需求管理到迭代规划,优秀的产品经理如何让工作更高效?

万事ONES

经典神作!SpringBoot系列从入门到进阶,彻底搞懂SpringBoot

小小怪下士

Java spring 程序员 后端 springboot

持续测试破解自动化测试的行业谜题

陈磊@Criss

国内大型战略咨询企业都是怎么解决数字化转型难题的?

优秀

数字化转型

kubernetes 可观测性:10款开源工具

HummerCloud

Kubernetes 云原生

基于 Flink CDC 的实时同步系统

Apache Flink

大数据 flink 实时计算

知识蒸馏、轻量化模型架构、剪枝…几种深度学习模型压缩方法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

中国消费级AR行业分析2023

易观分析

AR 消费级 眼镜

这篇文章汇聚33个BUG!来挑战一下,看看你能找出来几个?

why技术

java

【2023Java面试题全集】实用、全面、系统,助你一路通关!

程序知音

Java java面试 后端技术 Java面试题 Java面试八股文

详解软件质量模型

陈磊@Criss

CCF BDCI“大数据平台安全事件检测与分类识别”赛题,奇点云夺冠

极客天地

PyTorch深度学习实战 | 自然语言处理与强化学习

TiAmo

强化学习 PyTorch 自然语言

云算力挖矿开发正式版丨云算力挖矿系统开发(APP开发案例)

系统开发咨询1357O98O718

这 8 类问题,SysOM 2.0 OOM 诊断助你快速定位异常 | 龙蜥技术

OpenAnolis小助手

开源 OOM 操作系统 龙蜥技术 SysOM

从私信到协作开发:GitHub Pull Request 的发展史

Bytebase

GitHub 协作 pull request

持续测试

陈磊@Criss

开发域的质量

陈磊@Criss

混沌工程和故障演练

陈磊@Criss

贼全!一举通关的Spring+SpringBoot+SpringCloud全攻略,是真香啊

程序知音

Java spring 编程语言 springboot SpringCloud

低代码工具选项难题浅析

赫杰辉

低代码平台

「Go工具箱」GoCSV包:一个能将结构体和csv内容互转的工具

Go学堂

Go 程序员 个人成长 csv CSV 文件导入

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