由于Java实现(OpenJDK
)和Android的虚拟机DalvikVM都是开源的,因此必须有可能在Google的DalvikVM之上实现Sun的JavaVM。这样就可以在android上开箱即用地运行基于JVM的应用程序和语言(Clojure, Jython
)。
是否正在持续努力以产生Sun JVM的这种实现?
最佳答案
OpenJDK利用 native 代码,因此它是一个不平凡的端口……至少有一个用Java编写的VM(JikesRVM),不幸的是,它不是Java的完整实现。
由于DalvikVM运行从.class文件转换而来的类,因此应该可以转换这些类。然后,“唯一的”问题是语言在运行中即时生成字节码-为此,在程序在DalvikVM上运行时,将需要额外的步骤将生成的字节码转换为DalvikVM格式。
嗯....一种JITT(即时翻译器),可在手机运行时将类文件转换为DalvikVM文件。我不知道那会有多慢。