Android Studio 中利用 Gradle 開發(fā)多渠道版本配置步驟

前言

在 Android 開發(fā)中,我們的一個(gè)項(xiàng)目可能需要針對(duì)不同的上架市場或者對(duì)多個(gè)客戶進(jìn)行定制蒿柳,比如 logo 的修改漩蟆,歡迎頁圖片的不同,或者是業(yè)務(wù)邏輯的不同圾叼。</br>
但是不管是哪個(gè)版本捺癞,通用的代碼是占多數(shù)的,用多個(gè) Project + svn 進(jìn)行管理可以實(shí)現(xiàn)撬码,但是有些難管理版保。
其實(shí)在 Android Studio 中夫否,通過 Gradle 配置不同的 productFlovers 可以輕松解決這個(gè)難題凰慈。

需求

在一個(gè) Project 中實(shí)現(xiàn)對(duì)多渠道多版本的同一 App 進(jìn)行管理驼鹅,并可以配置差異項(xiàng)。

解決方法

  • 新建一個(gè) Project 豺型,在 moudle 的 build.gralde 文件中添加 productFlavors

添加productFlavors.png

其中 applicationIdSuffix 是包名后綴姻氨,會(huì)在打包時(shí)將 applicationId 定義好的包名后面加上 applicationIdSuffix 定義的內(nèi)容剪验,如本來包名為 com.asura.productflavorsdemo,加上后綴 .debug 后就變?yōu)?com.asura.productflavorsdemo.debug 娶眷。</br>
這么做是為了在測試階段可以在一部手機(jī)上同時(shí)安裝所有渠道包的 app啸臀,在正式發(fā)布時(shí),為了防止客戶從不同渠道下載安裝出現(xiàn)多個(gè)席揽,建議包名不要隨意加后綴谓厘,應(yīng)注釋掉竟稳。</br>
添加完成之后,我們可以重新編譯一下項(xiàng)目他爸,發(fā)現(xiàn)在 Android Studio 主界面左下角(具體位置跟你的設(shè)置有關(guān))的 Build Variants 窗口中多了一些 variant 诊笤,正好就是對(duì)應(yīng)我們之前定義的 productFlavors 。

Build Variants.png

  • 在 moulde 中的 src 文件夾下新建與 productFlavors 中定義的不同渠道名稱一致的文件夾

創(chuàng)建productFlavors對(duì)應(yīng)的文件夾.png

_debug_AAA 中的 JumpActivity 代碼不同鄙煤,所以從 main 中抽離出來(在
main 中相同包中不能出現(xiàn) JumpActivity茶袒,否則報(bào)錯(cuò))。MainActivity 是不同版本之間一樣的亡资,所以仍然放在main中向叉。</br>
java 文件夾中的文件,在其他版本和 main 中不能同時(shí)存在旷太,否則會(huì)報(bào)錯(cuò)销睁。而 res 文件夾中的文件可以同時(shí)存在存崖,其他版本會(huì)覆蓋 mian 中的文件。
我們還可以針對(duì)不同的版本配置 AndroidManifest.xml 清單文件来惧,它會(huì)與 main 清單文件中定義的內(nèi)容合并供搀。</br>
了解了這些,我們對(duì)不同版本的配置就很簡單了葛虐。比如不同版本的 app 圖標(biāo)不同屿脐,只需要在不同版本的 res\mipmap-xxx 文件夾中放入相同的名稱的不同圖片即可。如果需要不同版本的 app 名稱不同万栅,只需要在不同版本的 res\value 文件夾中的 strings.xml 中放入相同的名稱的不同 value 即可西疤。

示例Demo源碼下載

在這個(gè) demo 中,分別有四個(gè)不同的版本代碼需要管理扰她,可以 clone 下來自己操作一遍。

選擇不同的 varaint 來編譯所需代碼.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載义黎,如需轉(zhuǎn)載請通過簡信或評(píng)論聯(lián)系作者禾进。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市廉涕,隨后出現(xiàn)的幾起案子泻云,更是在濱河造成了極大的恐慌,老刑警劉巖狐蜕,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宠纯,死亡現(xiàn)場離奇詭異,居然都是意外死亡层释,警方通過查閱死者的電腦和手機(jī)婆瓜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來廉白,“玉大人,你說我怎么就攤上這事乖寒『秕澹” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵楣嘁,是天一觀的道長磅轻。 經(jīng)常有香客問我,道長逐虚,這世上最難降的妖魔是什么聋溜? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮叭爱,結(jié)果婚禮上撮躁,老公的妹妹穿的比我還像新娘。我一直安慰自己买雾,他們只是感情好馒胆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凝果,像睡著了一般祝迂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上器净,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天型雳,我揣著相機(jī)與錄音,去河邊找鬼。 笑死纠俭,一個(gè)胖子當(dāng)著我的面吹牛沿量,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冤荆,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼朴则,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钓简?” 一聲冷哼從身側(cè)響起乌妒,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎外邓,沒想到半個(gè)月后撤蚊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡损话,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年侦啸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丧枪。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡光涂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拧烦,到底是詐尸還是另有隱情顶捷,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布屎篱,位于F島的核電站,受9級(jí)特大地震影響葵蒂,放射性物質(zhì)發(fā)生泄漏交播。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一践付、第九天 我趴在偏房一處隱蔽的房頂上張望秦士。 院中可真熱鬧,春花似錦永高、人聲如沸隧土。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽曹傀。三九已至,卻和暖如春饲宛,著一層夾襖步出監(jiān)牢的瞬間皆愉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留幕庐,地道東北人久锥。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像异剥,于是被迫代替她去往敵國和親瑟由。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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

  • Android Gradle為我們提供了大量的DSL冤寿,我們使用這些DSL定義配置我們的工程以滿足我們項(xiàng)目中不同的需...
    acc8226閱讀 968評(píng)論 0 7
  • 最近在項(xiàng)目中遇到需要實(shí)現(xiàn) Apk 多渠道歹苦、定制化打包, Google 疚沐、百度查找了一些資料暂氯,成功實(shí)現(xiàn)了上述功能,在...
    看一季殘花落幕閱讀 2,492評(píng)論 1 8
  • 當(dāng)你在開發(fā)一個(gè)app,通常你會(huì)有幾個(gè)版本亮蛔。大多數(shù)情況是你需要一個(gè)開發(fā)版本痴施,用來測試app和弄清它的質(zhì)量,然后還需要...
    雪殘閱讀 408評(píng)論 0 0
  • 當(dāng)你在開發(fā)一個(gè)app,通常你會(huì)有幾個(gè)版本究流。大多數(shù)情況是你需要一個(gè)開發(fā)版本辣吃,用來測試app和弄清它的質(zhì)量,然后還需要...
    justCode_閱讀 427評(píng)論 0 2
  • 版權(quán)聲明:本文為博主原創(chuàng)文章芬探,未經(jīng)博主允許不得轉(zhuǎn)載神得。 https://blog.csdn.net/zhaoyanj...
    勤奮的pangdunhu閱讀 2,032評(píng)論 0 1