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 原生应用的特征,兼顾两者的长处。


相关知识:
安卓11还有开发者选项吗吗怎么关闭
安卓11仍然提供了开发者选项,但是在系统设置中默认是隐藏的,需要手动开启才能看到。开发者选项为开发人员提供了一些调试和测试工具,用于开发和调试安卓应用程序。如果您是开发人员或希望进行某些系统调整,则需要打开开发者选项。在大多数情况下,开发者选项不会对普通用
2023-05-23
安卓11开发商
Android 11是谷歌发布的最新 Android 系统版本,其旨在让用户享有更奇妙、更智能、更适合个性的移动操作系统体验。而开发者们则会感到更加丰富的新功能、改进和 API。以下是一些 Android 11 的新功能和改进,可以帮助你快速地了解它的特点
2023-05-23
安卓10如何进入开发者选项
在安卓10系统中,开发者选项是一个独立的设置选项,它包括了一些高级的设置和功能,例如USB调试、CPU使用情况、GPU呈现模式等。然而,对于大部分用户来说,这些设置不是每天都需要使用的,因此,在默认情况下,安卓隐藏了开发者选项。但是,如果你是一名开发者,或
2023-05-23
vs2019 开发安卓app
VS2019是微软公司推出的一款综合性编程工具,它支持多种编程语言和平台开发,包括安卓APP的开发。在本篇文章中,我们将介绍如何使用VS2019进行安卓APP的开发。一、安装Java和Android SDK在使用VS2019开发安卓APP之前,需要先安装J
2023-05-23
hbuilder开发安卓app
HBuilder是一款跨平台的开发工具,既可以在Windows、MacOS环境下使用,也可以在手机平台下使用。其独特的设计方式,可以让开发者一次性开发出iOS和Android两个版本的应用。下面我们来详细介绍一下HBuilder开发安卓App的原理。一、开
2023-05-23
elipse安卓开发
Eclipse是一款开源的、跨平台的、集成化的开发工具,被广泛用于Java开发、Android App开发、C++开发等各种领域。本文主要介绍Eclipse在Android开发中的应用。1. Eclipse与Android开发Eclipse是Android
2023-05-23
简单安卓app开发程序是什么
简单的Android App开发程序,是通过Android Studio开发工具,使用Java或Kotlin语言,利用Android SDK提供的API构建的移动应用程序。Android App开发程序的基本原理如下:1. 设计UI界面:通过Android
2023-04-28
开发安卓app价位
开发安卓App的价位是根据项目的不同需求而定的,一般包括以下几个方面:1. App设计费用:设计师根据客户的需求和App类型设计App的UI界面,设计费用与所需的设计时间和设计师的工作经验有关;2. App开发费用:根据App的需求和功能,开发人员编写代码
2023-04-28
安卓桌面app开发
安卓桌面APP开发,指的是在安卓系统中开发一个可以替代原生桌面的APP,实现更加定制化、个性化的桌面体验。下面简单介绍一下安卓桌面APP的开发原理和相关技术点:1. 安卓桌面APP的基本原理每个安卓桌面APP本质上就是一个普通的安卓应用程序,并且具备特定的
2023-04-28
安卓开发app版本规范
在安卓开发中,App的版本规范是至关重要的。一个组织良好、易于理解的版本规范,有助于开发团队有效地追踪、规划和发布新的功能。版本规范是App的唯一标识,当开发团队发布新版本时,开发者和用户可以通过版本规范轻松区分不同版本之间的差异。在此,我们将详细介绍安卓
2023-04-28
安卓app的web服务端怎么开发软件
开发Android App的Web服务端可以分为以下几个步骤。这里我们将详细介绍每个步骤的原理以及所需技能。1. 选择合适的后端技术要开发Android App的Web服务端,首先需要选择合适的后端技术。有许多可供选择的技术,例如:Node.js、Java
2023-04-28
安卓app的制作
安卓App的制作分为以下几个步骤:1. 选择合适的编程语言Android App的官方文档推荐使用Java或Kotlin作为开发语言。没有编程基础的初学者可以先学习Java或Kotlin的基础知识,然后再着手开发Android App。2. 安装Andro
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1