| ア | イ | ウ | エ | オ | 
| カ | キ | ク | ケ | コ | 
| サ | シ | ス | セ | ソ | 
| タ | チ | ツ | テ | ト | 
| ナ | ニ | ヌ | ネ | ノ | 
| ハ | ヒ | フ | ヘ | ホ | 
| マ | ミ | ム | メ | モ | 
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ | 
| ワ | ヰ | ヴ | ヱ | ヲ | 
| ン | 
| A | B | C | D | E | 
| F | G | H | I | J | 
| K | L | M | N | O | 
| P | Q | R | S | T | 
| U | V | W | X | Y | 
| Z | 数字 | 記号 | ||
Androidランタイムに搭載されている独自の仮想計算機(仮想マシン)。
Java言語で書かれたAndroid用アプリケーションはコンパイルしてバイトコードになり、これをDalvikで実行する。
Javaの技術が元になった環境だが、使用する中間言語は専用で、Dalvik Executable(DEX)と呼ばれる。従って、一般的なJavaバイトコードは利用しない。
DalvikのバイトコードはJavaバイトコードから作成可能なため、通常はJava言語による開発が行なわれているが、理論上はそれ以外の言語での開発も可能である。
JVMとDalvikは、明確な設計方針の差が存在する。DalvikはJVMのパクリだが、単なるパクリではない。
JVMは「スタック・ベース」と呼ばれ、命令処理に使用するレジスターがスタック状になっていることを特徴としていたが、Dalvikは一般的なCPUのように任意のレジスターを選択する「レジスター・ベース」となっている。
仮想マシンの設計コンセプトは全く違ってはいるが、Javaプログラムからその違いを認識することはほぼない。アプリケーションプログラマーから見ると、Javaのノウハウをそのまま開発に活かせる利点があり、これがAndroidが人気を集める理由の一つとされている。
Dalvikは特殊なレジスターマシンである。
レジスターは32ビット長だが、メソッドごとにスタックに積まれるようにして用意され、そのレジスター数は可変(0〜最大65535個)である。C言語のローカル変数に近い。
命令はオペコードとオペランドからなり、命令長は可変長である。
オペコードは8ビットで、これに必要な分だけオペランドが付加される。また命令は16ビット単位にアラインメントされる。
通常、65535個(表現に16ビット必要)ものレジスターを使わないが、単純に考えれば、3オペランド命令なら16ビット×3+8ビットで計56ビット(7バイト)にもなってしまう。このため、多くの命令は256個(表現に8ビット必要)や16個(表現に4ビット必要)に制限し、オペランドを短くしている。
Dalvikは地名から採られた。
開発者ダン・ボーンスタイン(Dan Bornstein)の先祖が住んでいたとされる、アイスランドのエイヤフィヨルズル(Eyjafjörður)にある漁村の名Dalvíkにちなんで命名されたとする。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます