flutter,android混合项目如何抽离出独立的flutter项目

要将Flutter部分抽离出独立的项目,可以采用Flutter模块化的方式,将Flutter部分封装成一个独立的Flutter Module,并在原有的Android项目中引入该Module。这样做的好处是可以把Flutter部分与Android部分分开管理,提高开发效率和编译速度。

以下是具体的步骤:

1. 创建Flutter Module

首先要创建一个独立的Flutter Module,可以通过命令行执行以下命令:

flutter create --template=module flutter_module

这样就会在当前目录下创建一个名为flutter_module的Flutter Module。

2. 将Flutter Module引入到原有的Android项目中

把Flutter Module作为Library Module引入到原有的Android项目中。可以通过在settings.gradle文件中添加以下内容来引入:

include ':app'    
setBinding(new Binding([gradle: this]))  
gradle.rootProject {
   projectDir = file('../flutter_module/')
}
include ':flutter_module'
project(':flutter_module').projectDir = new File(settingsDir, '../flutter_module/')

这里的../flutter_module/是指Flutter Module的根目录所在的相对路径。

在app/build.gradle文件中,添加如下依赖:

dependencies {        
        implementation project(':flutter_module')        
}

3. 修改Flutter Module的gradle文件

修改Flutter Module的build.gradle文件,将Flutter Module的发布类型改为aar库,并指定输出路径:

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 30
    ndkVersion "19.2.534560"    
    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'com.android.support:multidex:1..3'
    implementation 'com.google.android.material:material:1.1.'
    implementation 'androidx.appcompat:appcompat:1.2.'
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.constraintlayout:constraintlayout:2..2'

    implementation "io.flutter:flutter_embedding_v2.2.3-release"
    implementation "io.flutter:flutter_ui_v2.2.3-release"
    implementation "io.flutter:flutter_tools_v2.2.3-release"
}

//指定aar文件输出路径
artifacts {
    archives(file('output/flutter_module-release.aar')) {
        type 'aar'
    }
}

在该文件中,我们将aar输出路径设为output/flutter_module-release.aar,这样在构建Flutter Module时,会将aar文件输出到该路径下。

4. 编译项目

完成以上步骤后,重新编译Android项目即可。每次修改Flutter代码后,只需要重新构建Flutter Module,并重新编译Android项目即可,无需重新编译整个项目,从而提高了开发效率和编译速度。

猜你喜欢

转载自blog.csdn.net/qq_31433709/article/details/130632543