1のDalvik Java仮想マシン

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は、各スレッド、コールスタックのためのカウンタを保持します

         コールスタック、レジスタリストのメンテナンス。方法のフィールド構造のレジスタ内のレジスタの数

 

おすすめ

転載: www.cnblogs.com/heixiang/p/10964090.html
おすすめ