Flutter 原理之跨平台

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

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

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


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

查看所有标签

猜你喜欢:

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

算法之美

算法之美

[美]布莱恩·克里斯汀、[美]汤姆·格里菲思 / 万慧、胡小锐 / 中信出版集团 / 2018-5-20 / 59.00

我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题。在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?我们对杂乱无序的容忍底线是什么?新的活动与熟悉并喜爱的活动之间如何平衡,才能取得令人愉快的结果?这些看似是人类特有的难题,其实不然,因为计算机也面临同样的问题,计算机科学家几十年来也一直在努力解决这些问题,而他们找到的解决方案可以给我们很多启发。 ......一起来看看 《算法之美》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具