Обработка незначительных различий в вариантах сборки - PullRequest
0 голосов
/ 01 июля 2019

У меня есть приложение с 2 вариантами продукта и в результате 4 варианта сборки:

1) freeDebug
2) freeRelease
3) paidDebug
4) paidRelease

У меня есть Fragment, который содержит рекламу, и для его реализации требуется 2 строки:

@Nullable @BindView (R.id.bottomsheet_ad) AdView mAdView;
mAdView.loadAd(adRequest);

Так что из-за 2 строк, мне потенциально нужно поддерживать 2 или более файлов.

Я рассматриваю 2 решения:

1) Проверьте вкус во время выполнения:

if (BuildConfig.FLAVOR.equals("flavor123")) {
    ...
}

2) Создайте общий вид и укажите нужные варианты в Gradle, как объяснено здесь :

android {
    ...
    productFlavors {
        flavorOne {
            ...
        }
        flavorTwo {
            ...
        }
        flavorThree {
            ...
        }
        flavorFour {
            ...
        }
    }
    sourceSets {
        flavorOne.java.srcDir 'src/common/java'
        flavorTwo.java.srcDir 'src/common/java'
        flavorThree.java.srcDir 'src/common/java'
    }
}

Какое решение будет лучше? И проверяет ли вкус во время выполнения, как указано выше, загрязнение кода?

1 Ответ

3 голосов
/ 01 июля 2019

Вы можете добавить что-то вроде следующего к соответствующему вкусу в вашем build.gradle

buildConfigField "boolean", "showAds", 'true'

А затем используйте следующее (ваши основные файлы src будут по-прежнему использоваться для добавляемых вами дополнительных вариантов):

if (BuildConfig.showAds) {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...