Android -Flutter底层运行机制,硬件绘图原理

Flutter (Dart开发语言)

学Flutter相当于重新学一遍安卓

https://flutterchina.club

AOT Ahead of time)即 “提前编译 (华为方舟编译器就是采用100% AOT做的)

提高编译速度,在第一次安装的时候就会变得很差,就提前把安卓的代码解释成机器码,有利有弊。

JITJust-in-time)即时编译

现在的安卓既有AOT也有JIT,提高启动速度和流畅度,既保证安装效率也保证运行效率。

参考Android连载课程

硬件绘图基本原理

提到原理,我们要从屏幕显示图像的基本原理谈起。我们知道显示器(屏幕)是由一个个物理显示单元组成,每一个单元我们可以称之为一个物理像素点,而每一个像素点可以发出多种颜色,显示器成相的原理就是在不同的物理像素点上显示不同的颜色,最终构成完整的图像。

一个像素点能发出的所有颜色总数是显示器的一个重要指标,比如我们所说的1600万色的屏幕就是指一个像素点可以显示出1600万种颜色,而显示器颜色是有RGB三基色组成,所以1600万即2的24次方,即每个基本色(R、G、B)深度扩展至8 bit(位),颜色深度越深,所能显示的色彩更加丰富靓丽。

为了更新显示画面,显示器是以固定的频率刷新(从GPU取数据),比如有一部手机屏幕的刷新频率是 60Hz。当一帧图像绘制完毕后准备绘制下一帧时,显示器会发出一个垂直同步信号(如VSync), 60Hz的屏幕就会一秒内发出 60次这样的信号。而这个信号主要是用于同步CPU、GPU和显示器的。一般地来说,计算机系统中,CPU、GPU和显示器以一种特定的方式协作:CPU将计算好的显示内容提交给 GPU,GPU渲染后放入帧缓冲区,然后视频控制器按照同步信号从帧缓冲区取帧数据传递给显示器显示。

CPU和GPU的任务是各有偏重的,CPU主要用于基本数学和逻辑计算,而GPU主要执行和图形处理相关的复杂的数学,如矩阵变化和几何计算,GPU的主要作用就是确定最终输送给显示器的各个像素点的色值。

Dart

可参考Android/ios用Flutter开发

JS既可以开发前端也可以开发后端,因为中间有个vue引擎,可以通过Vue引擎解析成不同的库,像ReactNative,Weex,微信小程序,支付宝小程序,快应用联盟 ,都可以理解为是node.js的一个变种,还可以开发手机应用。

2011年10月10日,Google 发布了Dart语言

2013年11月14日,谷歌发布Dart 1.0版本

2018年8月8日,谷歌发布Dart2.0版本

最初设计Dart,是Google的一帮程序员出于对JavaScript的不满,决定自己搞一个新语言用来替换JavaScript的,所以刚开始Dart也就是用来作为浏览器脚本运行在浏览器中的。
为了推广Dart,Google利用自己的利器Chrome让它内置了DartVM的引擎。有了运行环境,加上用户群的可观数量,Dart最初也赢得了部分前端开发者的青睐。但Google的这帮程序员万万没想到,看似并无大用的JavaScript居然因为NodeJS而焕发了第二春。此时移动互联网处于萌芽发展中,一个叫做NodeJS的开源项目借助这股移动互联的东风顺势而起,很快的烧遍了前端、烧到了后端,甚至烧到了手机应用和桌面应用,可以说是在编程界无孔不入,几乎成就了JS程序员口中的“凡是能被JS实现的,最终都要被JS实现”的愿景。前端的开发模式因此而改变,进入了一个新的天地。一些明星项目如React、React-Native、Vue等等如雨后春笋般迅速的崛起,一句话总结就是“Javascript很忙”。
Javascript很忙,程序员更忙,Dart就这样被慢慢地遗忘在角落。加上一直以来缺少顶级的项目使用,就算再是亲儿子,得不到JS开发者的心,Google也没什么办法,在2015年的时候,Google在Chrome中默默的移除了内置的Dart引擎。
但是Google并没有放弃Dart,Google内部用Dart编写孵化了一个移动开发框架Sky,之后又被命名为Flutter,进入了移动跨平台开发的领域。这就是Flutter的由来。

Dart 吸取了java,javaScript,Html的特点,做最牛逼的开发语言,而且Flutter还是跨平台的,性能更好, 比学React native更有前景,而且React native以及不怎么维护了,未来跨平台的Flutter很有竞争力,所以我将努力学习Flutter,它可以开发ios,Android,web(转化为JS运行浏览器),据说还可以开发后端(看官网),包括比起kotlin只是一个语法糖,Flutter(Dart)作用更大,以后会越来越火,它具有开创性意义,是全新框架,直接操作底层硬件。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex-panda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值