我创建了一个包装器类MyLog
来为我的Android应用程序进行日志记录,它基本上只包装android.util.Log
。我希望在我的发布应用程序中完全消失日志记录。我在proguard文件中定义了以下规则:
-assumenosideeffects class com.myapp.logging.MyLog {
public static void d(...);
}
我看到具有日志语句的行如下:
MyLog.d("Logging a boolean %b and a string %s parameter", isTrue, stringName);
正缩小为:
Object[] objArr = new Object[]{Boolean.valueOf(z), str};
和带有日志语句的行如下:
MyLog.d("function call result: " + foo() + " end");
缩小为:
new Object[1][0] = foo();
在这两种情况下,混淆的剩余物都是无用的,可能也应该被删除。
问题:
我已阅读与该主题相关的其他答案,最接近的答案为here。我不是在寻找使用BuildConfig.IS_LOGGING_ENABLED类型解决方案的解决方案,其中每个日志语句都应该用此检查包装。