一、Flutter Boost簡介
眾所周知,Flutter是一個由C++實作的Flutter Engine和由Dart實作的Framework組成的跨平臺技術框架,其中,Flutter Engine負責執行緒管理、Dart VM狀態管理以及Dart代碼加載等作業,而Dart代碼所實作的Framework則負責上層業務開發,如Flutter提供的組件等概念就是Framework的范疇,
隨著Flutter的發展,國內越來越多的App開始接入Flutter,為了降低風險,大部分App采用漸進式方式引入Flutter,在App里選幾個頁面用Flutter來撰寫,但都碰到了相同的問題,在原生頁面和Flutter頁面共存的情況下,如何管理路由,以及原生頁面與Flutter頁面之間的切換和通信都是混合開發中需要解決的問題,然而,官方沒有提供明確的解決方案,只是在混合開發時,官方建議開發者,應該使用同一個引擎支持多視窗繪制的能力,至少在邏輯上做到FlutterViewController是共享同一個引擎里面的資源,換句話說,官方希望所有的繪制視窗共享同一個主Isolate,而不是出現多個主Isolate的情況,不過,對于現在已經出現的多引擎模式問題,Flutter官方也沒有提供好的解決方案,除了記憶體消耗嚴重外,多引擎模式還會帶來如下一些問題,
- 冗余資源問題,多引擎模式下每個引擎的Isolate是相互獨立的,雖然在邏輯上這并沒有什么壞處,但是每個引擎底層都維護了一套圖片快取等比較消耗記憶體的物件,因此設備的記憶體消耗是非常嚴重的,
- 插件注冊問題,在Flutter插件中,訊息傳遞需要依賴Messenger,而Messenger是由FlutterViewController去實作
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/271926.html
標籤:AI
