I just created an apk via android studio and it gave me an option of creating my own key, which i did but then asked me what type of build it is i.e. debug or release. Also
The difference between debug and release builds is for example, that you can get the log output from the debug build but not from the release build.
Debug builds can be signed with the default keystore, the release builds have to be signed with your created keystore.
You can define the buildTypes in your App's module gradle. Here's an example:
release {
shrinkResources true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
applicationIdSuffix ".debug"
}
Also you can define different flavors, like this:
productFlavors {
pro {
applicationId = "xx.xxx.xxx.pro"
signingConfig signingConfigs.Pro
}
lite {
applicationId = "xx.xxx.xxx.lite"
signingConfig signingConfigs.Lite
}
}
This system makes it easier to create different apks from one Codebase (free or paid version, etc.)