前一篇文章主要介绍了关于Android程序的多渠道打包方法,这一篇文章介绍了多渠道打包的进阶知识,还不会的同学快进来学习下吧,建议收藏以防迷路
多渠道打包进阶知识
文章开始前,先看一下下面这种情况:
android {
productFlavors {
//100 个多渠道配置
}
//多渠道签名的配置
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这里设置不起作用,可能是编译器的问题?
// productFlavors.xiaomi.signingConfig signingConfigs.test
// productFlavors.huawei.signingConfig signingConfigs.test
}
release {
productFlavors.xiaomi.signingConfig signingConfigs.xiaomi
productFlavors.huawei.signingConfig signingConfigs.huawei
//....100 个签名配置
}
}
//不同渠道不同资源文件配置
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 个资源文件配置
}
//不同渠道不同的依赖文件
dependencies {
xiaomiApi('xxxxxxx')
huaweiImplementation('xxxxxxxx')
xxxApi('xxxxxxx')
xxxApi('xxxxxxx')
xxxApi('xxxxxxx')
//....100 个渠道不同依赖配置
}
}
不难发现,当渠道比较多的时候,不同渠道不同的配置就会很繁琐,有没有更方便的方法呢?答案是肯定的。
资源文件配置
sourceSets{
def sets = getSourceSets()//获取资源设置集合
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
//相当于 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))//针对特殊的渠道做特殊处理
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))//针对特殊的渠道做特殊处理
productFlavors[name].signingConfig signingConfigs.xxx
else
productFlavors[name].signingConfig signingConfigs[name]
}
}
}
到此这篇关于关于Android多渠道打包的进阶知识的文章就介绍到这了,更多相关Android多渠道打包进阶内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
织梦狗教程
本文标题为:关于Android多渠道打包的进阶知识


基础教程推荐
猜你喜欢
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Android多返回栈技术 2023-04-15
- android studio按钮监听的5种方法实例详解 2023-01-12
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
- Flutter手势密码的实现示例(附demo) 2023-04-11
- Android中的webview监听每次URL变化实例 2023-01-23
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
- IOS应用内跳转系统设置相关界面的方法 2022-11-20