Android 多渠道定制化打包

這里要用到 productFlavors ,productFlavors 可以用來(lái)自定義應(yīng)用構(gòu)建版本

1.區(qū)分渠道尔艇,使用對(duì)應(yīng)的包名

在 build.gradle文件中 android 目錄下添加 以下代碼即可

  productFlavors {

         //默認(rèn),不設(shè)置 applicationId ,繼承 defaultConfig 中的配置
        flavors_default  {
          
        }
    
        //開(kāi)發(fā)版本, applicationId 替換為 com.xxx.dev
        flavors_dev  {
            applicationId "com.xxx.dev"
         
        }
         //發(fā)布版本, applicationId 替換為 com.xxx.release
        flavors_release  {
            applicationId "com.xxx.release"
      
        }
    }
  

2.區(qū)分渠道报腔,使用對(duì)應(yīng) App名稱(chēng)蜈彼,應(yīng)用圖標(biāo),常量 ,圖片資源等

  • 替換 AndroidManifest.xml 中的屬性

該方案通過(guò)在 AndroidManifest.xml 文件中 application 標(biāo)簽下指定 <mate-data> 設(shè)置占位符來(lái)實(shí)現(xiàn)動(dòng)態(tài)替換屬性值总滩。

在 build.gradle文件中

注:此方式可以能會(huì)引起異常如下

Error:Execution failed for task ':app:processDebugManifest'.
>Manifest merger failed with multiple errors, see logs  

此問(wèn)題產(chǎn)生原因大概有三個(gè):

1.清單文件有錯(cuò),這種錯(cuò)不會(huì)在編譯時(shí)指出來(lái),當(dāng)然as中還是可以看到的

2.引入的三方包存在相同的label icon 等名字

解決:清單文件用tools

然后添加 replace字段
如 tools:replace="icon,label" 即可

  • 替換 資源文件 drawable,String,assets目錄下的文件等

在 main 的同級(jí)目錄下創(chuàng)建以渠道名命名的文件夾纲堵,然后創(chuàng)建資源文件(路徑要與 main 中的一致),然后打包的時(shí)候 gradle 就會(huì)自己替換或者合并資源闰渔。

例如席函, App 的默認(rèn) icon 路徑為 main\res\mipmap-hdpi\ic_launcher.png ,那么 flavors_dev的路徑就為 flavors_dev\res\mipmap-hdpi\ic_launcher.png 冈涧,打包 flavors_dev 渠道的時(shí)候會(huì)自動(dòng)替換圖片茂附。同理assets中文件如下:

  • 區(qū)分渠道正蛙,動(dòng)態(tài)修改指定的常量

使用 BuildConfig 的變量
當(dāng)我們定義如下字段之后,編譯后自動(dòng)生成文件营曼,在 app/build/source/BuildConfig/dev/com.xxx.dev/BuildConfig 目錄乒验,
打開(kāi)這個(gè)文件,我們就能看到我們所定義的字段了蒂阱。

1.設(shè)置字段 使用 buildConfigField

設(shè)置好后編譯一下锻全,咦,什么鬼录煤,怎么出錯(cuò)了鳄厌?

明明設(shè)置的字符串怎么會(huì)這樣,好了這是我們需要注意的地方妈踊,設(shè)置值需要這樣寫(xiě)

它的意思是 "default" 這個(gè)整體是屬于一個(gè)字符串,然后在編譯一下

恩了嚎,ok

2.使用字段

3.使用Gradle命令打包

常用命令 看這里

  • gradlew assembleDebug

    打包所有渠道的 debug 版本

  • gradlew assembleRelease

    打包所有渠道的 release 版本

  • gradlew assembleflavors_devRelease

    單獨(dú)打包 flavors_dev 的 release 版本

  • gradlew assembleflavors_devDebug

    單獨(dú)打包 flavors_dev 的 Debug 版本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市响委,隨后出現(xiàn)的幾起案子新思,更是在濱河造成了極大的恐慌,老刑警劉巖赘风,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異纵刘,居然都是意外死亡邀窃,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)假哎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瞬捕,“玉大人,你說(shuō)我怎么就攤上這事舵抹》净ⅲ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵惧蛹,是天一觀的道長(zhǎng)扇救。 經(jīng)常有香客問(wèn)我,道長(zhǎng)香嗓,這世上最難降的妖魔是什么迅腔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮靠娱,結(jié)果婚禮上沧烈,老公的妹妹穿的比我還像新娘。我一直安慰自己像云,他們只是感情好锌雀,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布蚂夕。 她就那樣靜靜地躺著,像睡著了一般腋逆。 火紅的嫁衣襯著肌膚如雪婿牍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,158評(píng)論 1 308
  • 那天闲礼,我揣著相機(jī)與錄音牍汹,去河邊找鬼。 笑死柬泽,一個(gè)胖子當(dāng)著我的面吹牛慎菲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锨并,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼露该,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了第煮?” 一聲冷哼從身側(cè)響起解幼,我...
    開(kāi)封第一講書(shū)人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎包警,沒(méi)想到半個(gè)月后撵摆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡害晦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年特铝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壹瘟。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鲫剿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稻轨,到底是詐尸還是另有隱情灵莲,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布殴俱,位于F島的核電站政冻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粱挡。R本人自食惡果不足惜赠幕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望询筏。 院中可真熱鬧榕堰,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至魏蔗,卻和暖如春砍的,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莺治。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工廓鞠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谣旁。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓床佳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親榄审。 傳聞我的和親對(duì)象是個(gè)殘疾皇子砌们,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

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

  • 最近在項(xiàng)目中遇到需要實(shí)現(xiàn) Apk 多渠道、定制化打包搁进, Google 浪感、百度查找了一些資料,成功實(shí)現(xiàn)了上述功能饼问,在...
    看一季殘花落幕閱讀 2,500評(píng)論 1 8
  • 版權(quán)聲明:本文為博主原創(chuàng)文章影兽,未經(jīng)博主允許不得轉(zhuǎn)載。 最近在項(xiàng)目中遇到需要實(shí)現(xiàn) Apk 多渠道莱革、定制化打包赢笨, Go...
    牙鍋?zhàn)?/span>閱讀 6,041評(píng)論 3 33
  • 這一章主要針對(duì)項(xiàng)目中可以用到的一些實(shí)用功能來(lái)介紹Android Gradle,比如如何隱藏我們的證書(shū)文件驮吱,降低風(fēng)險(xiǎn)...
    acc8226閱讀 7,644評(píng)論 3 25
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,264評(píng)論 25 707
  • 我可以學(xué),簡(jiǎn)單幾個(gè)字萧吠。給人的感覺(jué)卻大不相同左冬。就像我能,一樣給人充滿希望纸型,充滿活力拇砰。 可以透過(guò)現(xiàn)象看本質(zhì)。世上本無(wú)難事狰腌。
    幸福的眼淚_52da閱讀 131評(píng)論 0 1