一. 简介
aar
是一个类似于jar的文件格式。但是他们之间是有区别的。
jar
:仅仅包含class和清单文件,没有资源文件。
aar
:包含了class文件和资源文件。说白了就是Android的专属“jar”
将代码打包成aar
文件,可以在一定程度上加快AndroidStudio的速度。
尤其是将Module
打包成aar
文件,提升的效果很显著。
二. 如何得到aar
1. Module的aar文件
将一个AndroidStudio
项目中的Module
打包成aar
其实很简单。
在每一个Module
的目录下面都会有这样一个文件夹:build\outputs\aar
。
这个文件夹下面就放着这个Module
对应的aar
文件。
一般情况下会有两个aar
文件,一个debug
版本,一个release
版本。
我们选择release
的就ok。
注意:
新建的Module是没有这个文件夹的。这时,你可以使用 两种方法 生成这个文件夹
- 将整个项目运行一遍,这个文件夹会自动生成
- 执行命令 ./gradlew assembleRelease 也可以生成这个文件夹
Module中的
libs
目录文件会随着项目的编译被打包进aar
文件中,但是build.gradle
中的引用库不会打包进aar
文件中,这个需要 特别留意。如果你忽略了这个Module
的build.gradle
中的引用库,很可能引发ClassNotFoundException
异常。
2. 远程仓库的aar
在项目里面经常会引用一下远程仓库的依赖库。
这时,我们也可以将它以aar
的形式引入到项目中。
这个依赖库的aar其实也很好找。
当你配置好一个依赖库以后,点击 Sync Now 。
AndroidStudio
会自动下载这个库到C盘(windows)。你找到这个文件就可以了。
这里我使用的是Everything
进行搜索,很方便就找到这个库的下载文件夹。其他操作系统就自行搜索吧,总之找见这个项目的下载文件夹就ok。
这个下载文件夹中包含了这个项目所需要的所有东西:包括aar
、jar
等文件。
后面会以一个例子详细讲解这个过程
三. 如何使用aar
想要使用aar
文件,需要经过以下几步:
1. 在app的build.gradle中加入以下配置
repositories {
flatDir {
dirs 'libs' // aar目录
}
}
2. 将aar文件拷贝到app/libs目录下
3. 在dependencies中加入aar引用
compile(name: 'zbar-release', ext: 'aar')
注:内容摘自AndroidStudio之如何使用aar