Android中的AAR,JAR,DEX,APK之间的区别

问题描述

JAR(Java存档)

JAR是一种打包文件格式,旨在在其平台上分发Java应用程序。它包含编译后的Java类文件以及其他一些文件,例如MANIFEST。基本上,它只是一个受某些限制的ZIP存档。

DEX(Dalvik可执行文件

DEX是二进制文件格式,因此已编译。可以说, .dex 文件用于DVM(Dalvik虚拟机),类似于JVM的 .class 文件

DEX文件格式实际上是由Android SDK中的dex编译器从Java CLASS文件生成的。该编译器将JVM字节码转换为DVM字节码,并将所有类文件放入一个dex文件

APK(Android应用程序包)

APK是一种文件格式,旨在在其平台上分发Android应用程序。它与JAR格式有一些相似之处。同样,它只是一个ZIP存档,但是APK文件具有预定义的特定结构。例如,它始终必须包含名为AndroidManifest.xml的 文件以及更多文件。另外,该程序包以dex格式聚合编译的类。

AAR

AAR是Android库项目的二进制发行版。它具有与APK类似的结构。

解决方法

在Android系统或开发环境中,AAR,JAR,DEX和APK文件之间有什么区别?每个人的目的是什么?

AFAIK,JAR就像.class文件的集合(就像Java中一样)。

AAR是JAR文件+资源。但是它的用例是什么?要用于分发Android的开发库吗?

APK似乎类似于.deb或.rpm之类的软件包。这是在Android上安装应用程序的唯一方法吗?

那DEX文件呢?编译的应用程序…但是JAR或AAR文件有什么区别?

此外,在为Android分发.so(即本机代码)文件时,最好的方法是什么?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”