初步了解smali文件

简书排版请移步
http://www.jianshu.com/p/cc08b11310b6

准备工作
smali下载地址
https://bitbucket.org/JesusFreke/smali/downloads
环境变量的配置这里不解释

编写Main.java文件

public class Main {
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}

接着编译Main.java为Main.class

javac Main.java

然后将Main.class转成Main.dex

java -jar dx.jar --dex --output=Main.dex Main.class

最后将Main.dex转成Main.smali文件

java -jar baksmali-2.1.3.jar Main.dex

最终文件生成

在out文件夹里就有Main.smali文件

#定义类名
.class public LMain;
#定义父类
.super Ljava/lang/Object;
.source "Main.java"


# direct methods
.method public constructor <init>()V
    .registers 1

    .prologue
    .line 2
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

#声明静态main()方法
.method public static main([Ljava/lang/String;)V
    .registers 3

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

    const-string v1, "Hello World"

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

    .line 5
    return-void
.end method
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值