android 目前居我了解应该是完全支持java7的所有特性功能,而8的语言功能仅支持一半儿,支持java8 语言新功能需要添加一个名为jack 的新编译,jack 在Android studio 2.1中才被支持,因此要使用java8的新特性将要在android studio 2.1以上的开发工具中使用
android 目前不是完全支持所有的java8 语言功能,一下功能在开发面向android 7.0 的时候即可使用
2、Lambda表达式 (在API 23的版本中也可以使用)
3、重复注解
4、方法引用 (在API 23的版本中也可以使用)
5、类型注解 (在API 23的版本中也可以使用) 仅在编译中使用,在运行的时候不被使用
要在 Android 的较早版本中测试 Lambda 表达式、方法引用和类型注解,请前往您的 build.gradle
文件,将 compileSdkVersion
和 targetSdkVersion
设置为 23 或更低。您仍需要启用 Jack 工具链以使用这些 Java 8 功能。
此外,也可使用以下 Java 8 语言 API:
- 反映和语言相关 API:
- 实用程序 API:
-
启用 Java 8 功能和 Jack 工具链
要使用新的 Java 8 语言功能,还需使用新的 Jack 工具链。新的 Android 工具链将 Java 源语言编译成 Android 可读取的 Dalvik 可执行文件字节码,且有其自己的
.jack
库格式,在一个工具中提供了大多数工具链功能:重新打包、压缩、模糊化以及 Dalvik 可执行文件分包。以下是构建 Android Dalvik 可执行文件可用的两种工具链的对比:
- 旧版 javac 工具链:
javac (.java
→.class
) → dx (.class
→.dex
) - 新版 Jack 工具链:
Jack (.java
→.jack
→.dex
)
配置 Gradle
要为您的项目启用 Java 8 语言功能和 Jack,请在模块级别的
build.gradle
文件中输入以下内容:android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
- 旧版 javac 工具链: