Android studio版本3.0中,由compile改成了implementation,compile依赖关系已被弃用,被implementation和api替代。对于Kotlin的支持,在这个版本也有所体现,Kotlin插件默认是安装的。
dependencies {
implementation fileTree(dir:'libs',include: ['*.jar'])
}
好处:1. 加快编译速度。2. 隐藏对外不必要的接口。(前阵子修改了一个项目的引用,打出来的apk硬生生少了几兆,就因为把compile 修改为 implementation,很明显的结果)
在Google IO 相关话题的中提到了一个建议,就是依赖首先应该设置为implement的,如果没有错,那就用implement,如果有错,那么使用api指令,这样会使编译速度有所增快。
如上图,如果对 LibraryC 的依赖用的是 implementation 关键字,那么LibraryC 中的接口,仅仅只能给 LibraryA 使用,而我们的 App Moudle 是无法访问到 LibraryC 提供的接口的,也就是将该依赖隐藏在内部,而不对外部公开。这就是implementation关键字的作用。
这对于大型项目含有多个Moudle模块的, 以上图为例,比如我们改动LibraryC接口的相关代码,这时候编译只需要单独编译LibraryA模块就行, 如果使用的是api或者旧时代的compile,由于App Moudle也可以访问到LibraryC,所以App Moudle部分也需要重新编译。当然这是在全编的情况下。
作者:沐风雨木
链接:https://www.jianshu.com/p/f34c179bc9d0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。