原标题:弄懂Gradle依赖 Android依赖导入全攻略
本文作者
作者:大头呆
链接:
https://juejin.im/post/5acd6daaf265da238a30ca73
本文由作者授权发布。
在我们开发安卓项目的时候,不会所有的功能都自己去造轮子,经常要使用到各种的其他包,其中有谷歌给我们提供的各种support包,也有各种第三方的功能库,有时候我们自己也会将一些功能封装成包。这些包存在和导入的形式也多种多样,有远程仓库的,有直接拷贝到本地的,jar包、aar包、so包等。所幸我们都可以在主工程和各个Module的build.gradle里进行统一管理。本文将在Android Studio3.0环境下来汇总下这些用法。
1
预备知识
先来看下Android Gradle plugin 3.0几个引入依赖的方法:
Implementation
对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。
使用implementation会使编译速度有所增快:比如我在一个library中使用implementation依赖了gson库,然后我的主项目依赖了library,那么,我的主项目就无法访问gson库中的方法。这样的好处是编译速度会加快,我换了一个版本的Gson库,但只要library的代码不改动,就不会重新编译主项目的代码。
api
等同于compile指令
compileOnly
等同于provided,只在编译时有效,不会参与打包,不会包含到apk文件中。可以用来解决重复导入库的冲突(下文会提到)。
更多细节内容可以看下这篇文章
https://blog.csdn.net/silenceoo/article/details/78735687
2
远程仓库依赖
我们先来看下主工程下的build.gradle文件
build {
ext.kotlin_version = '1.1.51'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE:Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects