Android OSでは、デスクトップ環境でコンパイルされたいくつかのJavaJARファイルを実行できます。たとえば、jtransforms
なぜそうなのか分かりますか?OracleのJVMとGoogleのDalvikVMは2つの異なるバイトコード形式を使用していると思いましたか?Java SEによってコンパイルされたJARファイルがAndroidで実行できるのはなぜですか?
Android OSでは、デスクトップ環境でコンパイルされたいくつかのJavaJARファイルを実行できます。たとえば、jtransforms
なぜそうなのか分かりますか?OracleのJVMとGoogleのDalvikVMは2つの異なるバイトコード形式を使用していると思いましたか?Java SEによってコンパイルされたJARファイルがAndroidで実行できるのはなぜですか?
私はあなたがあなたのAndroidプロジェクトにjarファイルを単に含めていると思いますか?次に、ビルドプロセス中に、dex形式に変換されるので(同じことが独自のクラスファイルに対しても行われます!)、機能します。これは、dex(dx)ツールを使用して実行されます。EclipseでADTを使用すると、自動的に実行されます。もちろん、AndroidSDKでも手動で使用できます。
android-sdk-windows\platform-tools\dx.bat
Windowsの場合の下。
ウィキペディアによると、dx
コンパイルされ.class
たファイルを.dex
形式に変換するために使用されます。
1. Java SE
-
Java (Swing + AWT)
=Android
2 In 2005, when Java was undergoing changes, Android creator didnt wanted to base Android
totally on Java
.。So they included JVM as the 1st compilation unit, thats the reason
JRuby , Jython, etc can be used to write Android apps
。And 2nd Compilation unit as Dalvik
Compiler
。
3. So its quite natural that a jar file compiled under desktop environment works fine on Android.