Flutter-入门-基础(三)

114 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第19天,点击查看活动详情

打包arr

  1. 创建module类型项目

file->new->flutter project->module

  1. 编译arr

终端:flutter build aar

  1. 配置原生项目
  1. 打包的产物,build/outputs/repo/包名/
  2. 全部复制到原生项目app级下 移植app目录结构.png
  3. 配置项目级build.gradle build文件展示.png
  4. 集成资源下载缓慢:
jcenter(){url 'http://jcenter.bintray.com/'}
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/central/'}
  1. 测试配置
    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,以组件形式接入

  1. 原生module准备
  1. 打包aar (保证打包没有缓存问题,先flutter clean 再flutter build aar )
  2. 新建module 用来放flutter aar模块
  3. 创建一个原生Activity,首先继承FlutterActivity,添加引用import io.flutter.embedding.android.FlutterActivity(应该是因为flutter的引擎在这个包下)
  4. 在oncreate注册引擎插件 this.flutterEngine?.let { GeneratedPluginRegistrant.registerWith(it) }(如果不注册遇到了视频播放引擎不能用)

2.build配置

  1. 首先在项目级build中添加本地maven仓库(打包aar 的时候会提示配置那些)
  2. 在module 的build中添加依赖(打包aar 会提示)

参考文章