Android多渠道配置

实现

build.gradle(:app)做如下配置,实现包名不同的demo1和demo2两个渠道:

  • 通过manifestPlaceholders配置不同的应用名称和应用图标,需在AndroidManifest.xml中配置android:label="${app_name}"android:icon="${app_icon}"
  • 通过buildConfigField配置不同的服务器地址,代码中直接使用BuildConfig.SERVER_URL即可,需注意字符串要加一层转义。

这里只是举个栗子,manifestPlaceholdersbuildConfigField可自由定义,记得配置flavorDimensions,不然可能会报错。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
defaultConfig {
...
flavorDimensions "demo"
}
...
productFlavors {
demo1 {
applicationId "com.test.demo1"
manifestPlaceholders = [app_name: "@string/app_name1",
app_icon: "@drawable/app_icon1"]
buildConfigField "String", "SERVER_URL", "\"https://demo1.com\""
}
demo2 {
applicationId "com.test.demo2"
manifestPlaceholders = [app_name: "@string/app_name2",
app_icon: "@drawable/app_icon2"]
buildConfigField "String", "SERVER_URL", "\"https://demo2.com\""
}
}

补充

配置不同的应用名称和应用图标,或其他不同的资源文件,还可以通过创建以渠道名命名与main同级目录的文件夹,如src/渠道名/res,在里面创建资源文件夹drawablemipmapvalues等,打包时gradle会自行替换或合并资源。

打包

AndroidStudio中点击左侧栏Build Variants,选取不同渠道进行调试、运行、打包。

作者

EIong

发布于

2022-05-18

更新于

2022-05-18

许可协议