安卓上的JRE

37

这可能听起来像一个愚蠢的问题,但谷歌并没有帮到我。

Android上是否有可用的JRE?如果有,它是哪个版本?是否有任何重要功能缺失?

如果没有,这是否意味着所有Java应用程序都需要重新编译才能在Android上使用Dalvik?

更新: Android将来会有JRE可用吗?


在你的“更新”中,只有上帝知道(或谷歌所有者),但我猜它不会。但我认为也不需要。因为大部分核心已经存在。 - OscarRyz
1
但这个要简单得多:https://dev59.com/U3VC5IYBdhLWcg3wrDRd 我在那里得到了很多负评 :) - OscarRyz
@hhafez 请看下面我的回答。似乎已经有一个适用于Android的可工作JRE,但不幸的是,我找不到任何下载链接。我猜测这个项目没有足够的兴趣,所以开发停止了 :( - TryTryAgain
2个回答

27

没有,谷歌为Android创建了一个完全不同的运行时环境,其中基础类是完全不同的(尽管兼容)。

它使用Java作为语言(语法),但并非Java平台。

您可以在此处了解有关Android平台的信息。

从该页面中可以看到:

Android包括一组核心库,提供了大部分Java编程语言核心库中可用的功能。

请注意粗体字中的“大部分”。

因此,尽管它们看起来相似,但它们并不相同。


那是否意味着任何现有的Java应用程序都需要特别编译为Dalvik才能运行(只要上述引文中的功能大部分在最初的Java应用程序中)? - hhafez
1
没错。但是根据 https://dev59.com/U3VC5IYBdhLWcg3wrDRd,已经有一个名为“dx”的工具可以将Java字节码转换为Dalvik,所以这应该不难。 - OscarRyz
1
在2020年的Android 11中,这仍然是真实的吗? - user1870400

4
最接近的是http://www.apogee.com/products/cjre-a 不幸的是,就像页面上所述:
请注意,由于需求不足,Apogee于2012年6月暂停了CJREs+A的进一步开发。如果您有兴趣将CJRE+A定位为针对您选择的Android设备的“批量”分销产品,供您的客户和/或其他第三方使用,请联系Apogee。
...而且没有下载/演示可用。
从他们的产品页面http://www.apogee.com/products中可以看出,它似乎是一个很好的东西:
CJRE+A-“适用于运行Android v4.x或更高版本的设备,需要执行Java SE 5和SE 6应用程序以及执行Android应用程序。”
我们仍然可以梦想。我没有联系过他们。我知道许多公司正在寻找这种功能。我无法想象它会很快消失(或者说比Flash慢)?
我还没有联系Apogee,也许值得一试...如果有人找到解决方案,请及时更新!谢谢。

哦嚯嚯 - Apogee再次致力于开发并表示将在明年初发布:http://www.apogee.com/products/cjre-a - Tom Carchrae
第一个JRE4A计划于2014年1月底发布,针对基于ARM Cortex-A8、Cortex-A9、Cortex-A15或类似ARM处理器运行Android 4.1.x、4.2.x、4.3.x或4.4的无线和“连接”设备,如智能手机、平板电脑、其他手持设备、家庭网关等。针对基于x86、MIPS和PowerPC处理器运行Android 4.2.x、4.3.x、4.4或随后的Android版本的设备的JRE4A将在2014年第二季度推出。这太棒了,不是所有设备都支持,但所有这些安卓电视盒都支持。 - Tom Carchrae

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