android - Java 8 和 Android 是可能的

标签 android java-8

我是一名 Android 应用程序开发人员,最近我在使用 Java 7 版本,现在我想开始使用 Java 8 开发应用程序,但我注意到它们仅适用于 Android 7.0。我希望我读错了,因为我不明白为什么他们不支持具有巨大潜力的 Java 8 ...而 Java 9 将在 9 月发布

PS:你能为 Android 7.0 及更高版本使用 Java 8 并为较低版本使用 Java 7 做同样的 apk 吗?

最佳答案

I have noticed that they only work for Android 7.0

正确。异常(exception)是 lambda 表达式,开发工具将其转码为也可以在旧设备上运行的内容。

I hope I read wrong because I do not understand why they do not support Java 8

Java 8 于 2014 年发布。Android 1.0 于 2008 年发布。谷歌没有我们所知道的时间机器,因此他们无法导致 Java 8 提前六年发布。出于兼容性原因,Google 不会替换旧设备上的类库,而且旧设备通常不会获得更新。

至于为什么直到 2016 年 Java 8 的某些部分才在 Android 中可用,在这里任何人都可以提供意见(工程时间、与 Oracle 的法律问题等)。

Could you do the same apk for Android 7.0 and higher with Java 8 and for lower versions with Java 7?

没有。原则上,您可以拥有单独的 APK,一个使用 Java 8,一个不使用,就像您可以为不同的 CPU 架构和东西拥有单独的 APK 一样。我不知道是否有任何应用分发 channel 会支持 minSdkVersion 的单独 APK。

关于android - Java 8 和 Android 是可能的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335294/

相关文章:

java - 测试不同代码的性能

Android - 在 Android 2.2 + 中实现抽屉导航

android - 离散搜索栏

java - Exiftool 未在 ProcessBuilder 中打印到文件?

java - 祖先列表作为流

java - 是否有可能获得两个结果并将它们与JAVA8中的流连接起来?

android - GPS 卫星设置在我的 android 设备中不可用。 HTC ONE 4.4 API 19

android - 在 Kotlin 中实例化接口(interface)监听器

datetime - 如何在 Java 中将 ZoneId 转换为 DateTimeZone

java - 当变量是由于调用提供 lambda 的方法而被赋值时,如何在 lambda 中使用变量?