Dalvik仮想マシン機能:
1。小型
2。javaのに比べて高速に実行DEX形式の実行ファイル、
3。定数プールの32ビットのインデックス値
4。提供するオブジェクトのライフサイクル管理、スタック、スレッド、権限、および異常
5。各プロセスのDalvik仮想マシンに対応するAndroidシステム
Dalvik仮想マシンとJava仮想マシンの違い:
1。Java仮想マシン:クラスファイルに保存されているJavaバイトコード、クラスファイルを解析して実行します
Dalvik VM:のDalvik Javaバイトコードは、ファイルにパックバイトコードDEX、ファイルの解析操作DEXによって変換され、
2。DEXファイルの解析クラスファイル、その他の情報を削除し、すべてのクラスの定数プールは、効率を解析する圧縮ボリュームファイルを改善する目的を共有します
3。Java仮想マシンのスタックベースの構造、のDalvik VMはレジスタベースのアーキテクチャであります
単純なJavaファイルの差分を解析することによって、JavaとのDalvik仮想マシンの比較
1。単純なJavaファイルを書きます
2。javacの生成の.classファイルを実行
3。生成された.classファイルを逆コンパイルてjavap
4。.dexファイルHello.classにファイルをコンパイルする変換
次の\ SDK \ビルドツール\ androidの-4.2.2ディレクトリの実行に
dexdump.exeビュー.dexファイルを使用します
Javaプログラムは、各スレッドは、PCカウンタとJavaスタックを持っています。Java仮想マシンだけに0xffまでの命令をサポートしています
カウンタPC、距離法の現在位置の先頭からのオフセット記録、
メソッドを呼び出したスレッドの実行を保存するには、フレームのJavaスタックユニット(フレーム)は、スタックフレームのメソッドが返すポップ、その後、スタック上に新しいスタックフレームをプッシュ
Dalvik仮想マシンは:PCは、各スレッド、コールスタックのためのカウンタを保持します
コールスタック、レジスタリストのメンテナンス。方法のフィールド構造のレジスタ内のレジスタの数