📱 Flutter插件开发
🤖 安卓原生交互
📚
30章 · 实战
01
Flutter插件开发概述
插件架构
Platform Channel
MethodChannel vs EventChannel
环境准备
02
创建第一个Flutter插件项目
flutter create --template=plugin
项目结构
example目录
运行示例
03
MethodChannel基础
Dart发送消息
Android接收
数据类型传递
同步/异步
04
Android原生代码编写
Android Studio
Java/Kotlin插件类
注册FlutterEngine
处理调用
05
EventChannel实现事件流
EventChannel概念
StreamHandler
Dart监听
传感器数据推送
06
BasicMessageChannel详解
与MethodChannel区别
编解码器
自定义MessageCodec
双向通信
07
复杂数据类型传递
自定义对象JSON
二进制数据
文件路径
性能考量
08
插件中的Activity与Context
获取当前Activity
ApplicationContext
生命周期
避免内存泄漏
09
插件中的权限处理
Android权限模型
请求运行时权限
回调处理
权限状态检查
10
插件中的Intent调用
启动Activity
相机/相册/浏览器
接收Activity结果
处理Intent数据
11
插件中的UI组件
原生View
TextureView/SurfaceView
混合渲染
AndroidView
12
插件中的线程管理
主线程/子线程
耗时操作
Handler/Looper
Coroutines
13
插件中的数据库操作
Room/SQLite
CRUD
返回数据给Flutter
事务处理
14
插件中的网络请求
OkHttp/Retrofit
HTTP请求
响应处理
错误重试
15
插件中的文件操作
内部/外部存储
缓存目录
文件选择器
读写文件
16
插件中的SharedPreferences
原生读写
同步数据到Flutter
监听变化
偏好存储
17
插件中的广播接收器
BroadcastReceiver
网络/电量变化
系统广播
事件处理
18
插件中的Service
前台/后台Service
Service通信
生命周期
长时间任务
19
插件中的ContentProvider
访问系统Provider
联系人/媒体库
自定义Provider
数据共享
20
插件中的通知
通知渠道
发送通知
点击事件
样式定制
21
插件中的相机与相册
系统相机拍照
相册选择
图片URI
压缩裁剪
22
插件中的定位服务
GPS位置
位置变化监听
地理编码
权限处理
23
插件中的蓝牙通信
扫描设备
连接蓝牙
发送接收数据
状态变化
24
插件中的NFC
读取NFC标签
写入标签
NFC intent
前台调度
25
插件中的传感器
加速度/陀螺仪
磁力计/光线
传感器融合
数据获取
26
插件中的支付集成
支付宝/微信SDK
支付回调
结果通知Flutter
订单处理
27
插件中的第三方SDK集成
百度/高德地图
推送SDK
极光/个推
分享SDK
28
插件测试与调试
单元测试
集成测试
adb logcat
问题排查
29
插件发布与版本管理
发布pub.dev
版本号管理
更新日志
兼容性
30
综合实战:图片选择与压缩插件
需求分析
架构设计
编码实现
测试上线