APP下载

Flutter 2.5改进效能大幅减少应用程序卡顿

消息来源:baojiabao.com 作者: 发布时间:2024-10-03

报价宝综合消息Flutter 2.5改进效能大幅减少应用程序卡顿

Google释出最新Flutter 2.5,这个新版本拥有大量更新,是目前Flutter发表以来第二大的版本,总共有252个贡献者,和216个程式码审查者参与开发,合并3,932个拉取请求解决了4,600个问题。这些更新重点在于改进效能和工具,并且加入新功能,包括支援Android全屏幕、Material You,还有在VS Code专案中加入相依项目等。

Flutter 2.5最受瞩目的更新,便是在效能方面的进展,特别是利用预热着色器的方式改善iOS上卡顿的情况,但官方提到,着色器冷启动并非卡顿的唯一原因,过去处理网络、档案系统、扩充套件和其他异步事件,都可能会中断动画,这是另一个卡顿的来源,在这个新版本中,开发团队改进UI隔离事件循环上的调度策略,使得影格处理的优先度高于其他异步事件,因此消除更多了卡顿情况。

另外,垃圾回收器暂停UI执行绪来回收内存,也是造成卡顿的原因之一,由于过去部分图像的内存采懒散回收方法,来回应Dart虚拟机器所执行的垃圾回收工作,过去的解决办法,是Flutter引擎会向Dart虚拟机器,暗示图像内存可以透过垃圾回收器回收,官方提到,虽然在理论上可以更即时地回收内存,但实际上由于太多主要垃圾回收工作,使得内存没办法更快回收,导致装置上内存不足,而Flutter 2.5改善了这个问题,现在图像内存会被迅速回收。

内存回收效率的改进,可以从垃圾回收次数下降观察,在官方的测试中,过去播放20秒GIF动画,需要400多次的垃圾回收,现在只需要4次,官方表示,更少的垃圾回收,减少消耗的CPU和电力,能够降低图像显示和消失动画的卡顿。

新版Flutter另一项效能改进,是Dart和Objective-C/Swift,以及Dart和Java/Kotlin之间发送讯息的延迟,官方借由移除不必要的讯息解码器副本,来降低50%以上的延迟,效能改进的幅度,取决于讯息的大小和装置。

Flutter 2.5对框架进行了不少修复和改进,官方先从Android下手,修复一系列和全屏幕模式相关的问题,并且增加对各种Android全屏幕模式的支援,这影响系统UI覆盖层,像是状态列和底部导览列的可见性,模式分别有lean back、immersive、immersive sticky以及edge to edge,该更新同时提供开发者在其他模式下,监听全屏幕变更的方法,像是在用户与应用程序互动,当系统UI出现时,开发者便可以编写程式码,以回到全屏幕或是进行额外处理。

Flutter也更完整地支援Material You规范,包括浮动操作按钮大小,以及主题更新。在页面滚动方面则添加了滚动指标通知,即便用户没有进行滚动操作,也能够提供可滚动区域通知,让滚动条根据ListView底层大小,视情况出现或是消失。

现在Flutter 2.5支援在应用程序顶部,出现Material横幅,该横幅会一直显示直到用户关闭,由于Material指南规定,应用程序的横幅只能一次出现一个,因此该横幅功能会维护一个伫列,在前一个横幅被关闭后,才会出现新的横幅。

在这个版本,适用于VS Code的Flutter扩充套件也获得更新,加入两个指令分别是,Dart: Add Dependency和Dart: Add Dev Dependency,让开发者可以简单地在专案中,添加相依项目。

2021-09-14 08:47:00

相关文章