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