在开发中,我们经常使用compile,api,implementation引入库,这三种是有区别的。
1 api和compile
api和compile关键字作用效果是一样的,使用时可以互相替换。
实际上,api关键字是用来替代compile关键字的,因为compile关键字将来会被弃用。在高版本的gradle,使用compile关键字会报错并提示使用api关键字代替。
2 implementation
在同一个module下,implementation和api(compile)的使用效果相同,但是在不同module下,就会有所区别了。
例如项目moduleA的gradle文件中引用两个包
implementation 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
然后在appmodule中引用moduleA
compile project(':moduleA')
这时,在appmodule中可以访问以compile方式引入的design包,而不可以访问appcompat包里的类。