Flutter 中关于plugin引入的一些事儿

Flutter之插件开发plugin flutter plugin 本地开发 阅读详情

       flutter 中plugin开发与发布流程 这里不做说明,想了解的可以看看其他人的博客。这里主要是想分析一下 plugin 中原生代码是如何被我们引进来的(仅限android 这部分)最近也是在做相关的开发 研究了一下原生的代码我们怎么引进来的。

       首先我们在pubspec.yaml 中引入了xxx:1.0.1 的库 我们使用 pub get  下载这个库 。我们就可以在dart 中使用该库封装好的控件 或者api 了。 如果这个库有与原生交互的功能那么它内部一定是写了一个plugin 内部注册了methodchannel 等等 与flutter 交互使用。 那么你引入这个库 之后 你的android 代码里一定会生成一个 类   这里以permissionhandler 项目为例

 
            

这里看到它会生成这些代码 用来干什么 。注册这个库的插件 只有在我们的项目中注册了 才能使用这个插件 ,注册的地方在哪呢。就在你android 项目的 activity中 调用 

 

这样该库的插件才能生效  但是我们发现 在GeneratedPluginRegistrant。中 调用了  PermissonHandlerPlugin 的方法。如果你是在 flutter 项目中打开 你会发现会爆红 找不到这个类 。需要你打开android 项目 然后会自动下载相关的代码。 如果你打开android 项目你会发现你的项目里多了一个moudle。

 

 

然后在这里你发现了 这个类 那么你查看一下build.gradle. 你会发现并没有 依赖这个moudle 那么这个moudle 是怎么引进来的

 

那么这时候请你查看一下settings.gradle. 

 

发现了吗 这里作了遍历 然后 include。这里include 是因为 我们如果想把别的project 的moudle 引入做依赖就要在settings 中进行include 然后要指定该project 的路径

到这里我们在flutter 中 引入的第三方pub 。如何将他们的原生代码引进来的做了一下简单的分析 如有其他问题 欢迎交流指正 

工作之余做了一个简单的flutter 版的 demo  以后有什么新的想法也会写进去,如果你正在学习flutter 可以作为参考

这时效果图

github 地址 https://github.com/869225586/flutter_news

Android开发者转型前端:能力迁移与核心源码学习指南 在现代软件开发领域,技术栈的迁移与融合已成为开发者提升竞争力的关键路径。理解编程语言的底层原理、框架的设计思想以及工程化的构建流程,是高效实现技术转型的核心。从移动端开发转向前端,并非从零开始,而是一次系统的能力迁移与知识扩展。Android开发者已具备的扎实编程基础、对应用生命周期、UI渲染、异步处理及性能优化的深刻理解,恰恰是前端复杂应用开发中急需的硬核能力。通过深入解析如React、Vue等主流框架的核心源码,开发者可以快速掌握虚拟DOM、响应式系统、Fiber架构等关键机制,将移动端的工程思维与性能 阅读详情

相关推荐

Flutter开发:在Flutter Plugin中引入aar——本地maven法

目的: 在 flutter Plugin中引入 aar 引言:Android项目中引入aar,直接放在本地,在gradle中implementation即可,同样操作在Flutter项目却报错not found aar,如此需要其他解决方法。本文中介绍一种自己项目中运用到的maven引入法,供参考~ 装备:安装mvn :纯原mac使用$ brew install maven 安装,使用了zsh 命令和其他系统一样先去 apache官网下载 maven安装包,然后安装后配置到系统路径 操作: ..

阿俊 2075

Flutter 通过本地文件引用package和plugin

前言 在文章一步步实现一个Flutter plugin插件中我们介绍了如何创建一个插件plugin,在创建的项目中有默认为我们创建了一个测试项目,直接引用了该plugin,可以直接运行。 但是如果我们创建的项目不仅仅该测试项目使用,在其他项目中也要使用呢,创建插件的目的不也是要在多个项目中共享该插件的功能吗。Flutter官方介绍了三种方法 上传到Pub site,这是一个类似Maven的D...

野猿新一 1万+

多层感知机 Multilayer Perceptron | MLP

本文主要简单介绍了多层感知机的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型的参数等。

JasonH2021的博客 3万+

Flutter 引入第三方包

类似于Android第三方库引入是在gradle文件中,Flutter相要引入第三方包也要对应配置文件pubspec.yaml。 yaml全称是 :Yet Another Markup Language ,任是一种标记语言。 这里我是采用了官方的例子来展示如何引入第三方包:https://flutterchina.club/get-started/codelab/ 我们直接看pubspec.yaml 这个文件 name: startup_namer description: A new Flutt

千寻 3102

用OpenNI2获取奥比中光Astra Pro及 Astra Pro SM输出的深度图(win,linux arm64 x64平台)

搞了一个奥比中光Astra Pro,想在windows平台,和linux rk3588 上获取深度信息,之前的驱动下载已经不好用了。

babytiger的专栏 1302

unity转微信小游戏:UI大小设置

unity转微信小游戏:UI大小设置

会潜水的小火龙的博客 3270

引入flutter module,运行时flutter_webview_plugin报错:Unhandled Exception: MissingPluginException

E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: MissingPluginException(No implementation found for method launch on channel flutter_webview_plugin) #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_

yzpbright的博客 2594

FPGA新手必看:Create HDL Wrapper和Generating Output Products到底该先用哪个?

本文深入解析了FPGA设计中Create HDL Wrapper与Generating Output Products的正确使用顺序,帮助新手避免常见错误。详细介绍了两者的功能差异、执行顺序的底层逻辑以及工程管理的最佳实践,特别适合使用Vivado进行FPGA开发的初学者。

xk7n92h3p5m的博客 1064

【Flutter】如何使用Flutter包和插件

如何使用Flutter包和插件 以颜色插件为例 进入网址 https://pub.dev/ 点击插件进入 在Readme目录下可以查看该插件的详细说明用法, Installing目录下是该插件的引入方法 根据Installing目录下插件的引入方法, 在flutter更目录找到pubspec.yaml文件打开,在dependencis下加入拷贝的插件版本,然后pub get, 你也可以运行命令 $ flutter pub add flutter_color_plugin How To

weixin_42473228的博客 2358

AI 与新媒体

AI重构新媒体生态:从生产到分发的全链路变革 AI正成为新媒体领域的核心基础设施,通过五大能力重塑内容产业:自动化生产(AIGC写作/制图/剪辑效率提升5-10倍)、智能分发(算法精准匹配用户)、数据洞察(实时舆情分析)、风险管控(审核效率提升12倍)和运营优化(A/B测试自动化)。这推动行业从"人找内容"转向"内容找人",制作成本下降90%的同时,也带来同质化加剧、版权争议和职业重构等挑战。当前阶段,人机协同成为主流——AI处理标准化生产,人类专注创意与价值观把控。

eastyuxiao的专栏 380

EBOM转MBOM实战:华为云数字工厂如何5步搞定BOM自动转换(含避坑指南)

本文详细解析了华为云数字工厂平台如何通过五步自动化流程实现EBOM到MBOM的高效转换,涵盖模型预配置、逻辑流编排、工艺属性注入等关键步骤,并提供了多工厂差异化配置、历史数据迁移等典型场景的避坑指南。该方案显著提升转换效率,降低差错率,助力企业实现数字化转型。

weixin_29215391的博客 268

Flutter Android 构建突发红字?一个跟通知无关的库,逼你开 core library desugaring

- 某些三方库间接用了 Java 8 才有的 API,老 Android 设备压根没有,构建直接挂 - 解法是开 **core library desugaring**(脱糖),等于编译期给老设备打一份 polyfill - 配置就两处:开关 `isCoreLibraryDesugaringEnabled` + 依赖 `desugar_jdk_libs`,**必须成对出现** - 报错信息经常不指向根因——"加 A 挂 B",得先建立"要开 desugaring"的映射直觉

FungLeo's Blog 672

VS2010“未能正确加载包”问题解决方法小汇

本文按照由简至繁的顺序详述了借助网络获知的四种解法,主要面向重装 VS2010 后遭遇题述问题的网友,相关包尤指 VSTS、RadLangSvc、Language、Bootstrap 及 MicrosoftDataEntityDesign。

虚有其表的博客 1万+

在flutter项目中使用自己做的flutter插件

把插件项目放置在Flutter项目根目录下的一个特定文件夹中。这里,我是创建了一个文件夹,名字为。在Flutter项目中,导入插件,这时,就可以调用插件里头的API了。注意,格式要严格一致,多一个缩进就会出错。命令,让Flutter项目获取到这个插件。中,添加对自己插件的依赖。,并把插件项目复制进去。在Flutter项目的。

qq_40467670的博客 1502

如何利用东南大学齿轮箱数据集进行故障诊断?从数据采集到模型训练全流程解析

本文详细解析如何利用东南大学齿轮箱数据集进行故障诊断,涵盖从数据采集到模型训练的全流程。通过信号预处理、特征工程构建及多种机器学习模型对比,帮助开发者高效实现工业设备健康管理。特别适合希望将AI技术应用于工业场景的Python开发者。

m2n3b4v5c6的博客 375

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Flutter 关于Plugin开发的 一个问题(example 找不到plugin中的一些dart 类 )

发现example 中想测试plugin的dart ,所以要引入dart 的一些类 ,发现根本引入不进来 ,原因是什么呢 我们都知道开发 plugin的时候要在pubspec.yaml 中声明你的插件类 而这个pluginClass 对应的类 就是使用你插件的开发者 所能引入的。其他的类是不能引入的。那么我们不可能把 所有的类都写在这一个里面吧。总要分包 什么的。这时候只需要把 其他的类在 插件类中 用export 声明出来即可。 声明出来以后 就可以直接引入了。ZBC! ...

天行健,君子以自强不息。 1032

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Flutter 添加到现有项目

code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群作者:言就尔宿1992链接:https://www.jianshu.com/p/9425dd2baacc...

weixin_38754349的博客 1380

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

动态添加Flutter插件

添加Flutter插件有多种方式 1,对已有的Android工程,添加Flutter module , 配置会自动生成。 2,在pubspec.yaml文件中配置Flutter插件。 3,在继承FlutterActivity()的Activity中,重写configureFlutterEngine(flutterEngine)这个方法,称之为动态注册。 import io.flutter.embedding.android.FlutterActivity import io.flutter.emb

发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行。 1561

已有项目导入他人创建的flutter项目(android studio)

flutter代码既要关联android,又要关联IOS,最好当然是android、ios、flutter代码统一一起代码管理,但很多公司android和ios原本就是分开的,所以会单独将flutter代码独立出来,如果公司有多个android开发或苹果开发,就需要一个人创建项目到svn,其他人下载并关联flutter。 其实,关联flutter和创建完全一致,只是创建完成...

huanzhixianxian的博客 2593

Flutter开发之Package与Plugin

在flutter中有包和插件两个概念,插件 (plugin) 是 package 的一种,全称是 plugin package,我们简称为 plugin,中文叫插件。包(Package)主要指对flutter相关功能的封装,类似于Android中的插件和iOS中的三方库。而插件(Plugin)主要指通过插件调用原生的功能

you__are_my_sunshine的博客 4401

在现有iOS项目中,接入新的Flutter项目或现有的Flutter项目

第三种:使用 CocoaPods 在 Xcode 和 Flutter 工程中内嵌应用和插件框架,这种方式也就是使用Android Studio开发工具创建新的Flutter工程时默认的方案,新的Flutter工程创建好后,默认会创建iOS和Android的原生工程,在原生工程内,会有Flutter内嵌进去的包体,这种方案对于已经在开发中的原生工程进行对接较麻烦。这种方式相对在已经开发中的iOS项目比较友好,改动较小,而且可以实现在Flutter编码后,直接运行原生工程就可以看到效果。

he先森的博客 2338

Flutter 项目编写 第三方插件库文件引入,本地图片 json数据引入解析

FlutterDemo是如何一步一步搭建起来的 最初就是直接新建flutter项目,就会自动建立一个入门项目。(开始项目前,需先学习Dart语言) flutter项目代码都在lib目录下编写: 新建包,新建dart类,在dart类中编写 flutter 插件引入: (可以看项目中如何引入的) 首先在项目更目录下找这个文件: pubspec.yaml dependencies: flutter: s...

wdx_1136346879的博客 4796

Flutter 篇:小白入手 Flutter Plugin

由于业务需要,要做蓝牙打印机的适配,内部有类似的插件,但不适用于业务所要求的蓝牙打印机,所以就自己下手尝试了一下 Flutter Plugin 的开发。 Flutter Plugin 有什么用?类似我们 node 的 npm,Flutter 也有自己的 packages 库,Flutter 的 package分两种,一种是纯 dart 的包,一种是与原生交互的插件,我们这里说的是与原生交互的 plugin 的开发,plugin 的开发与复用,能提高开发效率以及降低工程耦合度,为项目快速集成对应的能...

一群专业码农的笔记本 2628

Android flutter_plugin插件开发之使用第三方jar包

这里写自定义目录标题创建flutter_plugin项目点击代码编辑窗口右上角Open for Editing in Android Studio在新的窗口选择project目录创建一个libs文件夹用来放第三方jar包复制测试用的jar包到flutter_plugin->Android->libs里面build.gradle上添加配置引入AppTest.jar包编写java代码调用j...

qq_16755585的博客 9484

Flutter进阶—平台插件

这篇文章我们会学习Flutter应用程序如何与iOS和Android设备上可用的平台特定代码集成,这包括设备API,(比如url_launcher和battery)和第三方平台SDK(比如Firebase)。 使用现有的平台插件 Flutter插件是一种特殊的包,一个插件包含一个用Dart编写的API定义,结合Android的平台特定实现,适用于iOS或两者兼容。 搜索插件 现有的...

咖啡花园 1万+

如何导入和使用Flutter的资源文件?

1、 Flutter资源文件里有常用的图片以及字体文件,最常用的就是图片了。 2、 在pubspec.yaml文件中的assets节点下配置资源的路径,包括缩略符 3、创建一个文件夹,并导入图片 4、 配置图片资源 5、 创建res_page.dart文件 6、 使用图片 7、 运行结果:图片正确加载 8、 import 'package...

nicolelili1的专栏 3643
上一篇: App启动黑白屏问题
下一篇: Flutter 中宽度溢出的问题
Yeyu-Lab
博客等级 码龄11年 13粉丝 107原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值