1. 前言
文章要实现一个目标,创建一个有三方依赖的 android aar 库,为后续其他技术作为一个基础铺垫。本文会使用第三方的 gradle 插件 fat-aar 来创建一个简单的一个依赖 okhttp 这个库的一个自定义 aar 库。
2. 库创建
使用 Android studio 创建项目,名为 DemoAAR。然后在该项目中创建库 libCommUI,步骤为:File -> New Module -> Android Library。
在 libCommUI 模块中引入 fat-aar 的插件。步骤如下:
- 在 DemoAAR 的 build.gradle 中添加依赖,这里要注意 fat-aar 和 Gradle Plugin、 Gralde 的版本的匹配情况,具体参考插件的说明。在集成的过程中有个问题,即插件目前最新版本是 1.3.x 版本,但是这个版本在构建后无法将依赖库打包进最终的 aar 中,其中的原因未知,所以使用 1.2.x 版本。
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.1'
classpath 'com.kezong:fat-aar:1.2.20'
}
}
- 在 libCommUI 中引入插件,build.gralde 的内容如下:
apply plugin: 'com.android.library'
boolean buildAAR = true
if (buildAAR) {
apply plugin: 'com.kezong.fat-aar'
}
android {
defaultConfig {
...
}
}
dependencies {
...
if (buildAAR) {
embed ('com.squareup.okhttp3:okhttp:3.12.1') {
}
} else {
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
}
}
if (buildAAR) {
configurations.embed.transitive = true
}
- 打包 libCommUI 库,打包后可以在 build/outputs/aar 下找到输出的 libCommUI-xxx.aar 库。
3. 测试
对打包完成的库 libCommUI.aar 进行测试。通过新建一个 android 项目,命名为 DemoUseLibCommUI。创建完成后引入 libCommUI 库:File -> New Module -> Import .JAR/.AAR package,选取 aar 所在文件,点击确定。
接下来给项目添加对 libCommUI 库的依赖:右键项目名 -> Open Module Settings,如下图。添加完成后可以正常的调用 libCommUI 提供的功能,样例:Example。