Android 模块化编程之引用本地的 aar

发布于 2024-04-02 22:57:04 字数 1551 浏览 53 评论 0

随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

家住魔仙堡

暂无简介

文章
评论
26 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文