Gradle中的api和implementation的区别
api 和 implementaion主要是解决多个module依赖时的重复编译问题。
设想我们有如下的结构
app -> lib1 -> lib2
即app依赖于lib1,而lib1 则依赖于lib2.
如果我们在app的gradle的依赖中加入
api lib1 or implementation lib1
而在lib1中使用
api lib2
那么如果lib2有了改变,则会导致app的重新编译,因为此时app可以感知到ib2的改变,lib2的改变是有传导性的。
而如果我们在lib1中使用
implementation lib2
那么lib2的改变只会影响到lIb1,而不会再影响到app的编译。
为了方便理解,画了以下一张图来解释。
参考链接https://stackoverflow.com/questions/44413952/gradle-implementation-vs-api-configuration