android系统编译jdk版本


首先普及一下,早期的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来提升。


comment:
根据你的答案再问几个问题:是不是不同版本Android SDK支持的java版本也不同呢?既然Android sdk编译成java6的版本,那么sdk里面应该带有javac 1.6版本啊,为什么没找到啊?
reply:
高版本的Java对低版本是兼容的,高版本的Java也能够编译低版本的程序,不一定是Java6的JDK才能编译Java6,Java7的JDK也能够编译Java6的

你可能感兴趣的:(java)