一、Flutter中使用Android Studio打开原生文件

选中Android目录--右键--选中flutter---Open for Editing in Android Studio

问题1:flutter不能点击时,打开mainactivity类

点击失败,需要配置Android API版本

问题2:还是不行,在Android项目下创建一个xxx_android.iml文件,xxx 代表文件名,虽然可以指定为任意符合命名规范的字符,但一般会把 Flutter 项目的名字作为文件名

参考:https://blog.csdn.net/qq_42351033/article/details/122501679

<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4"><component name="FacetManager"><facet type="android" name="Android"><configuration><option name="ALLOW_USER_CONFIGURATION" value="false" /><option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/gen" /><option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/gen" /><option name="MANIFEST_FILE_RELATIVE_PATH" value="/app/src/main/AndroidManifest.xml" /><option name="RES_FOLDER_RELATIVE_PATH" value="/app/src/main/res" /><option name="ASSETS_FOLDER_RELATIVE_PATH" value="/app/src/main/assets" /><option name="LIBS_FOLDER_RELATIVE_PATH" value="/app/src/main/libs" /><option name="PROGUARD_LOGS_FOLDER_RELATIVE_PATH" value="/app/src/main/proguard_logs" /></configuration></facet></component><component name="NewModuleRootManager" inherit-compiler-output="true"><exclude-output /><content url="file://$MODULE_DIR$"><sourceFolder url="file://$MODULE_DIR$/app/src/main/java" isTestSource="false" /><sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" /></content><orderEntry type="jdk" jdkName="Android API 30 Platform" jdkType="Android SDK" /><orderEntry type="sourceFolder" forTests="false" /><orderEntry type="library" name="Flutter for Android" level="project" /></component>
</module>

二、Flutter 与原生交互的三种方式

原生与Flutter数据交互,主要就是构建好通道机制

Flutter 与原生交互使用Platform Channel。Flutter定义了三种不同类型的Channel,它们分别是:
1.BasicMessageChannel:用于传递字符串和半结构化的信息,可持续通信,收到消息后可以回复此次消息。场景:消息互发(双向有返回值,可持续通信) 
2.MethodChannel:用于传递方法调用。场景:native与flutter的方法调用(双向有返回值,一次性通信)
3.EventChannel: 用于事件型的通信,仅支持 native 到 Flutter 的单向传递。场景:通常用于状态端监听,比如网络变化、传感器数据、电量更新或声音改变(仅支持数据单向传递,无返回值)

三种Channel之间互相独立,各有用途,但它们在设计上却非常相近。每种Channel均有三个重要成员变量:
name:  String类型,代表Channel的名字,也是其唯一标识符。
messager:BinaryMessenger类型,代表消息信使,是消息的发送与接收的工具。
codec: MessageCodec类型或MethodCodec类型,代表消息的编解码器。

代码:flutter_hybrid / flutter_hybrid · GitLab
参考链接:Flutter 与原生交互_马志武的博客-CSDN博客

flutter插件基础之调用EventChannel的简单使用(三) - 简书

三、flutter页中嵌入Android控件---AndroidView

使用MethodChannel方式,详情看我另一片博客:flutter页中嵌入Android控件---AndroidView_haoxuhong的博客-CSDN博客

四、将flutter项目集成到原生项目

iOS通常有3种方式:

  1. 通过 CocoaPods 引入 Flutter SDK

  2. 通过 framework 的形式引入

  3. 将 Flutter 应用和插件嵌入 Xcode

而 Android 有2种方式:

  1. 通过 AAR 引入

  2. 通过 submodule 源码引入

将 Flutter 集成到现有应用 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter

Flutter与iOS原生混合开发

Flutter混合开发架构之Channel

flutter和原生交互相关推荐

  1. 阿衰java免费版_flutter plugin之路:flutter与原生交互传值OC/java版(一)

    说在前头:flutter虽然很牛掰,但是目前很多功能或者插件的实现其实还是需要通过原生来实现,然后通过flutter和原生的交互传值实现数据的交换. -本篇是flutter调用原生方法,然后原生执行完 ...

  2. 包红b2c模块 flutter与原生交互

    一.flutter提供的FlutterMethodChanel与原生(ios&android)进行交换 flutter与原生交互图: ios注册flutter调用通道 //oc 注册flutt ...

  3. Flutter 与 原生交互(Android),关于Android开发的面试经验总结

    接收 */ void receiveMessage(){ messageChannel.setMessageHandler((message) async{ print(message); retur ...

  4. Flutter 与 原生交互(Android),安卓移动开发背景换色

    */ public static String CHANNEL = "com.mmd.flutterapp/plugin"; private static String ACTIO ...

  5. Flutter开发Flutter与原生OC、Java的交互通信-2(48)

    我们上一篇主要讲了Flutter与原生OC.Java的交互通信的机制:平台通道 只实现了Flutter 主动调用OC.Java的方向的通信.并没有实现OC.Java端主动调用Flutter的实现.这里 ...

  6. Flutter开发Flutter与原生OC、Java的交互通信-1(47)

    我的文章讲过:(0085)iOS开发之OC与JS交互高级用法(JavaScriptCore) 前言:我们知道OC 在UIWebView 加载 H5中,常常需要OC 与 H5 之间进行交互调用.采取的方 ...

  7. Flutter与Android原生交互

    记录一下小白的学习之路,图片都是走过的坑 文末附demo地址 文章目录 创建project Android端(native) Flutter端 Android调用flutter 创建project 首 ...

  8. Flutter与原生通信

    -- Flutter作为一个跨平台框架,一经问世,便受到众多开发的追捧,发展至今相信已经有很多公司或个人将其加入自己的项目,进行混合开发,那么FLutter如何与原生通信呢? -- 本次就以Andro ...

  9. 教你如何使用Flutter和原生App混合开发

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Things in this world are temporary. If ...

最新文章

  1. Caffe将自己的文件生成lmdb
  2. [翻译][1.4.2]Flask-Admin入门介绍
  3. SVN服务器搭建和使用(一)
  4. Spring Boot端口从默认更改为自定义或新端口
  5. UVA10763:Foreign ExchangeUVA10340: All in All(水题)
  6. (六)Neo4j综合项目
  7. Zookeeper安装,Zookeeper单机模式安装
  8. Java后台生成NO2016012701(代码+年月日+流水号)这样的流水编号
  9. C#开发之——MonthCalendar(12.18)
  10. Chrome浏览器下调试和动态修改网页JavaScript
  11. 作业一 统计软件简介与数据操作
  12. 电脑能连接热点和网线,不能连接WIFI
  13. php写入文件内容方法,学习php写入文件内容的方法
  14. web js活码生成二维码
  15. 图像处理中的用于消除高斯噪声的加法运算
  16. tp交换机管理页面_TP-Link路由器作为无线交换机怎么设置【设置方法】
  17. PWM脉宽调制信号转模拟电流电压4-20ma0-5v10v隔离变送器
  18. 软考中级-系统集成项目管理工程师-考试学习计划
  19. Pybind11 的 CMakeList 说明
  20. 基于 Realtek RTL8221B 2.5G ETHERNET TRANSCEIVER WiFi6路由器 AX5400M 设计方案

热门文章

  1. 容量可动态扩展的LinkedBlockingQueue
  2. 微星 B660M 迫击炮 评测
  3. 合成孔径雷达图像中的地物信息
  4. pywinauto文档
  5. 【verilog_8】: 设计60进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位
  6. php 期货数据接口,期货行情数据 - 数据接口 - NowAPI
  7. 音频压缩工具——Speex的使用
  8. 湖南身份证照片可以网上更换啦
  9. JAVA三层架构详解
  10. 2018.3.1最新版破解--测试能用(做个记录)