安卓项目迁移Flutter模块实战
📚 30章
完整版
01
迁移前奏:为什么要在安卓项目中引入Flutter?Flutter混合开发的优势与挑战。
动机
选型
02
环境准备:Flutter SDK安装、Android Studio配置、多版本兼容性检查。
工具
SDK
03
项目结构设计:原生工程与Flutter模块的目录组织方式,单工程 vs 多工程方案。
架构
04
创建Flutter Module:使用
flutter create --template module
命令创建可嵌入的Flutter模块。
CLI
05
集成方式一:源码依赖 - 将Flutter模块作为Android Library直接引入。
源码
Gradle
06
集成方式二:AAR产物依赖 - 通过Gradle构建Flutter AAR并引入原生项目。
AAR
构建
07
集成方式三:自定义Gradle插件 - 封装Flutter构建逻辑,实现一键集成。
插件
自动化
08
FlutterEngine管理:单Engine模式、多Engine模式、Engine缓存策略。
引擎
性能
09
Flutter与原生通信基础:MethodChannel的原理与基本用法。
Channel
10
MethodChannel实战:从Flutter调用Android原生Toast、传感器等API。
实战
API
11
BasicMessageChannel:双向字符串/二进制数据传输,适用于高频低延迟场景。
数据
高性能
12
EventChannel:原生向Flutter发送事件流,监听系统广播、传感器数据。
事件流
广播
13
Pigeon:类型安全的代码生成通信框架,告别手写Channel样板代码。
代码生成
类型安全
14
Flutter页面嵌入原生Activity:FlutterFragment、FlutterActivity的使用与生命周期管理。
Activity
Fragment
15
Flutter页面嵌入原生View:FlutterView在原生布局中的集成与尺寸适配。
View
布局
16
原生页面嵌入Flutter:在Flutter中通过PlatformView展示原生地图、WebView。
PlatformView
嵌入
17
路由管理:Flutter侧路由与原生侧路由的协同,实现统一导航栈。
路由
导航
18
数据共享:Flutter与原生共享SharedPreferences、数据库等持久化数据。
数据
持久化
19
图片资源管理:Flutter访问原生资源文件、原生访问Flutter assets。
资源
Assets
20
插件开发实战:编写一个Flutter插件,封装原生蓝牙SDK供Flutter调用。
插件
蓝牙
21
热重载与调试:混合开发中的热重载限制、原生与Flutter联合调试技巧。
调试
热重载
22
性能监控:Flutter模块的内存、帧率、启动耗时监控方案。
性能
监控
23
包体积优化:Flutter引擎裁剪、so库瘦身、资源混淆。
体积
优化
24
多Flutter实例:在同一个原生应用中运行多个Flutter实例的场景与坑。
多实例
踩坑
25
混合栈管理:FlutterBoost、flutter_boost等开源框架的原理与接入。
混合栈
框架
26
自动化构建:CI/CD中Flutter模块的构建、测试、发布流水线。
CI/CD
流水线
27
版本兼容性:Flutter版本升级对原生项目的影响与迁移策略。
兼容
升级
28
线上问题排查:Flutter模块崩溃堆栈解析、日志聚合、性能劣化定位。
排查
崩溃
29
大型项目案例:某电商App从0到1迁移Flutter模块的全过程复盘。
案例
电商
30
未来展望:Flutter混合开发的新趋势(Federated Plugin、Dart FFI、鸿蒙适配)。
趋势
鸿蒙