Android 多渠道打包進(jìn)階版
上一篇文章鏈接//www.dbjr.com.cn/article/221446.htm
Android 多渠道打包進(jìn)階版
文章開始前,先看一下下面這種情況:
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è)置不起作用,可能是編譯器的問題?
// 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í)候,不同渠道不同的配置就會很繁瑣,有沒有更方便的方法呢?答案是肯定的。
1、資源文件配置
sourceSets{
def sets = getSourceSets()//獲取資源設(shè)置集合
productFlavors.all{//遍歷多渠道
if('huawei'.equals(name))//針對特殊的渠道做特殊處理
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'
// .....
}
}
2、依賴配置
def dependenMap =[xiaomi: 'xiaomi依賴',
huawei: 'huawei依賴',
...
xxx: 'xxx 依賴']
dependencies{
productFlavors.all{
if('huawei'.equals(name))//針對特殊的渠道做特殊處理
dependencies.add(name+"Implementation",project(dependenMap[name]))
else
dependencies.add(name+"Api",project(dependenMap[name]))
//xiaomiApi('xiaomi依賴')
//huaweiImplementation('xiaomi依賴')
//xxxxApi('xxx依賴')
}
}
3、簽名配置
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))//針對特殊的渠道做特殊處理
productFlavors[name].signingConfig signingConfigs.xxx
else
productFlavors[name].signingConfig signingConfigs[name]
}
}
}
到此這篇關(guān)于Android 多渠道打包進(jìn)階版的文章就介紹到這了,更多相關(guān)Android 多渠道打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android自定義實(shí)現(xiàn)BaseAdapter的優(yōu)化布局
這篇文章主要為大家詳細(xì)介紹了Android自定義實(shí)現(xiàn)BaseAdapter的優(yōu)化布局,感興趣的小伙伴們可以參考一下2016-08-08
Android RecyclerView網(wǎng)格布局示例解析
這篇文章主要介紹了Android RecyclerView網(wǎng)格布局示例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Flexbox+ReclyclerView實(shí)現(xiàn)流式布局
這篇文章主要為大家詳細(xì)介紹了Flexbox+ReclyclerView實(shí)現(xiàn)流式布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Android實(shí)現(xiàn)3D推拉門式滑動菜單源碼解析
這篇文章主要為大家詳細(xì)解析了Android實(shí)現(xiàn)3D推拉門式滑動菜單源碼以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。2017-11-11
實(shí)例解析Android系統(tǒng)中的ContentProvider組件用法
這篇文章主要介紹了Android系統(tǒng)中的ContentProvider組件用法,舉例講解了ContentProvider傳遞數(shù)據(jù)及監(jiān)聽ContentProvider數(shù)據(jù)改變的方法,十分詳細(xì),需要的朋友可以參考下2016-04-04
android byte[] 和short[]轉(zhuǎn)換的方法代碼
這篇文章主要介紹了android byte[] 和short[]轉(zhuǎn)換的方法代碼,有需要的朋友可以參考一下2014-01-01
分析CmProcess跨進(jìn)程通信的實(shí)現(xiàn)
CmProcess是Android一個(gè)跨進(jìn)程通信框架,無需進(jìn)行bindService()操作,不用定義Service,也不需要定義aidl。 支持IPC級的 Callback,并且支持跨進(jìn)程的事件總線,可同步獲取服務(wù),采用面向接口方式進(jìn)行服務(wù)注冊與調(diào)用,服務(wù)調(diào)用方和使用者完全解耦2021-06-06

