实例操作指令主要实现了实例的类型转换,检查及新建等功能。
比如,我们定义一个实例
Object obj = new Object();
其对应的 smali 代码如下
new-instance v0, Ljava/lang/Object;
invoke-direct-empty {v0}, Ljava/lang/Object;-><init>()V
再比如我们可以进行如下的类型判断
String s = "test";
boolean b = s instanceof String;
其对应的 smali 代码如下
const-string v0, "test"
instance-of v1, v0, Ljava/lang/String;
如果我们进行类型的强制转换
String s = "test";
Object o = (Object)s;
其对应的 smali 代码如下
const-string v0, "test"
check-cast v0, Ljava/lang/Object;
move-object v1, v0
没有评论:
发表评论