Smali .local格式

use*_*612 5 android dex smali

我用一个Android应用程序反汇编baksmali,并研究了生成的smali代码.其中一个类包含以下行:

.local v1, "future":Lcom/android/volley/toolbox/RequestFuture;, "Lcom/android/volley/toolbox/RequestFuture<Ljava/lang/Void;>;"
Run Code Online (Sandbox Code Playgroud)

我不确定这行代码的含义.

是否v1包含a RequestFuture<Void>,它对应future于原始代码中的变量?(即原始代码:RequestFuture<Void> future;?)或者它是不同的东西?

Jes*_*eke 8

是的,这是可以选择存在的调试信息的一部分.它在调试时使用,例如评估局部变量的值.

你提到的.local意味着你所说的.v1寄存器保存future原始源的变量值,其类型为RequestFuture<Void>

.local指令等同于该方法的调试信息中的a DBG_START_LOCALDBG_START_LOCAL_EXTENDED指令,由dex格式定义