Android应用程序,本质上也是Java开发的,并且使用的是标准的Java进行编译出class文件,但是最终APK文件中包含的却是dex类型的文件,主要原因是早期Android手机内存小,class文件显然有很多地方可以进行优化,所以传统class文件是一个Java源码生成的,Android是把所有class文件进行重新打包,将class文件内部的各种函数表、变量等进行优化而生成的class.dex文件。
在Java中,我们也可以把得到的clsss文件打包成jar文件,但是它仅仅是对clsss文件进行了打包而已,并没有进行优化,可以从下图看到,jar文件中包含了多个class文件,但是apk中就只有一个dex文件。