Android在上传到market时在应用程序中隐藏日志

Android在上传到market时在应用程序中隐藏日志,android,publishing,logging,Android,Publishing,Logging,我的应用程序有很多日志。i();为调试添加的语句。现在,如果这样的应用程序需要上传到市场 是否应该删除这些日志?如果是,是否有比手动删除更简单的方法 如果没有删除,如果应用程序是由用户在从市场上安装后运行的,那么这些日志会出现吗 (我试图查看一些应用程序的日志,但看不到应用程序中的任何日志。我只能看到类似activity manager的android日志。但我不明白如果不从代码中删除日志,为什么不会显示这些日志)是的,一个好的做法是删除测试期间调用的所有日志方法 是的,当用户下载应用程序时,它

我的应用程序有很多日志。i();为调试添加的语句。现在,如果这样的应用程序需要上传到市场

  • 是否应该删除这些日志?如果是,是否有比手动删除更简单的方法

  • 如果没有删除,如果应用程序是由用户在从市场上安装后运行的,那么这些日志会出现吗


  • (我试图查看一些应用程序的日志,但看不到应用程序中的任何日志。我只能看到类似activity manager的android日志。但我不明白如果不从代码中删除日志,为什么不会显示这些日志)

    是的,一个好的做法是删除测试期间调用的所有日志方法

    是的,当用户下载应用程序时,它会向他/她显示您制作的所有日志

    您可以使用该类中的
    static
    方法创建一个
    static类

    当您想要进行日志调用时,只需通过ClassName.method从任何位置调用该方法


    一旦您完成了对静态类中编写的静态方法中的定义的简单测试
    COMMENT

    Preetha,日志将保存在手机上,任何用户/开发人员都可以通过安装应用程序(例如,甚至不使用adb)来检查它们!这是一个问题,因为您会向用户/其他开发人员提供不必要的、有时是保密的数据

    解决这个问题的简单方法

    a。用于自动阻止所有日志,有关详细信息,请参阅

    在这里,您可以在Proguard中自动阻止字节码级别的所有日志

    -assumenosideeffects class android.util.Log {
        public static int v(...);
    }
    
    例如,上面的操作将删除任何详细的日志记录

    b。我对所有日志使用if(DEBUG)Log.I,这样只要更改布尔调试,我就可以打开/关闭所有日志


    c。一个简单的解决方案:将所有Log.i替换为//Log.i:)

    非常感谢您的回答。还有一个疑问。如果打开eclipse,我是否需要安装Catlog之类的应用程序,如果我将手机连接到pC,我可以在logcat中看到,对吗?是的,作为开发人员,你不需要安装Catlog,当设备连接到PC时,您可以在eclipse上的logcat中查看所有日志。如果您的设备未连接到PC,并且您希望查看设备本身的日志,您可以在设备上安装Catlog应用程序,并且可以在那里查看日志。使用此方法会影响尝试匹配stacktraces时的行号吗?我见过其他帖子使用这个解决方案,一些人说它只影响字节码,所以行号保持不变,而其他人说它不影响字节码。你能确认一下吗?这通常是我维护日志的方式