报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

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

关注

评论

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

云图说|ASM灰度发布,让服务发布变得更敏捷、更安全

华为云开发者联盟

灰度发布 application 云图说 应用服务网格服务 Service Mesh (ASM)

Go 学习笔记之 函数

架构精进之路

Go 语言 7月日更

全面解读自动驾驶数据存储关键

焱融科技

人工智能 自动驾驶 云计算 高性能 文件存储

filecoin矿工的收益有哪些?

fil fil收益 ipfs挖矿

一文看懂filecoin挖矿的成本到底有哪些?

IPFS fil成本 fil挖矿

NNB牛气冲天系统软件开发搭建

DOGT狗狗通证软件系统开发公司

PHA项目挖矿平台系统开发App

获客I3O6O643Z97

挖矿矿池系统开发案例 PHA矿机挖矿 PHA质押挖矿

由浅入深C A S

程序猿阿星

CAS 自旋锁

秒懂!进制和位运算

Ayue、

位运算 二进制

SUN太阳币APP系统开发方案

乐挖矿场软件系统开发案例

揪出那个无主键的表

Simon

MySQL 主键

互联网产品经理之需求的一生

路边水果摊

产品经理

细说.NET 缓存

喵叔

7月日更

初探 Redis 客户端 Lettuce:真香!

vivo互联网技术

Java 数据库 redis redis cluster lettuce

淘悠优软件系统开发内容

有哪些好用的团队文档和技术资料管理的工具?

万事ONES

在线文档 ONES 协同办公

目前有哪些好用的用例管理工具?

万事ONES

测试用例 ONES 测试管理

Docker 超详细版(基础+进阶)

若尘

Docker 容器 镜像

Pandas高级教程之:GroupBy用法

程序那些事

Python 数据分析 pandas

计算机基础知识 -- 位,字节,字符

转山转水

IPFS分布式存储矿机挖矿系统开发

获客I3O6O643Z97

挖矿 ipfs如何挖矿

免费分享Spring与SpringMVC开发的优秀图书

Java入门到架构

Java spring Java书籍推荐

Takin Talks·上海 |开源后首场主题研讨会来了,一起解密Takin技术吧!

TakinTalks稳定性社区

我写什么,你们决定

喵叔

有哪些适合大型系统的项目开发管理工具?

万事ONES

项目管理 研发管理 ONES

智能猫量化机器人炒币系统开发【专业定制、现成源码】

获客I3O6O643Z97

DAPP智能合约交易系统开发 量化策略 量化跟单 量化交易源码

数牍科技亮相上海 AI 基金“AI 驱动企业转型” 应用场景战略合作仪式,隐私计算拓展AI应用疆域

Swarm挖矿APP系统开发

获客I3O6O643Z97

挖矿挖什么币好 ipfs和swarm哪个更有价值

前端智能化 or 低代码,也许不是个选择题

清秋

大前端 低代码 智能化

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