【问题标题】:Two dimensional product flavors, Android studio?二维产品口味,Android工作室?
【发布时间】:2020-05-30 20:43:55
【问题描述】:

在我的游戏中,我有两种不同的配置:1-角色 2-市场。每个角色代表一个卡通人物,每个市场代表一个使用其计费/广告功能的本地市场。

我有 20 个角色和 4 个市场。角色和市场都需要在代码和xml 文件中进行自己的一组配置。

我为管理这种情况而实施的方法是在我的app-level build.gradle 中为每个市场的每个字符使用一个flavor

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 文件。

如何以更有效的方式管理它,以便我可以拥有不同的市场配置和角色配置,而无需重复的代码和资源?我想要达到的最终结果是在发布时,当我选择与特定角​​色和特定市场相关的风味时,会自动应用每种配置。

【问题讨论】:

    标签: android gradle android-productflavors


    【解决方案1】:

    您可以为每种风味创建不同的维度文件

    例如,如果你有味道flavor_a, flavor_b

    在 src 文件夹中创建具有风味名称的文件夹。您已经拥有主文件夹(它应该包含常用文件),并且您应该在文件夹 flavor_aflavor_b 中遵循相同的文件夹名称

    flavor_a 的维度路径是 app/src/flavor_a/res/values/dimens.xml flavor_b 的维度路径是 app/src/flavor_b/res/values/dimens.xml

    您可以关注所有适合您口味的资源。

    【讨论】:

      猜你喜欢
      • 2022-11-23
      • 2019-06-12
      • 2016-08-29
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多