亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

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

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

关注

评论

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

用户身份标识与账号体系实践

Java 架构 业务设计 IDMapping 数据映射

12代酷睿处理器+2.8K OLED华硕好屏,灵耀14 2022影青釉商务轻薄本

科技热闻

开放原子开源基金会秘书长孙文龙 | 凝心聚力,共拓开源

kk-OSC

开放原子全球开源峰会

重磅 | 开放原子算法大赛拉开帷幕

kk-OSC

开放原子全球开源峰会

重磅 | 基金会为白金、黄金、白银捐赠人授牌

kk-OSC

开放原子全球开源峰会

2022必会的前端面试手写题

buchila11

centos8快速安装mongdb6.0

技能实验室

React Fragment

程序员海军

7月月更

原型链继承和构造函数继承的 “毛病”

掘金安东尼

JavaScript 前端 设计模式 7月月更

又快又稳!Alibaba出品Java性能优化高级笔记(全彩版)震撼来袭

冉然学Java

编程 程序员 分布式 性能优化 java 14

CSP直通车 | 在线直播认证培训双周末班 火热报名中

ShineScrum捷行

Scrum 敏捷 CSP-SM 敏捷专家 敏捷大师

elasticsearch实战三部曲之一:索引操作

程序员欣宸

Java elasticsearch 7月月更

重磅 | 开放原子校源行活动正式启动

kk-OSC

开放原子全球开源峰会

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

鳄鱼视界

专访 | 阿里巴巴首席技术官程立:云 + 开源共同形成数字世界的可信基础

kk-OSC

开放原子全球开源峰会

专访 | 软通动力高级副总裁秦张波:开源驱动创新,推动操作系统产业生态建设

kk-OSC

开放原子全球开源峰会

转转push的演化之路

转转技术团队

push

SiC功率半导体产业高峰论坛成功举办

Geek_2d6073

开放原子开源基金会黄金捐赠人优博讯携手合作伙伴,助力OpenHarmony破圈!

Geek_2d6073

高效能7个习惯学习笔记

JefferLiu

高效能人士的七个习惯

如何消减敏捷开发协作中的「认知偏差」?| 敏捷之道

LigaAI

程序人生 产品经理 LigaAI 敏捷开发流程 研发协作

聊聊性能测试环境搭建

老张

性能测试 环境搭建

C# 使用数据库对ListView控件数据绑定

IC00

C# 7月月更

重磅 | 2022 开放原子全球开源峰会在北京开幕

kk-OSC

开放原子全球开源峰会

JAVA编程规范之二方库依赖

源字节1号

软件开发 程序员‘

第二轮Okaleido Tiger热卖的背后,是背后生态机构战略支持

EOSdreamer111

年中总结 | 与自己对话,活在当下,每走一步都算数

宇宙之一粟

年中总结 7月月更

C# 之 volatile关键字解析

陈言必行

7月月更

敢看系列?Python字体反爬实战案例之实习那僧,继续挖坑

梦想橡皮擦

Python 爬虫 7月月更

怎么样的框架对于开发者是友好的?

MASA技术团队

.net 云原生 软件架构

架构实战营模块八作业

Geek_Q

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