smali summary

 

direct method就是private函数,其余的public和protected函数都属于virtual method。所以在调用函数时,有invoke-direct,invoke-virtual,另外还有invoke-static、invoke-super以及invoke-interface等几种不同的指令。

有两种方式指定一个方法中有多少寄存器是可用的:
.registers  指令指定了方法中寄存器的总数
.locals     指令表明了方法中非参寄存器(即本地局部变量)的总数,出现在方法中的第一行

方法的传参:
当一个方法被调用的时候,方法的参数被置于最后N个寄存器中;
例如,一个方法有2个参数,5个寄存器(v0~v4)
 那么,参数将置于最后2个寄存器(v3和v4)
 非静态方法中的第一个参数总是调用该方法的对象;
说明:对于静态方法除了没有隐含的this参数外,其他都一样

posted @ 2015-11-15 11:27  牧 天  阅读(114)  评论(0)    收藏  举报