smali文件对比java文件

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 ;
时间: 2024-11-08 21:55:38

smali文件对比java文件的相关文章

把内容写入指定目录指定文件的java文件工具类,支持日期格式目录名的生成

package com.yanek.test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.text.SimpleDat

关于数据库 xml文件及 java文件的问题

问题描述 刚学java没多久想做一个后台自动发送邮件的功能已经实现邮件发送的功能但是在定时器上遇到了问题我的定时器是在xml文件中的但是这样的话我无法从数据库中得到一个时间来动态的定时发送邮件我问了老师跟我说用dom4j试试但是看的有点醉求大神指点一下这是定时器(设置在xml文件中):<beanid="cronTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean"><

java文件操作及缓存机制依旧有瓶颈

我们在使用windows系统时发现,复制一个文件的再粘贴的速度大体上是一致的,我们可以猜想这是微软内部的工作人员设计的一个算法,而这个操作所能实现的最大速度是由什么影响的呢?? 那么我们可不可以自己设计一个方法来代替windows自带的复制粘贴方法来达到更快的传输速度呢?? 下面的一段代码就以缓冲的形势来实现了文件的copy工作: publicvoid copybyte(String srcFile,String destFile)throws IOException{ //创建输入流 Inpu

Java文件选择对话框JFileChooser使用详解_java

文件加密器,操作过程肯定涉及到文件选择器的使用,所以这里以文件加密器为例.下例为我自己写的一个文件加密器,没什么特别的加密算法,只为演示文件选择器JFileChooser的使用. 加密器界面如图: 项目目录结构如图: 下面贴出各个文件的源代码: MainForm.java package com.lidi; import javax.swing.*; import java.awt.*; public class MainForm extends JFrame { /** * 构造界面 * *

JAVA 文件编译执行与虚拟机(JVM)简单介绍

java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行.本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明.    一.Java源文件的编译.下载.解释和执行  Java应用程序的开发周期包括编译.下载.解释和执行几个部分.Java编译程序将Java源程序翻译为JVM可执行代码?字节码.

myeclipse 10.7中用jsp无法连接mysql 5.5 单独用java文件却可以~

问题描述 myeclipse 10.7中用jsp无法连接mysql 5.5 单独用java文件却可以~ 我是要做一个简单的查询数据库操作,在win10 64位系统用tomcat 7 myeclipse 10.7用jsp无法连接数据库,提示NO SUITBLE Driver和空指针但是我换成win 7 32位系统用tomcat 6 myeclipse 85 时就可以查询了,两边的代码和操作都一样~~求大神赐教~!select.jsp中出错代码段:<% Student student=new Stu

android ndk-android反编译怎么获得java文件?

问题描述 android反编译怎么获得java文件? 反编译之后出现的src文件为空,有个smali文件,怎么从这个获得java文件呢?反编译的是flappy bird,有人有工程文件吗? 解决方案 找到Android软件安装包中的class.dex:把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的. 工具准备:1.把dex文件反编译为jar文件的工具.(dex2jar)http://code.google.com/p/dex2ja

java-C#中将double值变成二进制然后写入文件,Java中载入该文件读取此二进制double值时不正确

问题描述 C#中将double值变成二进制然后写入文件,Java中载入该文件读取此二进制double值时不正确 目前已定位到是因为C#中的byte范围是0到255,而java中byte值为-128到127导致的错误. 尝试过使用C#的sbyte来解决: bw1 = new BinaryWriter(new FileStream("C:UsersDELLDesktopSpatialIndexctest1.bin", FileMode.Create)); bw2 = new BinaryW

【android相关】【问题解决】R.java文件丢失

在进行android开发过程中,有时候,我们会遇到gen文件中R.java丢失的现象.重新build,或者clean工程,close并重新打开Project,但有时也没解决. 这可能是由于不小心把xml文件写错了,或者在编辑xml或者其他文件时候点击了run,或者clear过项目等...,反正,你会发现gen下面的R.java的文件找不到了. 其实,只要xml文件有问题,系统就不会给自动生成R.java文件,因为系统需要参照每个xml里的数据来生成R.java. 当然,如果项目较大,而layou