我在应用程序中进行了大量的日志记录以简化调试,但我想确保只有最低限度才能进入生产应用程序。我的理解是编译器不会删除未使用的代码,没有Android的条件编译,但Proguard将删除未使用的代码。这是一个示例跟踪类:
public class Trace
{
public static final int logginglevel = 5;
public static final boolean errors = logginglevel > 1;
public static final boolean warnings = logginglevel > 2;
public static final boolean info = logginglevel > 3;
public static final boolean debug = logginglevel > 4;
}
然后在应用程序本身中记录如下:
if (Trace.debug) Log.d(TAG,"problem")
这是否会成功允许Proguard识别未使用的语句并将其删除?这个陈述非常难看,但它是我能看到的最短的陈述。
是否有一种更简洁的方式来包含Android应用程序中的日志记录,但是它是否会自动为生产版本删除?我怀疑可以配置Proguard本身来删除代码的特定方面,但不确定这是否是一个比这更好的解决方案。
答案 0 :(得分:3)
来自另一个StackOverflow响应...
将此添加到您的proguard配置文件中:
-assumenosideeffects class android.util.Log {
public static *** i(...);
public static *** d(...);
public static *** v(...);
}
答案 1 :(得分:2)