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