您的位置:首页 > 移动开发 > Android开发

Android 反编译(三)java文件 和 .smail文件判断和循环比较

2017-12-18 18:05 483 查看
在.smail文件中  if-ge 标识for循环   , add-int 表示++ , if-ne标识if判断

Java文件  for循环

private void testFor(int leng){
for (int i = 0; i < leng; i++) {
System.out.print("leng的值为:"+i);
}
for (int i = 0; i < 5; i++) {
System.out.print("i的值为:"+i);
}
}


Smail问 for循环

.method private testFor(I)V
.locals 4
.param p1, "leng"    # I

.prologue
.line 25
const/4 v0, 0x0

.local v0, "i":I
:goto_0
if-ge v0, p1, :cond_0

.line 26
sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

new-instance v2, Ljava/lang/StringBuilder;

invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

const-string v3, "leng\u7684\u503c\u4e3a:"

invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v2

invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v2

invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v2

invoke-virtual {v1, v2}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V

.line 25
add-int/lit8 v0, v0, 0x1

goto :goto_0

.line 28
:cond_0
const/4 v0, 0x0

:goto_1
const/4 v1, 0x5

if-ge v0, v1, :cond_1

.line 29
sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

new-instance v2, Ljava/lang/StringBuilder;

invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

const-string v3, "i\u7684\u503c\u4e3a:"

invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v2

invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v2

invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v2

invoke-virtual {v1, v2}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V

.line 28
add-int/lit8 v0, v0, 0x1

goto :goto_1

.line 31
:cond_1
return-void
.end method


Java文件 if判断

private void testIf(int a){
if (a == 5){
System.out.print("a的值为 5");
}else {
System.out.print("a的值为 ? :"+a);
}
}


Smail文件 if判断

.method private testIf(I)V
.locals 3
.param p1, "a"    # I

.prologue
.line 34
const/4 v0, 0x5

if-ne p1, v0, :cond_0

.line 35
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;

const-string v1, "a\u7684\u503c\u4e3a 5"

invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V

.line 39
:goto_0
return-void

.line 37
:cond_0
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;

new-instance v1, Ljava/lang/StringBuilder;

invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

const-string v2, "a\u7684\u503c\u4e3a ? :"

invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v1

invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v1

invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v1

invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V

goto :goto_0
.end method
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: