Gostaria de propor uma solução alternativa simples se você usar o proguard durante a exportação do APK.
O Proguard fornece uma maneira de remover chamadas para funções específicas no modo de liberação. Todas as chamadas para registros de depuração podem ser removidas com a seguinte configuração emproguard-project.txt
.
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
E configuração de otimização em project.properties
.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
Com isso, você não precisa se preocupar com nenhuma passagem de computação de String desnecessária para o log de depuração para o qual @Jeremyfa apontou. Os cálculos são apenas removidos na versão de lançamento.
Portanto, a solução alternativa para BuildConfig.DEBUG usa o mesmo recurso do Proguard como segue.
public class DebugConfig {
private static boolean debug = false;
static {
setDebug(); // This line will be removed by proguard in release.
}
private static void setDebug() {
debug = true;
}
public static boolean isDebug() {
return debug;
}
}
E seguindo a configuração proguard-project.txt
.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
Eu preferiria usar isso em vez de desabilitar a Build Automatically
opção, porque isso não depende da configuração IDE individual do construtor, mas é mantido como arquivo confirmado que é compartilhado entre os desenvolvedores.