AS升级到3.0后,
比如有两个module:app(主),example
compie可以替换为 implementation 或 api
- api 和compile的效果一样,你将所有的compile改成api,完全没有错。
- 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 对外开放调用
最后放两张图: