The difference between debug and release assemblies is, for example, you can get the log output from the debug assembly, but not from the release assembly.
Debug assemblies can be signed with the default keystore, release assemblies must be signed with the created keystore.
You can define buildTypes in your gradle application module. Here is an example:
release { shrinkResources true minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } debug { applicationIdSuffix ".debug" }
You can also define different tastes, for example:
productFlavors { pro { applicationId = "xx.xxx.xxx.pro" signingConfig signingConfigs.Pro } lite { applicationId = "xx.xxx.xxx.lite" signingConfig signingConfigs.Lite } }
This system makes it easy to create different apks from one Codebase (free or paid version, etc.).
source share