0
点赞
收藏
分享

微信扫一扫

Gradle中implementation和api的区别

Greatiga 2022-01-26 阅读 107
gradle

api关键字与旧的compile关键字完全相同。因此,如果用api替换了所有的compile,是完全ok的。

区别:
api或compile关键字引用的包对于其他module来说是可见的
而implementation关键字引用的包对于其他module来说是不可见的

简单解释一下,有三个moudle:A、B、C
A依赖B,B依赖C
如果B依赖C是api形式,那么A是可以访问C的代码,即C对A是可见的
但是如果B依赖C是implementation形式,那么A不可以访问C的代码,即C对A不可见

为什么要这样区分?
一个是更好的解耦,将A和C完全解耦
另外一个是加快编译速度(其实也是解耦的作用),如果C对A可见,当C有变化,A和B都需要重新编译;而如果C对A不可见,当C变化了,只有B重新编辑即可。

举报

相关推荐

0 条评论