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

相关推荐
程序员Agions1 天前
Flutter 邪修秘籍:那些官方文档不会告诉你的骚操作
前端·flutter
CodeOfCC1 天前
flutter-elinux 编译linux arm64程序
linux·flutter
kirk_wang1 天前
Flutter艺术探索-StatelessWidget与StatefulWidget区别与使用场景
flutter·移动开发·跨平台
搬砖的kk1 天前
Flutter OH 3.35.7 Dev 版本发布 | 快速体验指南
flutter
未来猫咪花1 天前
tp_router: 再也不用手动写路由表了
flutter
程序员老刘·1 天前
ArkUI-X 6.0 跨平台框架能否取代 Flutter?
flutter·鸿蒙系统·跨平台开发·客户端开发
哈__1 天前
Flutter For OpenHarmony 鸿蒙 PC 开发入门:环境搭建 + 工程初始化(附 PC 端专属配置)
flutter·华为·harmonyos
前端不太难1 天前
Flutter 列表 rebuild 的真正边界在哪里
flutter·状态模式
kirk_wang1 天前
Flutter艺术探索-Flutter常用UI组件:Text、Image、Button详解
flutter·移动开发·跨平台
前端不太难1 天前
为什么 Debug 模式下 Flutter 列表“看起来很卡”
flutter·状态模式