能否通过OpenJDK在Android上运行Java应用程序?

3
首先要澄清的是,这个问题不是关于在生产中使用Dalvik上运行的OpenJDK代码的开发或编译。它是关于在Android环境下使用Oracle运行时的。
我使用Java运行小型桌面实用程序。我没有Android和iOS开发经验,我想知道我的经典Java技能在移动领域可以转移多少。
我已经谷歌了一些在iOS上运行Java应用程序的方法,并将运行时嵌入应用程序包。Android有自己的部分不兼容且速度较慢的Java虚拟机。它仍然比没有好,但我想知道是否可能在真正的Hotspot(OpenJDK)虚拟机上运行应用程序。Android和iOS都可以运行本机代码。这种能力是否可以被利用来在Android上使用第三方(非Dalvik)JRE?
我对Google Play市场不感兴趣,因此如果有任何限制,则不需要考虑。
Rooting也是可能的,因为我将为自己编写工具。我更喜欢安装简单的方法。例如放置一些软件包文件和编辑几个选项。而不是构建自己的Android发行版,如CyanogenMod。

jainja支持Android并基于Avian,可以与OpenJDK一起使用:http://jainja.thenesis.org。支持的平台包括Linux、Windows、xBSD、Minix、Haiku、HelenOS、Java SE、Java ME、Android、Javascript(GWT)、Dart和NaCl。 - gouessej
我有一种感觉,很快这个问题就会过时。 - ayvango
谷歌将基于OpenJDK构建其Java语言库,但这并不意味着它将在移动和桌面环境中支持与OpenJDK完全相同的公共API。 - gouessej
2个回答

0

1
我们在 Android arm 端口中使用的 Zero 解释器需要第三方库来调用本地函数,这真是太遗憾了。通用 ARM JDK 已经可以使用 JIT,但 Android 版本仍然停留在 Zero 上。 - ayvango

0

如果不对设备进行root,我认为没有办法做到。


越狱并不是问题。使用那些窃取你自由的专有设备是没有意义的。 - ayvango
1
不需要root。任何标准的Android应用程序进程仍然会有一个DVM,但它也可以在本地代码中实现一个移植/自定义JVM,或者是编译成Dalvik的Java中实现。 - Chris Stratton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接