Flutter插件开发流程

本文主要给大家介绍如何开发Flutter Plugin中Android的部分。有关Flutter以及Flutter Plugin的概念,感兴趣的可以从官网查看相关资料。

一、简介

笔者的环境是Mac下Android Studio进行的开发,AS也是谷歌官推的,安装flutter插件后,开发起来相对于其他IDE来说,方便很多,自带了三种模板:

  • Flutter Application: Flutter应用
  • Flutter Plugin:Flutter插件 Flutter
  • Package:纯Dart组件

Plugin其实就是一个特殊的Package。Flutter Plugin提供Android或者iOS的底层封装,在Flutter层提供组件功能,使Flutter可以较方便的调取Native的模块。很多平台相关性或者对于Flutter实现起来比较复杂的部分,都可以封装成Plugin。其原理如下:

消息在client和host之间通过平台通道(platform channels)来进行的,之间的通讯都是异步的。

二、创建组件

直接在Android Studio中新建一个Flutter Plugin的工程,当然也可以使用命令行来进行,例如创建一个flutter_text_plugin。

cpp 复制代码
flutter create --org com.example --plugin flutter_text_plugin

如果想支持swift或者kotlin,可以用如下命令进行创建:

cpp 复制代码
flutter create --org com.example --plugin -i swift -a kotlin flutter_text_plugin

更多的参数选项,大家可以 查看帮助文档,当然还是比较推荐直接用AS进行创建,简单直观。用AS打开项目,可以看到项目的组织结构。

cpp 复制代码
root
	android
	example
	ios
	lib
	...

android以及ios文件夹是我们将要编写插件的native层的地方,lib文件夹是编写与native层映射的地方,native与flutter之间不能直接通信,必须通过MethodChannel来间接调用。example文件夹则是例子工程,编写的插件可以直接在这个项目中进行验证。在本文中,我们主要在android目录下进行,也就是android部分。

三、编写Android代码

用AS打开flutter_text_plugin/android项目,这样子开发起来比较方便。但是打开过后,会发现出现了很多错误,提示找不到flutter相关的东西,我们仔细看这个项目,会发现跟我们平时用AS建的Android项目有所不同,少了很多部分,目录也有所不同。这是因为这个android项目不需要能够直接去运行,因此减少了很多东西。但是对于初次接触的人来说,可能是一头懵逼,例如该如何添加第三方库,如何添加proguard rule等等。

相关推荐
猫林老师4 小时前
Flutter for HarmonyOS开发指南(八):国际化与本地化深度实践
flutter·华为·harmonyos
dragon72510 小时前
FutureProvider会刷新两次的问题研究
前端·flutter
2501_9159090612 小时前
Flutter 应用怎么加固,多工具组合的工程化实战(Flutter 加固/Dart 混淆/IPA 成品加固/Ipa Guard + CI)
android·flutter·ios·ci/cd·小程序·uni-app·iphone
猪哥帅过吴彦祖15 小时前
Flutter 从入门到精通:状态管理入门 - setState 的局限性与 Provider 的优雅之道
android·flutter·ios
天天开发16 小时前
Flutter 每日库:轻松监听网络变化,就靠 connectivity_plus!
flutter
猫林老师17 小时前
Flutter for HarmonyOS开发指南(七):插件开发与平台能力桥接
flutter·华为·harmonyos
Sindyue1 天前
flutter项目老是卡在Running Gradle task ‘assembleRelease‘......
flutter
西西学代码1 天前
Flutter---泛型
flutter
写不完的程序1 天前
Flutter 3.38 版本发布了,看看有哪些新特性
flutter
QuantumLeap丶1 天前
《Flutter全栈开发实战指南:从零到高级》- 14 -网络请求与数据解析
flutter·ios·dart