0

私はdexdumpについていくつかの調査を行っています。さて、私を混乱させる質問があります。dexdump の結果を見ると、次のようなコードで「vtable」が見つかります。

000854: fa20 a900 4300                         |0000: +invoke-super-quick {v3, v4}, [00a9] // vtable #00a9    
00085a: 1500 037f                              |0003: const/high16 v0, #int 2130903040 // #7f03    
00085e: f820 ef00 0300                         |0005: +invoke-virtual-quick {v3, v0}, [00ef] // vtable #00ef    
000864: 1500 057f                              |0008: const/high16 v0, #int 2131034112 // #7f05    
000868: f820 7200 0300                         |000a: +invoke-virtual-quick {v3, v0}, [0072] // vtable #0072    
00086e: 0c00                                   |000d: move-result-object v0

「vtable」が実際にリンクされているものを知っている人はいますか? これに関するドキュメントはありますか?

4

1 に答える 1

1

vtable はおそらく「仮想テーブル」の略です。これは、仮想関数を実装する方法です (Android がここにあるために Java を使用していると言う場合、Java ではすべての関数が仮想です)-すべての仮想関数は関数ポインターの配列にあります。したがって、vtable #00a9 はおそらく、仮想テーブルへのオフセット 00a9 を意味します。

于 2013-01-17T05:29:43.233 に答える