
Google更新开源跨平台UI框架发布最新的3.10版本,Flutter 3.10更新组件主题和视觉效果,使Material函数库规范符合Material 3。除了接口之外,Flutter 3.10的引擎也有不少更新,在iOS设备程序性能将有感提升。
早在Flutter 3.7版本的时候,开发团队在iOS添加了预览版的Impeller渲染引擎,解决Flutter程序刚启动时,因为着色器导致性能不稳(Jank)的状况。Impeller在构建阶段,就会预先编译一组轻量着色器,因此由于Impeller不在执行时编译着色器,也就能减少性能波动。
现在从Flutter 3.10开始,所有iOS应用程序都使用Impeller,Impeller从预览版以来,已经有许多改进,包括通过精简渲染程序,Impeller能够使用更少的内存,而且在较新的iPhone、iPad上,还能够激活有损贴图压缩技术,在不影响传真度(Fidelity)的前提下减少内存使用。
这些改进在复杂的应用上,会有明显的性能提升,像是在Wonderous应用程序中,渲染画面所使用的内存可能减少接近一半,而这也连带降低GPU和CPU的负担。Impeller满足大多数的Flutter应用程序渲染需求,但是开发者也可以根据需求选择不使用Impeller。目前Android版本的Impeller引擎还在开发阶段,尚未进入预览阶段。
在Flutter 3.7开发团队将加载本地端图像的平台线程,转移到底层Dart线程,避免对平台线程中的垂直同步事件造成延迟,但是这个改动却对Dart线程造成额外的工作,导致画面出现卡顿,在Flutter 3.10中,开发团队把本地图像的打开和解码工作,从Dart线程移到后台线程,如此不只解决画面卡顿问题,也避免造成垂直同步事件延迟,在基准测试中,多个图像同时加载的时间缩短一半。
开发团队原本在Flutter 3.0版本的渲染流程,对Android应用激活一项先进的渲染功能,使应用程序能够只重新搭建有变化的画面区域,而非总是更新整个画面,借此提高渲染效率,但是开发团队提到,他们发现这个功能在实际运行时,效果不如当初的期望,而且并非所有设备和Android版本都支持。
因此开发团队最后决定在Android上停用这个功能,但是会持续在iOS中的Skia引擎激活,并且也计划添加到Impeller渲染引擎。











