Предисловие: это не вопрос о том, как использовать типы сборки и разновидности продукта в приложении для Android. Я понимаю основные концепции. Этот вопрос больше касается попыток понять, какая конфигурация должна быть указана в типе сборки, какая конфигурация должна быть указана во вкусе продукта и действительно ли необходимо какое-либо различие.
На этой неделе я узнал больше о конфигурации gradle для приложений Android. Сначала я думал, что хорошо разбираюсь в типах сборки по сравнению со вкусами продукта, но чем глубже я углублялся в документацию, тем больше понимал, что различие между этими двумя понятиями мне совершенно не понятно.
Поскольку существует четко определенная иерархия (в том смысле, что свойства, указанные в типах сборки, имеют приоритет над свойствами, указанными в вариантах продукта), я не понимаю, почему вообще необходимо различать типы сборки и варианты продукта. Не лучше ли объединить все свойства и методы в DSL-объект «Ароматизатор продукта», а затем просто рассматривать тип сборки как («по умолчанию») Ароматизатор?
Несколько конкретных примеров, которые привели меня в замешательство:
signingConfig
Свойство можно установить в обоих типах сборки и вкусов продукции ... ноminifyEnabled
(и, я полагаю,shrinkResources
?) Можно настроить только в типах сборки.applicationId
может быть указано только в вариантах продукта ... иapplicationIdSuffix
может быть указано только в типах сборки !?
Актуальный вопрос (ы) :
Учитывая приведенные выше примеры: существует ли четкое различие между ролями типов сборки и разновидностей продукта?
Если так, то как лучше всего это понять?
Если нет, планируется ли в конечном итоге объединить типы сборки и разновидности продукта в один настраиваемый объект DSL?
applicationId
, например, можно изменить все .