自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android和Flutter的混合工程Demo

移動開發(fā) Android
整個App的啟動邏輯包括添加Flutter依賴項、創(chuàng)建Flutter引擎實例、配置Flutter引擎、啟動Flutter引擎并加載Flutter代碼,以及編寫Flutter頁面。最后,您可以構建并運行Android應用程序。

Flutter和Android混合工程的啟動邏輯與純Flutter應用程序的啟動邏輯略有不同。在混合工程中,您需要在Android項目中添加一些額外的代碼來啟動Flutter引擎并加載Flutter代碼。以下是整個app的啟動邏輯的詳細解釋:

在Android項目中添加Flutter依賴項

首先,您需要在Android項目中添加Flutter依賴項。在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:2.8.1' // or your desired Flutter version
}

創(chuàng)建Flutter引擎實例

接下來,您需要在MainActivity類中創(chuàng)建一個Flutter引擎實例。您可以使用以下代碼創(chuàng)建FlutterEngine對象:

private FlutterEngine flutterEngine;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create a FlutterEngine.
flutterEngine = new FlutterEngine(this);
// Start executing Dart code in the FlutterEngine.
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
}

配置Flutter引擎

接下來,在MainActivity類中配置Flutter引擎。您可以使用以下代碼將Flutter引擎添加到Activity生命周期回調(diào)中:

@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}

在這個示例中,我們使用GeneratedPluginRegistrant類將所有默認的Flutter插件注冊到Flutter引擎中。您可以自己添加其他插件。

啟動Flutter引擎

接下來,在MainActivity類中啟動Flutter引擎并加載Flutter代碼。您可以使用以下代碼:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create a FlutterEngine.
flutterEngine = new FlutterEngine(this);
// Start executing Dart code in the FlutterEngine.
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
// Configure an initial route.
String initialRoute = "/";
flutterEngine.getNavigationChannel().setInitialRoute(initialRoute);
// Start FlutterActivity.
startActivity(
FlutterActivity
.withCachedEngine("my_engine_id")
.build(this)
);
}

編寫Flutter頁面

接下來,您需要編寫Flutter頁面。在lib/main.dart文件中,替換默認代碼:

import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
home: Scaffold(
appBar: AppBar(
title: Text('My App'),
),
body: Center(
child: Text('Hello, Flutter!'),
),
),
);
}
}

運行Android應用程序

最后,您可以構建并運行Android應用程序,這將同時啟動原生和Flutter部分。在應用程序啟動后,它將顯示一個標題為“My App”的AppBar,并在屏幕中央顯示一條文本“Hello, Flutter!”。

總的來說,整個app的啟動邏輯包括添加Flutter依賴項、創(chuàng)建Flutter引擎實例、配置Flutter引擎、啟動Flutter引擎并加載Flutter代碼,以及編寫Flutter頁面。最后,您可以構建并運行Android應用程序。

責任編輯:姜華 來源: 今日頭條
相關推薦

2016-01-13 13:47:04

云計算混合云私有云

2022-03-04 11:12:58

技術Flutter前端

2022-02-10 08:44:52

Flutter通訊Name

2019-02-28 22:14:27

云計算混合云公共云

2019-12-30 18:18:51

云計算混合云公共云

2015-02-26 09:35:48

AWSOpenStack混合云

2019-12-18 10:30:24

前端開發(fā)技術

2023-08-03 10:25:49

Flutter

2017-11-03 07:44:54

混合云GoogleNutanix

2018-07-12 14:38:19

多云混合IT云計算

2019-01-21 15:52:02

前端工程師Flutter代碼

2023-07-07 12:26:39

攜程開發(fā)

2017-02-22 14:30:30

IT存儲工程師公有云

2012-10-19 10:49:41

惠普SDN混合云

2020-09-25 08:13:48

MySQL

2012-10-19 17:02:43

混合云SDN虛擬網(wǎng)絡

2018-01-29 05:51:15

2012-12-27 10:51:14

Android開發(fā)iPhone時間輪

2018-02-28 11:34:20

2022-05-24 06:04:25

多云混合云Kubernetes
點贊
收藏

51CTO技術棧公眾號