Flutter 2.x 混合栈路由管理

本文探讨了Flutter混合开发中的路由管理问题,特别是针对Flutter 2.0之前的内存泄漏和资源不共享问题。文章介绍了多引擎方案,特别是FlutterEngineGroup,该方案显著降低了内存占用并简化了API。通过FlutterEngineGroup,可以更有效地管理多个Flutter页面,同时在原生和Flutter之间进行路由跳转。文章还提供了官方示例的运行步骤和基本使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

在Flutter开发中,除了热更新之外,Flutter 最受诟病的就是混合开发体验不好,而混合开发最重要的就是路由和组件生命周期的管理。

目前,Flutter 在跨平台方案一致性以及优秀的体验已经获得大多数开发者的一致称赞。但对于本身已有成熟的业务代码的项目来说,直接使用纯Flutter进行开发几乎是不现实的,所以更多的项目是在不改变更原有 App 业务的基础上,将 Flutter 作为子模块进行接入和开发,架构如下。
在这里插入图片描述

在混合开发中,就必然栈涉及到 Flutter 页面与原生页面的跳转。而在Flutter 2.0之前,官方的路由方案在多引擎下有着通信隔离、资源不共享、以及可能带来极大的内存损耗(体现在打开多个 Flutter 页面时内存异常增长)等缺陷。对于这种问题,业内出现了flutter_boost 、 mix_stack 、 flutter_thrio等混合路由方案,其原理都是采用单引擎复用方案,但这仍有不少痛点,主要体现在以下两点:

  • 混合栈路由在使用时,仍有可能会产生内存异常;
  • Flutter底层代码的修改,造成上层框架需要不断适配。

二、多引擎方案

在Flutter 2.0版本之前, Flutter 的控件渲染直接脱离了原生平台,也就是无论页面堆栈和渲染树都独立于平台运行,这固然给 Flutter 带来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiangzhihong8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值