Gradle依赖方式

有时候,人就得狠狠抽自己个大嘴巴子,不然自己不抽总会有人替你抽。

                                                                                                                                                                            ----泰语心说

        近期我们将开发一个新闻SDK供中兴公司使用,以后也将供给其他三方公司使用。为了使SDK的通用型更强,减少与三方依赖库的冲突,有必要好好了解下Android 中库依赖的方式。

Android Studio 2.x 和 3.x 中的依赖方式发生了些许的变化,

 

主要变动:

  • implementation 和 api 代替了compile;
  •  compileOnly 代替了 provided
  •  runtimeOnly 代替了 apk;

记重点:

compile(2.x):
该方式依赖的库将会参与编译和打包。


implementation(3.x):

该依赖方式所依赖的库不会传递,只会在当前module中生效。例如我在一个common module 中使用 implementation 依赖了一个 SmartRefreshLayout 库,然后 APP 模块依赖了 common module 这个模块,但是APP 模块是不能使用 SmartRefreshLayout 库的。如果,APP 模块也得使用 SmartRefreshLayout 库,那么就得使用 api 依赖了。


api(3.x)和 2.x 版本中的 compile 用法完全一样

该依赖方式会传递所依赖的库,当其他module依赖了该module时,可以使用该module下使用api依赖的库。


compileOnly:provided

只在编译时有效,不会参与打包。当我们做 SDK 时,为了防止 com.android.support 包冲突时,可以在 SDK 的module 中使用 compileOnly 或者 provided 对com.android.support 进行引用。当然,前提时使用你SDK的module 必须依赖了 com.android.support 包。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值