哪个版本的Android SDK支持在哪个版本的Java中编码?

Rob*_*phy 10 java android version android-2.2-froyo android-sdk-2.3

我正在为Android SDK 2.3.3编写一个Android应用程序但后来我被要求在运行Android 2.2.1的设备上测试它.所以我将目标设置为8而不是10.但是java.util.concurrent.TimeUnit只有Java 1.5特性集,而不是java.util.concurrent.TimeUnit的Java 1.6/1.7特性集.所以我将TimeUnit的openjdk 6实现放入我的Android应用程序包中,一切正常.

有谁知道我在哪里可以得到一些文档给我一个图表告诉我,例如,当使用官方SDK时,Android 2.2必须使用Java 1.5关键字/语法/ API进行编码,Android 2.3.3可以编码使用Java 1.6关键字/语法/ API等...?

Yah*_*hel 6

您试图将Android视为Java的一个子集,但事实并非如此.它们是完全分开的.即使Android来自Java,它也离不开它,并且两者之间不再存在"版本明智"的相关性.

您可以看到的是Android文档.对于每个指令/命令/方法/属性,在右上角,您将找到能够访问所述属性的api级别.

单击api级别将转到一个页面,其中包含一个将api级别转换为Android版本的表格.

找出是否允许使用属性的简单方法是使用eclipse并执行您刚刚执行的操作:更改目标api级别.然后,对您无法使用的方法或属性的任何调用都将产生致命错误.

  • 好吧,我想通过使用Apache Harmony http://en.wikipedia.org/wiki/Apache_Harmony编译字节代码然后将该字节代码转换为Dalvik字节代码.我一直认为Oracle JDK或您使用的任何JDK都创建了Java字节代码,后来转换为Dalvik字节代码.所以Android 2.2和之前使用了99%完整的Apache Harmony JDK 5.0.Android 2.3.3及更高版本使用97%完整的Apache Harmony Java SE 6.因此,在使用官方工具编译Android应用程序时,无法使用特定于JDK 7及更高版本的功能. (5认同)