在市场上发布应用程序之前,是否有一种简单的方法可以“停用日志记录”?

时间:2011-02-28 12:06:51

标签: android android-sdk-2.1 android-logcat

我准备在市场上发布应用,在阅读Google文档located here时,它会建议以下内容:Deactivate any calls to Log methods in the source code.

是否有一种比查看所有源文件并手动删除每一行更简单的方法?

另外,为什么要删除日志记录,这是资源占用吗?

2 个答案:

答案 0 :(得分:7)

您可以通过proguard执行此操作。在最新的SDK和工具中,应该已经存在proguard配置文件。克里斯托弗用similar question回答了这个问题。

  

最简单的方法可能是在部署之前通过ProGuard运行已编译的JAR,其配置如下:

-assumenosideeffects class android.util.Log {
  public static int v(...);
}
  

除了所有其他ProGuard优化之外,它将直接从字节码中删除任何详细的日志语句。

您可以通过添加

来决定要禁用哪些logoutput
-assumenosideeffects class android.util.Log {
  public static int d(...);
  public static int i(...);
  public static int e(...);
}

也可以访问proguard配置文件。我喜欢在我的代码中保留.e消息,因为这些仅用于某些catch部分,希望在正常执行应用程序期间降低性能。

答案 1 :(得分:1)