【发布时间】:2011-06-03 00:10:20
【问题描述】:
我在应用程序中添加了大量日志记录以简化调试,但我想确保只有最低限度的日志进入生产应用程序。我的理解是编译器不会删除未使用的代码,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 本身来删除代码的特定方面,但不确定这是否是比这更好的解决方案。
【问题讨论】: