在我的游戏中,我有两种不同的配置: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个不同的 list 文件)。但是现在我必须针对每种字符市场风格重复这些AndroidManifest.xml文件。
如何以更有效的方式进行管理,以便在没有重复的代码和资源的情况下拥有不同的市场配置和字符配置集?我想要达到的最终结果是在发布时,当我选择涉及特定角色和特定市场的口味时,每种口味的配置都会自动应用。
最佳答案
您可以为每种口味创建不同的尺寸文件
例如,如果您有 flavor flavor_a, flavor_b
在带有 flavor 名称的src文件夹中创建文件夹。您已经有主文件夹(它应该包含公用文件),并且应该在flavor_a
和flavor_b
文件夹中遵循相同的文件夹名称
flavour_a的尺寸路径是app/src/flavor_a/res/values/dimens.xml
flavour_b的尺寸路径是app/src/flavor_b/res/values/dimens.xml
您可以按照自己的口味选择所有资源。