在Android系统或开发环境中,AAR、JAR、DEX、APK文件有什么区别?每个人的目的是什么?
AFAIK,JAR 就像 .class 文件的集合(就像在 Java 中一样)。
AAR 是 JAR 文件 + 资源。但它的用例是什么?用于分发 Android 开发库?
APK 似乎类似于 .deb 或 .rpm 等软件包。它是在 Android 上安装应用程序的唯一方法吗?
DEX 文件呢?已编译的应用程序...但是 JAR 或 AAR 文件有什么区别?
此外,在为 Android 分发 .so(即 native 代码)文件时,最好的方法是什么?
最佳答案
JAR(Java 存档)
JAR 是一种包文件格式,设计用于在其平台上分发 Java 应用程序。它包含已编译的 Java 类文件 + 更多文件,如 MANIFEST。基本上它只是一个带有一些限制的 ZIP 存档。
DEX(Dalvik 可执行文件)
DEX 是二进制文件格式,所以是编译好的。我们可以说,.dex 文件用于 DVM(Dalvik 虚拟机),类似于用于 JVM 的 .class 文件。
DEX 文件格式实际上是由 Android SDK 的 dex 编译器从 java CLASS 文件生成的。该编译器将JVM字节码翻译成DVM字节码,并将所有的class文件放到一个dex文件中。
APK(Android 应用程序包)
APK 是为在其平台上分发 Android 应用程序而设计的文件格式。它与 JAR 格式有一些相似之处。同样,它只是一个 ZIP 存档,但 APK 文件具有预定义的特定结构。例如,它必须始终包含名为 AndroidManifest.xml 的文件等等。此包还以 dex 格式聚合已编译的类。
AAR
AAR 是 Android 库项目的二进制分发版。它的结构与 APK 相似。
关于java - Android中AAR、JAR、DEX、APK的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33533370/