2013-07-19 16 views
7

invoke-virtualは仮想メソッドを呼び出していると言われていますが、invoke-directは直接的なメソッドです。androidのinvoke-virtualとinvoke-directの違いは

しかし、私は "仮想メソッド"とは何かを明確にしていないと "直接メソッド"は何ですか?

つまり、呼び出すメソッドの種類はinvoke-virtual、種類はinvoke-directとなりますか?

誰かが具体的な例を挙げることができますか?

ありがとうございます。

答えて

17

http://source.android.com/devices/tech/dalvik/dex-format.htmlから直接的な方法は、「静的、プライベート、またはコンストラクタのいずれか」です。

しかし、静的メソッドは独自のinvoke-staticオペコードを取得するため、invoke-directはコンストラクタとプライベートメソッドに使用されます。

+0

リンクが壊れています – Bugster

+1

リンクを修正しました。ありがとうございます。 – JesusFreke

+0

私はリンクがhttp://source.android.com/devices/tech/dalvik/dalvik-bytecode.htmlであると信じています。 'invoke-kind'セクションを見てください。 –

関連する問題