在我的游戏中,我有两种不同的配置:1-角色2-市场。每个角色代表一个卡通人物,每个市场代表一个使用其计费/广告功能的本地市场。
我有20个字符和4个市场。角色和市场都需要在代码和xml
文件中有自己的一套配置。
我为解决这种情况而采用的方法是在我的flavor
app-level
中每个市场每个字符使用一个build.gradle
:
productFlavors {
character1_market1 {flavorDimensions "in_1"}
character1_market2 {flavorDimensions "in_2"}
character1_market3 {flavorDimensions "in_3"}
character1_market3 {flavorDimensions "in_3"}
...
charactern_market1 {flavorDimensions "in_65"}
charactern_market2 {flavorDimensions "in_66"}
charactern_market3 {flavorDimensions "in_67"}
charactern_market4 {flavorDimensions "in_68"}
}
显然添加了许多样板代码和要管理的资源。例如,对于每组字符,我需要一个自定义可绘制文件夹。但是现在,对于每个市场变化,将重复每个角色相同的可绘制文件夹(4次)。或者,我需要为每个市场定制一个AndroidManifest.xml文件(4个不同的清单文件)。但现在我必须针对每种字符市场风格重复这些AndroidManifest.xml文件。
我如何以一种更有效的方式来管理它,以便在没有重复的代码和资源的情况下可以拥有不同的市场配置和字符配置集?我想要达到的最终结果是在发布时,当我选择与特定角色和特定市场有关的口味时,每种口味的配置都会自动应用。
您可以为每种口味创建不同的尺寸文件
例如,如果您有风味flavor_a, flavor_b
在src文件夹中创建带有风味名称的文件夹。您已经有主文件夹(它应该包含公用文件),并且应该在文件夹flavor_a
和flavor_b
中使用相同的文件夹名称
flavor_a的尺寸路径为app/src/flavor_a/res/values/dimens.xml
flavour_b的尺寸路径为app/src/flavor_b/res/values/dimens.xml
您可以按照自己的口味选择所有资源。