当前位置: 首页 > 面试题库 >

在DalvikVM之上的Android-Sun JVM上运行Java字节码

梁丘洲
2023-03-14
问题内容

由于Java实现(OpenJDK)和Android的虚拟机DalvikVM都是开源的,因此必须有可能在Google的DalvikVM之上实现Sun的JavaVM。这样就可以Clojure, Jython在android上开箱即用地运行基于JVM的应用程序和语言()。

是否正在持续努力以产生Sun JVM的这种实现?


问题答案:

OpenJDK使用本机代码,因此它是一个不平凡的端口……至少有一个用Java编写的VM(JikesRVM),不幸的是,它不是Java的完整实现。

由于DalvikVM运行从.class文件转换而来的类,因此应该可以转换这些类。然后,“唯一的”问题是语言在运行中即时生成字节码-
为此,在程序在DalvikVM上运行时,将需要额外的步骤将生成的字节码转换为DalvikVM格式。

嗯……是一种JITT(即时翻译器),可以在电话运行时将类文件转换为DalvikVM文件。我不知道那会有多慢。



 类似资料:
  • 问题内容: 借助Android 4.4 KitKat,Google将linux内核升级到3.8版,这是Docker所需的内核版本。 我不知道AUFS部分,但是有没有办法通过此更新在android上运行docker容器? 问题答案: 根据文档,Android内核缺少LXC所需的很多内核功能。 也许将来使用Docker 1.x,可能会编写一个使用Android功能而非LXC的插件。但就目前而言,您需要

  • 问题内容: 提出的每个选项都有一个问题: 我想在普通设备上运行它,所以我希望避免在设备上安装其他操作系统 上个月停止了对JXCore的工作,并且(可能是结果)我无法对其进行编译 自2014年以来就没有开发过NodeJs Anode的Android Port,而且当时并没有真正维护它 我链接到的第二个线程中的第二个答案现在提到了Android的官方节点发行版,但是除了指向最新dist的Browse-

  • 问题内容: 关于Swing和使用EDT进行GUI更新,我有几个问题。我刚刚开始阅读这些内容,因此我是该领域的一个完整的初学者: 在EDT上需要执行哪些操作?如果不这样做,是否只是引发了异常? 当我们实际上自动进入EDT时,是否有特定时间? 如果我们使用调度任务,将其排队到GUI更新任务(EDT)的当前队列中,对吗? 我猜想对上述队列的访问是同步的,或者使用了一些并发的集合,但是如果我从两个后台线程

  • 问题内容: 我得到了一些在程序中生成的Java字节码(即已编译的Java源代码)。现在,我想将此字节代码加载到当前运行的Java- VM中并运行特定功能。我不确定如何做到这一点,我对Java类加载器进行了一些研究,但没有找到直接的方法。 我找到了一个在硬盘上接收类文件的解决方案,但是我得到的字节码在字节数组中,我不想将其写入磁盘,而是直接使用它。 谢谢! 问题答案: 您需要编写一个自定义的类加载器

  • 问题内容: 有没有办法在JVM上运行纯C代码? 不通过JNI连接运行,就像您可以通过JRuby运行ruby代码或通过Rhino运行javascript。 如果目前没有解决方案,您会建议我怎么做? 显然,我想使用尽可能多的局部解决方案来实现它。 ANTLR似乎是一个不错的起点,它具有完整的“ ANSI C”语法实现… 我应该使用ANTLR生成的代码在JVM上构建“玩具” VM吗? 问题答案: 201

  • 问题内容: 我尝试在Android上的Janino上使用这些东西,并得出结论说,它们根本无法在Dalvik VM中运行。 所以我只想问一个简单的问题:在 Android上 ,是否有可能在运行时编译包含代码的字符串以供应用程序使用。如果是这样,是否有让我这样做的库和/或您可以共享一个代码示例来做到这一点? 对于 (一个非常简单的) 示例,如果我有一个包含以下内容的String对象: 作为一根巨大的弦