Android是否支持JDK 6或7

use*_*351 56 android jdk6 java-7

我是Android开发的新手.我可以使用在Android中使用JDK 7开发的现有Java代码吗?

这些函数使用xerces dom和xslt以及xpathapi.目前,当我安装Android Eclipse ADT环境时,这些功能都没有编译.我还想知道Android设备本身是否支持JRE 6或7?

Muh*_*eeb 80

最初Android开发工具仅支持jdk 6功能.但这已经改变了,首先是2013年10月的Android Studio 0.3.2,请参阅:http://tools.android.com/recent/androidstudio032released

支持语言功能,如菱形运算符,多捕获,资源尝试,交换机中的字符串等.创建新项目时,您可以指定源语言级别: 在此输入图像描述 请注意,您可以使用所有这些语言功能,不仅可以使用Android KitKat,还可以使用旧版本的Android!有一个例外:try-with-resources,这将需要minSdkVersion 19.因此,如果你的minSdkVersion小于19,Studio将标记try-with-resources代码中的任何用法:

然后在2014年3月通过ADT插件22.6,请参阅:http://developer.android.com/tools/sdk/eclipse-adt.html

添加了对Java 7语言功能的支持,如multi-catch,try-with-resources和diamond操作符.这些功能需要构建工具的19或更高版本.尝试使用资源需要minSdkVersion 19; 其余的新语言功能需要minSdkVersion 8或更高版本.要在安装ADT 22.6.0之后使用新的语言功能,请确保在JDK 7上运行Eclipse并更改应用程序项目设置以使用JDK 7.

Android不打算与任何Java SE API版本100%兼容,不是6也不是8,也不是任何版本.这就是甲骨文提起反诉谷歌的诉讼案件的原因,指责谷歌将Java分割.有些API不可能在Android上实现为Swing; 想象一下在android上有一个关闭按钮的窗口!其他人被推迟但实现了:例如:Charset类在Java SE 1.4中实现,但在Android API 9中实现,在Java API中实现的AutoClosable在Android API级别19中实现,以允许实现try-with-resources语言功能.某些API已存在,但作为控制台用于不同目的.

  • Android没有发布Swing与Java语言级别无关,我认为你正在混淆语言级别(与语法和字节代码指令有关)和语言库.Android上的语言库最初基于Apache Harmony; Swing(以及其他软件包)的遗漏主要是因为Android没有自己的UI工具包.但同样,这与Java版本无关. (7认同)
  • 哇,也许甚至有一些希望它会在不太遥远的未来支持Java 8功能. (4认同)
  • @SimonAndréForsberg我希望如此. (3认同)
  • @Sheepy android不打算与任何java SE版本100%兼容,不是6也不是8也不是任何.这就是oracle vs google案件的原因.有些api是不可能在android上实现的,想象一下在android上有一个关闭按钮的窗口!其他人被推迟但实施:例如,Charset类在Java SE 1.4中实现,但在Android API 9中实现,Java 7中的AutoClosable在Android API级别19中实现,以允许实现资源尝试.某些API已存在,但作为控制台用于不同目的. (3认同)

bla*_*her 4

首先,Java JDK 和 JRE 之间存在差异。JRE是Java运行时环境,而JDK是Java开发工具包。它是 Android 应用程序开发所需的 JDK 以及现有的 Android SDK。

Android SDK 可以使用 JDK 6 或 7,但是,它只能使用JDK 6 API。