一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第19天,点击查看活动详情。
打包arr
- 创建module类型项目
file->new->flutter project->module
- 编译arr
终端:flutter build aar
- 配置原生项目
- 打包的产物,build/outputs/repo/包名/
- 全部复制到原生项目app级下
- 配置项目级build.gradle
- 集成资源下载缓慢:
jcenter(){url 'http://jcenter.bintray.com/'}
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/central/'}
- 测试配置
FlutterMain.startiInitialization(this)
startActivity(Intent(this,FlutterActivity::class.java))
打包产物解释
Debug模式:对应了Dart的JIT模式,又称检查模式或者慢速模式。支持设备,模拟器(iOS/Android),此模式下打开了断言,包括所有的调试信息,服务扩展和Observatory等调试辅助。此模式为快速开发和运行做了优化,但并未对执行速度,包大小和部署做优化。Debug模式下,编译使用JIT技术,支持广受欢迎的亚秒级有状态的hot reload。 Release模式:对应了Dart的AOT模式,此模式目标即为部署到终端用户。只支持真机,不包括模拟器。关闭了所有断言,尽可能多地去掉了调试信息,关闭了所有调试工具。为快速启动,快速执行,包大小做了优化。禁止了所有调试辅助手段,服务扩展。 Profile模式:类似Release模式,只是多了对于Profile模式的服务扩展的支持,支持跟踪,以及最小化使用跟踪信息需要的依赖,例如,observatory可以连接上进程。Profile并不支持模拟器的原因在于,模拟器上的诊断并不代表真实的性能。
打包aar集成到 原生module,以组件形式接入
- 原生module准备
- 打包aar (保证打包没有缓存问题,先flutter clean 再flutter build aar )
- 新建module 用来放flutter aar模块
- 创建一个原生Activity,首先继承FlutterActivity,添加引用import io.flutter.embedding.android.FlutterActivity(应该是因为flutter的引擎在这个包下)
- 在oncreate注册引擎插件 this.flutterEngine?.let { GeneratedPluginRegistrant.registerWith(it) }(如果不注册遇到了视频播放引擎不能用)
2.build配置
- 首先在项目级build中添加本地maven仓库(打包aar 的时候会提示配置那些)
- 在module 的build中添加依赖(打包aar 会提示)