2015-10-06 64 views
2

我拆分了一個Android應用程序baksmali,並研究了生成的smali代碼。其中一個類包含以下行:Smali .local format

.local v1, "future":Lcom/android/volley/toolbox/RequestFuture;, "Lcom/android/volley/toolbox/RequestFuture<Ljava/lang/Void;>;" 

我不確定這行代碼的含義。

請問v1是否包含RequestFuture<Void>,對應原始代碼中的變量future? (即原始代碼:RequestFuture<Void> future;?)或者它有什麼不同?

回答

4

是的,這是可以選擇存在的調試信息的一部分。它在調試時用於例如評估局部變量的值。

你提到的.local意思就是你說的。的V1寄存器保存從原始源的future變量的值,並且其類型是RequestFuture<Void>

甲。本地指令等效於該方法中的調試信息一個DBG_START_LOCALDBG_START_LOCAL_EXTENDED指令,由dex format

所限定
+0

非常準確的答案,謝謝! – user2340612