为了账号安全,请及时绑定邮箱和手机立即绑定

Android 7的Java 7语言功能

Android 7的Java 7语言功能

慕莱坞森 2019-08-09 17:10:30
Android 7的Java 7语言功能只是想知道是否有人尝试过使用Android的新Java 7语言功能?我知道Android会读取Java吐出的字节码并将其转换为dex。所以我想我的问题是它能理解Java 7的字节码吗?
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

编辑:在撰写本文时,最新版本是Android 9和Eclipse Indigo。从那以后,事情发生了变化。

  • 实际答案

是的,我试过了。但这不是一个很好的测试,因为兼容性仅限于6级,没有办法(至少没有简单的方法)真正使用java 7:

  • 首先,我在没有安装其他JDK的机器上安装了JDK7 - 还没有安装Eclipse和Android:

  • 然后我安装了一个全新的Eclipse Indigo并检查它实际上是使用JDK 7(好吧,因为这是唯一的一个,因为这是我选择的那个我会感到惊讶)

  • 然后我安装了最新版本的Android SDK(EDIT:Honeycomb,API13,在撰写本文时)。它找到了我的JDK 7并正确安装。ADT也一样。

  • 但是在尝试编译和运行Hello Word Android应用程序时,我有一个惊喜。兼容性设置为Java 6,无法强制它使用Java 7:

  • 我试过一个非Android项目,一个普通的Java项目,我有解释。兼容性级别似乎受到Eclipse的限制(请参阅下图中底部的消息):

因此,我不得不的Hello World的工作,以及其它的应用程序,更复杂和使用SQLiteListviewSensorCamera,但是这只能证明的Java 7的兼容性处理似乎做得很好,与Android合作。

那么,是否有人尝试使用优秀的旧Ant,以绕过上面提到的Eclipse限制?

  • 理论上的答案

无论如何,SDK被设计成与Java 5或6一起使用,作为解释在这里

我们可能会使用Java 7,但它会“偶然”工作。DEX的构建可以正常工作,一旦DEX构建,它可能工作与否。这是因为使用非限定JDK会根据定义给出不可预测的结果。

即使有人在普通Java 7下成功构建了一个Android应用程序,但这并不符合JDK的要求。应用于另一个应用程序的相同过程可能会失败,或者生成的应用程序可能存在与该JDK的使用相关的错误。不建议。

对于那些参与webapps开发的人来说,这与在Java 5或6下构建的Web应用程序在仅适用于Java 4的应用程序服务器下部署完全相同(例如,使用Weblogic 8)。这可能有用,但这不是可以推荐用于其他目的而不是尝试。


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 589 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信