📱 Flutter · 通信机制
30章 · 深度解析
Android 原生 ↔ Dart 桥梁
1
导学
课程导学:为什么需要通信?
课程目标与学习路径,快速建立全局观
2
基石
通信基石:Platform Channel 架构
总览与核心概念:MethodChannel / BasicMessageChannel / EventChannel
3
基础
MethodChannel 基础:Dart→Android
Dart端发起调用,Android端接收与响应
4
进阶
MethodChannel 进阶:复杂参数与编解码
自定义编解码器,传递List/Map/自定义对象
5
实战
获取设备信息与电池电量
MethodChannel 实战:设备信息、电池电量
6
双向
BasicMessageChannel:双向数据流
字符串与二进制数据流通信
7
事件流
EventChannel:原生事件推送至Flutter
传感器数据、状态变化持续监听
8
实战
监听网络状态与电量变化
EventChannel 实战:实时推送
9
对比
三种Channel对比
Method vs BasicMessage vs Event
10
自动化
Pigeon:类型安全代码生成
告别手写模板代码,自动生成Dart/Java/Kotlin
11
实战
Pigeon 实战:定义接口与生成代码
定义接口,生成Dart与Java/Kotlin
12
原生嵌入
Platform View:嵌入Android原生View
如MapView、WebView等
13
实战
集成高德地图SDK
Platform View 实战:高德地图
14
纹理
Texture Widget:共享纹理高性能流
视频/相机流高性能渲染
15
架构
Flutter Engine 架构
Isolate、Platform Task Runner 与 UI Task Runner
16
异步
主线程与异步:Channel不能阻塞
Channel调用为何不能阻塞主线程?
17
内存
内存管理:泄漏场景与解决方案
Channel通信中的内存泄漏与治理
18
序列化
数据序列化:JSON/Protobuf/MessagePack
Channel中的序列化选择
19
错误
错误处理:超时、异常与降级
Channel调用超时、异常捕获与降级策略
20
安全
安全通信:数据加密与签名校验
Channel数据加密、防篡改
21
多引擎
多Engine场景:Channel隔离
多个FlutterEngine实例下的通信
22
插件
插件开发:从零构建Flutter Plugin
Android端插件架构与注册
23
实战
封装原生Toast与Snackbar
插件实战:原生UI反馈
24
实战
调用系统相册与文件选择器
插件实战:Android系统交互
25
优化
性能优化:减少调用频率与批量传输
批量数据、合并Channel请求
26
调试
使用Flutter DevTools监控Channel
调试技巧:流量监控与日志
27
测试
测试策略:Mock Channel与单元测试
模拟Channel,测试原生逻辑
28
混合
混合开发:Flutter与原生页面共存
页面共存时的通信方案
29
架构
架构演进:Channel到FFI
Dart Native 适用场景分析
30
总结
课程总结:决策树与最佳实践
通信模式选择决策树 · 最佳实践清单