猿问

Android 7的Java 7语言功能

Android 7的Java 7语言功能

只是想知道是否有人尝试过使用Android的新Java 7语言功能?我知道Android会读取Java吐出的字节码并将其转换为dex。所以我想我的问题是它能理解Java 7的字节码吗?



慕莱坞森
浏览 590回答 3
3回答

紫衣仙女

编辑:在撰写本文时,最新版本是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的工作,以及其它的应用程序,更复杂和使用SQLite,Listview,Sensor和Camera,但是这只能证明的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)。这可能有用,但这不是可以推荐用于其他目的而不是尝试。
随时随地看视频慕课网APP

相关分类

Java
Android
我要回答