web-dev-qa-db-ja.com

AndroidシステムにはJVMが含まれていますか?

AndroidシステムにDalvik仮想マシン(DVM)が含まれている)がわかっているAndroidシステムにJVMも含まれているのか、またはDVMがJVMの代わりになるのか?ありがとう

23
user1019872

プログラムは一般にJavaで記述され、Java仮想マシンのバイトコードにコンパイルされます。その後、Dalvikバイトコードに変換され、.dex(Dalvik EXecutable)および.odex(Optimized Dalvik)に保存されます。実行可能)ファイル。

つまり、プログラムはJVMバイトコードにコンパイルされ、それがDVMバイトコードに解釈されます。コンパイルされたJavaコードを実行する代わりに、Dalvikはそれをコンパイルし、そのコードを独自のコードに変換します。ある意味で、JVMに置き換わるものです。

Androidランタイム(ART)と呼ばれる代替ランタイム環境は、テクノロジープレビューとしてAndroid 4.4 "KitKat"に含まれていました。 ARTは、Android 5.0「Lollipop」でDalvikを完全に置き換えます。

ART、Androidランタイムは、Android 5.0でDalvikを置き換えました。 ARTは同じ.dexファイルを使用しますが、代わりに.elf(実行可能およびリンク可能な形式)ファイルに変換されます。 JavaコードがJVMバイトコードにコンパイルされ、DVMバイトコードに変換され、ELFファイルに変換されて実行されるため、これはJVMのもう1つの置き換えです。

@Chris Thompsonは、DVMバイトコードを Dalvikコードの逆アセンブルについて について説明しています。

出典: Wikipedia /Friends/Experiences

24
phase

しかし、AndroidシステムにJVMが含まれる場合、

番号。

またはDVMはJVMの代わりですか?

Dalvik仮想マシンは、DalvikバイトコードにコンパイルされたAndroidアプリケーションを実行するためのものです。Java仮想マシンは、Javaアプリケーションを実行するためのものですJavaバイトコードにコンパイルされます。一方を他方の代替と見なすかどうかはあなた次第です。

11
CommonsWare