jar文件
性质:
JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。其中包括了很多类文件,在引入jar包之后可以不再重新编写jar包中已经包括的类,可以直接引用。
文件结构:
1. META-INF\ (注:Jar文件中常可以看到);
2. 其他文件夹或者是.class文件
apk文件
性质:
APK是AndroidPackage的缩写,即Android安装包(apk),可以直接安装并且运行,其中包括很多文件。
文件结构:
1. META-INF\ (注:Jar文件中常可以看到);
2. res\ (注:存放资源文件的目录) ;
3. AndroidManifest.xml (注:程序全局配置文件) ;
4. classes.dex (注:Dalvik字节码);
5. resources.arsc (注:编译后的二进制资源文件)。
dex文件
性质:
dex是Dalvik Executable文件的缩写,一种比jar文件更为精简的文件,一种可执行文件。java字节码文件都在.class文件中,并且可以运行在JVM上,但是在Android中采用了另一种被成为Dalvik虚拟机的虚拟机。
相关工具:
dx
生成原理:
把jar文件中的所有.class文件的常量池分解,重新组成一个新的常量池,所有文件共享一个常量池,由于对常量池进行了压缩所以文件体积变小了。