当前位置: 首页 > news >正文

上海网站建设维护网站底部导航设置

上海网站建设维护,网站底部导航设置,网店开店流程步骤,国外做袜靴的网站在Flutter框架中,Embedder层负责把Flutter嵌入到各个平台上去,其所做的主要工作包括线程设置、渲染Surface设置,以及插件等。因此, Embedder负责线程的创建和管理,并且提供Task Runner给Engine使用。Engine则是负责提供…

      

        在Flutter框架中,Embedder层负责把Flutter嵌入到各个平台上去,其所做的主要工作包括线程设置、渲染Surface设置,以及插件等。因此, Embedder负责线程的创建和管理,并且提供Task RunnerEngine使用。Engine则是负责提供IsolateFramework和应用层进行多线程创建。

        Embeder主要包含四个Task RunnerPlatform RunnerUI RunnerGPU RunnerIO Runner。 其中,每个Flutter Engine都会有独立的UI RunnerGPU RunnerIO Runner,而Platform Runner在Engine间是共享的。

    Platform Runner之所以在多个Engine中之存在一份,主要由于Platform Runner运行在平台的Main Thread,负责执行Flutter Engine的代码和Native Plugin任务。如果在Platform Runner中运行耗时任务,会影响原生平台任务的正常执行。但是Platform Runner被阻塞后并不会导致页面卡顿。因为Platform Runner不负责Flutter的页面渲染。

        我们所写的Dart代码默认是运行在 Root Isolate中,而Root Isolate是运行在UI Runner上的。UI Runner负责创建管理Layer Tree最终绘制到屏幕上的内容,因此这个线程被阻塞会直接导致界面卡顿掉帧。

         IsolateDart平台对线程的实现方案。和普通Thread不同,Isolate 拥有独立的内存,由线程和独立内存构成。Isolate通过事件循环和消息队列来实现单线程异步并发,这比多线程要轻便的多,由于Dart基于单线程模型,所以开发过程中不需要关心线程安全问题。

        GPU Task Runner则被用于执行与设备GPU相关的调用。虽然GPU线程是一个独立线程,但由于UI的布局、绘制、渲染、上屏由CPU和GPU共同完成,因此,如果GPU Task Runner耗时太久,同样会造成Flutter应用的卡顿。所以在GPU Task Runner中,不能执行耗时操作。

        IO Runner主要功能是网络、文件等IO操作(比如从后台请求网络数据,或者从磁盘中读取压缩的图片格式,将图片数据进行处理为GPU Runner的渲染做好准备)。之所以将IO操作设计为在独立线程中运行,主要是就是为了避免对UI刷新造成不利影响。        

        问题:如果我们在Dart代码中执行网络请求、文件读取等使用Future来进行异步,会不会导致UI卡顿?

        答案是否定的。原因是网络请求、文件读取等耗时操作当运行到系统IO接口时,会将IO任务交给系统线程处理,并将异步任务加入到事件队列,然后Root Isolate回到事件循环,获取事件队列中的下一个任务进行处理。

        而执行大量高CPU的运算类耗时任务,如耗时计算,编解码等,即便代码是异步执行,由于所有代码都运行在Root Isolate中,所以仍然会导致Root Isolate没法及时处理其他异步任务,从而导致UI卡顿。所以对于高CPU耗时任务,应该使用新的Isolate去执行。

        总结:平时我们做UI卡顿相关优化, 主要关注UI Runner和GPU Runner即可。

        在UI Runner主要是要注意避免不必要的UI的更新和重建, 将复杂的CPU操作另启一个新的线程处理;而对于GPU Runner,主要是要尽可能降低页面布局层级、减少透明视图的使用,进而降低GPU渲染的复杂度。

http://www.dtcms.com/a/592050.html

相关文章:

  • 后台网站设计WordPress要学多久
  • 驻马店制作网站的公司培训网站建设机构
  • 科技类网站色彩搭配什么行业做网站搜索
  • 防网站黑客网站推广优化c重庆
  • 建筑工程招标网站黑镜wordpress主题
  • 网站用什么格式的图片格式wordpress改页面宽度
  • 花都营销型网站建设公司成都网站建设哪家好
  • 盛泽建设局网站小公司网络组建
  • 东莞市美时家具营销型网站广东seo站外推广折扣
  • 大学专业网站做内容网站好累
  • 社团的工商年检网站在哪里做临沂网站改版
  • 石家庄网站制作报价开发一个手机软件app需要多少钱
  • 一个网站有几个快照江苏苏州有什么好玩的
  • 福州最好的网站设计服务公司安徽汽车网网站建设
  • 做阿里巴巴网站需要多少钱免费制作永久企业网站
  • 网站建设go你会回来感谢我的正能量视频
  • 营销型 手机网站重庆建设工程信息网安管监督
  • 画册设计网站推荐WordPress产品录入
  • 长沙口碑好的做网站公司哪家好为什么公司网站打不开
  • 网站毕业设计论文模板南充市房产信息网官网
  • app网站与普通网站的区别公司二次开发好吗
  • 上海网站建设上海黄金宝安-网站建设信科网络
  • 聊城市网站建设公司阳江网站建设 公司
  • 网站运维公司有哪些如何寻找网站建设需求客户
  • 网站建设珠海wordpress column
  • 做a免费网站有哪些icp备案 网站首页
  • 手机网站微信链接怎么做godaddy网站建设教程
  • 江阴网站制作设计网页制作设计思路和过程描述
  • 婚庆公司策划书网站优化和提升网站排名怎么做
  • 菏泽做网站建设找哪家如何做简易的网站