AS升级3.0依赖方式的改变,implement、api 和compile区别

AS升级到3.0后,

比如有两个module:app(主)example

compie可以替换为 implementationapi

  1. api 和compile的效果一样,你将所有的compile改成api,完全没有错。
  2. implementation 是指你所依赖的各种lib各种jar包只能在当前module下使用;
    换句话说,你app可以调用我example里的任何方法,但是你调用不了我example所依赖的各种包的方法

implementation

如果我在 example 的build.gradle里 implementation fileTree(dir: 'libs', include: ['.jar'])*,
你会发现 app里调用不了example 里的libs的那些类

api

example的build.gradle里用的是api fileTree(dir: 'libs', include: ['.jar'])*,这样app就能调用example里所依赖的那些libs

总结:module所依赖的包 implementation不对外开放调用,api 对外开放调用

最后放两张图:


用的是api,module间‘可以’互相调用其所依赖的库
使用implementation,module间‘不可’互相调用其所依赖的库
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容