【问题标题】:Is creating logs affect the system memory by any means?创建日志是否会以任何方式影响系统内存?
【发布时间】:2013-01-22 17:38:06
【问题描述】:

我们通常会放置日志来检查某些代码块是否执行。 但是我们通常不会在发布应用程序之前将其删除。我不知道其他但我喜欢该功能并在我的应用程序中流畅地使用它。谁能告诉我对系统内存的影响编写任何 Log.x() (其中 X=v,e,w,i,d)形式。 有人帮我理清一些概念吗?

【问题讨论】:

    标签: android android-logcat


    【解决方案1】:

    肯定会对内存使用、APK 文件大小和性能产生很大影响。

    此外,您必须在发布应用程序之前删除所有日志。

    当然,一旦你删除所有日志并发布它,重写它们就很痛苦。

    因此使用Proguard 从字节码中删除所有日志,但不影响源代码。

    除了删除日志之外,Proguard 通过混淆代码、删除未使用的方法、变量等来帮助提高性能。这一切都取决于你如何配置它。

    Enabling ProGuard in Eclipse for Android

    How to avoid reverse engineering of an APK file?

    【讨论】:

    • @Archie.bpgc:虽然如果我们使用proguard,很容易提取代码。谷歌的 Android 应用程序在这方面有点周。 :)
    • 是的。但有总比没有好。我的意图是说Proguard isn't just to remove logs :)
    【解决方案2】:

    日志被保存在内存中,从而消耗内存空间。我们应该在发布之前删除调试日志,只有错误日志应该在那里。

    【讨论】:

      【解决方案3】:

      是肯定的。 为了使日志高效,请始终尝试使用布尔标志,例如:

      boolean debug = true or false;
      

      无论你在哪里使用 log.d("ClassName","message");写成

      if(debug) log.d("ClassName","message");
      

      因此您可以使用单个布尔标志来管理日志记录(Logs)。

      谢谢。

      【讨论】:

      • 只是跟进 - 添加布尔标记,当设置为 false 时,在检查每个调试语句的条件时增加最小的开销?
      【解决方案4】:

      这取决于您使用多少日志。肯定会影响应用。所以在发布应用之前,使用这个。

      android:debuggable="false"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 2011-02-06
        • 1970-01-01
        • 2010-12-20
        • 1970-01-01
        • 2017-06-07
        相关资源
        最近更新 更多