【问题标题】:Does it matter what version of JDK I use in Android Studio?我在 Android Studio 中使用什么版本的 JDK 是否重要?
【发布时间】:2015-07-16 19:57:16
【问题描述】:

我知道我可以在 Android Studio 的项目结构中选择 SDK 位置。

我有两个问题:

  1. 既然已经在使用 Android SDK,为什么还需要 JDK?毕竟,我们不是为 JVM 开发的。

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

【问题讨论】:

标签: java android android-studio


【解决方案1】:

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 还是 Android 系统根本不重要,重要的是从任何语言转换为系统可以理解的文件的内容?比如,如果 Android Studio 支持它,我可以在 Android 11 上使用 Java 1 吗?
【解决方案2】:

既然我们已经在使用 Android SDK,为什么还需要 JDK?毕竟,我们不是为 JVM 开发的。

Android 构建过程依赖于 JDK 中的许多工具。查看the build system overview documentation。 我们需要从 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 才能正确编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2013-07-25
    • 2018-12-25
    • 1970-01-01
    相关资源
    最近更新 更多