侧边栏壁纸
  • 累计撰写 7 篇文章
  • 累计创建 0 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Android 集成 Flutter AAR

Haig
2022-04-06 / 0 评论 / 0 点赞 / 247 阅读 / 324 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-06-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Android 集成 Flutter AAR

  1. 通过命令生成 aar
  flutter build aar
  1. 将 flutter_im.aar 复制到 android 项目下 app/libs

image-20210109150023893

  1. app build.grade配置
 defaultConfig {
        ndk {
            // 过滤Flutter支持的架构。
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
        }
}


repositories {
    flatDir {
    dirs 'libs'   // aar目录
  }
}

//添加如下:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation(name: 'flutter_im', ext: 'aar')

    def flutterVersion = '1.0.0-ae90085a8437c0ae94d6b5ad2741739ebc742cb4'
    implementation "io.flutter:flutter_embedding_release:$flutterVersion"
    implementation "io.flutter:armeabi_v7a_release:$flutterVersion"
    implementation "io.flutter:arm64_v8a_release:$flutterVersion"
    implementation "io.flutter:x86_64_release:$flutterVersion"
}
  1. 外层build.grade配置
allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://storage.flutter-io.cn/download.flutter.io"
        }
    }
}
  1. 在清单文件中加入 FlutterActivity

     <activity
                android:name="io.flutter.embedding.android.FlutterActivity"
          			android:configChanges="orientation|keyboardHidden|keyboard|screenSize
                               |locale|layoutDirection|fontScale|screenLayout|density|uiMode"
                android:hardwareAccelerated="true"
                android:windowSoftInputMode="adjustResize" />
    
  2. 启动页面, 注意导包 io.flutter.embedding.android

    // 直接启动 
    startActivity(FlutterActivity.createDefaultIntent(this))
    
  3. 使用缓存的 FlutterEngine,加快 flutter 页面的启动

    // 1. Application 类中预先初始化一个 FlutterEngine
    class MyApplication : Application() {
        lateinit var flutterEngine : FlutterEngine
    
        override fun onCreate() {
            super.onCreate()
    
            // 实例化FlutterEngine。
            flutterEngine = FlutterEngine(this)
    
            // 开始执行Dart代码,以初始化FlutterEngine。
            flutterEngine.dartExecutor.executeDartEntrypoint(
                DartExecutor.DartEntrypoint.createDefault()
            )
    
            // 缓存FlutterActivity要使用的FlutterEngine。
            FlutterEngineCache
                .getInstance()
                .put("hgg_im", flutterEngine)
        }
    }
    
    // 使用缓存的 FlutterEngine 启动
       startActivity(
                    FlutterActivity
                        .withCachedEngine("hgg_im")
                        .build(this)
                )
    
0
博主关闭了所有页面的评论