Dex、Smali、Class、Java、Jar之间的相互转换-分析Android底层代码
工具
工具 |
作用 |
javac |
java------>class |
ddx |
class------>dex |
baksmali |
dex------>smali |
smali |
smali------>dex |
dex2jar |
dex------>jar(class的压缩包) |
apktool |
apk------>smali |
Android源代码从编译到运行
flowchat
st=>start: APK文件
e=>end: 修改代码
io1=>start: dex文件
sub1=>start: smali文件
st->io1->sub1->e
java转class
javac Test.java
class转dex
ddx --dex --output=Test.dex Test.class
dex转smali
java -jar baksmali.jar -o [输出文件夹] dex文件
smali转dex
java -jar smali.jar -o 目标dex文件 [smali文件夹]
dex转jar
d2j-dex2jar.bat dex文件