【HR】给小白的一些知识语法鸭,嘿嘿快来看看呐~
http://cdn.u1.huluxia.com/g4/M01/52/31/rBAAdmB3z6iAEY7OAADI060aFAs534.jpg
送给小白的一些基本知识(本人也是小白啦[蹭]),有用就记得收藏点赞呐~[蹭]http://cdn.u1.huluxia.com/g4/M00/51/CB/rBAAdmB3efmAK98cAACEPHpBFBk112.jpg
Smali基本语法
.field private isFlag:z 定义变量
.method 方法
.parameter 方法参数
.prologue 方法开始
.line 12 此方法位于第12行
invoke-super 调用父函数
const/high16v0, 0x7fo3 把0x7fo3赋值给v0
invoke-direct 调用函数
return-void 函数返回void
.end method 函数结束
new-instance 创建实例
iput-object 对象赋值
iget-object 调用对象
invoke-static 调用静态函数
======================
条件跳转分支:
"if-eq vA, vB, :cond_**" 如果vA等于vB则跳转到:cond_**
"if-ne vA, vB, :cond_**" 如果vA不等于vB则跳转到:cond_**
"if-lt vA, vB, :cond_**" 如果vA小于vB则跳转到:cond_**
"if-ge vA, vB, :cond_**" 如果vA大于等于vB则跳转到:cond_**
"if-gt vA, vB, :cond_**" 如果vA大于vB则跳转到:cond_**
"if-le vA, vB, :cond_**" 如果vA小于等于vB则跳转到:cond_**
"if-eqz vA, :cond_**" 如果vA等于0则跳转到:cond_**
"if-nez vA, :cond_**" 如果vA不等于0则跳转到:cond_**
"if-ltz vA, :cond_**" 如果vA小于0则跳转到:cond_**
"if-gez vA, :cond_**" 如果vA大于等于0则跳转到:cond_**
"if-gtz vA, :cond_**" 如果vA大于0则跳转到:cond_**
"if-lez vA, :cond_**" 如果vA小于等于0则跳转到:cond_**
======================
if函数的java代码:
private boolean ifSense(){
boolean tempFlag = ((3-2)==1)? true : false;
if (tempFlag) {
return true;
}else{
return false;
}
}
if函数分析:
.method private ifSense()Z
.locals 2
.prologue
.line 22
const/4 v0, 0x1 // v0赋值为1
.line 24
.local v0, tempFlag:Z
if-eqz v0, :cond_0 // 判断v0是否等于0, 不符合条件向下走, 符合条件执行cond_0分支
.line 25
const/4 v1, 0x1 // 符合条件分支
.line 27
:goto_0
return v1
:cond_0
const/4 v1, 0x0 // cond_0分支
goto :goto_0
.end method
###文字描述:如果符合if分支则程序往下走,最终return ; 而如果条件不符合则会走到 :cond_0分支 , 最终执行 goto :goto_0走回 :goto_0返回
======================
for函数java代码:
private void forSense(){
listStr = new ArrayList<String>(COUNT);
for (int i = 0; i < COUNT; i++) {
listStr.add("现在轮到我上场乐");
}
}
【剩下的看一楼评论鸭,字符太多了[蹭]】http://cdn.u1.huluxia.com/g4/M00/51/CB/rBAAdmB3efmARQqEAAQhRVzdF2E999.jpg
页:
[1]