写Android时用的JDK和编译Android应用时用的JDK还有Android应用运行时的JDK版本的一些疑问?

发布于 2022-09-02 09:30:09 字数 571 浏览 10 评论 0

一直不明白的一个问题:我现在用的是JAVA 8JDK,但是我在写Android代码的时候却无法使用JAVA 8的新特性(例如lambda表达式)。这是为什么?
我听说Android内只支持到java 6,也就是说编译应用的时候不会使用我指定的JDK版本,而是编译成JDK 6的代码。是这样的么?如果是的话,那Android Studio里面肯定带有JAVA程序,那为什么还要指定JDK路径?
还有写的程序调用的JAVA API,在每个手机上都是同一个版本的么,会不会我使用了java7的方法,但是运行的机器上的jre的环境是java6,然后会找不到方法异常?
总体来说,就是在编写Android应用的时候,对JDK版本问题有一些乱,求解答。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哑剧 2022-09-09 09:30:09

首先普及一下,早期的Android版本是Java 6,Android 4.4版本之后可以使用Java 7。另外,早期版本也可以通过Java 7进行编译,只要你不使用try resource这个新特性即可。

那么再回答你的问题,为什么Android不能通过Java 8编译。这里并不是说Android不能通过Java 8编译,而是因为运行在每个人手机上的Android系统跑的还是基于Java 6或者Java 7的Dalvik,即使你通过Java 8编译了含有新特性的Android程序,那也没法运行在这些机器上。另外,Android并非纯Java编译,在编译后还需要将class文件转换成dex文件,这就与Android SDK紧密相连了,所以Android SDK不支持Java 8,也就没法通过修改JDK来提升。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文