1.FlutterBoost
FlutterBoost是基于Flutter的Boost库。它的使命是让开发者非常简单的在原生 App 中开发 Flutter 页面。
架构
FlutterBoost插件分为平台和Dart两端,中间通过Message Channel连接。
平台侧提供了Flutter引擎的配置和管理、Native容器的创建/销毁、页面可见性变化通知,以及Flutter页面的打开/关闭接口等。
Dart侧除了提供类似原生Navigator的页面导航接口的能力外,还负责Flutter页面的路由管理。
FlutterBoost原理:
- 引擎复用:FlutterBoost通过复用单个Flutter引擎实例,使得在原生和Flutter之间切换页面时,不需要每次都创建新的引擎实例。这大大提高了页面切换的流畅性和性能。
- 页面栈管理:FlutterBoost内部维护了一个页面栈,用于管理所有的Flutter页面和原生页面。当进行页面跳转时,它会根据页面栈的状态来决定是显示Flutter页面还是原生页面。
- 生命周期同步:FlutterBoost会监听原生页面的生命周期事件,并将这些事件同步到对应的Flutter页面上。这样,即使是在原生页面和Flutter页面之间切换,Flutter页面也能正确地响应各种生命周期事件。
- 消息通道:FlutterBoost使用了Flutter的平台通道(Platform Channels)机制,以实现原生和Flutter之间的数据通信。这使得在原生和Flutter页面之间传递参数、共享数据变得可能。
- 路由管理:Fl