当前位置: 首页 > 面试题库 >

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

舒仲渊
2023-03-14
问题内容

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

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

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

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

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

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


问题答案:

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文件具有预html" target="_blank">定义的特定结构。例如,它始终必须包含名为
AndroidManifest.xml的 文件以及更多文件。另外,该程序包以dex格式聚合编译的类。

AAR

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



 类似资料:
  • 问题内容: java类文件和jar文件有什么区别? 问题答案: Jar文件是一个包含一个或多个Java类文件的Zip存档。这使得使用库(由多个类组成)更加方便。目录和Jar文件被添加到类路径,并且在运行时可用于在其中找到特定的类。

  • 问题内容: 这些天,我在学习Java,并且在.NET上花费了很多时间,因此当我要导出或导入库时,它们通常是.dll格式,在.Net环境中称为汇编,并且已编译为IL。他们可以以任何方式拥有图像,xml,音频和声音之类的资源。 我也想知道Java中的相同过程。我已经看过文档,但实际上它们使我有些困惑,为了弄清楚事情,我需要您的帮助。 问题: .NET Assembly与Java .jar是一样的东西吗

  • 问题内容: 使用 和运行Java应用程序有什么区别?在运行Java应用程序时,其中一个优先于另一个吗?我的意思是,对于JVM(根据它们的机器资源使用情况),这些方法中的哪一种更昂贵? 哪一种会导致JVM在尝试运行应用程序时产生更多线程? 问题答案: 我更喜欢第一个版本来启动Java应用程序,只是因为它的陷阱少了(“欢迎使用classpath hell”)。第二个需要一个可执行的jar文件,并且必须

  • 使用 和运行Java应用程序有什么区别?在运行Java应用程序时,它们中的一个比另一个更好吗?我的意思是,对于JVM(根据它们的机器资源使用情况)来说,这些方法中哪一种更昂贵? 哪一个会导致JVM在尝试运行应用程序时生成更多的线程?

  • 本文向大家介绍Android中的Parcelable和Serializable之间的区别,包括了Android中的Parcelable和Serializable之间的区别的使用技巧和注意事项,需要的朋友参考一下 本示例演示了Android中可打包和可序列化之间的区别 可序列化 可序列化是一个可标记的接口,或者我们可以将其称为空接口。它没有任何预先实现的方法。可序列化将把一个对象转换为字节流。因此,