前言

在使用 Eclipse 开发 Android 的那个时代(其实也就几年前而已),如果想代码打包,只有 JAR 包一个方法,但是 JAR 只能把 Java 文件代码打包进去,如果要使用一个有布局和资源的库的话,除了将 JAR 放入 libs 外,还需要引入相关的资源和配置文件,十分不优雅。

Android Studio 出来之后,出现了一个新的方法,打包 AAR 文件 ,这个不仅可以把 Java 文件给打进去,还包含 AndroidManifest.xml 和资源文件等,使用的话,直接引入一个 AAR 文件就足够了,非常方便。

jar和aar的区别

*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。

*.aar:包含所有资源,class以及res资源文件全部包含

如果你只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。*.jar,JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。找一个jar文件,然后修改后缀名为‘zip’或者‘rar’格式,然后解压该文件,打开解压后的文件夹,截图如下所示:

*.jar,JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。

ARR文件结构

aar包是Android Library Project的二进制发布包。

文件的扩展名是aar,而且maven包类型也应该是aar, 不过这文件本身就是一个简单的zip文件,里面有如下的内容:/AndroidManifest.xml (必须)

/classes.jar (必须)

/res/ (必须)

/R.txt (必须)

/assets/ (可选)

/libs/*.jar (可选)

/jni//*.so (可选)

/proguard.txt (可选)

/lint.jar (可选)

这些条目,都在zip文件的根目录下。

R.txt 文件是 aapt –output-text-symbols 的输出。

参考文章