2013-07-19 13 views
7

Si dice che invoke-virtual stia invocando il metodo virtuale, mentre invoke-direct è il metodo diretto.qual è la differenza di invoke-virtual e invoke-direct in Android

Tuttavia non sono chiaro quale sia il "metodo virtuale" e quale sia il "metodo diretto"?

In altre parole, quale tipo di metodo sarà invocato sarà invoke-virtual e che tipo sarà invoke-direct?

Qualcuno può dare qualche esempio concreto?

Grazie in anticipo.

risposta

17

Da http://source.android.com/devices/tech/dalvik/dex-format.html, un metodo diretto è "qualsiasi statico, privato o costruttore".

Tuttavia, i metodi statici ottengono il proprio opcode invoke-static, quindi invoke-direct viene utilizzato per costruttori e metodi privati.

+0

Il collegamento è morto – Bugster

+1

Risolto il collegamento, grazie. – JesusFreke

+0

Credo che il link dovrebbe essere http://source.android.com/devices/tech/dalvik/dalvik-bytecode.html. Guarda la sezione 'invoke-kind'. –

Problemi correlati