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