Flutter 的建置模式
Flutter 工具在編譯應用程式時支援三種模式,以及用於測試的無頭模式。您會根據開發週期的位置選擇編譯模式。您是否正在偵錯程式碼?您是否需要分析資訊?您是否已準備好部署應用程式?
以下是關於何時使用哪種模式的快速摘要
本頁的其餘部分詳細說明這些模式。
- 若要了解無頭測試模式,請參閱引擎 Wiki 中關於 Flutter 的建置模式的文件。
- 若要了解如何偵測建置模式,請查看在 Flutter 應用程式中檢查除錯/發佈模式的部落格文章。
偵錯
#在除錯模式中,應用程式會設定為在實體裝置、模擬器或模擬器上進行除錯。
行動應用程式的除錯模式表示:
Web 應用程式的除錯模式表示:
- 建置並未縮減,且未執行樹狀結構搖晃(tree shaking)。
- 應用程式會使用 dartdevc 編譯器進行編譯,以方便除錯。
預設情況下,flutter run
會編譯為除錯模式。您的 IDE 支援此模式。例如,Android Studio 提供 執行 > 除錯... 選單選項,以及專案頁面上覆蓋著小三角形的綠色錯誤圖示。
發行
#當您想要最大程度的最佳化和最小的足跡大小時,請使用發佈模式來部署應用程式。對於行動裝置,發佈模式(模擬器或模擬器不支援此模式)表示:
- 斷言已停用。
- 除錯資訊已移除。
- 除錯已停用。
- 編譯已針對快速啟動、快速執行和小套件大小進行最佳化。
- 服務擴充功能已停用。
Web 應用程式的發佈模式表示:
- 建置已縮減,且已執行樹狀結構搖晃(tree shaking)。
- 應用程式會使用 dart2js 編譯器進行編譯,以獲得最佳效能。
指令 flutter run --release
會編譯為發佈模式。您的 IDE 支援此模式。例如,Android Studio 提供 執行 > 執行... 選單選項,以及專案頁面上的三角形綠色執行按鈕圖示。您可以使用 flutter build <target>
編譯為特定目標的發佈模式。如需支援的目標清單,請使用 flutter help build
。
如需更多資訊,請參閱關於發佈iOS和Android應用程式的文件。
分析
#在效能分析模式中,會保留一些除錯功能,足以分析應用程式的效能。效能分析模式在模擬器和模擬器上已停用,因為它們的行為無法代表實際效能。在行動裝置上,效能分析模式與發佈模式類似,但有以下差異:
- 某些服務擴充功能(例如啟用效能覆蓋圖的擴充功能)已啟用。
- 已啟用追蹤,且支援原始碼層級除錯的工具(例如DevTools)可以連線至該程序。
Web 應用程式的效能分析模式表示:
- 建置並未縮減,但已執行樹狀結構搖晃(tree shaking)。
- 應用程式會使用 dart2js 編譯器進行編譯。
- DevTools 無法連線至在效能分析模式下執行的 Flutter Web 應用程式。請使用 Chrome DevTools 為 Web 應用程式產生時間軸事件。
您的 IDE 支援此模式。例如,Android Studio 提供 執行 > 效能分析... 選單選項。指令 flutter run --profile
會編譯為效能分析模式。
如需有關建置模式的更多資訊,請參閱Flutter 的建置模式。
除非另有說明,本網站上的文件均反映 Flutter 的最新穩定版本。頁面上次更新時間為 2024-06-27。 檢視原始碼 或 回報問題。