额外唠叨一句,跨平台的意义更多在于解决多端逻辑的统一 ,至少避免了逻辑重复实现,所以企业刚开始,一般会选择一些轻量级业务进行尝试。
官方未来将有
Flutter build aar
的方法可提供使用。
二、打包
一般跨平台混合开发会有两种选择:
- 1、将
Flutter
整体框架依赖和打包脚本都集成到主项目中。 - 2、以
aar
的完整库集成形式添加到主项目。
两种实现方法各有利弊:
-
第一种方式可以更方便运行时修改问题,但是对主项目“污染”会比较高,同时改动会大一些。
-
第二种方式 需要单独调试后,更新
aar
文件再集成到项目中调试,但是这类集成方式更干净,同时Flutter
相关代码可独立运行测试,且改动较小。
一般而言,对于普通项目我是建议以 第二种方式集成到项目中的 ,通过新建一个 Flutter
工程,然后对工程进行组件化脚本处理,让它 既能以 apk形式单独运行调试,又能打包为aar形式对外提供支持。
相信对于原生平台熟悉的应该知道,我们可以通过简单修改项目gradle
脚本,让它快速支持这个能力,如下图片所示,图片中为省略的部分脚本代码,完整版可见 flutter_app_lib 。
我们通过了 isLib
标记为去简单实现了项目的打包判断,当项目作为 lib
发布时,设置 isLib
为 true,之后执行 ./gradlew assembleRelease
即可 ,剩下的工作依旧是 Flutter
自身的打包流程,而对于打包后的 aar
文件直接在原生项目里引入即可完成依赖。
而一般接入时,如果需要 token
、用户数据等信息