我希望实现如下所示的东西:
if(isJavaVirtualMachine()){
System.out.println("You are running on a JVM");
}else if(isDalvikVirtualMachine()){
Log.i("env","You are running on an android.");
}
可能吗?如果 Java 本身不可能,我可以通过 JNI 来做吗?
使用System.getProperty
. Dalvik 的属性名称记录在这里
正如 ykaganovich 指出的那样,在运行时区分纯 Java 和 Android 应该很容易。另一个问题是在普通的 Java 环境中不会有像Log这样的 Android 特定类,所以你会在运行时遇到问题!一种可能的解决方案是使用反射来组装特定于平台的适配器,因此您仅在运行时引入依赖项(可能有点棘手)。