Ароматы продукта с более чем 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 или все. Вы должны сделать это.
- Создайте 3 папки под
src
папка - Назовите его так, как вы определили в
build.gradle
(Уровень приложения). Пример: папкаapple
, папкаorange
, папкаbanana
,DON'T
удалите свою основную папку - Если вы хотите использовать один и тот же файл для всех, добавьте этот файл в
main
папка. (Пофиг 3 других) - Если вы хотите использовать другой файл для другой папки, создайте 4 файла, которые имеют
same
имя, ноdifferent folder
, - Когда вы бежите, выберите подходящий
Build Variants
,
Android Runtime решит, какой файл должен быть загружен.