अगर आप एपीके एक्सपोर्ट के दौरान प्रोगार्ड का इस्तेमाल करते हैं तो मैं एक साधारण वर्क प्रपोज करना चाहूंगा।
रिलीज़ मोड में विशिष्ट कार्यों के लिए कॉल को हटाने का एक तरीका Proguard प्रदान करता है। डिबगिंग लॉग के लिए किसी भी कॉल को निम्नलिखित सेटिंग के साथ हटाया जा सकता है proguard-project.txt
।
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
और अनुकूलन सेटिंग में project.properties
।
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
इसके साथ, आपको किसी भी अनावश्यक स्ट्रिंग संगणना को डिबग लॉग में भेजने की चिंता करने की आवश्यकता नहीं है, जिस पर @Jeremyfa ने बताया। रिलीज बिल्ड में कम्प्यूटेशंस को हटा दिया गया है।
तो BuildConfig.DEBUG के लिए वर्कअराउंड निम्नलिखित की तरह एक ही सुविधा का उपयोग करता है।
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;
}
}
और में सेटिंग के बाद proguard-project.txt
।
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
मैं इस Build Automatically
विकल्प को अक्षम करने के लिए इसका उपयोग करना पसंद करूंगा , क्योंकि यह बिल्डर की व्यक्तिगत आईडीई सेटिंग पर निर्भर नहीं करता है, लेकिन इसे प्रतिबद्ध फ़ाइल के रूप में बनाए रखा जाता है जो डेवलपर्स के बीच साझा की जाती हैं।