flutter底层原理,你知道吗?

一、UI显示系统 Flutter和AndroidUI显示系统的区别(举例)

Android UI显示系统

几乎所有用于开发GUI程序的编程语言都会在操作系统上再封装一层,将操作系统原生API封装在一个编程框架和模型中,然后定义一种简单的开发规则来开发GUI应用系统 例如 AndroidSDK是封装Android操作系统API,提供了一个"UI描述文件XML + java操作DOM"的UI系统 IOS的UIKit对View的抽象也是一样的,他们都将操作系统API抽象成一个基础对象(如用于2D图形绘制的Canvas)然后在定义一套规则来描述UI,如UI树结构,UI操作的单线程原则等 Flutter UI显示系统。

无论是Android SDK 还是IOS的UIKit,它们只是语言载体和底层的系统不同而已,哪如果存在一种UI系统,可以用同一种语言开发,然后针对不同操作系统的API接口,一个对上接口一致、对下适配不同操作系统的中间层,打包编译使用想应的中间层代码。如果能满足这些条件,那么我们就可以使用同一套代码编写跨平台的应用。 所以Flutter的原理正是如此,它提供了一套Dart API ,然后在底层通过Skia这种跨平台的绘制库(内部会调用操作系统API)实现了一套代码跨多端。

二、为什么Flutter无限接近于原生

1.为什么Android不是无限接近于原生(举例) 从流程图就可以看出 为什么Android和原生搭不上边,所以说android的UI系统是通过xml层层封装调用Skia的API来实现的。

2.为什么Flutter是无线接近原生

Flutter通过Dart代码再用Flutter解析直接向Skia调用API,那么显而易见就相当于直接调用了Skia去完成UI的渲染,相比Android来说流程少了不止一步两步。

为什么Flutter可以运行在多个平台中

总结:是因为Skia在各个平台有各个的版本 ,不是Flutter跨平台 而是Skia跨平台Flutter只是调用的SkiaAPI接口。

相关推荐
程序员鱼皮1 天前
刚刚,Claude Opus 4.6 和 GPT-5.3-Codex 同时炸场!AI 编程要变天了
计算机·ai·程序员·互联网·软件开发
Stephen_Young2 天前
32岁程序员猝死:让我想起了我曾经的加班经历,庆幸自己还活着
程序员·工控
良许Linux2 天前
51单片机都有哪些优缺点
单片机·程序员·嵌入式·编程
程序员鱼皮4 天前
前特斯拉 AI 总监:AI 编程最大的谎言,是 “提效”
前端·后端·ai·程序员·开发
阿里嘎多学长4 天前
2026-02-02 GitHub 热点项目精选
开发语言·程序员·github·代码托管
良许Linux5 天前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式
淘源码d7 天前
【开源可商用】高并发智慧校园SaaS平台核心源码:Spring Boot 微服务 + 多终端协同
java·程序员·智慧校园·源码·二次开发·软件源码·电子班牌系统
程序员鱼皮8 天前
7个神级技巧,彻底去除网站的 AI 味儿!
计算机·ai·程序员·互联网·网站·编程经验
程序员鱼皮11 天前
Agent Skills 傻瓜式教程,26 年最火 AI 技术就这?
计算机·ai·程序员·agent·编程经验
黑客-雨13 天前
DeepSeek-V3.2深度拆解:开源模型逆袭,GPT-5迎来劲敌!
人工智能·程序员·大模型·知识图谱·agent·大模型教程·deepseek-v3.2