一、依赖变化
3.0X版本相较于之前的2.0版本比较来说compile依赖改为了implementation。 旧版写法:
compile fileTree(dir: 'libs', include: ['*.jar'])
新版写法为:
implementation fileTree(dir: 'libs', include: ['*.jar'])
或
api fileTree(dir: 'libs', include: ['*.jar'])
二、区别
api
完全等同于
指令,没啥区别。
impementation
特点就是使用了该命令编译的依赖,依赖该项目的项目将无法访问该项目的任何程序,也就是该依赖会隐藏到内部,不对外公开。
示例
比如我在一个library中使用implementation依赖了gson库,然后我的主项目依赖了library,那么,我的主项目就无法访问gson库中的方法。这样的好处是编译速度会加快,推荐使用implementation的方式去依赖,如果你需要提供给外部访问,那么就只能使用api方式了。
在Google IO相关话题的中提到了一个建议,就是依赖首先应该设置为implementation的,如果没有错,那就用implementation,如果有错,那么使用api指令,这样会使编译速度增快。