Ароматы продукта с более чем 2 измерениями

Ранее в этом году я выпустил приложение для клиента, с которым мы использовали размеры аромата. Мы имеем

         Full   |  Preview
Apple  | Apple  | Apple.Preview
Orange | Orange | Orange.Preview

Это сработало отлично. Но теперь мне нужно добавить Banana к проекту в качестве другого приложения, и все становится грязным.

В полных версиях у меня есть некоторые функции, которые являются общими для существующих версий, и я хочу полностью исключить их из нового приложения. Есть некоторые ресурсы, которые также было бы неплохо удалить, но так как это небольшие файлы, я не так обеспокоен этим. Я также предпочел бы избежать Full а также Preview версии Banana, но если я не могу этого сделать, тогда все в порядке. Что мне действительно нужно сделать, это сгруппировать некоторые файлы в Apple а также Orange и другие для всех 3. Вроде как создание третьего измерения. Любой совет?

1 ответ

Во-первых, для вашего отдельного файла, используйте productFlavors или же Gradle

    apple{
        applicationId "com.android.apple"
        buildConfigField "String", "MY_DISTINC_STUFF", "APPLE"
    }

    orange{
        applicationId "com.android.orange"
        buildConfigField "String", "MY_DISTINC_STUFF", "ORANGE"
    }

    banana{
        applicationId "com.android.banana"
        buildConfigField "String", "MY_DISTINC_STUFF", "BANANA"
    }

Если вы хотите использовать эту строку, используйте эту BuildConfig.MY_DISTINC_STUFF

Во-вторых, если вы хотите сгруппировать некоторые файлы, которые можно использовать для 1,2 или все. Вы должны сделать это.

  1. Создайте 3 папки под src папка
  2. Назовите его так, как вы определили в build.gradle (Уровень приложения). Пример: папка apple, папка orange, папка banana, DON'T удалите свою основную папку
  3. Если вы хотите использовать один и тот же файл для всех, добавьте этот файл в main папка. (Пофиг 3 других)
  4. Если вы хотите использовать другой файл для другой папки, создайте 4 файла, которые имеют same имя, но different folder,
  5. Когда вы бежите, выберите подходящий Build Variants,

Android Runtime решит, какой файл должен быть загружен.

Другие вопросы по тегам