android和flutter的混合工程启动逻辑

简介: Flutter混合工程是指将Flutter代码集成到现有原生Android或iOS应用程序中的过程。在这种情况下,您需要在原生应用程序中添加一些代码来启动Flutter引擎并加载Flutter代码。以下是Flutter混合工程启动逻辑的详细说明

Flutter混合工程是指将Flutter代码集成到现有原生Android或iOS应用程序中的过程。在这种情况下,您需要在原生应用程序中添加一些代码来启动Flutter引擎并加载Flutter代码。以下是Flutter混合工程启动逻辑的详细说明:


1. 在原生应用程序中添加Flutter依赖


首先,您需要在原生应用程序中添加Flutter依赖项。在Android项目的build.gradle文件中添加以下代码:



/

dependencies {
implementation'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'implementation'androidx.annotation:annotation:1.2.0'implementation'io.flutter:flutter_embedding_debug:2.8.1'// or your desired Flutter version}


在iOS项目的Podfile文件中添加以下代码:

target'YourApp'douse_frameworks!pod'Flutter', :path=>'../flutter'end


2. 创建Flutter引擎实例


接下来,您需要在原生应用程序中创建一个Flutter引擎实例。在Android中,您可以在Activity中使用FlutterEngine对象。在iOS中,您可以在AppDelegate中使用FlutterEngine对象。


在Android中,您可以使用以下代码创建FlutterEngine对象:


FlutterEngineflutterEngine=newFlutterEngine(this);

在iOS中,您可以使用以下代码创建FlutterEngine对象:


lazyvarflutterEngine=FlutterEngine(name: "my flutter engine")

3. 启动Flutter引擎


接下来,您需要启动Flutter引擎。在Android中,您可以使用以下代码:



/

flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);


在iOS中,您可以使用以下代码:


flutterEngine.run();

4. 加载Flutter代码


最后,您需要加载Flutter代码。在Android中,您可以使用以下代码:

GeneratedPluginRegistrant.registerWith(flutterEngine)

在iOS中,您可以使用以下代码:

letflutterViewController=FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
self.present(flutterViewController, animated: true)

通过这个过程,在原生应用程序中添加了Flutter依赖,创建了一个Flutter引擎实例,并启动了Flutter引擎。最后,加载Flutter代码以进行大规模集成。


注意事项:


- 您需要在Flutter代码中正确导出Flutter插件,以使它们能够在原生应用程序中使用。

- 您需要遵循Flutter和原生平台的规则和限制,以避免不必要的问题和错误。

相关文章
|
1月前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
54 0
|
17天前
|
开发框架 Dart 开发工具
|
19天前
|
Android开发 开发者 UED
未来已来:Flutter 引领的安卓与跨平台开发奇幻之旅
【6月更文挑战第8天】Flutter,一款引领安卓与跨平台开发革新的框架,以其高效一致的开发体验、精美UI设计和跨平台能力脱颖而出。开发者可使用相同代码库在多平台开发,降低复杂性。其活跃社区和丰富生态系统进一步增强功能。示例代码展示了一个简单的计数器应用,体现Flutter的易用性。随着技术发展,Flutter有望塑造移动应用的未来,开启奇幻之旅。
|
1天前
|
开发工具 Android开发
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
|
24天前
|
XML Java Android开发
04. 【Android教程】Android 工程解析及使用
04. 【Android教程】Android 工程解析及使用
18 0
04. 【Android教程】Android 工程解析及使用
|
6天前
|
编译器 开发工具 Android开发
java.io.FileNotFoundException: ...my_flutter/.android/include_flutter.groovy
java.io.FileNotFoundException: ...my_flutter/.android/include_flutter.groovy
11 0
|
1月前
|
数据库 Android开发
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
|
1月前
|
Android开发
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
|
1月前
|
Java Android开发 设计模式
flutter音视频开发,Android开发需要学什么
flutter音视频开发,Android开发需要学什么
|
1月前
|
XML Dart Java
Flutter插件开发之APK自动安装,字节跳动Android岗面试题
Flutter插件开发之APK自动安装,字节跳动Android岗面试题