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


相关知识:
idea如何配置安卓开发环境
作为一款优秀的Java开发工具,IntelliJ IDEA不仅适用于Java项目开发,也可用来进行安卓项目的开发。下面将针对初学者的需求,介绍如何在IntelliJ IDEA中配置安卓开发环境。安装 JDKJDK是Java的运行时环境,是IntelliJ
2023-05-23
eclipse怎么没我有安卓开发
首先,如果您想在Eclipse中进行Android开发,您需要安装以下两个组件:1. Android SDK(Android Development Kit):它包含了所有必要的工具、库、API、调试器等等,以及构建Android应用程序需要的开发环境。您
2023-05-23
deveco studio可以开发安卓吗
Deveco Studio是一种基于Java语言的应用程序开发环境。它能够支持安卓应用程序的设计、开发和测试。因为它非常容易上手,所以即使没有专业的技能也能快速地学习和使用它。现在让我们来看看Deveco Studio可以如何开发安卓。首先,您需要一个安卓
2023-05-23
a9四核安卓开发板
a9四核安卓开发板,是一款集成了四核处理器的安卓开发板。目前在智能硬件、机器人、物联网等领域上应用广泛,因其强大的性能、高效的能耗优势以及完善的开发生态圈等特点,深受开发者的欢迎。本文将从原理及技术规格、性能优势、特点、使用及开发流程等方面进行详细的介绍。
2023-05-23
苹果app开发安卓app开发
苹果App开发和安卓App开发都是基于不同的平台和技术实现。苹果App开发:苹果App开发通常采用苹果公司提供的IOS平台进行开发,使用的开发语言是Objective-C或Swift。其中,Objective-C是一种面向对象的编程语言,类C语言的语法,与
2023-04-28
开发app安卓
开发Android应用程序(原理及详细介绍)Android是一个基于Linux内核的开源操作系统,由谷歌(Google)领导开发,主要用于触摸屏移动设备如智能手机和平板电脑。开发Android应用程序通常涉及使用Java作为编程语言,以及Android S
2023-04-28
安卓app的开发架构图
安卓App的开发架构主要包括四个层次:应用层、应用框架层、系统运行时库及Java API框架层以及Linux内核。1. 应用层(Application Layer):应用层是最顶层,主要包括手机端用户使用的各种应用程序,例如通话、短信、游戏、音乐播放器等。
2023-04-28
安卓app开发服务机构正规机构
安卓app开发服务机构是一种提供安卓应用程序开发和设计服务的公司或团队。这些公司或团队拥有专业的开发团队,可以为客户提供专业的应用开发和设计服务,使客户可以更快速地开发出自己的应用程序。正规的安卓app开发服务机构需要满足以下几个方面:1. 具备完整的开
2023-04-28
安卓app前端开发工程师
安卓 app 前端开发工程师是一种专业人才,主要从事安卓 app 前端开发和设计工作。他们需要熟练掌握安卓系统的基本原理和技术,熟悉安卓 app 的开发流程和相关工具,掌握各种安卓应用程序的开发技巧和规范。安卓 app 前端开发工程师需要具备以下技能:1.
2023-04-28
安卓 app 开发价格
安卓 App 开发的价格因项目复杂度、功能要求、开发地区、开发人员的经验等不同因素而有所不同。下面是一些可能出现的费用:1. 项目分析和设计阶段的成本:在启动开发之前,项目分析和设计是非常重要的,一般需要由专业人员来完成。这可能涉及到初步的市场调查、用户需
2023-04-28
制作软件的app安卓
制作软件的app通常需要以下几个步骤:1.确定app的功能和设计首先需要确定你的app的功能,这是整个制作过程的核心。你需要明确app的设计,包括界面布局、视觉元素、功能按钮等。这一步对于开发的成功非常重要。2.选择开发平台现在市面上有很多不同的开发平台可
2023-04-28
csharp能开发安卓app吗
可以。C#是一种通用编程语言,它可以用于许多应用程序的开发,包括Android应用程序开发。如果你想使用C#开发Android应用程序,你需要一个称为Xamarin的跨平台移动应用程序开发框架。Xamarin允许开发人员使用C#和.NET框架来创建跨平台应
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1