flutter 运行的四种模式

发布时间 2023-11-09 17:57:51作者: vx_guanchaoguo0

Debug(调试)模式

  1、 这是开发Flutter应用程序时最常用的模式。可以在真机和模拟器上同时运行。重要用于开发和调试阶段。
  2、可以进行热重载,即在不重新启动应用程序的情况下实时更新代码。
  3、应用程序会包含用于调试和开发的额外信息和工具(debugging信息、debugger aids(比如observatory)和服务扩展),例如错误提示、日志记录和断言。
  4、运行速度较慢,但它提供了最佳的开发体验和易用性。
  5、优化了快速develop/run循环,但是没有优化执行速度、二进制大小和部署。命令flutter run就是以这种模式运行的,通过sky/tools/gn --android或者sky/tools/gn --ios来build。有时候也被叫做“checked模式”或者“slow模式”

Release(发布)模式

  1、 Release模式用于构建发布版本的应用程序,以便在最终用户设备上运行。它通常用于应用程序的正式发布和发布到应用商店。
  2、 应用程序被优化以提供最佳的性能和资源利用。它会删除调试信息,减小应用程序的大小,并进行代码优化。
  3、 Release模式下的应用程序通常比Debug模式下的应用程序运行得更快。
  4、 Release模式只能在真机上运行,不能在模拟器上运行:会关闭所有断言和debugging信息,关闭所有debugger工具。
  5、 优化了快速启动、快速执行和减小包体积。禁用所有的debugging aids(调试工具和服务扩展。这个模式是为了部署给最终的用户使用。命令flutter run --release就是以这种模式运行的,通过sky/tools/gn --android --runtime-mode=release或者sky/tools/gn --ios --runtime-mode=release来build。

Profile(性能分析)模式

1、 Profile模式用于性能分析和优化应用程序阶段。它提供了比Debug模式更多的性能相关信息,但没有像Debug模式那样的完整调试支持。不支持热重载
2、 应用程序会收集性能数据,如内存使用情况、CPU占用率和渲染性能等。这些数据可以用于发现性能瓶颈并进行优化。
3、 Profile模式下的应用程序运行速度通常比Debug模式稍慢,但仍比Release模式快。
4、 Profile模式只能在真机上运行,不能在模拟器上运行:基本和Release模式一致,除了启用了服务扩展和tracing,以及一些为了最低限度支持tracing运行的东西(比如可以连接observatory到进程)。
5、 命令flutter run --profile就是以这种模式运行的,通过sky/tools/gn --android --runtime-mode=profile或者sky/tools/gn --ios --runtime-mode=profile```来build。因为模拟器不能代表真实场景,所以不能在模拟器上运行。

test(测试)模式

1、Test模式用于运行自动化测试和单元测试。它提供了特定的工具和环境,以便于测试代码的执行和断言结果的验证。
2、测试框架可以与应用程序交互,模拟用户操作并验证预期结果。
3、测试模式通常用于持续集成和构建过程中的自动化测试。

Observatory 观察模式

  *  Observatory是 Dart 和 Flutter 提供的一种强大的工具,用于在运行中的应用程序中监视、调试和分析应用程序的性能和行为。它提供了一组功能丰富的工具和界面,帮助开发者诊断和解决应用程序中的问题。
  *  Observatory 提供以下主要功能:
      1、内存分析:Observatory 可以帮助开发者监视应用程序的内存使用情况,包括对象分配和回收、内存泄漏等。这对于优化内存使用和解决内存泄漏问题非常有用。
      2、 CPU 分析:Observatory 提供了 CPU 分析工具,帮助开发者识别应用程序中的 CPU 瓶颈和性能问题。它可以显示每个函数的 CPU 使用情况,帮助定位耗时操作和优化热点代码。
      3、异步堆栈跟踪:Observatory 具有强大的异步堆栈跟踪功能,可以帮助开发者追踪异步操作的执行路径和调用关系。这对于理解异步代码的行为和解决异步问题非常有帮助。
      4、代码热重载:Observatory 具有热重载功能,可以在不重新启动应用程序的情况下实时更新代码。这使得开发者可以快速调试和修改应用程序的代码,提高开发效率。
      5、 性能监视:Observatory 提供了实时的性能监视工具,可以监视应用程序的帧率、渲染性能和 UI 响应时间。这对于优化应用程序的性能和响应性非常有用。
      6、 要使用 Observatory,可以在运行中的 Flutter 应用程序上启用它。在开发模式下,可以通过运行 flutter run --observatory-port= 命令启动应用程序,并在浏览器中访问相应的调试 URL。然后,可以使用 Observatory 提供的界面和工具来监视和分析应用程序。

Debug模式与Profile模式的区别在哪里

     1、功能和工具:Debug模式是用于开发和调试应用程序的模式。它提供了热重载(Hot Reload)、布局边界显示(Layout Boundaries)、控制台日志输出(Console Logging)以及断点调试(Debugging with Breakpoints)等功能和工具,方便开发者进行快速迭代和调试。而Profile模式则是用于性能分析和优化的模式。它提供了一些性能分析工具和优化策略,可以帮助开发者定位和解决性能问题。
  2、性能和优化:Debug模式下,Flutter会执行一些额外的检查和优化,以提供更好的开发体验。这包括更详细的错误信息、更快的热重载速度以及更好的运行时性能。但相应地,Debug模式的应用程序可能会运行得稍慢一些,因为包含了调试信息和工具。而Profile模式下,Flutter会执行更多的性能优化,以提高应用程序的性能和效率。这包括禁用调试信息、启用代码优化和移除不必要的开发工具和库。因此,在Profile模式下构建的应用程序通常更小、更快,并且具有更高的运行时性能。
  3、构建和部署:Debug模式下构建的应用程序通常用于开发、测试和调试阶段。你可以使用flutter run命令以Debug模式运行应用程序,并在开发过程中使用相关工具进行调试。而Profile模式下构建的应用程序则通常用于性能分析和发布准备阶段。你可以使用flutter run --profile命令以Profile模式运行应用程序,执行性能分析并优化应用程序的性能。在最终发布应用      程序之前,通常会使用Release模式进行构建和部署,以获得最佳的性能和体验。
  4、需要注意的是,Debug模式和Profile模式都是为了不同的目的而设计的。在开发过程中,通常会使用Debug模式进行快速迭代和调试,而在性能分析和优化阶段,可以切换到Profile模式进行性能分析和优化。最终,为了发布应用程序,会使用Release模式进行构建和部署,以获得最佳的性能和效果。