Flutter的四種執行模式:Debug、Release、Profile和test
Flutter有四種執行模式:Debug、Release、Profile和test,這四種模式在build的時候是完全獨立的。
Debug
Debug模式可以在真機和模擬器上同時執行:會開啟所有的斷言,包括debugging資訊、debugger aids(比如observatory)和服務擴充套件。優化了快速develop/run迴圈,但是沒有優化執行速度、二進位制大小和部署。命令flutter run
就是以這種模式執行的,通過sky/tools/gn --android
或者sky/tools/gn --ios
來build。有時候也被叫做“checked模式”或者“slow模式”。
Release
Release模式只能在真機上執行,不能在模擬器上執行:會關閉所有斷言和debugging資訊,關閉所有debugger工具。優化了快速啟動、快速執行和減小包體積。禁用所有的debugging aids和服務擴充套件。這個模式是為了部署給最終的使用者使用。命令flutter run --release
就是以這種模式執行的,通過sky/tools/gn --android --runtime-mode=release
或者sky/tools/gn --ios --runtime-mode=release
來build。
Profile
Profile模式只能在真機上執行,不能在模擬器上執行:基本和Release模式一致,除了啟用了服務擴充套件和tracing,以及一些為了最低限度支援tracing執行的東西(比如可以連線observatory到程序)。命令flutter run --profile
sky/tools/gn --android --runtime-mode=profile或者
sky/tools/gn --ios --runtime-mode=profile```來build。因為模擬器不能代表真實場景,所以不能在模擬器上執行。
test
headless test模式只能在桌面上執行:基本和Debug模式一致,除了是headless的而且你能在桌面執行。命令flutter test
就是以這種模式執行的,通過sky/tools/gn
來build。
在我們實際開發中,應該用到上面所說的四種模式又各自分為兩種:一種是未優化的模式,供開發人員除錯使用;一種是優化過的模式,供最終的開發人員使用。預設情況下是未優化模式,如果要開啟優化模式,build的時候在命令列後面新增--unoptimized