Android集成Flutter,FlutterBoost

在Flutter发布了1.12版本以后 , 在原生程序中集成flutter的方式也有了改变 , 因而从新走一遍流程.java

本次操做基于如下版本:android

Flutter 1.12.13+hotfix.5 • channel stable
Android Studio 3.5.2git

Android集成Flutter的意义

有时一次所有在Flutter中重写整个应用程序是不切实际的。在这种状况下,Flutter能够做为库或模块集成到现有的应用程序中。而后能够将该模块导入到Android或iOS(当前受支持的平台)应用中,以在Flutter中呈现应用UI的一部分。或者仅运行共享的Dart逻辑。github

经过Android Studio来集成Flutter

建立一个原生Android应用

固然若是你已经有现成的App准备嵌入Flutter,也可使用, 但我仍是建议再建立一个应用来走一遍流程,
我这里直接新建了一个文件夹 , 在该文件夹内新建了一个Android应用.
目录为:
FlutterBoostDemo \ AndroidBoostweb

限制支持的架构

Flutter当前仅支持为armeabi-v7a和arm64-v8a AOT编译的库。
使用abiFilters Android Gradle插件API来限制APK中支持的架构。
这样作能够避免丢失libflutter.so运行时崩溃,例如
在原生项目的app\build.gradle中添加如下代码:
在这里插入图片描述
### 支持java8
由于Flutter使用了Java8的功能, 因此这里咱们的原生Android应用也要支持java8.
在这里插入图片描述
架构

建立flutter module

若是没有flutter module, 能够在这里选择下面的选项,
不然的话能够选择import Flutter Module 来导入你本身的flutter module
在这里插入图片描述在这里插入图片描述
编译过程完成以后, 会在Android应用的下级目录下生成一个flutter_module的文件夹:
FlutterBoostDemo\AndroidBoost\flutter_module_boostapp

经过这种方式建立的mudule, Android Studio插件会自动将您的Android项目配置为添加Flutter模块做为依赖项,而且App也会从新编译完成。svg

如今Andoid Studio显示的样子是这样的:

看到左上角这个Android了吗? 若是这个视窗下看不到flutter项目的话,就切换到Project Files视窗下.gradle

忽然发现若是使用Android Studio 须要咱们作的不多 , 若是是要手动来引入的话,就会复杂的多.
能够参考一下内容:官方的手动集成教程ui

集成FlutterBoost

在flutter_module_boost项目的pubspec.yaml文件中添加依赖插件配置

support分支

flutter_boost:
    git:
        url: 'https://github.com/alibaba/flutter_boost.git'
        ref: '0.1.64'

androidx分支

flutter_boost:
    git:
        url: 'https://github.com/alibaba/flutter_boost.git'
        ref: 'v0.1.61-androidx-hotfixes'

推荐使用androidX分支 , 因此这里我依赖的是下面的

待续… (等boost支持1.1.2)