Tôi muốn đề xuất một giải pháp đơn giản nếu bạn sử dụng proguard trong quá trình xuất APK.
Proguard cung cấp một cách để loại bỏ các cuộc gọi đến các chức năng cụ thể trong chế độ phát hành. Mọi lệnh gọi cho nhật ký gỡ lỗi đều có thể bị xóa với cài đặt sau trong proguard-project.txt
.
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
Và cài đặt tối ưu hóa trong project.properties
.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
Với điều này, bạn không cần phải quan tâm đến bất kỳ phép tính chuỗi không cần thiết nào chuyển tới nhật ký gỡ lỗi mà @Jeremyfa đã trỏ tới. Các tính toán chỉ bị loại bỏ trong bản phát hành.
Vì vậy, giải pháp cho BuildConfig.DEBUG sử dụng cùng một tính năng của proguard như sau.
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;
}
}
Và sau khi cài đặt trong proguard-project.txt
.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
Tôi muốn sử dụng Build Automatically
tùy chọn này để tắt tùy chọn, bởi vì điều này không phụ thuộc vào cài đặt IDE cá nhân của người xây dựng nhưng được duy trì dưới dạng tệp cam kết được chia sẻ giữa các nhà phát triển.