Android gradle provided重抖、implementation等指令注意點(diǎn)

其實(shí)這類(lèi)文章博客網(wǎng)上一搜一大堆露氮,但有些地方可能說(shuō)的不太清楚(都一樣的內(nèi)容,抄襲太嚴(yán)重)钟沛,這里只是做個(gè)精簡(jiǎn)的總結(jié)和一些其他地方?jīng)]提到的點(diǎn)畔规。

一、Android Studio 3.0開(kāi)始使用了新的指令讹剔,原來(lái)的很多被棄用了油讯,總的來(lái)說(shuō)是為了加快構(gòu)建編譯速度。

下面是一個(gè)總結(jié)表格:

Android Studio 2.X Android Studio 3.X
apk runtimeOnly
provided compileOnly
compile api
沒(méi)有對(duì)應(yīng) implementation
debugCompile debugImplementation
releaseCompile releaseImplementation
androidTestCompile androidTestImplementation

需要解釋的主要是implementation系列指令:

implementation:注意compile是和api對(duì)應(yīng)的延欠,效果相同陌兑。implementation的區(qū)別在于對(duì)外可見(jiàn)性,而且可以加快編譯速度(原理在于減少不必要的重復(fù)編譯過(guò)程)由捎。舉個(gè)例子如下:

A module 依賴 B module兔综,B 依賴 C module。
Android Studio 2.X使用compile:
A compile B
B compile C
A module不僅可以引用B module狞玛,還可以引用C module的接口和類(lèi)软驰。
Android Studio 3.X使用implementation:
A implementation B
B implementation C
A module只可以引用B module,不可以引用C module心肪。C 對(duì) A 是不可見(jiàn)的锭亏!

簡(jiǎn)單來(lái)說(shuō),從Android Studio 3.X開(kāi)始硬鞍,依賴首先應(yīng)該設(shè)置為implement慧瘤,如果沒(méi)有錯(cuò),那就用implement固该,如果有錯(cuò)锅减,那么使用api指令,這樣會(huì)使編譯速度有所增快伐坏。(就這樣理解夠了怔匣,很多文章又是畫(huà)圖又是長(zhǎng)篇大論的,完全沒(méi)有必要桦沉,本來(lái)就不是多么復(fù)雜的東西)每瞒。

二金闽、provided(compileOnly)和compile(api)區(qū)別

按照幾乎所有文章的說(shuō)法:

provided只提供編譯支持,但是不會(huì)寫(xiě)入apk剿骨。使用provide可以避免支持包版本沖突和重復(fù)打包導(dǎo)致安裝包體積徒增呐矾。

但就我的實(shí)踐來(lái)說(shuō)(支持包V7,V4之類(lèi)):

1、不使用provided也不會(huì)導(dǎo)致支持包重復(fù)懦砂,依賴module編譯出來(lái)的aar并不包含那些多個(gè)module(包括app module)重復(fù)使用的支持包。

2组橄、如果依賴module使用的style中引用了支持包(V7,V4之類(lèi)的)中的主題荞膘,那么,使用provided會(huì)報(bào)錯(cuò)(找不到主題資源)玉工。如果只是引用支持包中的類(lèi)和接口是可以使用provided的(但意義也不大羽资,反正也不會(huì)重復(fù))。

3遵班、可能直接引用jar包的方式會(huì)重復(fù)把屠升,但現(xiàn)在這種場(chǎng)景不多了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狭郑,一起剝皮案震驚了整個(gè)濱河市腹暖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翰萨,老刑警劉巖脏答,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異亩鬼,居然都是意外死亡殖告,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)雳锋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)黄绩,“玉大人,你說(shuō)我怎么就攤上這事玷过∷ぃ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵冶匹,是天一觀的道長(zhǎng)习劫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)嚼隘,這世上最難降的妖魔是什么诽里? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮飞蛹,結(jié)果婚禮上谤狡,老公的妹妹穿的比我還像新娘灸眼。我一直安慰自己,他們只是感情好墓懂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布焰宣。 她就那樣靜靜地躺著,像睡著了一般捕仔。 火紅的嫁衣襯著肌膚如雪匕积。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天榜跌,我揣著相機(jī)與錄音闪唆,去河邊找鬼。 笑死钓葫,一個(gè)胖子當(dāng)著我的面吹牛悄蕾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播础浮,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼帆调,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了豆同?” 一聲冷哼從身側(cè)響起番刊,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎影锈,沒(méi)想到半個(gè)月后撵枢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡精居,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年锄禽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靴姿。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沃但,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出佛吓,到底是詐尸還是另有隱情宵晚,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布维雇,位于F島的核電站淤刃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吱型。R本人自食惡果不足惜逸贾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铝侵,春花似錦灼伤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至疟丙,卻和暖如春颖侄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背享郊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工发皿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拂蝎。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像惶室,于是被迫代替她去往敵國(guó)和親温自。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理皇钞,服務(wù)發(fā)現(xiàn)悼泌,斷路器,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評(píng)論 25 707
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,810評(píng)論 6 342
  • 他們分手了。 因?yàn)樗?dú)立可柿。獨(dú)立到讓他害怕鸠踪。 異地相戀最害怕什么?猜忌复斥。 她不會(huì)告訴他营密,她的工作如何不順心,她的同...
    渠六億閱讀 1,110評(píng)論 8 10