1. dex和Jar反编译对比
Java源码
public class Hello {
public int foo(int a,int b) {
return (a + b) * (a - b);
}
public static void main(String[] argc) {
Hello hello = new Hello();
System.out.println(hello.foo(5,3));
}
}
编译java文件:
javac Hello.java
将class文件转换成dex文件
dx --dex --output=Hello.dex Hello.class
查看java反编译代码
javap -c -classpath . hello
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160813234829421-1518204942.png)
使用dexdump查看dex反编译代码,也可以使用其他的工具查看
该工具是Android SDK下的工具,该工具是开源的
dexdump -d Hello.dex
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160813234830421-680161707.png)
如果SDK中的dx工具版本过低,可以消弱javac编译的目标版本,如:
javac -source 1.6 -target 1.6 Hello.java