写点什么

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

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

关注

评论

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

linux基础教程试题,linux驱动程序开发视频教程,netty入门与实战

Java 程序员 后端

linux应用开发面试题,极客时间破解付费课程百度云盘,Java面试官

Java 程序员 后端

Mybatis-Plus的使用小技巧,linux数据恢复教程,Nginx面试

Java 程序员 后端

Java高级技术经理面试题,西安尚学堂教育,已开源下载

Java 程序员 后端

Java高级知识体系,kalilinux新手教程,Java实习面试经验汇总

Java 程序员 后端

Java高级面试手册,架构师修炼之道pdf百度云,Java开发实战经典答案

Java 程序员 后端

jvm常见面试题,尚硅谷和黑马,2021国内知名大厂Java岗面经

Java 程序员 后端

JVM虚拟机原理深入解析,springboot实战视频教程百度云,你不懂还不学?

Java 程序员 后端

Java高级工程师面试题目,尚硅谷kafka文档,和腾讯大牛的技术面谈

Java 程序员 后端

Java高级开发面试视频,nginx教程pdf,linux初学者入门书籍

Java 程序员 后端

kafka入门与实践百度云,牛客网平安科技,和快手大牛的技术面谈

Java 程序员 后端

linux学习笔记,springboot前后端分离教程,我先收藏为敬

Java 程序员 后端

Java高级架构师面试题,李玉婷尚硅谷漂亮,程序员怎样优雅度过35岁中年危机

Java 程序员 后端

Java高级知识体系,java性能调优实战网盘,大厂首发

Java 程序员 后端

Kafka必须掌握的核心技术,尚硅谷java入门,Nginx面试

Java 程序员 后端

Java高级软件工程师面试题,java菜鸟教程多态,Java程序员面试笔记pdf

Java 程序员 后端

jvm常见面试题,图灵it教育学院多大,这个框架直接干掉了Servlet

Java 程序员 后端

kafka入门教程,springboot高级教程,聊聊你对分布式锁技术方案的理解

Java 程序员 后端

kafka面试题阿里,牛客网面试题库java,农民工看完都会了

Java 程序员 后端

linux内核教程推荐,兄弟连尚硅谷,顺利收获Offer

Java 程序员 后端

kafka实战最佳经验,牛客网华为机试题答案,Java开发面试问题

Java 程序员 后端

linux基础入门知识,kafka入门教程步骤,2021年Java网络编程总结篇

Java 程序员 后端

Mybatis-plus常用API全套教程,springcloud实战视频

Java 程序员 后端

mybatis入门案例,图灵学院第三期视频百度云,阿里中间件

Java 程序员 后端

Java高级技术架构,linux操作系统教程海南师范大学,nginx入门书籍推荐

Java 程序员 后端

JVM面试题附答案,Dubbo高频面试题+解析

Java 程序员 后端

kafka入门教程,linux教程第四版pdf下载,mysql基础教程

Java 程序员 后端

kafka教程pdf,spring入门教程,你会的还只有初级工程师的技术吗

Java 程序员 后端

linux应用开发面试题,java黑马程序员资源,如何保证redis高可用

Java 程序员 后端

JDK、JRE与JVM的区别与联系,springmvc基础知识pdf下载

Java 程序员 后端

linux内核教程推荐,尚硅谷mysql,一文轻松搞定

Java 程序员 后端

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