Android混合开发(Android原有项目工程中引入Flutter lib包)

总结在项目中使用了混合发开。我使用的是第一种方法 settingsDir.parentFile。因为这样比较好管理代码。Android、IOS、Flutter 三个端各自处理自己代码。1.不会导致代码看的比较复杂。2.因为flutter项目需要在其他二端使用。所以选择了这个方案。

第一步:

新建一个flutter的module,用于将此module引入到现有android原生的工程中。

第二步:

在Android 原生项目的project根目录下的settings.gradle文件加入以下配置:

方法一:

include ':app'                                    
setBinding(new Binding([gradle: this]))                                 
evaluate(new File( settingsDir.parentFile,'flutter名称/.android/include_flutter.groovy'                          
))  

方法二:

include ':app'                                    
setBinding(new Binding([gradle: this]))                                 
evaluate(new File( settingsDir,'flutter名称/.android/include_flutter.groovy'                          
))  

这二种方法的不同点:

这两种写法差别就在flutter module的位置。
settingsDir.parentFile指定flutter module工程Android app工程目录同级。

如果目录指定 settingsDir,是指module工程和setting.gradle文件同级,即 flutter module工程在 Android app工程内部

这二种方法的优缺点:

第一种settingsDir.parentFile 

优点:1.flutter 和 app 工程可以各不相干的写代码;2.可以实现2个语言的写法;3.专门一个人开发flutter项目,运用于Android 与 ios 端。

缺点:1.要拷贝两个文件夹,flutter module项目可能会被遗漏;2.而且需要通过两个Android Studio窗口开发。

第二种settingsDir

优点:1.项目好管理,不会导致文件拷贝遗漏问题;2.一个Android Studio窗口开发两个工程。

缺点:1.语言不同,写代码比较麻烦,很多代码无提示。

第三步:

在app的build.gradle中添加依赖,添加完后再sync一下,这时flutter就引入到我们的项目中。

dependencies {
implementation project(':flutter')
}

第四步:

sync一下代码。最后完成。

你可能感兴趣的:(Flutter,flutter,android,Flutter混合开发)