本文主要是介绍java、class、jar、aar、dex、smali、apk之间的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.简介
java:编写好的程序源代码
class:.java文件通过javac 编译后的字节码文件,jvm直接运行的文件
jar:Java Archive,java二进制归档文件,多个.class文件打包的文件
aar:Android Archive,Android二进制归档文件,由jar和Android资源文件
dex:将.class优化打包后的文件,dalvik虚拟机则是.dex可执行文件
smali:Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。
apk:Android application package,包含.dex、resource文件资源、assets原生文件资源、应用证书签名、AndroidManifest等组成
2.转换关系
java转class
javac Test.java
class转dex
ddx --dex --output=Test.dex Test.class
dex转smali
java -jar baksmali.jar -o baksmaliout Hello.dex
smali转dex
java -jar smali.jar smali/ -o classes.dex
jar转java
java -jar fernflower.jar rediscounter.jar demo/
这篇关于java、class、jar、aar、dex、smali、apk之间的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!