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等等。

相关推荐
yeziyfx14 分钟前
Flutter UI图标点击事件
flutter
2501_920627611 小时前
Flutter 框架跨平台鸿蒙开发 - 附近停车场查询
flutter·华为·harmonyos
芙莉莲教你写代码2 小时前
Flutter 框架跨平台鸿蒙开发 - 水果消消乐游戏
flutter·游戏·华为·harmonyos
芙莉莲教你写代码2 小时前
Flutter 框架跨平台鸿蒙开发 - 坦克大战游戏
flutter·游戏·华为·harmonyos
2501_920627613 小时前
Flutter 框架跨平台鸿蒙开发 - 数学学习助手
学习·flutter·华为·harmonyos
2501_920627613 小时前
Flutter 框架跨平台鸿蒙开发 - 计算器增强版
flutter·华为·harmonyos
2501_920627613 小时前
Flutter 框架跨平台鸿蒙开发 - 单词卡记忆
flutter·华为·harmonyos
芙莉莲教你写代码3 小时前
Flutter 框架跨平台鸿蒙开发 - 宝石消除游戏
flutter·游戏·华为·harmonyos
louisgeek14 小时前
Flutter autoDispose、keepAlive 和 ref.keepAlive 的区别
flutter
左手厨刀右手茼蒿19 小时前
Flutter 三方库 firebase_admin 跨云边管线企业级鸿蒙管控底座适配风云:无障碍贯穿服务器授权防火墙打通底层生态授权域并构建海量设备推送集结-适配鸿蒙 HarmonyOS ohos
服务器·flutter·harmonyos