Me gustaría proponer una solución alternativa simple si usa proguard durante la exportación de APK.
Proguard proporciona una forma de eliminar llamadas a funciones específicas en el modo de liberación. Cualquier llamada para depurar registros se puede eliminar con la siguiente configuración en proguard-project.txt
.
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
Y la optimización se instala project.properties
.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
Con esto, no necesita preocuparse por ningún cálculo de cadena innecesario que pase al registro de depuración al que señaló @Jeremyfa. Los cálculos simplemente se eliminan en la versión de versión.
Entonces, la solución para BuildConfig.DEBUG usa la misma característica de proguard como sigue.
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;
}
}
Y después de instalarse proguard-project.txt
.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
Preferiría usar esto a deshabilitar la Build Automatically
opción, porque esto no depende de la configuración IDE individual del constructor, sino que se mantiene como un archivo comprometido que se comparte entre los desarrolladores.