Flutter
入门
介绍 | Flutter 历代版本介绍 | |
---|---|---|
UI 开发
应用架构
开源项目阅读
项目 | 介绍 |
---|---|
Fluent-reader-lite 源码分析 | 一个开源的移动端 RSS 阅读器 |
Framework
入口 | Flutter Framework runApp
开发者入口 |
||
---|---|---|---|
三棵树 | Flutter Framework Element | ||
Flutter Framework BuildOwner | |||
Element | Flutter Framework Element 类体系
根据 Element 基类,派生了多种 Element |
Flutter Framework Element
基类介绍 |
|
Bindings | GestureBinding | SchedulerBinding | ServicesBinding |
PaintingBinding | SemanticsBinding | RendererBinding | |
Flutter Framework WidgetsBinding | |||
平台交互 | Flutter Framework PlatformDispatcher
与操作系统接口打交道的最基本的接口。 |
||
Engine
DartVM
Skia
Flutter 技术介绍
这一分类下介绍 Flutter 开发相关内容。
核心原理解析:
Flow
Flow 是 Flutter Engine 的渲染调度框架,底层与 Skia 对接。
Surface 架构
Surface 类是 Flutter 中 Surface 的抽象类。根据不同渲染模式,有不同实现:
- GPUSurfaceSoftware:
- 采用代理模式,将不同平台的 CPU 软件渲染方式进行抽象化,对应的接口基类是 GPUSurfaceSoftwareDelegate(实现类包括:AndroidSurfaceSoftware、 IOSSurfaceSoftware )。
帧概念
在 Flow 中,帧的概念被封装到 SurfaceFrame 中。
原生视图融合
ExternalViewEmbedder
EmbedderExternalViewEmbedder
Flutter Framework
混合开发
Binding 机制
BindingBase 基类。Bindings 列表:
名称 | 功能 | 备注 |
---|---|---|
GestureBinding | 手势服务 | |
PaintingBinding | 图片加载服务 | |
RendererBinding | 渲染服务 | |
SchedulerBinding | 帧调度服务 | |
SemanticsBinding | 辅助功能服务 | |
ServicesBinding | 服务的服务 | |
WidgetsBinding | 组件服务 | |
WidgetsFlutterBinding | 将各个 Bindings 组装到一起 |
Flutter Engine
多实例
笔记:
Flutter 多引擎实例 |
图片加载原理
关于 Flutter 中图片的加载原理,具体原理参见图片加载原理,下面的内容将不再更新,会被逐渐吸收到图片加载原理中。
面向开发者:
- Flutter/Image:暴露给开发者使用的图片组件。
底层实现:
- Flutter/ImageStream:业务层组件与提供方间的通信管道
- Flutter/ImageStreamCompleter:ImageStream 中的异步加载状态
Flutter/ImageProvider 图片提供方。
- Flutter/ResizeImage:其它 ImageProvider 的中间人,将 decode 尺寸改为设置到 cacheWidth、cacheHeight
- Flutter/AssetBundleImageProvider
- Flutter/ResizeImage
- Flutter/NetworkImage
- Flutter/MemoryImage
- Flutter/ScrollAwareImageProvider
图片解码
- Flutter Dart 层桥接:Flutter/PaintingBinding
- Flutter Engine Dart 层(Sky Engine)与 Engine C 之间 Hook:Flutter/painting.dart
- Flutter/Codec:封装 C 层解码器
- Flutter/FrameInfo:解码出来的帧信息
- Flutter/Image:帧信息中包含的图片数据
- Flutter FlutterSurfaceView
- Maxiee 资源精选:Flutter
- Flutter AndroidSurfaceGL
- Flutter集成原生视图
- Flutter Engine UIDartState
- Flutter tonic DartMessageHandler
- Dart Future
- Flutter Sembast
- Flutter tonic DartState
- Flutter Shell
- Flutter Engine TaskRunner
- Flutter AndroidShellHolder
- Flutter Engine MessageLoop
- Dart线程模型
- BinaryMessenger
- Flutter AndroidEnvironmentGL
- Flutter JSON Serializable
- Flutter AndroidNativeWindow
- Flutter 渲染流程
- Fluent-reader-lite 源码分析
- Flutter Overlay
- Flutter 自动化内存泄漏检测