效能常見問答

此頁面收集了一些關於評估和偵錯 Flutter 效能的常見問題。

  • 我的 Flutter 應用程式看起來很卡頓或不流暢。我該如何修復它?
  • 我如何得知 Flutter 應用程式中哪些小工具在每個畫面中重建?
    • widgets/debug.dart 中將 debugProfileBuildsEnabled 設定為 true。
    • 或者,變更 widgets/framework.dart 中的 performRebuild 函式,以忽略 debugProfileBuildsEnabled 並始終呼叫 Timeline.startSync(...)/finish
    • 如果您使用 IntelliJ,則可以使用此資料的 GUI 檢視。選擇追蹤小工具重建,您的 IDE 會顯示重建的小工具。
  • 如何解決因昂貴的 Dart 非同步函式呼叫而導致 UI 執行緒遭封鎖,進而造成應用程式動畫效果不佳的問題?
  • 如何擷取正在執行的應用程式的螢幕截圖並將其匯出為 SKP 檔案?
    • 執行 flutter screenshot --type=skia --observatory-uri=...
    • 請注意查看螢幕截圖時已知的問題
    • 若要分析和視覺化 SKP 檔案,請查看 Skia WASM 除錯器
  • 如何從裝置中擷取著色器持續快取?
    • 在 Android 上,您可以執行下列動作
      adb shell
      run-as <com.your_app_package_name>
      cp <your_folder> <some_public_folder, e.g., /sdcard> -r
      adb pull <some_public_folder/your_folder>
      
  • 如何在 Fuchsia 中執行追蹤?