Android studio3.0以后的更新,组件化时依赖的添加implementation关键字

Android studio版本3.0,该版本gradle编译速度有所加速,完全支持Java8。
Kotlin插件默认是安装的。

3.0弃用了compile方式改用:

api:跟 2.x 版本的 compile完全相同
implementation:使用了该命令编译的依赖,它仅仅对当前的Module提供接口。

 

什么意思呢

有一个libA被libB用implementation方式添加依赖,libB被appMoudle添加依赖。那么libA中的API只能被libB使用,appMoudle是拿不到libA的接口使用权的。

相当于军队中下级只服从自己上级,不会出现越级指挥的情况。

同时对于模块化时,依赖support版本不一致产生的冲突也有帮助

 

这么做有啥好处呢?

1、编译速度加快

上述你改了libA中的代码,按照以前的臭脾气,会把所有代码都编译一遍,差一点的电脑5-6分钟很平常

但是implementation关键字会在你更改libA中代码时不会再编译appMoudle这一层,只会到编译到libB这一层

想想,如果组件化项目比较大,这样会少编译多少代码。happy

2、隐藏对外暴露接口

使用implementation关键字的依赖,只服务与它的上级,代码耦合度又被降(复)低(杂)了。刺激

 

 

你可能感兴趣的:(Android studio3.0以后的更新,组件化时依赖的添加implementation关键字)