Je voudrais proposer une solution de contournement simple si vous utilisez proguard lors de l'exportation APK.
Proguard fournit un moyen de supprimer les appels à des fonctions spécifiques en mode de libération. Tous les appels de journaux de débogage peuvent être supprimés avec le paramètre suivant dans proguard-project.txt.
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
Et l'optimisation s'installe project.properties.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
Avec cela, vous n'avez pas besoin de vous soucier de tout calcul String inutile passant au journal de débogage vers lequel @Jeremyfa a pointé. Les calculs sont simplement supprimés dans la version de version.
Ainsi, la solution de contournement pour BuildConfig.DEBUG utilise la même fonctionnalité de proguard comme suit.
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;
}
}
Et après l'installation proguard-project.txt.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
Je préférerais l'utiliser à la désactivation de l' Build Automaticallyoption, car cela ne dépend pas du paramètre IDE individuel du constructeur, mais est conservé en tant que fichier engagé qui est partagé entre les développeurs.