在Android开发中,我们总是会引入其他第三方的库或者资源等,有时候是添加一个jar文件,有时候添加一个aar文件,那么这两种类型的文件有什么区别吗?详情请看下文。
一、描述。
1. *.jar,JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。找一个jar文件,然后修改后缀名为‘zip’或者‘rar’格式,然后解压该文件,打开解压后的文件夹,截图如下所示:
点击‘com‘文件夹就会看到里面全部是‘.class’文件
PS: JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 TAR 所没有提供的。它们包括: 安全性、减少下载时间、传输平台扩展、包密封、包版本控制、可移植性
2. *.aar,AAR(Android Archive)包是一个Android库项目的二进制归档文件。我们随便找一个aar文件,然后修改后缀名为‘zip’或者‘rar’格式,然后解压该文件,打开解压后的文件夹,截图如下所示:(每个aar解压后的内容可能不完全一样,但是都会包含AndroidManifest.xml,classes.jar,res,R.txt)
*.aar文件中包含所有资源,class以及res资源文件。
小结。
在什么情况下使用*.jar文件?在什么情况下使用*.aar文件呢?
如果你只是一个简单的类库那么使用生成的*.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用*.aar文件。