通过最近对 Flutter 开发的大致了解,感受最深的简单概括就是:Widget 就是一切外加组合和响应式,我们开发的界面,通过组合其他的 Widget 来实现,当界面发生变化时,不会像我们原来 iOS 或者 Andriod 开发一样去直接修改 UI 元素,而是去去更新状态,根据新的状态来完成 UI 的构建,这一点是不是跟 Vue、React 很像。
关于 Widget 的具体使用,我也不打算去写,如果需要对某个知识点需要深入探索下的话,可能会记录下,其实对 Widget 学习大家可以参考 Flutter Api 文档地址如下: https://api.flutter.dev/> ,... 。
要理解 Flutter 跨平台实现的原因,先了解下屏幕显示图像的基本原理。
屏幕显示器都是有一个个的物理显示单元构成,每个物理单元称之为一个像素点,每一个像素点可以承载多种颜色的显示,屏幕显示器能够显示图像就是因为不同的像素点上呈现的不同的颜色,最终呈现出来一个完整的图像。
通常说的同一面积屏幕显示器,屏幕分辨率越高,显示器可以呈现的元素就会越多,我们看到的画面就会越清晰。
我们知道手机屏幕刷新频率是 60Hz ,当一帧画面显示完成后,准备下一帧时,显示器会发出一个垂直同步信号,这样在 1s 内显示就完成了 60 次这样的操作,而每次操作中,都是完成 CPU 将计算好的内容,同步到 GPU ,GPU 对要显示的内容进过渲染操作,放入到了缓冲区中,等待显示器去显示,整个操作都是有操作系统的硬件系统来完成的。
iOS 、Andriod移动设备的 GUI 显示都是这样一个原理,其实不同操作系统 UI 控件,只是操作系统去操作硬件系统 API 的一层封装,如果我们直接操作底层 API 去完成 GUI 开发是一件非常痛苦的事。
Flutter 只是用一种编程语言,也就是采用一套Dart API ,底层通过 OpenGL(操作系统 API 的一个封装库)这种跨平台的绘制库,来实现一套代码跨端使用,也就是说 Flutter 所谓跨平台只是 Dart 调用 OpenGL ,然后 OpenGL 再去调用操作系统底层的 API 。跟 ReactNative 、weex 不同的是,他们需要依赖 JavaScriptCore 引擎去跟原生应用的通信。
当然我们不去谈论方案的优劣,本身他们选择的方向就不同。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- java反射原理, 注解原理
- Webpack 原理(二):加载原理
- Docker原理之 - CGroup实现原理
- 【Vue原理】响应式原理 - 白话版
- Docker实现原理之 - OverlayFS实现原理
- UAV MOF工作原理之Agent注入机制原理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
NoSQL精粹
[美]Pramod J. Sadalage、[美]Martin Fowler / 爱飞翔 / 机械工业出版社 / 2013-8 / 49.00元
《NoSQL精粹》为考虑是否可以使用和如何使用NoSQL数据库的企业提供了可靠的决策依据。它由世界级软件开发大师和软件开发“教父”Martin Fowler与Jolt生产效率大奖图书作者Pramod J. Sadalage共同撰写。书中全方位比较了关系型数据库与NoSQL数据库的异同;分别以Riak、MongoDB、Cassandra和Neo4J为代表,详细讲解了键值数据库、文档数据库、列族数据库......一起来看看 《NoSQL精粹》 这本书的介绍吧!