如果您在APK导出过程中使用proguard,我想提出一个简单的解决方法。
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指向调试日志传递的任何不必要的String计算。计算仅在发布版本中删除。
因此,BuildConfig.DEBUG的解决方法使用了与proguard相同的功能,如下所示。
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
选项来禁用该选项,因为这不依赖于构建器的单个IDE设置,而是作为开发者之间共享的提交文件进行维护。