Android Studio 打包及引用 aar
Posted 牧秦丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio 打包及引用 aar相关的知识,希望对你有一定的参考价值。
android Studio 打包及引用 aar
1、 简述
在比较大的 Android 项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决,比如:
Gradle 的一些基本依赖配置方式如下:
compile fileTree(dir: 'xxx', include: ['*.jar', "*.xxx"])
:将某个目录下所有符合扩展名的文件作为依赖;compile 'com.xx.xx:ProjectName:Version':配置
Maven` 库作为依赖;在 Maven 库中心 可以搜索自己想用的库进行依赖;compile project(':AnotherModule')
:配置另一个 Module 作为本 Module 的依赖,被依赖的 Module 必须被导入到当前工程中;compile files('xxx.jar')
:配置某个 jar 包作为依赖。
看起来不错,基本通用的配置都已经存在了。一般对于中等小型的工程,这种开发方式完全没有问题。但是有时候 A 和 B 两个工程,想同时引用另一个公共的 Module C,而这个 Module 可能是一个比较复杂的 Android Module,可能包含了一些主题、UI 、资源文件等等,这时候,如果用 Module 依赖的方式来配置,不免有些困难,因为 A 和 B 都要导入 C,而且要随时关注 C 的更改。
好在 Android Studio 提供了 aar
库的打包方式,我们可以把 C 作为 library
进行打包,输出 aar 文件,然后在 A 和 B 中,配置 aar 库依赖,就可以解决。
2、aar 文件简介
要输出 aar 文件,必须将 Module 配置为 library,在 gradle 文件中如下:
- 输出 aar :
apply plugin: 'com.android.library'
; - 输出 apk :
apply plugin: 'com.android.application'
。
将 Module 配置为 library 后,构建输出一个 aar 文件,根据渠道和 BuildType 的不同,在相应的目录下可以找到。比如对 BuildType 为 debug 的配置,输出为:[ModuleName]/build/outputs/aar/[ModuleName]-debug.aar
。一份 aar 文件其实就是一份 zip 包,和 jar 不同的是,它将一些资源文件、第三方库文件、so 文件等等都打包在内,而代码文件编译后压缩在在 classes.jar
中。比如:
3、导入 aar 的方式引用
这种方式比较简单,打开 Project Structure
,添加一个新 Module,然后选择 Import *.JAR or *.AAR Package
的方式导入:
导入后,在你的工程下面,会生成一个文件夹,里面是 aar 文件以及 Android Studio 的配置文件。
接着可以在 gradle 中配置依赖了,其他 Module 可以引用这个 Module 了,依赖方式使用 compile project
的方式即可。
缺点:
被依赖的 aar 无法 F3 跟进去,无法看到资源文件内容以及目录层级等等缺陷。
4、使用配置依赖的方式引用
gradle 其实还有另一种依赖可以引用 aar:
compile(name: 'xxx', ext: 'aar')
。
首先需要将 aar 文件放入引用 Module 的 libs 目录下,和一般的 jar 文件类似。然后在 gradle 配置文件中把 libs 目录加入依赖:
repositories
flatDir
dirs 'libs'
接着在 gradle 的依赖配置中加入 compile(name: 'xxx', ext: 'aar')
这一句,依赖即可关联完毕。构建一下工程,在 Module 的 build/intermediates/exploded-aar
目录下,可以看到有一些临时文件生成:
看起来完全是引用 aar 的解压版本。Android Studio 安装反编译插件后,可以通过 F3 跟进到 class 文件里面,如果你有被依赖 Module 的源代码的话,还可以 Attach Source
关联源代码查看。另外,可以很方便的查看 aar 中的资源文件。
另外,这种依赖方式更新 aar 后,生成的临时文件也会随之变动,不用担心改动不同步的问题。
5、总结
综上,介绍了 aar 文件的生成方式,以及两种 aar 依赖的方式,经过实战检验,第二种通过配置 gradle 依赖的方式简单易用,只需一行代码即可搞定。
以上是关于Android Studio 打包及引用 aar的主要内容,如果未能解决你的问题,请参考以下文章