flutter可以和安卓原生混合开发吗

Flutter 是 Google 最近推出的全新跨平台移动应用框架,可以说是一个相当有前途的技术。然而像很多跨平台框架一样,Flutter也有其局限性,例如不便的兼容性,这也使得许多企业开发团队对 Flutter 持有一定的保留态度,特别是已经有了较成熟 Android 原生应用的时候。

但 Flutter 与 Android 原生应用之间并非完全不能兼容,而是可以实现混合开发。下面将以常见的实现方式来简要介绍 Flutter 与 Android 原生混合开发的实现原理:

Flutter 提供了一种叫做 FlutterView 的组件,这是一个继承自 View 的组件,可以在 Android 原生应用中嵌入一个 Flutter 页。FlutterView 的核心代码量较小,一般不需要修改,只需注入 Flutter 页即可。

Flutter 页是一个完整的独立应用,可以在 Flutter 中实现各种 UI 控件,数据处理和逻辑功能等。为了将 Flutter 页插入到 Android 应用中,Flutter提供了两种方式:Embedding V1 和 Embedding V2。

Embedding V1

Embedding V1 是一种最简单的嵌入方式,而且兼容 Android 4.1 以上版本,可以使用官方提供的库来实现。具体实现步骤如下:

1. 在 Android 原生应用的布局文件中添加 FlutterView 组件:

android:id="@+id/flutter_view"

android:layout_width="match_parent"

android:layout_height="match_parent" />

2. 在 Android 原生应用的 Activity 中添加 FlutterEngine:

FlutterEngine flutterEngine = new FlutterEngine(this);

flutterEngine.getDartExecutor().executeDartEntrypoint(

DartExecutor.DartEntrypoint.createDefault());

3. 将 FlutterEngine 与 FlutterView 组件关联起来:

flutterView = findViewById(R.id.flutter_view);

flutterView.attachToFlutterEngine(flutterEngine);

嵌入之后,就可以在 Android 原生应用中展示 Flutter 页了。

Embedding V2

Embedding V2 是新的嵌入方式,提供了更好的扩展性和稳定性,不过需要使用官方提供的插件,对原有代码侵入性较大。具体实现步骤如下:

1. 在 Android 原生应用的布局文件中添加 FlutterFragment 组件:

android:id="@+id/flutter_fragment"

android:name="io.flutter.embedding.android.FlutterFragment"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:flutterEmbedding="2" />

2. 在 Android 原生应用的 Activity 中通过 FlutterFragment 获得 FlutterEngine 的实例:

FlutterFragment flutterFragment = getSupportFragmentManager()

.findFragmentById(R.id.flutter_fragment);

FlutterEngine flutterEngine = flutterFragment.getFlutterEngine();

3. 将 FlutterEngine 与 FlutterFragment 组件关联起来:

flutterFragment.attachToFlutterEngine(flutterEngine);

这样就可以在 Android 原生应用中展示 Flutter 页了。

综上所述,Flutter 与 Android 原生混合开发是完全可行的,同时开发者可以自由选择使用 Embedding V1 或 Embedding V2 实现嵌入。在混合开发过程中,开发者可以充分发挥 Flutter 的优势,如热重载、跨平台运行等,同时也可以保留原有的 Android 原生应用的特征,兼顾两者的长处。


相关知识:
安卓9
在 Android 9.0 中,开发者选项依然存在,其包含了 Android 开发者可能会用到的大量选项和调试功能。本文将详细介绍怎么看 Android 9.0 中的开发者选项。第一步:进入设置界面我们可以在 Android 设备中的“设置”菜单中找到开发
2023-05-23
安卓9
安卓9.0是一款流行的移动操作系统,为便携式设备提供了先进的功能和工具。在这些功能和工具中,开发者模式是其中之一,它被设计用于为开发人员、测试员和高级用户提供更多的设置和功能,以便他们更好地控制他们的设备和应用程序。本文将对安卓9.0开发者模式进行原理和详
2023-05-23
stm32安卓开发软件
STM32是一款基于ARM Cortex M系列内核的微控制器,其性能强大,可以在很多领域得到应用。在现代的智能设备和应用中,为了能够更好的交互和管理,移动应用已经成为不可或缺的一部分。因此,在STM32控制器上开发Android应用是很重要的,下面就来详
2023-05-23
c sharp 安卓开发
C#是一种非常流行的编程语言,广泛使用在Windows中的开发。但实际上,C#并不仅仅适用于Windows开发,还可以用于安卓开发。在本篇文章中,来介绍一下C#在安卓开发中的原理和应用方式。一、安卓开发的三种开发方式在介绍C#在安卓开发中的应用方式之前,我
2023-05-23
最好用的安卓app开发工具
现在流行的安卓APP开发工具有很多,下面介绍一些目前使用较多,且被广泛认可的几个工具。1. Android StudioAndroid Studio是谷歌官方提供的一款强大的安卓开发工具,它集成了一系列开发工具和插件,包括代码编译器、调试器、代码分析工具和
2023-04-28
手机上制作一个简单的安卓app
要在手机上制作一个简单的安卓app,可以通过以下几个步骤实现:1. 下载Android StudioAndroid Studio是安卓开发的官方IDE,可以帮助我们构建安卓应用程序。它是免费的,可以从Google官网上进行下载。2. 安装并启动Androi
2023-04-28
惠州安卓商城app开发公司
惠州安卓商城是一种基于Android平台的应用程序,旨在提供各种类型的应用程序和游戏,以供用户下载和使用。安卓商城通常由一个或多个模块组成,包括用户管理模块、应用程序管理模块和付费模块等等。用户管理模块用于注册和认证用户,以便他们能够访问商城中的应用程序和
2023-04-28
安卓app开发论坛
安卓APP开发是指使用专业的编程工具,编写能够在Android设备上运行应用程序的过程。在安卓APP开发的过程中,开发者需要学习使用主要的开发工具、框架,以及熟悉Android系统的各方面特性,包括用户界面、功能逻辑实现等。下面的文章将详细介绍安卓APP开
2023-04-28
安卓app制作需要懂什么语言
安卓App的制作需要掌握以下知识:1. Java语言:Java是安卓开发的主流语言,因其具备面向对象的特性、跨平台性、安全性等优点,被广泛应用于安卓开发。2. XML语言:XML是安卓UI界面的布局语言,可描述应用程序的用户界面,包括布局、样式、属性等。3
2023-04-28
四川苹果安卓app开发
苹果iOS和安卓Android是目前最主流的移动操作系统,苹果iOS开发和安卓Android开发也是移动应用程序开发最常见的两种类型。下面将对苹果iOS和安卓Android的开发做一个详细介绍。苹果iOS开发原理:苹果iOS开发使用的编程语言是Object
2023-04-28
以后想要开发安卓app
标题:开发安卓App:原理和详细介绍摘要:本文将带您了解安卓App的开发原理以及详细的开发过程,帮助初学者建立这方面的认识和基本概念。目录:1. 安卓App开发概述2. 开发环境搭建3. 安卓App开发基本原理4. 安卓App开发详细步骤5. 调试与发布应
2023-04-28
labview安卓app开发
LabVIEW是National Instruments(NI)公司开发的一款图形化编程平台,主要用于数据采集、信号处理、仪器控制等领域。然而,LabVIEW并不能直接用于安卓APP开发,但是可以利用LabVIEW的数据通信功能与专门为安卓设备开发的安卓A
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1