在 Android Studio 中使用哪个版本的 JDK 有关系吗?

6
我知道在Android Studio的项目结构中可以选择SDK位置。 项目结构,SDK位置 我有两个问题:
  1. 既然我们不是为JVM开发,为什么我们还需要使用JDK,而不是直接使用Android SDK?

  2. JDK 1.6、1.7和1.8有什么区别吗?


可能是哪个JDK版本(语言级别)适用于Android Studio?的重复问题。 - shkschneider
2个回答

5
为什么我们在使用Android SDK时还需要JDK?毕竟,我们不是在为JVM开发。 Android构建过程依赖于JDK的许多工具。请查看构建系统概述文档。 我们需要从JDK获得的第一个重要组件是javac - 在将所有用Java编写的源代码转换为DEX格式之前,需要对其进行编译。
一旦您的代码已经编译、dexed并打包成APK,我们需要jarsigner来签署APK。
使用JDK 1.6、1.7和1.8有什么区别吗? 这取决于您从每个版本中使用的功能。不使用Java 7功能的旧项目可以无问题地使用Java 6。我个人推荐大多数现代项目使用Java 7。如果可以使用它,为什么不呢?

目前有一些努力将Java 8功能引入Android,最为著名的是gradle-retrolambda。其中一些需要JDK 8才能正确编译。


3

Android一直支持Java 6。

现在,Android支持Java 7,因此建议使用Java 7(自KitKat以来)。

目前,Android不支持Java 8。

您可以在build.gradle文件中这样指定Java 7:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

唯一的区别在于Java版本(当然,Java 7增加了某些功能),而且Android没有支持Java 8的时间段。
编辑
实际上,在这里已经有回答了:Which JDK version (Language Level) is required for Android Studio?

等等,我有点困惑。是安卓需要支持Java的版本,还是对于安卓系统来说这一点并不重要,只要将从任何语言转换而来的文件传输到系统中即可?比如,如果Android Studio支持它,我能否在安卓11上使用Java 1而不会有任何问题? - Edw590

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