FlutterBoost 做为 Flutter sdk 上层的解决方案,有一定的局限性,我们需要依赖 sdk 更多的开放能力。因此我们同时在做两件事情:

▐   推动 Flutter 官方开放更多的底层接口

我们参与 Flutter 组织的 Multiple Flutters[1] 的讨论,也多次发邮件给 Flutter 团队反馈 sdk 的 Bug 和一些无法支持的应用场景。

很欣慰的是在 Flutter 2.0 上看到混合开发的重大进展。

Flutter2.0 提供了 FlutterEngineGroup , FlutterEngineGroup 创建一个新 Engine ,内存只增加 180k ,这个给我们提供了很多想象空间。

但 FlutterEngineGroup 最大的问题是多 Engine 之间不是 isolate 层面的内存共享。

从目前看 FlutterBoost 这种单 Engine 内存共享的方式还不能被完全取代。

▐   FlutterBoost 的升级

虽然开源社区很活跃, star 很多,使用者也很多,但 FlutterBoost 离优秀的开源项目还很远。

Flutter Boost 的问题

存在的问题

  • 稳定性每次 Flutter 发布一个 stable 版本,开发者会来问我, FlutterBoost 针对新版本适配了没有?他们准备升级新版本,需要 FlutterBoost 能适配最新版本。而我每次都要针对新版本拉2个新分支( Androidx 和 Support 分支),进行适配。时间长了,会产生很多分支,这个给分支管理带来很大的成本,比如在某个分支上修复的 issue 要同步到其他分支,一不小心就会遗漏同步。
  • 社区的 issue 没有收敛的趋势。
  • 设计过于复杂,概念太多。这让一个新手看 FlutterBoost 的代码很吃力。

这些问题促使我们重新梳理设计,为了彻底解决这些顽固的问题,我们做一次大升级,我们把这次升级命名为 FlutterBoost 3.0(上一次升级是2.0)

Flutter Boost 3.0做了什么

针对上述问题,我们做了几个事项:

  • 不侵入引擎,兼容 Flutter 的各种版本,Flutter sdk 的升级不需要再升级 FlutterBoost ,极大降低升级成本。

  • 不区分 Androidx 和 Support 分支。

  • 简化架构和接口,和 FlutterBoost2.0 比,代码减少了一半。

  • 双端统一,包括接口和设计上的统一。

  • 支持打开 Flutter 页面,不再打开容器场景。

  • 页面生命周期变化通知更方便业务使用。

  • 解决了2.0中的遗留问题,例如, Fragment 接入困难、页面关闭后不能传递数据、 dispose 不执行,内存占用过高等。

Flutter Boost3.0 接入和使用

接入方式

flutter_boost:

git:

url: ‘https://github.com/alibaba/flutter_boost.git’

ref: ‘v3.0-beta.3’

目前 FlutterBoost3.0 发布了 beta 版本,处于公测阶段。

接入档口

详细请看 https://github.com/alibaba/flutter_boost

对 Flutter2.0 新特性 Flutter EngineGroup

FlutterBoost 是采用单 Engine 的方案,所以整个 App 是在同一个 Isolate 下,内存共享。

而 FlutterEngineGroup 是采用多 Engine 方案,每个页面是一个 Engine ,或者一个页面内包含多个 Engine ,每个Engine对应一个 Isolate ,内存不共享。

从 FlutterEngineGroup 生成的 FlutterEngine ,内存只增加 180k 。

因为它对常用资源进行共享(例如 GPU 上下文、字体度量和隔离线程的快照),加快首次渲染的速度、降低延迟并降低内存占用。

那是不是有了 FlutterEngineGroup 就不需要 FlutterBoost 了?

从目前看 FlutterBoost 这种单 Engine 的方案,有一定的合理性,还不能完全被替代。


Flutter Boost 的未来发展

后续会继续做这3件事情:

  • FlutterBoost3.0 会继续在单 Engine 方向完善和优化,让他更稳定,支持更多场景。

  • 持续和 Flutter 官方沟通,包括能否支持 FlutterEngineGroup 在 isolate 层面的内存共享。
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

以下是今天给大家分享的一些独家干货:

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

精品Android架构师教程**,保证你学了以后保证薪资上升一个台阶。

以下是今天给大家分享的一些独家干货:

[外链图片转存中…(img-hwWVSmgl-1713307683124)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐