Flutter 的构建模式
Flutter 工具在编译应用程序时支持三种模式,以及一种用于测试的无头模式。您需要根据开发周期的阶段选择编译模式。您是否正在调试代码?您是否需要性能分析信息?您是否已准备好部署应用程序?
何时使用哪种模式的快速总结如下所示
页面其余部分详细介绍了这些模式。
- 要了解无头测试模式,请参阅引擎 Wiki 中关于 Flutter 的构建模式 的文档。
- 要了解如何检测构建模式,请查看 在 Flutter 应用程序中检查调试/发布模式 博客文章。
调试
#在调试模式下,应用程序设置为在物理设备、模拟器或仿真器上进行调试。
移动应用程序的调试模式意味着
- 断言 已启用。
- 服务扩展已启用。
- 编译针对快速开发和运行周期进行了优化(但不是针对执行速度、二进制文件大小或部署进行了优化)。
- 调试已启用,并且支持源代码级调试的工具(例如 DevTools)可以连接到该进程。
Web 应用程序的调试模式意味着
- 构建未进行压缩,并且未执行树状抖动。
- 应用程序使用 dartdevc 编译器进行编译,以便于调试。
默认情况下,flutter run
会编译为调试模式。您的 IDE 支持此模式。例如,Android Studio 提供了运行 > 调试...菜单选项,以及项目页面上覆盖了小三角形的绿色错误图标。
发布
#在部署应用程序时使用发布模式,当您需要最大优化和最小的占用空间时。对于移动设备,发布模式(仿真器或模拟器不支持)意味着
- 断言已禁用。
- 调试信息已被剥离。
- 调试已禁用。
- 编译针对快速启动、快速执行和小包大小进行了优化。
- 服务扩展已禁用。
Web 应用程序的发布模式意味着
- 构建已进行压缩,并且已执行树状抖动。
- 应用程序使用 dart2js 编译器进行编译,以获得最佳性能。
命令 flutter run --release
会编译为发布模式。您的 IDE 支持此模式。例如,Android Studio 提供了运行 > 运行...菜单选项,以及项目页面上的三角形绿色运行按钮图标。您可以使用 flutter build <target>
为特定目标编译为发布模式。有关支持的目标列表,请使用 flutter help build
。
有关更多信息,请参阅有关发布 iOS 和 Android 应用程序的文档。
性能分析
#在性能分析模式下,会保留一些调试功能——足以分析应用程序的性能。性能分析模式在模拟器和仿真器上被禁用,因为它们的行为不能代表真实的性能。在移动设备上,性能分析模式类似于发布模式,但存在以下差异
- 一些服务扩展(例如启用性能覆盖的扩展)已启用。
- 跟踪已启用,并且支持源代码级调试的工具(例如 DevTools)可以连接到该进程。
Web 应用程序的性能分析模式意味着
- 构建未进行压缩,但已执行树状抖动。
- 应用程序使用 dart2js 编译器进行编译。
- DevTools 无法连接到在性能分析模式下运行的 Flutter Web 应用程序。使用 Chrome DevTools 为 Web 应用程序 生成时间线事件。
您的 IDE 支持此模式。例如,Android Studio 提供了运行 > 性能分析...菜单选项。命令 flutter run --profile
会编译为性能分析模式。
有关构建模式的更多信息,请参阅 Flutter 的构建模式。
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新于 2024-06-27。 查看源代码 或 报告问题.