Android studio 多渠道多包名打包

在日常開發(fā)中我們經(jīng)常會有多渠道分發(fā)的需求休雌,那么如果針對每個渠道都打包一次那簡直是不舒服斯基到死假瞬,作為以“懶”作為標(biāo)簽的程序員群體镶苞,干這種重復(fù)性的工作喳坠,那感覺簡直不要太酸爽,簡直讓人分分鐘切腹宾尚。所以我們就會想能不能寫個腳本文件丙笋,我只干一次打包的活,所有渠道的包都能生成好煌贴。很明顯是可以的御板,要不然這不是打作者的臉嗎!為了不被打臉——我轉(zhuǎn)載引用一下各位前輩大神的博客(謝謝各位前輩和大神為了不讓我被打臉?biāo)龀龅耐怀鲐暙I(xiàn)牛郑,謝謝5±摺)
Android Studio系列教程六--Gradle多渠道打包
ok,這就一定程度上解決了我們多渠道打包的需求淹朋,但是現(xiàn)在我有一個新的需求:針對不同的渠道需要使用不同的包名笙各,加載不同的資源,源碼使用差異化的實(shí)現(xiàn)础芍。
有得童鞋可能就要說了杈抢,你這包名都不一致,還需要加載不同的資源仑性,源碼還需要差異化實(shí)現(xiàn)惶楼,這簡直就是不同的App了。那我們就用不同的項(xiàng)目來處理這個需求就好了诊杆。但是我們仔細(xì)想一想歼捐,這種方式只適合于不做迭代升級的“一錘子買賣”,如果需要迭代升級晨汹,那酸爽我想應(yīng)該誰用誰知道豹储。
好吧,有需求我們肯定得想辦法去解決淘这,那么今天我就跟大家聊聊剥扣,怎么在一個項(xiàng)目中實(shí)現(xiàn)Android多渠道打包,而且這些渠道的資源和源碼實(shí)現(xiàn)上還存在一定差異化(說到這里铝穷,可能有些朋友又想到了一個新方案朦乏,將共有部分提取出來作為一個SDK而存在,每個渠道都去引用這個SDK 氧骤,這可能在一定程度能解決我們存在的問題,但是有點(diǎn)殺雞用牛刀吃引。我們姑且不談)筹陵。
我們先來看看設(shè)置多渠道后的效果:
我們在app的build.gradle文件中加入如下代碼:

productFlavors {
        publicVersion {
            applicationId "com.york.pub"
        }
        customVersion {
            applicationId "com.york.custom"
        }
        TestVersion {
            applicationId 'com.york.test'
        }
    }

我們可以看到如下效果

這里寫圖片描述

也就是說生成了debug和release都有了三個渠道刽锤,而且每個渠道使用不同的包名。這個可以說在一定程度上解決了我們多包名打包的問題朦佩。但是如果使用不同的包名并思,一般情況下我們都會在不同的渠道下有著特殊的要求——資源文件的差異性和某些特定頁面的代碼邏輯差異性。這個問題好像有些棘手语稠,我們可以考慮做這樣一個嘗試:因?yàn)槲覀兊脑创a和資源文件都是在src目錄下宋彼,那么我們是不是可以在src目錄下針對不同的渠道建立不同的文件夾,并且通過某種方法在編譯和打包時(shí)指定某個渠道使用某個目錄下的源代碼和資源文件仙畦。那么就變成了這樣一個狀態(tài):
這里寫圖片描述

我們對比一下在android studio main目錄下文件夾
這里寫圖片描述

到這里我們基本可以得出我們這種實(shí)踐是可行的的結(jié)論输涕,因?yàn)檫@兩個目錄的文件夾的顏色和標(biāo)識是一致的,也就是說android studio識別我們這種做法慨畸。那么我們試下切換一下渠道莱坎,看看是不是與我們預(yù)想的一致
這里寫圖片描述

到這里我們可以確定這個方案是可行的了。至于具體的測試和驗(yàn)證就留給各位童鞋自己去做了寸士,我這邊就不湊字?jǐn)?shù)了檐什。在這里我給大家?guī)讉€我在測試和使用過程中的幾點(diǎn)發(fā)現(xiàn):
1、文件夾名稱一定要跟我們在build.gradle文件中定義的渠道名一致弱卡,否則不被識別
2乃正、編譯時(shí)加載的源代碼文件和資源文件是main目錄和對應(yīng)的渠道目錄的并集,對于資源文件會優(yōu)先加載對應(yīng)渠道目錄下的資源文件婶博,對于源碼文件而言瓮具,包結(jié)構(gòu)需要于main目錄一致(不需要用到的包可以沒有),并且在渠道文件夾中凡蜻,需要做邏輯改變的文件應(yīng)該區(qū)別的放到各對應(yīng)渠道文件夾的對應(yīng)包名中搭综,同時(shí)不應(yīng)該在main目錄中保持有與渠道文件中相同文件名的文件(所在包也一致)
3、 渠道定義時(shí)同樣可以定義除包名外的其他區(qū)分屬性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末划栓,一起剝皮案震驚了整個濱河市兑巾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忠荞,老刑警劉巖蒋歌,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異委煤,居然都是意外死亡堂油,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進(jìn)店門碧绞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來府框,“玉大人,你說我怎么就攤上這事讥邻∑染福” “怎么了院峡?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長系宜。 經(jīng)常有香客問我照激,道長,這世上最難降的妖魔是什么盹牧? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任俩垃,我火速辦了婚禮,結(jié)果婚禮上汰寓,老公的妹妹穿的比我還像新娘口柳。我一直安慰自己,他們只是感情好踩寇,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布啄清。 她就那樣靜靜地躺著,像睡著了一般俺孙。 火紅的嫁衣襯著肌膚如雪辣卒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天睛榄,我揣著相機(jī)與錄音荣茫,去河邊找鬼。 笑死场靴,一個胖子當(dāng)著我的面吹牛啡莉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旨剥,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼咧欣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了轨帜?” 一聲冷哼從身側(cè)響起魄咕,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚌父,沒想到半個月后哮兰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苟弛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年喝滞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膏秫。...
    茶點(diǎn)故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡右遭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狸演,我是刑警寧澤言蛇,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站宵距,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吨拗。R本人自食惡果不足惜满哪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劝篷。 院中可真熱鬧哨鸭,春花似錦、人聲如沸娇妓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哈恰。三九已至只估,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間着绷,已是汗流浹背蛔钙。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荠医,地道東北人吁脱。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像彬向,于是被迫代替她去往敵國和親兼贡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評論 2 359

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,282評論 25 707
  • 在日常開發(fā)中我們經(jīng)常會有多渠道分發(fā)的需求娃胆,那么如果針對每個渠道都打包一次那簡直是不舒服斯基到死遍希,作為以“懶”作為...
    耿直boy閱讀 767評論 1 3
  • 這一章主要針對項(xiàng)目中可以用到的一些實(shí)用功能來介紹Android Gradle,比如如何隱藏我們的證書文件缕棵,降低風(fēng)險(xiǎn)...
    acc8226閱讀 7,644評論 3 25
  • 文by小胖 剛送走TT孵班,心里除了不舍,更多的則是難過招驴。感覺好像來了外地以后篙程,每一次有朋友過來,我都很激動别厘。而相逢就...
    叫小胖閱讀 342評論 2 2
  • 文/張敏 表妹開書店已近四年了虱饿,店面不大,但被打理的溫馨而又整潔,適合學(xué)生閱讀的小說氮发、故事...
    禹鄉(xiāng)墨韻書畫閱讀 819評論 4 8