(原创)Flutter基础入门:手把手教你搭建Flutter混合项目:模块代码依赖方式集成

本文介绍了如何在Android项目中集成Flutter进行混合开发,主要讲解了模块代码依赖模式,包括创建Flutter模块、引入模块到Android项目、配置Gradle文件以及处理页面跳转,特别提到了使用FlutterEngine来优化页面过渡以避免白屏问题。

前言

Flutter是Google开源的构建用户界面(UI)工具包
支持在不同平台构建一致的ui效果
但在实际业务中,一般不会整个APP都用纯Flutter开发
尤其一些老的项目,会采用接入Flutter的方式来混合开发
那么今天就主要讲一下如何搭建一个Flutter的混合项目

混合项目实现方式

目前官方提供了两种方式添加依赖关系,他们的介绍分别如下:

方式一:模块代码依赖模式

这种方式是将flutter代码引入android项目,flutter代码对原生可见
好处是确保了一步完成Android项目和Flutter模块的编译。
对于同时涉及两个部分并且快速迭代很方便,
但这需要团队的每个人成员都安装Flutter SDK来确保顺利编译这个混合app。

方式二:AAR依赖模式

这种方式是将flutter代码打包成aar引入android项目,flutter代码对原生不可见
AAR模式有个好处就是团队中的其他成员不需要安装Flutter SDK,
最少只需要一个人输出AAR即可。

限于篇幅原因,今天这篇博客主要讲方式一的实现,
方式二的我单独写了一篇博客:
Flutter基础入门:手把手教你搭建Flutter混合项目:AAR方式集成

模块代码依赖模式实现

手动创建Flutter模块

首先我们新建一个简单的Android项目
然后进入到项目目录
打开cmd窗口,输入以下命令:

flutter create -t module --org com.xiongyp flutterxiongmodule

这样就创建了一个包名为com.xiongyp.flutterxiongmodule的Flutter模块
这里注意一点,Flutter模块放在其他目录下创建也是可以的
只要后面配置好地址,能链接到这个目录就好

引入Flutter模块

在Android项目的settings.gradle中将Flutter模块作为子项目引入
settings.gradle这样写:

rootProject.name = "FlutterHybridProject"
include ':app'
setBinding(new Binding([gradle: this]))                                           // 新增
evaluate(new File(                                                                // 新增
        settingsDir.parentFile,                                                   // 新增
        "${
     
     rootProject.name}/flutterxiongmodule/.android/include_flutter.groovy"  // 新增
))                                                                                // 新增
include ':flutterxiongmodule'

这里注意下:如果你的Flutter模块放在其他目录下
记得把include_flutter.groovy文件的路径配置准确
也就是这一行:

"${
     
     rootProject.name}/flutterxiongmodule/.android/include_flutter.groovy"

配置好了之后将settings.gradle的

dependencyResolutionManagement {
   
   
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
   
   
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}

改为:

dependencyResolutionManagement {
   
   
    repositoriesMode.set(RepositoriesMode
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值