有没有办法从Android应用程序中以编程方式检测手机支持的Java版本?
也就是说,查看手机是否可以运行Java 8字节码等。
在Android设备中,没有所谓的Java版本。当您编译Java代码以构建Android应用程序时,它会从class文件转换为DEX格式,并在Dalvik虚拟机或Android Runtime(ART)中运行。将Java代码转换为DEX格式是在编译时发生的,因此在运行时解释DEX文件不需要最新的Java。
但是需要注意的是,并非所有Java的类定义都存在于Android设备中。例如,方法java.util.Base64.getDecoder()
仅在JDK 1.8及以上版本可用,并且可以在Android API级别17或更高级别上使用。但是带有lambda表达式(JDK 1.8功能)的代码也可以在较低的API级别上运行。