flutter

[TOC]

flutter

  1. WebView

  2. 第三阶段:跨平台,h5作为二阶段的性能瓶颈,RN通过桥梁
    完成原生的绘制,以达到更优的性能。
    JavaScript通过bridge传递到native完成原生绘制,bridge的成本高,
    因为需要频繁的跨桥调用,导致卡顿等性能问题。

  3. 跨平台的移动ui框架,可以快速在ios和android上构建高质量的原生用户界面。
    flutter可以与现状的代码工作。在全世界,flutter正在被越来越多的开发者和
    组织使用,并且flutter是完全免费,开源的。

    1. 与现有代码一起工作 (支持混合开发)
    2. 免费开源
    3. 跨平台移动ui框架

    fuchsia Android IOS
    利用dart虚拟机减少了桥的交互
    编译型语言,没办法夸平台,但是执行效率很高:
    在android过程中编译成android平台的识别的编译语言
    在ios过程中编译成ios平台可以识别的编译语言

  4. framework(dart)
    engine(c++) skia渲染引擎、dart VM等

  5. 15年的时候flutter的前身 ‘sky’ ,运行在android操作系统上。

    一开始是通过浏览器出现的,随着nodejs出现,js又火了起来
    flutter beta1版本于2018年2月27日
    flutter live 2018年12月5日 正式版出现了
    12月27日出来了1.2.2的版本
    腾讯,京东,百度,美团
    腾讯now直播apk,京东金融apk,咸鱼apk(经常发布flutter文章) 都含有 libflutter.so文件

  6. flutter特点
    快速开发

    富有表现力,漂亮的用户界面

    内置很多控件,可以在ios和android上面达到相同的效果

    本地性能: 不能避开 dart的引擎层,已经接近原生

    热重载:ctrl + s 就加载布局上来了

    debug模式和release模式完全不一样
        debug模式:利用websocket来进行更新的

    text文本

  7. showcase
    美团 爱奇艺 携程
    编译型语音,运行时语言

  8. dart

    于其他跨平台框架使用JavaScript作为其他开发语言不同的是,flutter使用是dart.
    特点:

    ​ (jit aot 混合编译的 )

    • 给予JIT的快速开发周期 (运行期间,编写出来的, jit在运行)
      flutter在开发阶段采用jit模式,这样就避免了每次改动都要进行编译,极大的节省时间;
    • 给予aot的发布包(代码提前编译成机器码 java9 也加入了aot)
      flutter在发布时可以通过aot生成高效的ARM代码以保证应用性能.

    为了快速流程的用户体验需要能够在每个动画帧运行大量的代码,不能有周期性的停顿,否则会造成掉帧.

    fps   30fps 1s钟切换30次图片

    • 单线程: dart是个单线程的语言, isolate机制
      不需要锁,不存在数据竞争和变量状态同步,也没有线程
    • 垃圾回收 : 新生代,老生代 实现是cms的垃圾回收器
      多生代无锁垃圾回收器,专门为UI框架中常见的大量widgets对象创建和销毁优化
  9. flutter的前景怎么样?为什么你会选择使用flutter?

    • 一开始h5和webview这些效率比较低,看起来界面比较卡顿

    • 性能比RN好, 因为RN中间以js为桥梁,flutter效率比较高

pubspec.yaml 进行导入依赖

flutter中文网 可以看一些demo

flutter解决白屏问题