關(guān)于Android多渠道打包的進(jìn)階知識(shí)
多渠道打包進(jìn)階知識(shí)
文章開(kāi)始前,先看一下下面這種情況:
android { productFlavors { //100 個(gè)多渠道配置 } //多渠道簽名的配置 signingConfigs { xiaomi { storeFile file("../xiaomi.keystore") storePassword 'xiaomi' keyAlias 'xiaomi' keyPassword 'xiaomi' v1SigningEnabled true v2SigningEnabled true } huawei { storeFile file("../huawei.keystore") storePassword 'huawei' keyAlias 'huawei' keyPassword 'huawei' v1SigningEnabled true v2SigningEnabled true } } buildTypes { debug { // debug這里設(shè)置不起作用,可能是編譯器的問(wèn)題? // productFlavors.xiaomi.signingConfig signingConfigs.test // productFlavors.huawei.signingConfig signingConfigs.test } release { productFlavors.xiaomi.signingConfig signingConfigs.xiaomi productFlavors.huawei.signingConfig signingConfigs.huawei //....100 個(gè)簽名配置 } } //不同渠道不同資源文件配置 sourceSets{ xiaomi.res.srcDirs 'src/main/res-xiaomi' huawei.res.srcDirs 'src/main/res-huawei' xxx.res.srcDirs 'src/main/res-xxx' xxx.res.srcDirs 'src/main/res-xxx' xxx.res.srcDirs 'src/main/res-xxx' //....100 個(gè)資源文件配置 } //不同渠道不同的依賴文件 dependencies { xiaomiApi('xxxxxxx') huaweiImplementation('xxxxxxxx') xxxApi('xxxxxxx') xxxApi('xxxxxxx') xxxApi('xxxxxxx') //....100 個(gè)渠道不同依賴配置 } }
不難發(fā)現(xiàn),當(dāng)渠道比較多的時(shí)候,不同渠道不同的配置就會(huì)很繁瑣,有沒(méi)有更方便的方法呢?答案是肯定的。
資源文件配置
sourceSets{ def sets = getSourceSets()//獲取資源設(shè)置集合 productFlavors.all{//遍歷多渠道 if('huawei'.equals(name))//針對(duì)特殊的渠道做特殊處理 sets.getByName(name).res.srcDir 'src/main/res-xxx' else sets.getByName(name).res.srcDir 'src/main/res-'+name //相當(dāng)于 xiaomi.res.srcDir 'src/main/res-xiaomi' // huawei.res.srcDir 'src/main/res-huawei' // ..... } }
依賴配置
def dependenMap =[xiaomi: 'xiaomi依賴', huawei: 'huawei依賴', ... xxx: 'xxx 依賴'] dependencies{ productFlavors.all{ if('huawei'.equals(name))//針對(duì)特殊的渠道做特殊處理 dependencies.add(name+"Implementation",project(dependenMap[name])) else dependencies.add(name+"Api",project(dependenMap[name])) //xiaomiApi('xiaomi依賴') //huaweiImplementation('xiaomi依賴') //xxxxApi('xxx依賴') } }
簽名配置
signingConfigs { xiaomi{ storeFile file("../xiaomi.keystore") storePassword 'xiaomi' keyAlias 'xiaomi' keyPassword 'xiaomi' v1SigningEnabled true v2SigningEnabled true } huawei{ storeFile file("../xiaomi.keystore") storePassword 'xiaomi' keyAlias 'xiaomi' keyPassword 'xiaomi' v1SigningEnabled true v2SigningEnabled true } ....更多簽名配置 } buildTypes { debug { } release { productFlavors.all { if('huawei'.equals(name))//針對(duì)特殊的渠道做特殊處理 productFlavors[name].signingConfig signingConfigs.xxx else productFlavors[name].signingConfig signingConfigs[name] } } }
到此這篇關(guān)于關(guān)于Android多渠道打包的進(jìn)階知識(shí)的文章就介紹到這了,更多相關(guān)Android多渠道打包進(jìn)階內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡(jiǎn)單實(shí)現(xiàn)安卓里百度地圖持續(xù)定位
本文主要介紹了在安卓的百度地圖開(kāi)發(fā)里面簡(jiǎn)單實(shí)現(xiàn)持續(xù)定位的方法,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01Android中雙擊返回鍵退出應(yīng)用實(shí)例代碼
本篇文章主要介紹了Android中雙擊返回鍵退出應(yīng)用實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03Android studio設(shè)置指定的簽名文件教程
這篇文章主要介紹了Android studio設(shè)置指定的簽名文件教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android應(yīng)用中使用ContentProvider掃描本地圖片并顯示
這篇文章主要介紹了Android應(yīng)用中使用ContentProvider掃描本地圖片并顯示的方法,比調(diào)用本地圖庫(kù)的方法更加靈活和可定制,需要的朋友可以參考下2016-04-04Android Compose實(shí)現(xiàn)聯(lián)系人列表流程
聲明式UI,更簡(jiǎn)單的自定義,實(shí)時(shí)帶交互的預(yù)覽功能Compose并不是類似于Recyclerview的高級(jí)控件,而是直接拋棄了View,ViewGroup那套東西,從上到下魯了一套全新的框架,直白點(diǎn)說(shuō)就是它的渲染機(jī)制,布局機(jī)制,觸摸算法,以及UI具體寫(xiě)法全都是新的2023-03-03