- 32位: 所有寄存器
- 64位: 使用两个相邻的寄存器
v
: 局部变量寄存器 v0-vn
参数寄存器: vn-vn+m
p
: 参数寄存器 p0-pn
变量寄存器 v0-vn
第一种

第二种

.java
编译成.class
再编译成 <code>.dex
最后编译得到 smali文件
.java -> .class -> .dex -> smali
基础类型
Dalvik 类型 | java类型 |
---|
B | byte |
C | char |
S | short |
I | int |
J | long |
F | float |
D | double |
Z | boolean |
V | void |
L | java类类型 |
[ | 数组类型 |
字段
1
2
3
4
| //字段
Lpackage/name/ObjectName;->FieldName:Ljava/lang/String
//字段格式
类型 (包名类名 /路径);->字段名称:字段类型;
|
方法
1
2
3
4
| //方法
Lpackage/name/ObjectName;->MethodName(III)Z
(III)Z: 这部分信息表示的是方法的签名信息
代表的意思是 三个int参数 返回boolean
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| //分析字段:
// Lcom/alipay/sdk/app/H5PayActivity;->b:Ljava/lang/String;
// Lcom/auth/third/accountlink/ui/WebViewActivity;->a:Z
// Lcom/alipay/sdk/authjs/a;->m:Lorg/json/JSONObject;
// 解答:
package com.alipay.sdk.app
class H5PayActivity
{
string b;
}
package com.auth.third.accountlink.ui
class WebViewActivity
{
bool a;
}
import org.json;
package com.alipay.sdk.authjs
class a
{
JSONObject m;
}
//分析方法:
// Lcom/alipay/sdk/j/h;->b()Z
// Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
// Lorg/cocos2dx/lua/LoadingAct;->setContentView(I)V
//解答
package com.alipay.sdk.j
class h
{
public boolean b() {}
}
package android.content
class Intent
{
public android.os.Bundle getExtras(){}
}
package org.cocos2dx.lua
class LoadingAct
{
public void setContentView(int int_1){}
}
|