用途:指导开发者构建 Flutter 插件,为其他应用提供原生互操作能力,适用于创建可复用的、桥接 Flutter 与平台特定代码的包。
主要能力:涵盖架构与设计模式(联邦插件、FFI 与标准插件选择)、创建新插件、实现 Android 平台代码、实现 Windows 平台代码、为现有插件添加平台支持。
使用方式:
- 标准插件:flutter create --template=plugin --platforms=android,ios,web,linux,macos,windows --org com.example.organization -i objc -a java my_plugin
- FFI 插件:flutter create --template=plugin_ffi my_ffi_plugin
- 为现有插件添加平台:flutter create --template=plugin --platforms=web,macos .
- Android 代码需在 Android Studio 中编辑,先运行 cd example && flutter build apk --config-only 生成 Gradle 文件,实现 FlutterPlugin 与生命周期接口。
- Windows 代码需在 Visual Studio 中编辑,先运行 cd example && flutter build windows 生成解决方案,修改 C++ 后必须重新构建。
适用场景:需要访问平台特定 API(如 Android SDK、iOS 框架)时使用标准插件;需要访问 C/C++ 原生库、配置 Google Play 服务或使用静态链接时使用 FFI 插件。
限制:FFI 插件包支持捆绑原生代码和方法通道注册代码,但不支持方法通道本身;若同时需要方法通道和 FFI,应使用标准非 FFI 插件模板。联邦插件将 API 拆分为面向应用的接口、平台接口和平台实现三个独立包。