📃 Flutter 简介

flutter.png
Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口,开发者可以很快地为 Flutter添加 native扩展。同时 Flutter还使用 Native引擎渲染视图,这无疑能为用户提供良好的体验。

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

采用Dart语言开发

这是一个很有意思,但也很有争议的问题,在了解Flutter为什么选择了 Dart而不是 JavaScript之前我们先来介绍两个概念:JIT和AOT。

目前,程序主要有两种运行方式:静态编译与动态解释。静态编译的程序在执行前全部被翻译为机器码,通常将这种类型称为AOT (Ahead of time)即 “提前编译”;而解释执行的则是一句一句边翻译边运行,通常将这种类型称为JIT(Just-in-time)即“即时编译”。AOT程序的典型代表是用C/C++开发的应用,它们必须在执行前编译成机器码,而JIT的代表则非常多,如JavaScript、python等,事实上,所有脚本语言都支持JIT模式。但需要注意的是JIT和AOT指的是程序运行方式,和编程语言并非强关联的,有些语言既可以以JIT方式运行也可以以AOT方式运行,如Java、Python,它们可以在第一次执行时编译成中间字节码、然后在之后执行时可以直接执行字节码,也许有人会说,中间字节码并非机器码,在程序执行时仍然需要动态将字节码转为机器码,是的,这没有错,不过通常我们区分是否为AOT的标准就是看代码在执行之前是否需要编译,只要需要编译,无论其编译产物是字节码还是机器码,都属于AOT。在此,读者不必纠结于概念,概念就是为了传达精神而发明的,只要读者能够理解其原理即可,得其神忘其形。

开发效率高

Dart运行时和编译器支持Flutter的两个关键特性的组合:

基于JIT的快速开发周期:Flutter在开发阶段采用,采用JIT模式,这样就避免了每次改动都要进行编译,极大的节省了开发时间;

基于AOT的发布包: Flutter在发布时可以通过AOT生成高效的ARM代码以保证应用性能。而JavaScript则不具有这个能力。

Flutter框架结构

framework.png

Flutter Framework

这是一个纯 Dart实现的 SDK,它实现了一套基础库,自底向上,我们来简单介绍一下:

底下两层(Foundation和Animation、Painting、Gestures)在Google的一些视频中被合并为一个dart UI层,对应的是Flutter中的dart:ui包,它是Flutter引擎暴露的底层UI库,提供动画、手势及绘制能力。

Rendering层,这一层是一个抽象的布局层,它依赖于dart UI层,Rendering层会构建一个UI树,当UI树有变化时,会计算出有变化的部分,然后更新UI树,最终将UI树绘制到屏幕上,这个过程类似于React中的虚拟DOM。Rendering层可以说是Flutter UI框架最核心的部分,它除了确定每个UI元素的位置、大小之外还要进行坐标变换、绘制(调用底层dart:ui)。

Widgets层是Flutter提供的的一套基础组件库,在基础组件库之上,Flutter还提供了 Material 和Cupertino两种视觉风格的组件库。而我们Flutter开发的大多数场景,只是和这两层打交道。

Flutter Engine

这是一个纯 C++实现的 SDK,其中包括了 Skia引擎、Dart运行时、文字排版引擎等。在代码调用 dart:ui库时,调用最终会走到Engine层,然后实现真正的绘制逻辑。

参考资料

  • Flutter 官网
  • Flutter 中文网
  • Flutter 实战、 GitHub、 《Flutter实战》随书源码
  • Flutter API
  • Flutter Plugins
  • Meterial 官网
  • Dart Pub
  • 初识Flutter:Flutter简介

若有收获,就点个赞吧

0 人点赞

  • 书签
  • 添加书签 移除书签
  • 📃 Flutter 简介
  • 📃 Flutter 开发与调试
  • 📃 Flutter 常见问题解决方案
  • 📂 Flutter 基础
    • 📃 Flutter 框架介绍
    • 📃 Flutter 路由管理
    • 📃 Flutter 状态管理
      • 📃 flutter_redux
      • 📃 fish_redux
      • 📃 fish_redux 与 flutter_redux 混用
    • 📃 Flutter APP 打包
  • 📂 Flutter 组件
    • 📃 布局与容器
    • 📃 基础组件
    • 📃 表单组件
    • 📃 表格组件
    • 📃 装饰与样式
    • 📃 变换
    • 📃 导航器
    • 📃 弹出层组件
    • 📃 信息展示组件
    • 📃 可滚动组件
      • 📃 ListView
      • 📃 GridView
      • 📃 滚动控制器
      • 📃 下拉刷新指示器
      • 📃 自定义滚动组件
    • 📃 动画与交互
    • 📃 其他组件
  • 📂 Flutter 开发实践
    • 📃 屏幕适配
    • 📃 状态栏
    • 📃 本地存储
    • 📃 网络请求
    • 📃 上传OSS
    • 📃 加载中
    • 📃 返回键拦截
    • 📃 滑动列表项
  • 📃 常用库及项目
  • 📃 参考资料
暂无相关搜索结果!
    展开/收起文章目录

    玻璃钢生产厂家曲阳玻璃钢卡通鸡雕塑玻璃钢花盆厂家厂商出售辽源玻璃钢雕塑厂家定制山东玻璃钢海豚雕塑价格商场玻璃钢花盆租赁仿真玻璃钢雕塑哪里有玻璃钢雕塑造型厂家阜阳玻璃钢雕塑图片武威动物玻璃钢雕塑厂家玻璃钢雕塑和树脂雕塑巴音郭楞玻璃钢雕塑制造普洱玻璃钢雕塑供应商商场中庭吊挂美陈装饰仿真红酒瓶玻璃钢雕塑上海动物玻璃钢雕塑生产厂家玻璃钢动物牛雕塑品牌晋城玻璃钢雕塑厂宣武区道路玻璃钢花盆山西玻璃钢卡通雕塑草莓厂家宁夏校园雕塑玻璃钢杭州玻璃钢花盆研究玻璃钢球体雕塑浙江中庭商场美陈订购苏州玻璃钢花盆采购欧式玻璃钢卡通雕塑直销价格大庆玻璃钢花盆雕塑公司上海创意玻璃钢雕塑销售厂家福建商场主题创意商业美陈创作山东多彩玻璃钢雕塑定制玻璃钢卡通动漫雕塑供应商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化