Multi Flavor 应用中,如何避免重复资源
In Multi Flavour app, how to avoid duplicate resources
如果我有 3 个口味 flavor1、flavor2 和 flavor3,每个口味都有 Dev、Pat 和 Prod "sub-flavours" 版本,参数不同,但每个主要口味有不同的资源。
所以我现在有 9 种不同的风格,但只有 3 个不同的资源文件夹)。我希望相同的 "sub-flavors" 使用相同的资源。
我该怎么做?我在文档中看到了有关 flavorDimensions 的内容,但不确定如何配置资源文件夹。
目前我正在使用
sourceSets {
flavor1_dev{
res.srcDir 'src/flavor1/res'
}
flavor1_prod{
res.srcDir 'src/flavor1/res'
}
flavor2_dev{
res.srcDir 'src/flavor2/res'
}
flavor2_prod{
res.srcDir 'src/flavor2/res'
}
}
您需要 Gradle 种口味,例如。 flavor1
、flavor2
等,以及 dev
、prod
等构建类型
示例来自:http://developer.android.com/tools/building/configuring-gradle.html and http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies
例如:
android.sourceSets.flavor1Debug
位置 src/flavor1Debug/
android.sourceSets.flavor1Release
位置 src/flavor1Release/
android.sourceSets.flavor2Debug
位置 src/flavor2Debug/
android.sourceSets.flavor2Release
位置 src/flavor2Release/
另外,这个问题很相似How can I specify per flavor buildType sourceSets?
只需将常用资源放在main/res。 main/res 中的所有资源都将被风格覆盖。
例如,如果你想覆盖字符串资源添加,
主要字符串文件:/src/main/res/values/strings.xml
<resources>
<string name="app_name">Main</string>
<string name="app_name_full">Main app</string>
<string name="app_email">main@abc.com</string>
<string name="app_phone">123</string>
<string name="app_website">www.abc.com</string>
</resources>
和风味字符串文件:/src/flavor1/res/values/strings.xml
<resources>
<string name="app_name">Flavour App Name</string>
</resources>
只有 app_name 的风格会发生变化,其他资源如 app_full_name 仍然可以在所有风格中访问。
如果我有 3 个口味 flavor1、flavor2 和 flavor3,每个口味都有 Dev、Pat 和 Prod "sub-flavours" 版本,参数不同,但每个主要口味有不同的资源。
所以我现在有 9 种不同的风格,但只有 3 个不同的资源文件夹)。我希望相同的 "sub-flavors" 使用相同的资源。
我该怎么做?我在文档中看到了有关 flavorDimensions 的内容,但不确定如何配置资源文件夹。
目前我正在使用
sourceSets {
flavor1_dev{
res.srcDir 'src/flavor1/res'
}
flavor1_prod{
res.srcDir 'src/flavor1/res'
}
flavor2_dev{
res.srcDir 'src/flavor2/res'
}
flavor2_prod{
res.srcDir 'src/flavor2/res'
}
}
您需要 Gradle 种口味,例如。 flavor1
、flavor2
等,以及 dev
、prod
等构建类型
示例来自:http://developer.android.com/tools/building/configuring-gradle.html and http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies
例如:
android.sourceSets.flavor1Debug
位置 src/flavor1Debug/
android.sourceSets.flavor1Release
位置 src/flavor1Release/
android.sourceSets.flavor2Debug
位置 src/flavor2Debug/
android.sourceSets.flavor2Release
位置 src/flavor2Release/
另外,这个问题很相似How can I specify per flavor buildType sourceSets?
只需将常用资源放在main/res。 main/res 中的所有资源都将被风格覆盖。 例如,如果你想覆盖字符串资源添加,
主要字符串文件:/src/main/res/values/strings.xml
<resources>
<string name="app_name">Main</string>
<string name="app_name_full">Main app</string>
<string name="app_email">main@abc.com</string>
<string name="app_phone">123</string>
<string name="app_website">www.abc.com</string>
</resources>
和风味字符串文件:/src/flavor1/res/values/strings.xml
<resources>
<string name="app_name">Flavour App Name</string>
</resources>
只有 app_name 的风格会发生变化,其他资源如 app_full_name 仍然可以在所有风格中访问。