集成到原生项目
1、创建Flutter 模块
//到自己想创建的目录 多人最好到大项目路径下创建flutter 模块项目 方便项目管理和下面的集成到项目的地址
flutter create -t module xxx
2、原项目添加 flutter 模块
//settings.build 导入flutter 模块
setBinding(new Binding([gradle: this]))
//导入flutter 模块的项目地址
evaluate(new File(settingsDir.parentFile, 'flutter_package/ms_flutter_module/.android/include_flutter.groovy'))
//导入flutter 模块名称
include ':ms_flutter_module'
project(':ms_flutter_module').projectDir=new File("../flutter_package/ms_flutter_module")
3、使用
*** 创建Engine 耗时 耗性能 可以使用Engine缓存策略
//提前创建FlutterEngine
//存储提前创建的Engine
//FlutterEngineCache.getInstance().put("111",flutterEngine);
//使用时获取提前创建好的Engine
//FlutterEngine flutterEngineOne = FlutterEngineCache.getInstance().get("flutter_engine_one");
//创建flutterEngine
flutterEngine=new FlutterEngine(this);
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
//通知flutterEngine 生命周期 Resumed
flutterEngine.getLifecycleChannel().appIsResumed();
Flutter与android通信
1、BasicMessageChannel
- 用于传递字符串和半结构化的数据;
1、MessageChannel
- 用于传递方法调用
1、EventChannel
- 用于数据流的通信