5

次のようなものを実装したいと思います。

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で実行できますか?

4

2 に答える 2

10

を使用しSystem.getPropertyます。Dalvikのプロパティ名はここに記載されています

于 2013-03-11T19:21:28.863 に答える
2

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

于 2013-03-11T20:10:23.130 に答える