ps:如果电脑前的同学没有安装 Flutter,建议先安装。

Flutter 下载安装地址

1. 在 Android 原生的项目基础中,如何集成 Flutter

打开你的项目,找到 Terminal,输入终端命令:flutter channel

如果输出如下:

1、我们需要切换到 master 分支,继续输入终端命令:flutter channel master,

2、等待执行完毕之后,我们就成功的切换到了 master 分支。为什么要切换到 master 分支?

3、因为我们在安装 Flutter 的时候,默认安装的是 beta 版本。

4、该版本,目前是不支持在现有项目中集成 Flutter Module 模块功能的。

5、如果在 beta 版本中,执行了创建 Module 命令:flutter create -t module 你要创建的库的名字,

6、它会提示你 “module” is not an allowed value for option “template” 。

执行终端命令,创建你的 Flutter Library:flutter create -t module flutter_library

等待执行,创建成功后,会如下所示:

注意:命令中的 flutter_library, 是我对 Flutter Library 的命名。你可以替换为你的命名。

将 flutter_library 添加到 Android 工程

找到 Project 层 setting.gradle 文件并打开,添加如下代码:

编译通过后,在 app 目录下的 build.gradle,添加依赖:

至此,我么已经成功将 Flutter Module 添加到 Android 工程中了。是不是很简单?skr skr skr ……

2. 在原生上,如何展示 Flutter 界面?

打开我们 app 目录下的 MainActivity,添加如下代码:

以上代码,就是创建了一个宽高均充满屏幕的 FlutterView,可以将 FlutterView 看作为展示 Flutter Widget 的容器。

”route1“ 是什么鬼?这个待会儿再解释,现在你不需要关心。现在运行代码,会看到如下所示:

image

现在呢,我们已经成功在原生上,将 Flutter 界面成功的展示出来。

3. 原生如何给 Flutter 传送数据?Flutter 如何接收?

在这里,我们需要用到 EventChannel。

这个类的作用,可以简单理解为从原生向 Flutter,push data:主动的推送数据。

修改后的 Activity 代码如下:

看 Flutter 端接收的代码:

注意:在创建 EventChannel 对象的时候,传入的 name,

一定要和你在原生中传入的 name 对应起来,否则将接收不到。这个很好理解。

4. Flutter 如何调用原生的 method ?通过什么来调用?

MethodChannel :

当 Flutter 向原生调用方法或获取数据时,需要用到这个类来实现。

接下来看 Android 端实现代码,修改后如下:

当 Flutter 调用 refresh 方法时,android 端调用 refresh() 方法,这里实现了一个简单的吐司,并返回了空字符串。

当然你也可以做其他操作,比如跳转页面、实现动画、获取数据等等。

5. 判断不同的 route ,加载不同的界面

我们在 MainActivity 加载 FlutterView 时,有传入一个参数 “route1”。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

新的开始

改变人生,没有什么捷径可言,这条路需要自己亲自去走一走,只有深入思考,不断反思总结,保持学习的热情,一步一步构建自己完整的知识体系,才是最终的制胜之道,也是程序员应该承担的使命。

如果有需要进阶Android高级工程师系统学习资料的,我可以免费分享给大家,需要完整版的朋友,【点这里可以看到全部内容】。

《系列学习视频》

《系列学习文档》

《我的大厂面试之旅》

csdn.net/topics/618156601)】。**

《系列学习视频》
[外链图片转存中…(img-nhbKN6z4-1710834634106)]

《系列学习文档》

[外链图片转存中…(img-aSUP1MrN-1710834634107)]

《我的大厂面试之旅》

[外链图片转存中…(img-F3J7kcHD-1710834634107)]

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐