他们为什么使用Apache Harmony?
因为Sun拒绝按照可接受的条款向Google提供Sun(现在的Oracle)Java许可。Google和Sun进行了谈判,但最终他们放弃了这笔交易。
Nitpick:实际上,Android库不是Apache
Harmony。它们最初是基于Harmony的,但是两个代码库却有所不同。此外,2011年11月,Apache Harmony项目正式“退休”。
他们为什么不能采用Java的较新版本?
首先,Android不运行Java(tm)。它运行一种语言,是相同的与Java类库在功能上相当于一个 子集 Java类库(+
Android的特定的库)的,在虚拟机上用 不同的 指令集。
从技术角度来看,他们可以……但是只有在为Android平台实现Java 7和Java 8语言功能,库功能等方面付出大量工作的情况下。
更新 -从Android 19(KitKat)和Eclipse ADT 22.6开始,Android现在确实支持Java
7语言扩展。参见http://tools.android.com/recent/eclipseadt226preview
如果他们不想要Oracle的Java,为什么不能使用OpenJDK的子集?
我认为切换到OpenJDK不会改变任何事情。Oracle Java和OpenJDK的相同率是99.9%。
无论如何,可能会有许可和相关的法律问题。(要对此有所了解,请阅读有关Oracle与Google的诉讼……这很有吸引力。)
Google更有可能没有足够的商业价值来抵消改变所要付出的(巨大)努力,以及对Android生态系统的破坏……该生态系统已经遭受了碎片化问题的困扰。
您是否知道有计划更新使用的Java版本?
不,我不知道。这并不意味着没有计划,但是如果有计划,它们就不会公开。
您知道在当前的Android系统上使用Java 8类的任何方式吗?
您可以移植它们。或者至少,您可以 尝试 移植它们。(某些Java API与JVM的本机代码端有着密切的关系……这可能导致移植出现问题。)



