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

本溪 网站建设 做网站外贸网站源码多语言

本溪 网站建设 做网站,外贸网站源码多语言,重庆市建设工程信息网怎么查不到市外施工单位,wordpress the7 下载【Flutter从入门到入坑之一】Flutter 介绍及安装使用 【Flutter从入门到入坑之二】Dart语言基础概述 【Flutter从入门到入坑之三】Flutter 是如何工作的 本文章主要以界面渲染过程为例#xff0c;介绍一下 Flutter 是如何工作的。 页面中的各界面元素#xff08;Widget… 【Flutter从入门到入坑之一】Flutter 介绍及安装使用 【Flutter从入门到入坑之二】Dart语言基础概述 【Flutter从入门到入坑之三】Flutter 是如何工作的 本文章主要以界面渲染过程为例介绍一下 Flutter 是如何工作的。 页面中的各界面元素Widget都是以树的形式组织即控件树。Flutter 通过控件树中的每个控件创建不同类型的渲染对象组成渲染对象树。而渲染对象树在 Flutter 的展示过程分为四个阶段布局、绘制、合成和渲染。 布局 Flutter 采用深度优先机制遍历渲染对象树决定渲染对象树中各渲染对象在屏幕上的位置和尺寸。在布局过程中渲染对象树中的每个渲染对象都会接收父对象的布局约束参数决定自己的大小然后父对象按照控件逻辑决定各个子对象的位置完成布局过程。 为了防止因子节点发生变化而导致整个控件树重新布局Flutter 加入了一个机制——布局边界Relayout Boundary可以在某些节点自动或手动地设置布局边界当边界内的任何对象发生重新布局时不会影响边界外的对象反之亦然。 绘制 布局完成后渲染对象树中的每个节点都有了明确的尺寸和位置。Flutter 会把所有的渲染对象绘制到不同的图层上。与布局过程一样绘制过程也是深度优先遍历而且总是先绘制自身再绘制子节点。 如下图示例节点 1 在绘制完自身后会再绘制节点 2然后绘制它的子节点 3、4 和 5最后绘制节点 6。 可以看到由于一些其他原因比如视图手动合并导致 2 的子节点 5 与它的兄弟节点 6 处于了同一层这样会导致当节点 2 需要重绘的时候与其无关的节点 6 也会被重绘带来性能损耗。 为了解决这一问题Flutter 提出了与布局边界对应的机制——重绘边界Repaint Boundary。在重绘边界内Flutter 会强制切换新的图层这样就可以避免边界内外的互相影响避免无关内容置于同一图层引起不必要的重绘。 重绘边界的一个典型场景是 Scrollview。ScrollView 滚动的时候需要刷新视图内容从而触发内容重绘。而当滚动内容重绘时一般情况下其他内容是不需要重绘的这时候重绘边界就派上用场了。 合成 终端设备的页面越来越复杂因此 Flutter 的渲染树层级通常很多直接交付给渲染引擎进行多图层渲染可能会出现大量渲染内容的重复绘制所以还需要先进行一次图层合成即将所有的图层根据大小、层级、透明度等规则计算出最终的显示效果将相同的图层归类合并简化渲染树提高渲染效率。 合并完成后Flutter 会将几何图层数据交由 Skia 引擎加工成二维图像数据最终交由 GPU 进行渲染完成界面的展示。 渲染 Flutter 是怎么完成组件渲染的呢 这需要从图像显示的基本原理说起。 在计算机系统中图像的显示需要 CPU、GPU 和显示器一起配合完成CPU 负责图像数据计算GPU 负责图像数据渲染而显示器则负责最终图像显示。 CPU 把计算好的、需要显示的内容交给 GPU由 GPU 完成渲染后放入帧缓冲区随后视频控制器根据垂直同步信号VSync以每秒 60 次的速度从帧缓冲区读取帧数据交由显示器完成图像显示。 操作系统在呈现图像时遵循了这种机制而 Flutter 作为跨平台开发框架也采用了这种底层方案。下面有一张更为详尽的示意图来解释 Flutter 的绘制原理。 可以看到Flutter 关注如何尽可能快地在两个硬件时钟的 VSync 信号之间计算并合成视图数据然后通过 Skia 交给 GPU 渲染UI 线程使用 Dart 来构建视图结构数据这些数据会在 GPU 线程进行图层合成随后交给 Skia 引擎加工成 GPU 数据而这些数据会通过 OpenGL 最终提供给 GPU 渲染。 Skia 是什么 要想了解 Flutter你必须先了解它的底层图像渲染引擎 Skia。因为Flutter 只关心如何向 GPU 提供视图数据而 Skia 就是它向 GPU 提供视图数据的好帮手。 Skia 是一款用 C 开发的、性能彪悍的 2D 图像绘制引擎其前身是一个向量绘图软件。2005 年被 Google 公司收购后因为其出色的绘制表现被广泛应用在 Chrome 和 Android 等核心产品上。Skia 在图形转换、文字渲染、位图渲染方面都表现卓越并提供了开发者友好的 API。 因此架构于 Skia 之上的 Flutter也因此拥有了彻底的跨平台渲染能力。通过与 Skia 的深度定制及优化Flutter 可以最大限度地抹平平台差异提高渲染效率与性能。 底层渲染能力统一了上层开发接口和功能体验也就随即统一了开发者再也不用操心平台相关的渲染特性了。也就是说Skia 保证了同一套代码调用在 Android 和 iOS 平台上的渲染效果是完全一致的。 本章节内容主要是学习 陈航 老师的《Flutter 核心技术与实战》课程总结而来。
http://www.dnsts.com.cn/news/104205.html

相关文章:

  • 关键词优化技巧有哪些wordpress建站seo好做吗
  • python 如何做网站商业十大网站
  • 免费建设网站和域名wordpress中文是什意思
  • 建设网站要多久到账常平网站
  • 网站运营适合什么样的人做企业宣传片制作拍摄电话
  • WordPress node企业为什么做网站优化推广
  • 网址查询站长工具做网站常用图标
  • 小说网站80电子书怎么做换服务器wordpress升级
  • 顺德网站建设公司有哪些郑州模板网站制作
  • 公司网站优化哪家好网址广告
  • 江门市网站建设帮别人做视频剪辑的网站
  • 网站网店建设wordpress404错误
  • 汉字叔叔花了多少钱做网站赶集招聘网
  • 免费建站系统wordpress电子商务论文3000字
  • 郑州响应式网站建设广告公司网站建设方案
  • 广州在建火车站在哪里网络推广培训学校
  • 手机网站 app网站开发外包项目网站
  • 泉州专门做网站网站推广排名怎么做
  • 设计类网站策划书睡不着来个网址2022
  • 淮安制作网站在那里网站采编队伍建设
  • 做自媒体搬运文章的网站vs2010 网站开发
  • 网站首页 栏目页 内容页行业类网站模板
  • 网站开发 技术方案软件开发app开发定制外包11
  • 大丰企业做网站多少钱南京cms建站系统
  • 做卖衣服网站源代码网站建设网站网页模板
  • 绘制网站结构图网页设计作业制作个人网站
  • 佳木斯网站建设公司把网站内容全删掉 在重新建立会不会被k
  • 白酒网站设计杭州网站设计询问蓝韵网络
  • 泉州市住房与城乡建设局网站做淘宝客网站性质
  • 网站 首页 关键词个人无网站怎样做cps广告