当前位置: 首页 > news >正文

flutter产物以aar形式嵌入android原生工程

以前做的项目中,flutter都是作为module嵌入原生工程中,新公司项目却是以aar形式嵌入android工程,这种优点是原生工程不必配置flutter环境也能跑了,这里记录一下简单步骤。

创建一个flutter module

通过android studio创建一个flutter module,注意不要创建成flutter工程了,因为工程没法打包成aar。
在这里插入图片描述
创建完成后,编写代码,然后在终端输入命令

flutter build aar

编译完成,可以看到输出

 Built build/host/outputs/repo.

产物就在我们项目的build目录中
在这里插入图片描述
终端还有其他一些比较重要的输出,一起复制上来

Consuming the Module1. Open <host>/app/build.gradle2. Ensure you have the repositories configured, otherwise add them:String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"repositories {maven {url '/Users/yy/AndroidStudioProjects/flutter_module1/build/host/outputs/repo'}maven {url "$storageUrl/download.flutter.io"}}3. Make the host app depend on the Flutter module:dependencies {debugImplementation 'com.ali.flutter_module1:flutter_debug:1.0'profileImplementation 'com.ali.flutter_module1:flutter_profile:1.0'releaseImplementation 'com.ali.flutter_module1:flutter_release:1.0'}4. Add the `profile` build type:android {buildTypes {profile {initWith debug}}}

其实这就是官方告诉我们如何将flutter产物嵌入原生工程中,这里先创建一个原生工程,然后打开app/build.gradle,添加上

    repositories {maven {
//            这里是配置flutter产物位置url '/Users/yy/AndroidStudioProjects/flutter_module1/build/host/outputs/repo'}maven {
//            这里配置flutter下载地址,gradle自己去下载flutter引擎和源码url 'http://download.flutter.io'}}

上面的产物可以将repo目录复制到我们android工程中,上面我没有复制就直接用了。
接着配置依赖

    dependencies {debugImplementation 'com.ali.flutter_module1:flutter_debug:1.0'profileImplementation 'com.ali.flutter_module1:flutter_profile:1.0'releaseImplementation 'com.ali.flutter_module1:flutter_release:1.0'}

根据上面输出中的步骤,继续添加profile build type

    android {buildTypes {profile {initWith debug}}}

上面所有的配置都是在app/build.gradle这个目录中。
build项目,就会自动去下载flutter引擎,源码了,编译完成,我们创建一个activity来测试一下

public class FlutterDemoActivity extends FlutterActivity {@Overridepublic void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {super.onCreate(savedInstanceState, persistentState);}
}

启动这个页面,就可以看到flutter页面了。

如果我们的flutter工程中引入了第三方项目,我们还可以借助fat-aar来打包项目,它可以将flutterEngine等一起打包进去,具体使用可以看官方文档。aar这种方式也是可以调试的,将flutter项目attach到正在运行的应用上就可以了。

http://www.lryc.cn/news/168247.html

相关文章:

  • C++语法
  • antd react 文件上传只允许上传一个文件且上传后隐藏上传按钮
  • C语言指针进阶(2)
  • 51 单片机 led 灯光操作
  • VSCODE 使用技巧
  • 数据库安全(Mysql,Hadoop,Redis)
  • C【动态内存管理】
  • Javase | 集合-上
  • Multitor:一款带有负载均衡功能的多Tor实例创建工具
  • AIGC专栏6——通过阿里云与AutoDL快速拉起Stable Diffusion和EasyPhoto
  • Mysql的逻辑架构、存储引擎
  • [ES6]模块
  • 物联网终端算法
  • 【面试刷题】——TCP三次握手,以及为什么要三次握手
  • 算法系列-力扣206-单链表反转
  • 网络基础-应用层协议-HTTP/HTTPS
  • problen(5)ubuntu版本问题
  • 写一篇nginx配置指南
  • rhel8防火墙firewalld操作
  • OpenCV项目实战(2)— 如何用OpenCV实现弹球动画
  • golang iris框架 + linux后端运行
  • linux shell操作- 02 常用命令及案例
  • 考研408 | 【计算机组成原理】 数据的表示和运算
  • 【小沐学NLP】AI辅助编程工具汇总
  • linux动态扩容系统盘(非lvm磁盘)
  • Gitlab仓库部署
  • Day46:项目-购物车案例
  • 【小沐学CAD】嵌入式UI开发工具:GL Studio
  • Python:Tornado框架之获取get和post的传参
  • JSON和全局异常处理