¿Es posible determinar si la VM actual es Java SE o Dalvik?

Deseo implementar algo parecido a esto:

if(isJavaVirtualMachine()){ System.out.println("You are running on a JVM"); }else if(isDalvikVirtualMachine()){ Log.i("env","You are running on an android."); } 

¿Es posible? Si es imposible por Java, ¿puedo hacerlo por JNI?

Utilice System.getProperty . Los nombres de propiedad de Dalvik están documentados aquí

Como ykaganovich señaló, debería ser bastante fácil distinguir entre Java simple y Android en tiempo de ejecución. El otro problema es que no tendrás clases específicas de Android como Inicia sesión en un entorno Java sencillo, por lo que te encontrarás con problemas en tiempo de ejecución. Una posible solución sería montar adaptadores específicos de la plataforma utilizando la reflexión, por lo que sólo se extraen las dependencias en tiempo de ejecución (puede ser algo complicado).

  • Error de aplicación debido a NullPointerException
  • Cámara Android: ¿Hilos? Que debe hacer lo que
  • Clase genérica con acceso de restricción
  • ¿Cómo iniciar una actividad que se define en otros proyectos de Android?
  • ¿Cómo comprobar los indicadores de gravedad en una vista Android personalizada?
  • ¿Cómo inicio un servicio desde mi Interactor usando el patrón MVP en android?
  • Android: ScrollView no se desplaza con el teclado fuera
  • Android - ¿Cómo tomar un EditText (números) y luego convertirlo a un número entero para usarlo para las matemáticas?
  • ¿Hay una función en Android análoga a "int main" en C / C ++ que contiene el bucle principal del programa?
  • Cheque Quien estoy siguiendo a través de Twitter4j
  • System.currentTimeMillis () devuelve la hora UTC?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.