优化项目时,项目组件化实现下用通常方式来实现多渠道存在问题:
通用Module无法引用到主模块app下的渠道配置信息,需要另作配置,
为此做个记录:
主Module下配置渠道信息
android {
....
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.release
}
}
//配置渠道
productFlavors {
test1 {...}
test2 {...}
test3 {...}
}
}
//这里自定义关键字来获取指定渠道来编译
configurations {
test1DebugApi
test2DebugApi
test3DebugApi
test1ReleaseApi
test2ReleaseApi
test3ReleaseApi
}//配置的格式:自定义关键字 project(path: ':通用Module', configuration: '对应的渠道')
dependencies {
...
test1DebugApi project(path: ':libary', configuration: 'test1Debug')
test2DebugApi project(path: ':libary', configuration: 'test2Debug')
test3DebugApi project(path: ':libary', configuration: 'test3Debug')
test1ReleaseApi project(path: ':libary', configuration: 'test1Release')
test1ReleaseApi project(path: ':libary', configuration: 'test2Release')
test1ReleaseApi project(path: ':libary', configuration: 'test3Release')
}
子Module配置:
android {
....
buildTypes {
release {...}
debug {...}
}
//配置渠道
productFlavors {
publishNonDefault true//子Module里必须配置
test1 {...}
test2 {...}
test3 {...}
}
}dependencies {
...
}
sync项目后,在Build Variants中选择不同渠道包子Module即可自动改变成所选择的渠道
文章图片
如上
【多渠道|Android 组件化在公用Module里实现多渠道打包配置】欢迎探讨
推荐阅读
- Android基础|EventBus源码分析之订阅-发布模型
- Android基础|Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
- HandlerThread(子线程也可以有消息传递机制)
- android ViewId自动注解使用详解(ViewInject)
- Android|Android属性动画 Property animation
- JNI与底层调用-1
- #|FutureTask 使用场景介绍
- #|静态内部类创建单例的实现和优点
- #|View的三大流程是什么,加以简单说明