Flutter学习1-简介

一、什么是Flutter

      Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

二、Flutter应用

     除Android和iOS之外,Google的野心不仅如此,它还可以运行在Web、Windows、Linux、Ubuntu、MacOS。   

三、 特性

       3.1 热重载

             或者说热加载,当你在项目中修改了一行代码,不用重新编译运行,模拟器直接可以刷新你修改的内容。

       3.2 丰富的UI组件

             支持Material和Cupertino(苹果风格的控件)

       3.3 UI渲染性能

            比原生都要优秀

四、跨平台解决方案比较

      4.1 Web/Hybrid

           Web应用就是通过应用浏览器访问的应用。Hybrid是介于原生和Web应用之间的存在,比如Android使用WebView可以通过JavaScript中介在原生和HTML之间进行数据传递,iOS则用的是WKWebView。目前有Vue、ionic、cordova。

           通过该技术开发的app,UI性能差,一些特殊需求实现相对较难,唯独开发速度较快。

      4.2 基于JavaScriptCore技术(体验良好)

             JavaScriptCore简称JSCore,JSCore是WebKit默认内嵌的JS引擎,通过虚拟Dom树来构建UI,映射成原生UI组件,通过JSCore桥接调用原生服务。代表有ReactNative、Weex。

             该技术方案UI性能一般,只是开发体验较差

     4.3 基于

            将某个语言编译为二进制文件,生成动态库或打包成 apk/ipa/xap 文件

五、Flutter Framework

Flutter主要由Framework 和 Engine两层组成,Framework由Dart实现(如上图),Engine由C++实现(如下图),我们基于Framework 开发App主要运行在 Engine 上。

Meterial组件库是Android Meterial Design界面设计相关组件,

Cupertino风格组件是IOS风格组件,主要有CupertinoTabBar、CupertinoPageScaffold、CupertinoTabScaffold、CupertinoTabView等。

Widgets组要是按钮、文本、图片库等。

Rendering是DartUI的抽象层,它主要负责与引擎层的交互。

Animation是动画组件库、

Painting绘制组件库、

Gestures是手势组件库、

Foundation是基础工具库。

Skia 是开源的二维图形库,提供了适用于多种软硬件平台的通用API。其已作为Google Chrome,Chrome OS,Android, Mozilla Firefox, Firefox OS等其他众多产品的图形引擎,支持平台还包括Windows, macOS, iOS,Android,Ubuntu等。

Dart 部分主要包括:Dart Runtime,Garbage Collection(GC),如果是Debug模式的话,还包括JIT(Just In Time)支持。Release和Profile模式下,是AOT(Ahead Of Time)编译成了原生的arm代码,并不存在JIT部分。

Text 即文本渲染,其渲染层次如下:衍生自 Minikin的libtxt库(用于字体选择,分隔行);HartBuzz用于字形选择和成型;Skia作为渲染/GPU后端,在Android和Fuchsia上使用FreeType渲染,在iOS上使用CoreGraphics来渲染字体。

六、Flutter运行简单介绍   

flutter先将代码编译成本地的Native Code,然后进行渲染直接展示在屏幕,并且通过Platform Channels组件调用原生系统的服务。       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值