【问题标题】:Android SDK Platform Java SDK Dependency Version Requirement TableAndroid SDK平台Java SDK依赖版本要求表
【发布时间】:2017-10-06 15:24:36
【问题描述】:

developer.android.com 上是否有任何官方文档说明每个 Android SDK 平台所依赖的 Java SDK 版本?

我目前有 1.7.0_55 用于 API 23,但是有更新的版本可用,最新的是 7u80(我假设是 1.7.0_80)。

我可以直接使用最新版本的JDK 1.7,还是需要特定版本?

API 23 下次有可用更新时,我是否也应该相应地更新 JDK 1.7(更新到最新版本或指定的任何内容,无论可能是)?


更新

下表指定了构建实际操作系统源的要求,虽然我认为它适用于针对相应的 SDK 平台,但我并不肯定。

https://source.android.com/source/requirements

JDK

有关预建路径和安装,请参阅安装 JDK 旧版本的说明。

  • Android 7.0 (Nougat) - Android 8.0 (O 版本): Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 或更新版本
  • Android 5.x (Lollipop) - Android 6.0 (Marshmallow):Ubuntu - OpenJDK 7,Mac OS - jdk-7u71-macosx-x64.dmg
  • Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat):Ubuntu - Java JDK 6,Mac OS - Java JDK 6
  • Android 1.5 (Cupcake) - Android 2.2.x (Froyo):Ubuntu - Java JDK 5

【问题讨论】:

    标签: android jdk1.6 jdk1.7


    【解决方案1】:

    我无法指向文档中的特定页面,但从实际角度来看,我过去 4 年一直在为 android 编程,并且由于与 Android 无关的原因,每年偶尔更新一次 JDK。 所以任何版本的 JDK 7/8 都可以用于任何 api 版本。

    【讨论】:

    • N(24) - O(26):jdk 8u45 或更新版本,L(21) - M(23):jdk-7u71,G(9)-K(20):jdk 6, C(3) - F(8): jdk 5 source.android.com/source/requirements
    • ... 但是这是为了构建源代码。我想想象版本控制表也适用于为 SDK 构建应用程序,但我并不肯定。
    • 在任何情况下,jdk 8u45 都适用于任何 android api,因为它具有向后兼容性。
    • 我会试一试的。如果 java 真的向后兼容,那么我猜你回答了我的问题。
    【解决方案2】:

    JDK 是为构建项目而指定的,但它与您正在构建的项目的 Compliance_Level 使用的规范不同。

    关键是代码没有JDK的特性,但受限于Android指定的编译器特性。

    例如:拥有 JDK 1.8 不会为 Lambda 提供访问权限。 (retrolambda 提供,Android 3.0 会加入原生解决方案)

    在 AS 2.3+ 之前使用 Java 1.7 规范。

    从 AS 3.0(目前处于测试阶段)开始使用 Java 1.8 规范。

    更新机器 JDK 不会干扰您的代码。

    【讨论】:

    • 对于特定的 API 级别(在本例中为 23)是否需要最低的机器 JDK 版本?我意识到 Android Studio 本身有它自己的 JDK 要求。
    • AndroidStudio JDK 确实会在需要时自行更新,对于机器路径,您对问题有系统要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多