Android项目集成Flutter

本文详细介绍如何在现有的Android项目中集成Flutter开发环境。包括Flutter开发环境的配置步骤、Android项目中添加Flutter模块的方法以及如何实现从原生页面跳转到Flutter页面。

 

在Android开发中某些组件或者页面需要使用Flutter开发,这篇文章主要介绍已有的Android项目集成Flutter开发环境。

一、Flutter开发环境配置

1、flutter插件配置

Android Studio ——>Preferences——>搜索flutter插件——>install——>重启项目

2、下载flutter-sdk

https://flutterchina.club/

我使用的是Mac的系统,下载地址为:

https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_2.0.6-stable.zip

下载完成解压缩,放在合适的位置。

3、环境变量配置

open -e ~/.zshrc

文件中输入:

export FLUTTER_ROOT=/Users/xxx/Library/Flutter/flutter
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=$PATH:$FLUTTER_ROOT/bin

FLUTTER_ROOT:SDK路径,改成你自己设置的地址。

PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL根据:https://flutterchina.club/setup-macos/设置。

使环境变量生效:

source ~/.zshrc

4、flutter项目介绍

flutter项目分为以下几个,Android中集成Flutter需要新建Flutter Module。

  • Flutter Application: Flutter应用
  • Flutter Module :Flutter与原生混合开发
  • Flutter Plugin:Flutter插件
  • Flutter Package:纯Dart组件

二、Android项目中添加flutter

1、添加module

打开或者新建Android工程,选择New Module:

Project name:项目名称。

Flutter SDK path:上一步所下载的SDK放置的路径。

Project location:flutter_module所在的父级路径,这个路径需要和Android项目路径在同一等级,千万不能在Android项目内部的目录,否则会关联失败,没法编译。

之后会自动生成:

(1)AndroidFlutterDemo/settings.gradle

setBinding(new Binding([gradle: this]))
evaluate(new File(
  settingsDir,
  '../flutter_module/.android/include_flutter.groovy'
))

(2)AndroidFlutterDemo/app/build.gradle

implementation project(path: ':flutter')

如果没有则可以手动添加,注意:

  • include_flutter.groovy的路径必须是flutter_module里面的,否则会找不到。
  • implementation project(path: ':flutter')必须是固定的,不能更改为:implementation project(path: ':flutter_module')

2、添加清单文件

将FlutterActivity注册到Android项目的清单文件中,这一步需要手动操作。

<activity
    android:name="io.flutter.embedding.android.FlutterActivity"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:theme="@style/AppTheme"
    android:windowSoftInputMode="adjustResize" >
</activity>

3、跳转测试

MainActivity中:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn).setOnClickListener(view -> {
            Intent intent = FlutterActivity.createDefaultIntent(MainActivity.this);
            startActivity(intent);
        });
    }
}

这样就可以跳转到新的flutter页面了。

Demo地址:https://download.youkuaiyun.com/download/yoonerloop/18542251

 

 

 

 

### 如何在Android项目集成Flutter模块 #### 配置步骤 为了成功地将Flutter模块集成到现有的Android项目中,需遵循一系列特定的配置流程。 1. **创建Flutter Module** 创建一个新的Flutter module可以使用命令`flutter create --template=module my_flutter_module`来完成[^1]。这一步骤会初始化一个基础结构良好的Flutter工程作为子模块存在。 2. **引入Flutter Engine** 接下来是在宿主应用里添加对Flutter的支持。对于Android而言,这意味着修改项目的`build.gradle`文件,在dependencies部分增加一行代码以引用Flutter库: ```gradle dependencies { implementation project(':flutter') } ``` 此操作确保了编译过程中能够找到并链接必要的Flutter运行环境组件[^2]。 3. **设置Gradle插件版本兼容性** 确认使用的Kotlin Gradle plugin version以及android gradle plugin version与Flutter官方文档推荐保持一致。这是因为不同版本之间可能存在API差异或其他潜在冲突问题[^3]。 4. **调试模式下的特殊处理** 如果计划支持不同的构建变体(如release和debug),则可能还需要针对每种情况分别指定相应的实现路径。例如,在debug环境下可以通过如下方式加载特定于该场景下的Flutter二进制包: ```groovy debugImplementation 'com.example.flutter_module:flutter_debug:1.0' ``` 这样做有助于区分生产环境同测试环境中所依赖的不同版本或状态下的Flutter assets[^4]。 5. **Git Submodules管理** 使用Git submodules是一种有效的方法来管理和维护外部仓库中的变化而不影响主项目源码树的整体稳定性。当采用这种方式时,建议先克隆远程地址至本地目录下成为独立的工作副本;之后再将其关联为上层repo的一部分以便同步更新。 6. **其他注意事项** - 定期检查是否有新的稳定版发布,并及时升级相关工具链; - 对新加入团队成员提供充分培训资料帮助理解这套架构设计原理及其运作机制; - 测试阶段务必覆盖全面的功能验证环节,特别是跨平台特性交互逻辑方面。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值