Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';android中调用虚拟和调用直接的区别是什么_Android_Dalvik_Smali - Fatal编程技术网

什么';android中调用虚拟和调用直接的区别是什么

什么';android中调用虚拟和调用直接的区别是什么,android,dalvik,smali,Android,Dalvik,Smali,它说,invoke virtual正在调用virtual方法,而invoke direct是直接方法 然而,我不清楚什么是“虚拟方法”,什么是“直接方法” 换句话说,什么样的方法调用将是invoke virtual,什么样的方法调用将是invoke direct 有人能给出一些具体的例子吗?从中,直接方法是“任何静态、私有或构造函数” 但是,静态方法有自己的invoke staticopcode,因此invoke direct用于构造函数和私有方法。我认为应该使用链接。查看invoke kind

它说,
invoke virtual
正在调用virtual方法,而
invoke direct
是直接方法

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

换句话说,什么样的方法调用将是
invoke virtual
,什么样的方法调用将是
invoke direct

有人能给出一些具体的例子吗?

从中,直接方法是“任何静态、私有或构造函数”


但是,静态方法有自己的
invoke static
opcode,因此
invoke direct
用于构造函数和私有方法。

我认为应该使用链接。查看
invoke kind
部分。旧链接和新链接都指向dex-format.html文档,其中包含我在“direct_methods”部分的文档中包含的引用。dalvik-bytecode.html在invoke direct的文档中也包含类似的语言。