Android Native 工程集成 Flutter 的两种方式
在Android原生应用中集成Flutter有两种常见方式:
- 使用Flutter模块: 将Flutter代码作为Android项目中的模块集成。
步骤:
- 创建Flutter模块。
- 将Flutter模块集成到Android项目中。
- 构建并运行Android项目。
代码示例:
# 在Android项目目录下
flutter create -t module --org com.example my_flutter_module
然后在Android项目的settings.gradle
中添加:
include ':app'
setBinding(new Binding([gradle: this]))
evaluate(new File(settingsDir.parentFile, 'my_flutter_module/.android/include_flutter.groovy'))
在app
模块的build.gradle
中添加依赖:
dependencies {
implementation project(':flutter')
}
- 使用Flutter引擎: 在现有的Android项目中嵌入Flutter引擎,并运行Flutter内容。
步骤:
- 添加Flutter引擎依赖。
- 初始化Flutter引擎。
- 加载并运行Flutter片段或活动。
代码示例:
在build.gradle
中添加依赖:
dependencies {
implementation 'io.flutter:flutter_embedding_release:1.0.0-beta1'
}
在Java/Kotlin代码中初始化并使用FlutterEngine:
public class MainActivity extends AppCompatActivity {
private FlutterEngine flutterEngine;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化Flutter引擎
flutterEngine = new FlutterEngine(this);
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
flutterEngine.getNavigationChannel().setInitialRoute("main_route");
// 显示Flutter片段
if (flutterEngine != null) {
FlutterFragment flutterFragment = FlutterFragment.createDefault();
getSupportFragmentManager().beginTransaction()
.add(R.id.flutter_container, flutterFragment)
.commit();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
flutterEngine?.destroy();
}
}
这两种方式都可以将Flutter集成到Android项目中,选择哪种方式取决于具体需求和项目结构。
评论已关闭