【发布时间】:2013-01-13 08:23:29
【问题描述】:
在以下示例字节码中:
invoke-virtual/range {v0 .. v5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
寄存器的范围表示寄存器v0,v1,v2,v3,v4,v5,都传给了方法,但是为什么数字和数字不一样指示的类型中,只有 2 个?
invoke-kind/range 和普通的invoke-kind 有区别吗?
【问题讨论】:
-
你从哪里得到的输出?
-
@auselen 当前输出来自 apktool
-
检查netmite.com/android/mydroid/dalvik/docs/dalvik-bytecode.html 上invoke-virtual/range 的使用情况,它有一些用于特定目的的寄存器,在你的情况下看起来总和为5。我仍然无法想象你为什么有6已使用但可能剩余的也用于特定目的。
-
@auselen s.android.com/tech/dalvik/dalvik-bytecode.html 是权威文档。