AS升級(jí)到3.0后,
比如有兩個(gè)module:app(主),example
compie可以替換為 implementation 或 api
- api 和compile的效果一樣,你將所有的compile改成api,完全沒(méi)有錯(cuò)。
- implementation 是指你所依賴的各種lib各種jar包只能在當(dāng)前module下使用;
換句話說(shuō),你app可以調(diào)用我example里的任何方法,但是你調(diào)用不了我example所依賴的各種包的方法
implementation
如果我在 example 的build.gradle里 implementation fileTree(dir: 'libs', include: ['.jar'])*,
你會(huì)發(fā)現(xiàn) app里調(diào)用不了example 里的libs的那些類
api
在example的build.gradle里用的是api fileTree(dir: 'libs', include: ['.jar'])*,這樣app就能調(diào)用example里所依賴的那些libs
總結(jié):module所依賴的包 implementation不對(duì)外開放調(diào)用,api 對(duì)外開放調(diào)用
最后放兩張圖:
用的是api,module間‘可以’互相調(diào)用其所依賴的庫(kù)
使用implementation,module間‘不可’互相調(diào)用其所依賴的庫(kù)