Android 模块化编程之引用本地的 aar
随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对 Android 开发最常见的就是 Android Library,在 Gradle 出现之前引用 Android Library 的方式也很繁琐,但是有了 Gradle 一切变得非常简单方便。
aar
何为 aar?大家都知道 jar 文件把,如果你有一个 Android Library 项目,可以很容易的导出 jar 文件,然后在其他项目中很方便的引用,aar 和 jar 类似,区别就是一个 Android Library 项目导出的 jar 文件不能包含资源文件,比如一些 drawable 文件、xml 资源文件之类的,所以这就有很大的限制,在 gradle 之前我们要引用带资源文件的 Android Library 必须要把整个 library 导入进来进行引用,但是有了 gradle 之后,Android Library 项目可以直接导出成 aar,然后其他项目像引用 jar 的方式直接方便的引用。
导出 aar
首先 Android Library 项目的 gradle 脚本只需要在开头声明
apply plugin: 'com.android.library'
之后就和导出 apk 文件一样的方法,执行 ./gradlew assembleRelease,然后就可以在 build/outputs/aar 文件夹里生成 aar 文件
引用本地的 aar
生成 aar 之后下一步就是如何引用本地的 aar 文件?本地的 aar 文件并没有像引用 jar 文件这么简单,官方也没有提供解决方案。好在国外的一些前辈总结出了方法,下面就以 test.aar 文件为例来详述下方法
1、把 aar 文件放在一个文件目录内,比如就放在 libs 目录内
2、在 app 的 build.gradle 文件添加如下内容
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
3、之后在其他项目中添加一句 gradle 依赖便方便的引用了该 library
dependencies {
compile(name:'test', ext:'aar')
}
以上方法亲测有效。
总结
当然通过 gradle 最普遍的方法是把 aar 上传到 mavenCentral 或者 jcenter,引用的话更方便,但是对于一些公司内部 library 不想公开,而传统的引用 library 方式又太繁琐,引用本地的 aar 文件这种方式会非常方便合适,之后通用的模块只需要做成 library,不管更新还是修改只需要打包成 aar,然后供其他项目使用就好了,对 Android 开发来说这是提升代码复用非常有效的一个手段。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论