Flutter 原理之跨平台

栏目: IOS · 发布时间: 4年前

通过最近对 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 引擎去跟原生应用的通信。

当然我们不去谈论方案的优劣,本身他们选择的方向就不同。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序设计艺术

计算机程序设计艺术

Donald E.Knuth / 黄林鹏 / 机械工业出版社 / 2010-8 / 69.00元

《计算机程序设计艺术(第4卷·第0册):组合算法与布尔函数概论(双语版)》是《计算机程序设计艺术,第4卷:组合算法》的第0册。《计算机程序设计艺术(第4卷·第0册):组合算法与布尔函数概论(双语版)》介绍了组合搜索历史和演化,涉及组合搜索技术的理论和实践应用,探究了布尔函数相关的所有重要问题,考察了如何最有效地计算一个布尔函数的值的技术。本册是《计算机程序设计艺术的》第7章,即组合搜索一长篇宏论的......一起来看看 《计算机程序设计艺术》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具