Przedmowa: nie chodzi o to, jak używać typów kompilacji i smaków produktów w aplikacji na Androida. Rozumiem podstawowe pojęcia. To pytanie dotyczy raczej próby zrozumienia, która konfiguracja powinna być określona w typie kompilacji, którą konfigurację należy określić w smaku produktu i czy jakiekolwiek rozróżnienie jest rzeczywiście konieczne.
W tym tygodniu dowiedziałem się więcej o konfiguracji Gradle dla aplikacji na Androida. Początkowo myślałem, że dobrze radzę sobie z typami kompilacji i smakami produktów, ale im głębiej zagłębiałem się w dokumentację, tym bardziej zdawałem sobie sprawę, że rozróżnienie między nimi nie jest dla mnie jasne.
Ponieważ istnieje dobrze zdefiniowana hierarchia (w tym sensie, że właściwości określone w typach kompilacji mają pierwszeństwo przed właściwościami określonymi w smakach produktów), nie rozumiem, dlaczego w ogóle istnieje potrzeba rozróżnienia między typami kompilacji i smakami produktów. Czy nie byłoby lepiej scalić wszystkie właściwości i metody w obiekt DSL smaku produktu, a następnie po prostu potraktować typ kompilacji jako (domyślny) wymiar smaku?
Kilka konkretnych przykładów, które doprowadziły do mojego zamieszania:
signingConfig
Nieruchomość może być ustawiony w obu typach budować i smaków produktów ... aleminifyEnabled
(i, przypuszczam,shrinkResources
?) Może być skonfigurowane tylko w rodzaju kompilacji.applicationId
można określić tylko w smakach produktu ... iapplicationIdSuffix
można to określić tylko w typach kompilacji !?
Rzeczywiste pytania :
Biorąc pod uwagę powyższe przykłady: czy istnieje wyraźne rozróżnienie między rolami typów kompilacji a smakami produktów?
Jeśli tak, to jak najlepiej to zrozumieć?
Jeśli nie, czy planowane jest ostateczne scalenie typów kompilacji i smaków produktów w jeden konfigurowalny obiekt DSL?
applicationId
.