- 1、将
Flutter
整体框架依赖和打包脚本都集成到主项目中。 - 2、以
aar
的完整库集成形式添加到主项目。
两种实现方法各有利弊:
-
第一种方式可以更方便运行时修改问题,但是对主项目“污染”会比较高,同时改动会大一些。
-
第二种方式 需要单独调试后,更新
aar
文件再集成到项目中调试,但是这类集成方式更干净,同时Flutter
相关代码可独立运行测试,且改动较小。
一般而言,对于普通项目我是建议以 第二种方式集成到项目中的 ,通过新建一个 Flutter
工程,然后对工程进行组件化脚本处理,让它 既能以 apk形式单独运行调试,又能打包为aar形式对外提供支持。
相信对于原生平台熟悉的应该知道,我们可以通过简单修改项目gradle
脚本,让它快速支持这个能力,如下图片所示,图片中为省略的部分脚本代码,完整版可见 flutter_app_lib 。
我们通过了 isLib
标记为去简单实现了项目的打包判断,当项目作为 lib
发布时,设置 isLib
为 true,之后执行 ./gradlew assembleRelease
即可 ,剩下的工作依旧是 Flutter
自身的打包流程,而对于打包后的 aar
文件直接在原生项目里引入即可完成依赖。
而一般接入时,如果需要 token
、用户数据等信息,推荐提供定义好原生接口,如 init(String token, String userInfo)
等,然后通过MethodChannel
将信息同步到 Flutter
中。
对于原生主工程,只需要接入 aar
文件,完成初始化并打开页面,而无需关心其内部实现,和引入普通依赖并无区别。
你可能需要修改的还有
AndroidManifset
中的启动M