Wybrany Build Variant decyduje o tym w jaki sposób aplikacja zostanie zbudowana. Po otworzeniu nowego projektu są dostępne dwa warianty: debug i release.
Debug buduje aplikację którą można debugować 😉
Wersja release zarezerwowana jest dla aplikacji która ma być udostępniona użytkownikom. Jej build jest zoptymalizowany, nie wspiera debugowania. Musi być również być podpisany. W przeciwnym przypadku, przy próbie uruchomienia aplikacji, dostaniemy poniższy komunikat. https://forum.android.com.pl/topic/353759-tworzenie-signed-apk/ informacje w jaki sposób sobie z nim poradzić.
Build Variants są zdefiniowane w pliku gradle na poziomie modułu:
I wygląda on tak:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
minifyEnabled - jeżeli jest ustawione na true usuwa nieużywany kod javy z builda.
proguardFiles - określa jakie pliki ProGuard powinny być użyte w celu optymalizacji.
Jak widzimy buildTypes nie ma zdefiniowanego debug - nie ma takiej potrzeby. Jest on domyślny. Również jeżeli uruchamiamy aplikację bez zagłębiania się w konfigurację, jest ona uruchamiana w tym wariancie.
Jednak czasami dodanie wariantu debug się przydaje. Na przykład gdy chcemy zainstalować na urządzeniu dwie wersje aplikacji. Jedna w wariancie debug a druga w wariancie release (lub innym zdefiniowanym przez nas np. do testów). Android nie pozwala zainstalować dwóch wariantów aplikacji ponieważ mają takie samo:applicationId. Musimy je zmodyfikować. W konfiguracji wystarczy dodać:
debug {
applicationIdSuffix ".debug"
debuggable true
}
W ten sposób dodamy sufiks do applicationId i będziemy mogli zainstalować oba warianty jednocześnie.