如何解决Flutter:何时使用`print` 和`debugPrint`?
何时使用 print
和 debugPrint
存在一些混淆,因此有些陈述可能是错误的,应予以澄清:
-
当使用直接
print
方法时,它会给生产带来很多垃圾,不是吗? -
当使用
debugPrint
方法时,它只会在开发时打印,还是在生产中也会打印? -
当我生成发布文件(apk)时,它会不会删除所有
print
调用以优化应用并减小发布文件大小?
解决方法
- 和 3. 如果您使用命令
flutter logs
,您将在手机/模拟器中安装的所有应用程序中看到打印功能的输出。这意味着即使应用处于发布模式,它仍会在终端中打印。 -
debugPrint
通常用于避免每个操作系统的打印限制,如果使用默认的debugPrintThrottled
回调。它也将在生产中打印,但您可以将其自定义为仅在开发模式下工作:
void main() {
bool isInRelease = true;
assert(() { isInRelease = false; return true }());
if (isInRelease) {
debugPrint = (String message,{ int wrapWidth }) {} //
}
}
有了这个,当您的代码中的 debugPrint
语句在生产环境中被调用时,它不会被打印到控制台,因为您给了这个函数一个空回调。