前言
Flutter DevTools 是一組強大的工具,可以幫助你調試和分析 Flutter 應用的性能和行為。
VS Code啟動
- 方法1:在你的 Flutter 應用運行後,你會在控制台看到 DevTools 的啟動連結(通常是 localhost),點擊連結會在默認瀏覽器中打開 DevTools。
- 方法2:如果沒有看到連結,可以在 Debug Console 輸入 flutter pub global run devtools 或直接從 IDE 的工具欄中啟動。
- 方法3:
- 在 VS Code 中,按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows)打開命令面板。
- 輸入並選擇 Flutter: Open DevTools,然後選擇你想要的工具(例如 Inspector、Memory、Performance 等)。這會在瀏覽器中打開 DevTools。
設定自動啟動DevTools
進入 VS Code 設置,搜索「Flutter」並確保 dart.flutterDevTools 設置為 true,這樣可以確保每次啟動應用時自動加載 DevTools。
如果使用的是代理或防火牆,可能會阻止 DevTools 的啟動。嘗試在開放的網絡環境下運行 Flutter 應用。
如果以上步驟無效,請重啟 VS Code 並再次嘗試。
DevTools主要功能
功能 | 描述 | 細分功能 |
---|---|---|
Widget Inspector | 用於檢查和調試 widget 樹 | – 查看 widget 層次結構和屬性 – 高亮顯示應用界面上對應的 widget – 查看 widget 的布局約束和調整屬性 |
Performance | 分析應用的性能問題 | – 查看幀率(FPS)和渲染時間 – 檢測性能瓶頸 – 記錄並分析 timeline |
Memory | 分析內存使用情況 | – 查看內存分配、使用和釋放情況 – 檢測內存泄漏 – 拍攝內存快照進行詳細分析 |
Network | 查看網絡請求和響應 | – 查看 HTTP 請求的 URL、方法、狀態碼 – 檢查請求頭和響應數據 |
Logging | 查看應用的日誌輸出 | – 過濾日誌消息 – 檢查錯誤和警告 |
CPU Profiler | 分析 CPU 使用情況 | – 查看方法的執行時間 – 確定計算密集型操作的性能瓶頸 |
App Size | 分析應用的 APK/IPA 文件大小 | – 找出佔用最多空間的資源 – 減少無效資源 |
使用Widget Inspector 調教畫面
功能 | 詳細描述 |
---|---|
查看 Widget 樹層次結構 | Widget Tree:顯示應用的 widget 層次結構,以樹狀結構呈現,幫助理解 widget 的父子關係,尤其適合複雜布局。選中 Widget:點擊某個 widget,右側會顯示其詳細屬性(位置、大小等)。 |
Select Widget Mode | 選擇模式:啟用後,可以直接在應用界面上點擊區域,DevTools 將自動定位到相應的 widget。快速調試:方便找到 widget 的位置並檢查其屬性。 |
Layout Explorer | 布局調試:提供視覺化工具來檢查和調整 widget 的布局屬性,如寬度、高度、間距(padding、margin)、對齊方式等。調整屬性:可以直接調整屬性,立即查看界面變化。 |
Show Debug Paint | 顯示調試畫線:啟用後,DevTools 會在界面上顯示每個 widget 的邊框和布局線條,有助於檢查對齊、間距和大小。定位布局問題:適合調試對齊或間距問題,直觀顯示 widget 的佈局。 |
Widget 屬性檢查 | 屬性查看:選中某個 widget 後,右側屬性面板顯示詳細屬性(如文本、顏色、大小)。實時更新:部分屬性支持即時更新,可立即在界面上查看變化,方便試驗設計效果。 |
Alignment and Constraints | 查看約束信息:檢查 widget 的約束條件,如最小和最大寬高值,這些約束會影響布局。分析對齊:查看 widget 的對齊方式,調整定位和分佈,避免對齊問題。 |
檢查 Overflow 問題 | 溢出檢查:當 widget 超出容器時,會在界面上顯示紅色邊框(overflow)。快速解決方法:使用 Widget Inspector 檢查 overflow widget,並調整屬性(如 flex、Expanded)來解決。 |
實際上幫助我校正畫面的範例
開啟Select Widget Mode,點擊想要查看的組件
發現ChipWidget竟然,本身有Margin
可以在模擬器直接切換另一個widget