我使用baksmali
分解了一个Android应用程序,并研究了产生的smali代码。其中一个类包含以下行:
.local v1, "future":Lcom/android/volley/toolbox/RequestFuture;, "Lcom/android/volley/toolbox/RequestFuture<Ljava/lang/Void;>;"
我不确定这行代码的含义。
v1
是否包含RequestFuture<Void>
,它与原始代码中的future
变量相对应? (即原始代码是RequestFuture<Void> future;
吗?)还是有些不同? 最佳答案
是的,这是可以有选择地显示的调试信息的一部分。在调试时使用它,例如评估局部变量的值。
您提到的.local就是您所说的。 v1寄存器保存原始源中future
变量的值,其类型为RequestFuture<Void>
.local指令等效于该方法的调试信息中的DBG_START_LOCAL
或DBG_START_LOCAL_EXTENDED
指令,由dex format定义