zoukankan      html  css  js  c++  java
  • Flutter之初始

    Flutter是什么

    Flutter是一个UI SDK(Software Development kit),可以作为移动端(iOS、Android)、Web端、桌面的跨平台解决方案。

    Flutter的特点

    使用Flutter内置美丽的Material Design和Cupertion widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新的体验。

    Flutter的UI渲染性能很好。在生产环境下,Flutter将代码编译成机器码执行,并充分利用GPU的图形加速能力,因此使用Flutter开发的移动应用即

    使在低配手机上也能实现每秒60帧的UI渲染速度。

    Flutter的引擎使用C++编写,包括高效的Skia 2D渲染引擎,Dart运行时和文本渲染库

    支持Hot Reload(热重载),相比较移动端需要run所有的代码才能看到效果,热重载是即时看到实时的效果

    Flutter是一个完全开源的项目。

    Flutter绘制原理图

    1.GPU将信号同步到UI线程

    2.UI线程用Dart来构建图层树

    3.图层树在GPU线程进行合成

    4.合成后的视图数据提供给Skia引擎

    5.Skia引擎通过openGL或者Vulkan将显示内容提供给GPU

    Flutter与RN的本质区别

    Flutter利用Skia绘图引擎,直接通过CPU、GPU进行绘制,不需要依赖任何原生控件,形成闭环

    RN是通过JavaScript虚拟机扩展调用系统组件,由Android和iOS系统进行组件的渲染。

    渲染引擎skia

    Skia就是 Flutter向 GPU提供数据的途径。
    Skia(全称Skia Graphics Library(SGL))是一个由C++编写的开源图形库
    Skia 已然是 Android 官方的图像渲染引擎了,因此 Flutter Android SDK 无需内嵌 Skia 引擎就可以获得天然的 Skia 支持
    底层渲染能力统一了,上层开发接口和功能体验也就随即统一了,开发者再也不用操心平台相关的渲染特性了。也就是说,
    Skia 保证了同一套代码调用在Android 和 iOS 平台上的渲染效果是完全一致的

    对于 iOS 平台来说

    由于 Skia 是跨平台的,因此它作为 Flutter iOS 渲染引擎被嵌入到 Flutter 的 iOS SDK 中,替代了 iOS 闭源的 Core Graphics/Core 
    Animation/Core Text,这也正是 Flutter iOS SDK 打包的 App 包体积比Android 要大一些的原因。
  • 相关阅读:
    Tab支持的DHTML Window控件
    仿新浪游戏频道js多栏目全屏下拉菜单导航条
    Jquery实现超酷的时间轴特效
    DIV+CSS专题:第一天 XHTML CSS基础知识
    网站建设:详解网页扁平化设计
    简洁的支持展开关闭的tab标签代码
    JS总结
    codevs 1296 营业额统计 (splay 点操作)
    codeforces gym 100357 H (DP 高精度)
    codeforces gym 100357 K (表达式 模拟)
  • 原文地址:https://www.cnblogs.com/muzichenyu/p/14466596.html
Copyright © 2011-2022 走看看