如何将日志记录添加到Proguard剥离的Android Java应用程序中?

时间:2011-02-11 14:02:13

标签: java android proguard

我在应用程序中进行了大量的日志记录以简化调试,但我想确保只有最低限度才能进入生产应用程序。我的理解是编译器不会删除未使用的代码,没有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本身来删除代码的特定方面,但不确定这是否是一个比这更好的解决方案。

2 个答案:

答案 0 :(得分:3)

来自另一个StackOverflow响应...

将此添加到您的proguard配置文件中:

-assumenosideeffects class android.util.Log {
    public static *** i(...);
    public static *** d(...);
    public static *** v(...);
}

答案 1 :(得分:2)