内容简介:对于Android老项目来说接入flutter的最佳方式就是添加 flutter module,让主module通过模块依赖方式来依赖flutter。回顾下小步骤,因为网上资料很多,不详细描述了。在当前project下 运行命令
对于Android老项目来说接入flutter的最佳方式就是添加 flutter module,让主module通过模块依赖方式来依赖flutter。
回顾下小步骤,因为网上资料很多,不详细描述了。
1 创建 flutter module
在当前project下 运行命令
flutter create -t module my_flutter(my_flutter为生成的flutter module名称) 复制代码
2增加配置代码
在工程的settings.gradle增加以下配置
setBinding(new Binding([gradle: this])) // new evaluate(new File( // new settingsDir.parentFile, // new 'yq_flutter/.android/include_flutter.groovy' // new )) 复制代码
在app 的gradle里添加
implementation project(':my_flutter') 复制代码
这样就可以边开发,边编译看效果了。
不过随之而来的问题是:现在flutter毕竟属于小众开发,团队内部只有几个人来做,而其他人不需要关注flutter的东西,上边的依赖方式需要安装flutter 环境,下载sdk等,否则无法编译项目,所以还需要以依赖jar/aar的方式来集成。
下边具体描述一下。 你新建的flutter module可以用另一个Android studio 窗口独立打开,基本的目录结构是
在as终端里输入
flutter build apk 复制代码
可以生成一个release的apk,同时在rootProj/.android/Flutter/build/outputs/aar/目录下生成aar,把这个aar拷出来直接放到你原生项目里取依赖便可以摆脱依赖module的麻烦。 不过要规范点的话还需要在你们公司的自建nexus maven(或jcenter)上上传aar,通过地址依赖。参考普通aar的打包上传方式会发现能生成aar,但是运行会失败,因为aar中没有打包进Flutter的编译产物。 正常生成的aar中结构图
assets 文件夹中的 isolate_snapshot_instr , isolate_snapshot_data, vm_snapshot_data , vm_snapshot_instr 为Flutter编译中间产物,flutter_assets 内为资源文件,包含字体,图片,此外还有需要的插件部分原生代码和sdk的jar等。
普通的gradle构建无法打包进中间产物和资源文件,所以参考flutter 项目中的gradle 文件内容,可以看到,是在普通的gradle构建过程中加入了flutter gradle脚本
具体内容可以进入sdk目录去查看,它的工作其实就是copy那些产物进你的apk文件,所以我们可以先本地构建apk,然后解压它,取出产物,复制到你的项目中,然后重新构建然后上传到maven,参考网上的一些资料,修改了一个脚本供使用。其中你可能需要修改的部分就是你们公司自用的uploadArchives脚本了。
然后在你的项目中依赖,甚至增加配置开关控制是aar依赖还是module依赖
gradle.properties 开关
FLUTTER_DEBUG = true 复制代码
原生module中依赖
if(FLUTTER_DEBUG.equals("true")){ implementation project(':flutter') }else { implementation 'com.xxx.xxx:my-flutter:1.0.0.@aar' } 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 大屏监控系统实战(14)-打包上线及总结
- Java 实战之路(六):创建 Gradle 项目写 HelloWorld 并打包
- electron-vue 跨平台桌面应用开发实战教程(六):打包
- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- Maven多模块项目打包前的一些注意事项(打包失败)
- tar打包如何不打包某一个文件夹(排除某些文件夹)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Alone Together
Sherry Turkle / Basic Books / 2011-1-11 / USD 28.95
Consider Facebookit’s human contact, only easier to engage with and easier to avoid. Developing technology promises closeness. Sometimes it delivers, but much of our modern life leaves us less connect......一起来看看 《Alone Together》 这本书的介绍吧!