Android(kotlin) 项目 集成 flutter (使用flutter_boost)

1,522 阅读1分钟

Android 项目集成flutter有两种方式,一种方式之前已经整理过 melissa-l.cn/android-xia…,今天我们来看看通过aar 的方式 集成flutter,并使用flutter_boost,为什么要使用我就不再赘述,你要是想自己写路由插件也行,我的原则是有肩膀就站

先说一下本地的版本

Flutter 1.9.1+hotfix.6 (是目前的stable版,你要正式开发最好都用稳定版)
Dart 2.5.0

flutter 的代码在 github.com/melissa-l/f… clone到本地后,直接跑 flutter build aar 然后根据答应出的路径找到 build/host/outputs/repo/com 这个时候你会看到 com 文件夹下有两个文件夹 idlefishexample

  • idlefish: 这个是我们flutter_boost 的插件包,一般的插件包都会打包在你本地的项目里,但是这里我们 pubspec.yaml 中的flutter_boost是 从github 分支上下载的 , 所以会不单独打包, 一路点下去就会发现 1.0 这个文件夹,我们要用的是 flutter_boost_release-1.0.aar
  • example:这个就是根据我们 pubspec.yaml 最下面 module 中定义的 androidPackage 生成的目录,同样的一路点下去,找到 1.0中的flutter_release-1.0.aar
至此,我们 flutter 的部分就结束了, 接下来就是客户端中的配置部分。

先把上面的两个aar,移动或复制到 安卓项目的 app/libs 下,然后再 app/build.gradle 中加入

dependencies {
    ......
    implementation files('libs/flutter_release-1.0.aar')
    implementation files('libs/flutter_boost_release-1.0.aar')
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifeCycle"
}
  • 上面两个包是flutter aar的地址, 第三个是需要支持java8的组件,当然如果本来项目有就不用了

然后,在 app/src/main/AndroidManifest.xml 中 手动加入一个activity,这个就是flutter的activity:

        <activity
            android:name="com.idlefish.flutterboost.containers.NewBoostFlutterActivity"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
            android:hardwareAccelerated="true"
            android:theme="@style/Theme.AppCompat"
            android:windowSoftInputMode="adjustResize">
            <meta-data
                android:name="io.flutter.embedding.android.SplashScreenDrawable"
                android:resource="@drawable/page_loading" />
        </activity>

然后其他的文件, 新增java、xml 代码就跟 github.com/alibaba/flu… 一样配置。