Android 文档指出:
详细程度从少到多的顺序是 ERROR、WARN、INFO、DEBUG、VERBOSE。除非在开发期间,否则永远不应将详细信息编译到应用程序中。调试日志被编译,但在运行时被剥离。始终保留错误、警告和信息日志。
但是尝试做一个Log.d()
,你会发现它实际上仍在真实设备上录制到 Logcat。
有谁知道为什么?或者如何禁用它?
谢谢!
Android 文档指出:
详细程度从少到多的顺序是 ERROR、WARN、INFO、DEBUG、VERBOSE。除非在开发期间,否则永远不应将详细信息编译到应用程序中。调试日志被编译,但在运行时被剥离。始终保留错误、警告和信息日志。
但是尝试做一个Log.d()
,你会发现它实际上仍在真实设备上录制到 Logcat。
有谁知道为什么?或者如何禁用它?
谢谢!
您所看到的是预期的行为。如果您使用 logcat 并连接设备,Log.d 将始终被记录并可见。因此,如果您不想在生产应用程序中调试日志,请将其关闭。事实上 android sdk 建议你这样做。这个 SO 答案也可能对您有所帮助。创建最终包时,我应该评论我的日志调用吗?
安卓 SDK 说
关闭日志记录和调试
确保在构建应用程序以供发布之前停用日志记录并禁用调试选项。您可以通过删除源文件中对 Log 方法的调用来停用日志记录。您可以通过从清单文件中的标记中删除 android:debuggable 属性或在清单文件中将 android:debuggable 属性设置为 false 来禁用调试。此外,删除在您的项目中创建的任何日志文件或静态测试文件。
此外,您应该删除添加到代码中的所有调试跟踪调用,例如 startMethodTracing() 和 stopMethodTracing() 方法调用。
您应该在自己的类中封装日志记录,并在需要时启用/禁用特殊类型的日志。
如果verbose是在开发中编译的,如果没有调试日志会很有趣。所以签署你的应用程序并试一试,我认为调试消息丢失了。
当您插入设备时,它会激活调试模式。如果应用程序在设备拔出的情况下运行,我认为它不会做同样的事情,尽管你无法检查......