Flutter之构建模式

355 阅读2分钟

三种构建模式

  • debug 热重载
  • profile 性能分析
  • release 发布应用

Debug模式

app可以被安装在物理设备,模拟器上进行调试

  • 断点开启
  • 服务扩展开启
  • 针对快速开发和运行周期进行了编译优化(但不是针对执行速度、二进制文件大小或者部署)
  • 调试开启,类似开发者工具等调试工具可以连接到进程里

在Web平台下调试模式意味着:

  • 本次构建没有最小化资源并且整个构建没有优化性能
  • 为了简化调试,这个Web应用使用了dartdevc编译器

默认情况下,运行flutter run会使用Debug模式

  • 热重载只能在Debug模式下运行
  • 模拟器只能在Debug模式下运行
  • 在Debug模式下,性能可能会掉帧或卡顿,profile更接近真机性能

Release模式

最大的优化和最小的占用空间,不支持模拟器

  • 断点不可用
  • 调试信息不可见
  • 调试是禁用的
  • 编译针对快速启动、快速执行和小的package的大小进行了优化
  • 服务扩展是禁用的

在Web平台下Relase模式意味着:

  • 本次构建资源已经被压缩,并且性能得以优化
  • 这个Web应用通过dart2js编译器构造,以确保更优秀的性能

flutter run --relase会使用relaset模式来进行编译

你可以使用flutter build target针对特定目标编译release模式。可以使用flutter help build查看支持的目标列表

你可以使用flutter builder --relase命令来使用release模式

Profile模式

在该模式下,一些调试能力是被保留的-足够分析你的app性能

在仿真器和模拟器上,Profile模式是不可用的,因为他们的性能不能代表真实的性能

profile模式与release类似,但有以下不同:

  • 一些服务扩展是启用的。例如,支持performance overlat
  • Tracing是启用的,一些调试工具,比如开发者工具可以连接到进程里

在Web平台的Profile模式意味着:

  • 资源文件没有被压缩,但是整体性能已经优化
  • 这个web应用通过dart2js编译器构建

flutter run --profile命令是使用Profile模式编译的