Android 反编译 -smali文件对比java文件
2016-06-14 13:35
477 查看
smali文件对比java文件
.class :类名
.super :父类
.source :源文件名
.implements :继承的接口
.field :类成员变量
.method :类方法
.parameter :函数参数 p1,p2...
.locals x :局部变量(个数)
const/16 v0, 0x64 :int v0 = 0x64
const/high16 v0, 0x7f03 :高16赋值
const-wide v0, 0x4024051eb851eb85L
const-string v0, "1111" :字符串
add-int v0, p0, p1 :v0 = p0 + p1(static函数参数 从p0 开始)
sub-int v0, p1, p2 :v0 = p1 + p2(普通成员函数参数从 p1 开始)
mul-int v0, p1, p2 :v0 = p1 * p2
div-int v0, p1, p2 :v0 = p1 / p2
add-int/2addr v0, v1 :v0+v1放到 v0所在的地址
sub-int/2addr v0, p2 :v0-p2放到 v0所在的地址
if-ne :if(x != y)
iput-object v0, p0, Lcom/xyz/smali/SmaliActivity;->string:Ljava/lang/String; :成员变量 v0 = string;
iget-object v0, p0, Lcom/xyz/smali/SmaliActivity;->mBtn:Landroid/widget/Button; :关联成员变量
sput v0, Lcom/xyz/smali/SmaliActivity;->OK:I :sput 给static变量赋值
sput-wide v0, Lcom/xyz/smali/SmaliActivity;->dou:D :sput-wide 给static的宽字节变量赋值
sput-object v0, Lcom/xyz/smali/SmaliActivity;->sss:Ljava/lang/String;
sget v1, Lcom/xyz/smali/SmaliActivity;->OK:I :关联static变量
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V : this.super.onCreate();
invoke-static {p1, p2}, Lcom/xyz/smali/SmaliActivity;->add(II)I :调用静态函数 add(p1, p2)
invoke-virtual {v0, p0}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V :调用虚函数
move-result v0 :前面调用函数后,把结果放到 v0
move-result-object v0 :前面调用函数返回的对象给 v0
check-cast v0, Landroid/widget/Button; :强制类型转换 mBtn = (Button) findViewById(R.id.btn);
return-void :return ;
.class :类名
.super :父类
.source :源文件名
.implements :继承的接口
.field :类成员变量
.method :类方法
.parameter :函数参数 p1,p2...
.locals x :局部变量(个数)
const/16 v0, 0x64 :int v0 = 0x64
const/high16 v0, 0x7f03 :高16赋值
const-wide v0, 0x4024051eb851eb85L
const-string v0, "1111" :字符串
add-int v0, p0, p1 :v0 = p0 + p1(static函数参数 从p0 开始)
sub-int v0, p1, p2 :v0 = p1 + p2(普通成员函数参数从 p1 开始)
mul-int v0, p1, p2 :v0 = p1 * p2
div-int v0, p1, p2 :v0 = p1 / p2
add-int/2addr v0, v1 :v0+v1放到 v0所在的地址
sub-int/2addr v0, p2 :v0-p2放到 v0所在的地址
if-ne :if(x != y)
iput-object v0, p0, Lcom/xyz/smali/SmaliActivity;->string:Ljava/lang/String; :成员变量 v0 = string;
iget-object v0, p0, Lcom/xyz/smali/SmaliActivity;->mBtn:Landroid/widget/Button; :关联成员变量
sput v0, Lcom/xyz/smali/SmaliActivity;->OK:I :sput 给static变量赋值
sput-wide v0, Lcom/xyz/smali/SmaliActivity;->dou:D :sput-wide 给static的宽字节变量赋值
sput-object v0, Lcom/xyz/smali/SmaliActivity;->sss:Ljava/lang/String;
sget v1, Lcom/xyz/smali/SmaliActivity;->OK:I :关联static变量
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V : this.super.onCreate();
invoke-static {p1, p2}, Lcom/xyz/smali/SmaliActivity;->add(II)I :调用静态函数 add(p1, p2)
invoke-virtual {v0, p0}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V :调用虚函数
move-result v0 :前面调用函数后,把结果放到 v0
move-result-object v0 :前面调用函数返回的对象给 v0
check-cast v0, Landroid/widget/Button; :强制类型转换 mBtn = (Button) findViewById(R.id.btn);
return-void :return ;
相关文章推荐
- ListView的divider
- Android_TextVIew_flow_ex1
- Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
- Android_Toast
- adb push 与 adb install 区别(两种利用adb安装APK的方法)
- Android开发中完全退出程序的三种方法
- Android_sharePreference_ex1
- Android_sharePreference
- 学习《Android3D游戏开发技术宝典:OpenGL.ES.2.0》一:初识OpenGL ES 2.0应用程序
- android常用颜色对照表
- Android之View.onMeasure()方法
- Android 计时器
- Android Service详解
- android线性布局
- android studio添加library
- Android_Notification
- Android之Activity(三):活动的生命周期
- Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
- Android引导界面的实现分析
- 基于Android6.0的RIL底层模块分析