【问题标题】:what's the difference between invoke-virtual and invoke-direct in androidandroid中invoke-virtual和invoke-direct有什么区别
【发布时间】:2013-07-19 06:28:12
【问题描述】:

上面说invoke-virtual是调用虚方法,而invoke-direct是直接方法。

但是我不清楚什么是“虚拟方法”,什么是“直接方法”?

也就是说,invoke-virtual 会调用什么样的方法,invoke-direct 会调用什么样的方法?

谁能举个具体的例子?

【问题讨论】:

    标签: android dalvik smali


    【解决方案1】:

    http://source.android.com/devices/tech/dalvik/dex-format.html 开始,直接方法是“静态、私有或构造函数中的任何一种”。

    但是,静态方法有自己的invoke-static 操作码,所以invoke-direct 用于构造函数和私有方法。

    【讨论】:

    • 我相信链接应该是source.android.com/devices/tech/dalvik/dalvik-bytecode.html。查看invoke-kind 部分。
    • 旧链接和新链接都指向 dex-format.html 文档,其中包含我在“direct_methods”部分的文档中包含的引用。 dalvik-bytecode.html 在invoke-direct 的文档中也包含类似的语言。
    猜你喜欢
    • 2013-01-13
    • 2019-02-26
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多