AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

你知道你的手机上有多少传感器吗?

InfoQ IT百科

手机运行内存应该怎么选?

InfoQ IT百科

操作系统负责管理计算机系统的什么?

InfoQ IT百科

数据中心碳中和之路,新华三如何全栈赋能?

脑极体

时序数据库市场漫谈

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

面向全球市场,PlatoFarm今日登录HUOBI等全球四大平台

西柚子

如何通过云效Codeup完成代码合并 | 云效

阿里云云效

云计算 阿里云 代码管理 Codeup 代码合并

为什么智能手机传感器市场一直是索尼占主导

InfoQ IT百科

2022年,5G芯片会有哪些值得期待的发展趋势?

InfoQ IT百科

2022年,网传苹果即将发布的新机型iPhone 14 Pro和iPhone 14 Pro Max将会是全新屏幕造型,不再是刘海屏,你对新屏幕造型的iPhone 14期待吗?

InfoQ IT百科

APP应该关注哪些数据指标?

InfoQ IT百科

CrashSight 常规功能&特色功能介绍

WeTest

全网征集!说说你跟宜搭之间的故事吧

一只大光圈

阿里 低代码 数字化 钉钉宜搭 宜搭

电脑上怎么快速切换显示不同的软件界面

InfoQ IT百科

这个API Hub厉害了,收录了钉钉企业微信等开放Api,还能直接调试 !

Liam

前端 Postman API OpenAPI 开放api

如何彻底删除电脑上的文件?

InfoQ IT百科

目前国产电脑硬件的现状是怎样的?

InfoQ IT百科

深开鸿与亿晟科技签署合作协议,携手构建商显行业新生态

科技汇

优麒麟 22.04 LTS 版本正式发布 | UKUI 3.1开启全新体验!

优麒麟

Linux 开源 操作系统 优麒麟 22.04

电脑硬件都有哪些?

InfoQ IT百科

Go 学习笔记——Switch(我不是游戏机)

为自己带盐

Go 学习笔记 4月月更

科创人·派拉软件CEO谭翔:零信任本质是数字安全,To B也要深研用户心智

科创人

我国有哪些完全自研的电脑硬件?

InfoQ IT百科

2022年中国数字科技专题分析

易观分析

数字技术 数字科技

敏捷实践 | 提高小组可预测性的敏捷指标

LigaAI

敏捷开发 敏捷度量

面向全球市场,PlatoFarm今日登录HUOBI等全球四大平台

小哈区块

秒云助力中电科32所发布“基于拟态应用集成框架的SaaS云管理平台解决方案”

MIAOYUN

内生安全 拟态应用集成框架 网络空间内生安全大会

电脑硬件中最重要的部分是什么?

InfoQ IT百科

rm格式的文件怎么打开?

InfoQ IT百科

坚持做正确的事情

FunTester

设计千万级学生管理系统的考试试卷存储方案

哈喽

「架构实战营」

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