1. 引言
模块化编程是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。在Android Eclipse时代,我们使用的是Android Library,到了Android Studio时代,我们可以使用aar。
2. aar文件格式
在Android Eclipse时代,如果你有一个Android Library项目,可以很容易的导出jar文件,然后在其他项目中很方便的引用,aar和jar类似,区别就是一个Android Library项目导出的jar文件不能包含资源文件,比如一些drawable文件、xml资源等,所以这就有很大的限制,在gradle之前我们要引用带资源文件的Android Library必须要把整个library导入进来进行引用,但是有了gradle之后,Android Library项目可以直接导出成aar,然后其他项目像引用jar的方式直接方便的引用。aar文件其实是一个Android Library项目的二进制包。
aar文件(.zip)的格式如下。
- /AndroidManifest.xml (必须)
- /classes.jar (必须)
- /res/ (必须)
- /R.txt (必须)
- /assets/ (可选)
- /libs/*.jar (可选)
- /jni//*.so (可选)
- /proguard.txt (可选)
- /lint.jar (可选)
3. 导出aar文件
首先Android Library项目的gradle脚本的开头声明。
apply plugin: ‘com.android.library’
之后执行 ./gradlew assembleRelease,然后就可以在 build/outputs/aar 文件夹里生成aar文件;也可以build项目一次之后在/build/outputs/aar/文件夹下找到。
4. 引用aar文件
1)如果你的Android Studio版本是1.3以上的话,可以通过File -> New Module -> Import .JAR/.AAR,将aar导成一个library module,然后build.gradle里面添加如下依赖。
dependencies {
compileproject(‘:youProject’)
}
2)通过添加本地repositories 使用
首先将aar文件拷贝到libs目录(可以其他目录);然后在app的build.gradle配置文件中添加如下代码。
repositories {
flatDir {
dirs ‘libs’ //this way we can find the .aar file in libs folder
}
}
最后,在项目中引用是只需要在build.gradle文件中加入如下依赖。
dependencies {
compile(name:’youProject’, ext:’aar’)
}