iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >提升Flutter体验的方法是什么
  • 407
分享到

提升Flutter体验的方法是什么

2023-06-04 07:06:30 407人浏览 薄情痞子
摘要

本篇内容主要讲解“提升Flutter体验的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“提升Flutter体验的方法是什么”吧!目标过度的丢帧从视觉上会出现卡顿现象,体现在用户滑动操作

本篇内容主要讲解“提升Flutter体验的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“提升Flutter体验的方法是什么”吧!

目标

过度的丢帧从视觉上会出现卡顿现象,体现在用户滑动操作不流畅;页面加载耗时过长容易中断操作流程;Flutter部分exception会导致发生异常代码后面的逻辑没有走到从而造成逻辑bug甚至白屏。这些问题很容易考验用户耐心,引起用户反感。

所以我们制定以下三个指标作为线上Flutter性能稳定性标准:

  1. 页面滑动流畅度

  2. 页面加载耗时(首屏时长+可交互时长)

  3. Exception率

最终目标是让这些数据指标驱动Flutter用户体验升级。

页面滑动流畅度

我们先大概了解下屏幕渲染流程:CPU先把UI对象转变GPU可以识别的信息存储进displaylist列表,GPU执行绘图指令来执行displaylist,取出相应的图元信息,进行栅格化渲染,显示到屏幕上,这样一个循环的过程实现屏幕刷新。

闲鱼客户端采用的Native、Flutter混合技术方案,Native页面FPS监控采用集团高可用方案,Flutter页面是否可以直接采用这套方案监控?

普遍的FPS检测方案Android端采用的是Choreographer.FrameCallBack,iOS采用的是CADisplayLink注册的回调,原理是类似的,在每次发出Vsync信号,并且CPU开始计算的时候执行到对应的回调,这个时候表示屏幕开始一次刷新,计算固定时间内屏幕渲染次数来得到fps。(这种方式只能检测到CPU卡顿,对于GPU的卡顿是无法监控到的)。由于这两种方法都是在主线程做检测处理,而Flutter的屏幕绘制是在UI TaskRunner中进行,真正的渲染操作是在GPU TaskRunner中,关于详细的Flutter线程问题可以参考闲鱼之前的文章:深入理解Flutter引擎线程模式。

这里我们得出结论:Native的FPS检测方法并不适用于Flutter。

Flutter官方给我们提供了 PerfORMance Overlay作为检测帧率工具,可否直接拿来用?

提升Flutter体验的方法是什么

上图显示了Performance Overlay模式下的帧率统计,可以看到,Flutter分开计算GPU 和UI TaskRunner。UI Task Runner被Flutter Engine用于执行dart root isolate代码,GPU Task Runner被用于执行设备GPU的相关调用。通过对Flutter engine源码分析,UI frame time是执行window.onBeginFrame所花费的总时间。GPU frame time是处理CPU命令转换为GPU命令并发送给GPU所花费的时间。

这种方式只能在debug和profile模式下开启,没有办法作为线上版本的fps统计。但是我们可以通过这种方式获得启发,通过监听Flutter页面刷新回调方法handleBeginFrame()、handleDrawFrame()来计算实际FPS。

0

  • Future<Null> main() async {

  •  FlutterError.onError = (FlutterErrorDetails details) async {

  •    Zone.current.handleUncaughtError(details.exception, details.stack);

  •  };


  •  runZoned<Future<Null>>(() async {

  •    runApp(new HomeApp());

  •  }, onError: (error, stackTrace) async {

  •    await _reportError(error, stackTrace);

  •  });

  • }

  • 其中,FlutterError.onError只会捕获Flutter framework层的error和exception,官方建议将这个方法按照自己的exception捕获上报需求定制。在实践过程中,我们遇到很多不会对用户体验产生任何影响的exception会被频繁触发,这类没有改善意义的exception可以添加白名单过滤上报。

    02

    效果

    有了线上exception的监控,可以及早发现隐患,获取问题堆栈信息,方便定位bug,提示整体稳定性。

到此,相信大家对“提升Flutter体验的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 提升Flutter体验的方法是什么

本文链接: https://www.lsjlt.com/news/236921.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 提升Flutter体验的方法是什么
    本篇内容主要讲解“提升Flutter体验的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“提升Flutter体验的方法是什么”吧!目标过度的丢帧从视觉上会出现卡顿现象,体现在用户滑动操作...
    99+
    2023-06-04
  • C++ 中提升函数性能的具体方法是什么?
    提升 c++++ 函数性能的五个方法:内联函数(将代码嵌入调用方);减少函数参数传递(只传递必要的参数);使用常量引用(传递函数参数的常量引用);优化循环(使用迭代器或范围循环);使用局...
    99+
    2024-04-18
    优化 c++
  • 提升用户体验的方法:利用粘性定位
    粘性定位如何提升用户体验 随着互联网的发展,用户体验成为产品设计和开发中的重要考虑因素。而粘性定位(Sticky Navigation)在提升用户体验方面发挥了重要作用。本文将探讨粘性定位的概念以及如何通过它来提升用户体验。 概...
    99+
    2024-01-29
    用户体验 提升 粘性定位
  • 怎么提升用户体验度
    这篇文章给大家分享的是有关怎么提升用户体验度的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  01. 物以稀为贵  《Design for the Mind》作者Victor Yocco是设计中使用心理捷径的拥护...
    99+
    2023-06-10
  • React状态提升的方法是什么
    今天小编给大家分享一下React状态提升的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.介绍所谓 状态提升 就...
    99+
    2023-07-06
  • jupyterNotebook提升使用体验的几个隐藏功能分别是什么
    本篇文章为大家展示了jupyterNotebook提升使用体验的几个隐藏功能分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Jupyter Notebook是一个交互式的、便于创建的、支持实...
    99+
    2023-06-04
  • 提升Web用户体验的71个设计要点分别是什么
    这篇文章将为大家详细讲解有关提升Web用户体验的71个设计要点分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。01 尝试使用一列的布局替代多列布局0...
    99+
    2024-04-02
  • 优化网站性能和提升用户体验的有效方法
    如何提高网站性能并提升用户体验 随着互联网的发展,网站已成为人们获取信息、交流和消费的重要场所。而一个高性能的网站能够给用户带来更好的体验,提升用户粘性,增加访问量和转化率。本文将介绍一些提高网站性能和提升用户体验的方法。 一、...
    99+
    2024-02-03
    缓存 压缩 优化 异步加载
  • 通过响应式布局提升网站用户体验的方法
    如何利用响应式布局提升网站用户体验 随着移动设备的普及和网络技术的不断发展,越来越多的用户选择使用移动设备访问网站,而不再局限于传统的电脑浏览器。在这个时代,网站的用户体验关系到用户留存和转化率,因此,网站的适应性和响应性成为了...
    99+
    2024-01-29
    网站 用户体验 响应式布局
  • Flutter React编程的方法是什么
    这篇文章主要介绍“Flutter React编程的方法是什么”,在日常操作中,相信很多人在Flutter React编程的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flutter React编程...
    99+
    2023-06-04
  • 虚拟云主机免费体验的方法是什么
    虚拟云主机提供商通常会提供一定的免费试用期或免费套餐,让用户可以免费体验他们的服务。以下是获取虚拟云主机免费体验的一些方法:1. 免...
    99+
    2023-08-18
    虚拟云主机
  • 云服务器提升网速的方法是什么
    云服务器提升网速的方法可能因具体云服务器的性能和配置而异,但以下是一些可能有助于提升网速的方法: 提高服务器硬件性能:在购买和安装云服务器之前,确保你的硬件配置能够处理更多的数据并保持最佳性能。 减少服务器带宽:服务器内部带宽的增加可以...
    99+
    2023-10-26
    网速 服务器 方法
  • JavaScript作用域编写提升的方法是什么
    本篇内容主要讲解“JavaScript作用域编写提升的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript作用域编写提升的方法是什么”吧...
    99+
    2024-04-02
  • Vue.js 与 Sass:提升您的 Web 开发体验
    简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。它以其轻量级、响应式和组件化的方法而闻名。Sass 是一个 CSS 预处理器,它扩展了 CSS 的功能,使其更易于编写和维护。 Vue.js 与 Sass 的...
    99+
    2024-02-17
    Vue.js Sass 前端开发 Web 开发
  • HTML 图像标签:提升用户体验的魔法工具
    增强视觉吸引力 图像为您的网页增添视觉趣味,打破文本的单调性,吸引用户的注意力。精心挑选的高质量图像可以增强品牌形象、传达信息并营造特定氛围。此外,动画图像(如GIF)或视频可以进一步吸引用户,提高网站的动态性。 改善内容理解 图像可以补...
    99+
    2024-04-02
  • 云服务器提升网速的方法是什么呢
    首先,云服务器可以提供更快的网速。云服务器通过将数据存储在远程服务器上,使得用户可以在任何地方访问这些数据。由于云服务器具有高速的网络连接和存储容量,因此用户可以在任何时候访问这些数据,从而提高了网速。 其次,云服务器还可以提供更多的功能...
    99+
    2023-10-27
    什么呢 网速 服务器
  • Node.js WebSocket 的性能优化:提升实时体验
    1. 选择高效的 WebSocket 库和服务器: Socket.IO 和 ws 都是流行且高效的 WebSocket 库。 使用 Nginx 或 Caddy 等反向代理服务器可以减轻主服务器的负载。 2. 优化网络连接: 使用高性...
    99+
    2024-03-13
  • Flutter混合开发的方法是什么
    今天小编给大家分享一下Flutter混合开发的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。为什么要混合方案具有一...
    99+
    2023-06-04
  • 6个提高交互体验的JavaScript库分别是什么
    6个提高交互体验的JavaScript库分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript是一种广泛用于客户端W...
    99+
    2024-04-02
  • HTML 多媒体标签的艺术:提升用户体验的秘诀
    引言 多媒体在网络体验中扮演着至关重要的角色,它可以极大地增强用户参与度和整体满意度。HTML 提供了一系列多媒体标签,使开发人员能够轻松地将各种媒体元素集成到他们的网站中。通过有效地利用这些标签,可以显着提升用户体验,并为网站带来不可否...
    99+
    2024-02-28
    HTML 标签、多媒体、用户体验、提升交互
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作