從零學習Fluter(八):Flutter的四種運行模式--Debug、Release、Profile和test以及命名規範 ...
從零學習Fluter(八):Flutter的四種運行模式--Debug、Release、Profile和test以及命名規範
好幾天沒有跟新我的這個系列文章,一是因為這兩天我又在之前的基礎上,重新認識flutter,覺得flutter這個東西越來越有意思。並且水很深
今天簡單分享一下開發學習中的小知識點
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參數。
Flutter中遵循的命名規範
文件夾名遵循駝峰命名法
- 文件名採用蛇形命名法
- flutter中沒用採用單文件單類,而是採用單文件多類劃分模式,註意,多類之間要有耦合的緊密聯繫
類名遵循帕斯卡命名法
變數採用駝峰命名發
下麵分享一個我項目中的架構目錄
最後再分享一個問題,關於android 狀態欄陰影的問題
我們預設採用material 風格的設計樣式,但是我們的狀態欄總會有一個陰影覆蓋,解決這個問題我們只需設置一下
TargetPlatform platform = defaultTargetPlatform;
if (platform != TargetPlatform.iOS) {
SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
//statusBarIconBrightness: Brightness.dark
);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
這裡可以看到,狀態欄的陰影沒有了
下一張分享一下,如何使用vsc監視變數,以及調試