次のようなものを実装したいと思います。
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を区別するのは非常に簡単です。もう1つの問題は、プレーンJava環境にLogのようなAndroid固有のクラスがないため、実行時に問題が発生することです。考えられる解決策は、リフレクションを使用してプラットフォーム固有のアダプターをアセンブルすることです。そのため、実行時にのみ依存関係をプルします(多少注意が必要な場合があります)。