Flutter与原生平台的混合开发方法、系统及装置制造方法及图纸

技术编号:38945937 阅读:9 留言:0更新日期:2023-09-25 09:42
本发明专利技术提出的一种Flutter与原生平台的混合开发方法、系统及装置,属于计算机技术领域,所述方法包括:发布Flutter的arr文件;建立发布的arr文件与原始平台项目的依赖关系;创建Flutter与原生平台的双向消息通道;创建Flutter与原生平台的双向页面启动通道;在原生平台中封装定义Flutter消息;在Flutter中定义原生平台的消息。本发明专利技术通过进行Flutter接入封装和消息的抽象,使得原生平台和后台的交互更加流畅清晰,从而降低了代码编写的工作量,提高了研发效率。提高了研发效率。提高了研发效率。

【技术实现步骤摘要】
Flutter与原生平台的混合开发方法、系统及装置


[0001]本专利技术涉及计算机
,更具体的说是涉及一种Flutter与原生平台的混合开发方法、系统及装置。

技术介绍

[0002]Flutter是Google一个新的用于构建跨平台的手机App的软件开发工具包SDK。 写一份代码,在Android 和iOS平台上都可以运行。Flutter使用Dart语言开发,结合C, C++,和Skia(2D渲染引擎)构建支持hotreload,包含着完整的控件和工具链。 Dart可以被编译(AOT)成不同平台的本地代码,让Flutter可以直接和平台通讯而不需要一个中间的桥接过程,从而提高了性能。Flutter具有一致的统一对象模型:控件。 一个控件可以定义结构元素(比如按钮或菜单)、风格元素(比如字体或 颜色方案)、布局的方面(比如填充)、一些业务逻辑等。控件本身通常由许多小型、单用途的控件组成,结合起来产生强大的效果,类的层次结构是扁平的,以最大化可能的组合数量。Flutter具有强化版的WebView,框架仅提供一个View层,大部分功能要依赖原生。
[0003]当前, Flutter的开发工作和移动原生平台的开发工作通常不是一个人负责,由此在多方配合开发的过程中,怎么能解耦、友好、便捷的对接,就有了很大的需求。目前移动端应用还没有相关的方案方法,或者说没有类似的解决工作流的方法。可见,如何实现Flutter与原生平台的混合开发,使不同岗位的开发人员在后续的开发和工作中有迹可循,提高研发效率,是我们亟待解决的问题。

技术实现思路

[0004]针对以上问题,本专利技术的目的在于提供一种Flutter与原生平台的混合开发方法、系统及装置,通过进行Flutter接入封装和消息的抽象,使得原生平台和后台的交互更加流畅清晰,从而降低了代码编写的工作量,提高了研发效率。
[0005]本专利技术为实现上述目的,通过以下技术方案实现:一种Flutter与原生平台的混合开发方法,包括:发布Flutter的arr文件;建立发布的arr文件与原始平台项目的依赖关系;创建Flutter与原生平台的双向消息通道;创建Flutter与原生平台的双向页面启动通道;在原生平台中封装定义Flutter消息;在Flutter中定义原生平台的消息。
[0006]进一步,所述发布Flutter的arr文件,包括:将Flutter的业务代码打包成arr文件,并发布到私有仓库中。通过对Flutter和原生平台开发隔离的工程化方式,使得各个技术栈之间分离,分工明确,互不干扰。
[0007]进一步,所述建立发布的arr文件与原始平台项目的依赖关系,包括:将发布出来的Flutter的arr 文件,通过远程仓库依赖的方式,依赖到原生平台的项目中,做到了方便快捷、侵入性极低的效果。
[0008]进一步,所述创建Flutter与原生平台的双向消息通道,包括:通过Flutter内置的MethodChannel类,创建两个消息通道,分别负责Flutter到原生平台和原生平台到Flutter的消息处理,从而实现了消息的有效区分。
[0009]进一步,所述创建Flutter与原生平台的双向消息通道具体为:通过Flutter内置的MethodChannel类,创建消息通道methodChannel和messageChannel;其中,methodChannel 是Flutter向Android原生平台发送消息的通道,messageChannel 是Android原生平台向Flutter 发送消息的通道;为消息通道methodChannel设置一个methodCallHandler接口,用于消息的封装处理;当Android原生平台向Flutter 发送消息时,通过调用messageChannel的send方法发送消息。
[0010]进一步,所述创建Flutter与原生平台的双向页面启动通道,包括:通过编写Flutter的BoostDelegate类,建立页面启动类型的交互,并进行页面启动和普通消息的隔离,以实现Flutter与原生平台的双向页面启动的交互。创建双向页面启动的通道,做到页面启动和普通消息的隔离;Flutter启动原生平台和原生平台启动Flutter的隔离,使得代码更有层次,使得职责单一、维护性强。
[0011]进一步,所述在原生平台中封装定义Flutter消息,包括:在原生平台封装抽象Flutter消息,并使用工厂模式派生消息子类。
[0012]进一步,所述在Flutter中定义原生平台的消息,包括:在Flutter中封装抽象Android原生平台的消息,并使用工厂模式派生消息子类。具有可维护性、扩展性强的特点。
[0013]相应的,本专利技术还公开了一种Flutter与原生平台的混合开发系统,包括:发布单元,用于发布Flutter的arr文件;关联单元,用于建立发布的arr文件与原始平台项目的依赖关系;消息通道创建单元,用于创建Flutter与原生平台的双向消息通道;启动通道创建单元,用于创建Flutter与原生平台的双向页面启动通道;第一消息定义单元,用于在原生平台中封装定义Flutter消息;第二消息定义单元,用于在Flutter中定义原生平台的消息。
[0014]相应的,本专利技术公开了一种Flutter与原生平台的混合开发装置,包括:存储器,用于存储Flutter与原生平台的混合开发程序;处理器,用于执行所述Flutter与原生平台的混合开发程序时实现如上文任一项所述Flutter与原生平台的混合开发方法的步骤。
[0015]对比现有技术,本专利技术有益效果在于:本专利技术公开了一种Flutter与原生平台的混合开发方法、系统及装置,通过aar依赖的方式,将Flutter 和原生平台开发拆分开来;同时通过定义消息协议以及对消息通道的整合使得原生平台和后台的交互变得流畅清晰,在通
过设计模式,增加了开发过程中的扩展性和维护性。本专利技术通过工程化的方法、Flutter接入封装和消息的抽象,极大降低了相同功能编写重复代码的工作,代码数据量少,用法简单,可维护性、可阅读性得到了显著提升。
[0016]由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
[0017]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0018]图1是本专利技术的方法流程图;图2是本专利技术的系统结构图。
[0019]图中,1、发布单元;2、关联单元;3、消息通道创建单元;4、启动通道创建单元;5、第一消息定义单元;6、第二消息定义单元。
具体实施方式
[0020]为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Flutter与原生平台的混合开发方法,其特征在于,包括:发布Flutter的arr文件;建立发布的arr文件与原始平台项目的依赖关系;创建Flutter与原生平台的双向消息通道;创建Flutter与原生平台的双向页面启动通道;在原生平台中封装定义Flutter消息;在Flutter中定义原生平台的消息。2.根据权利要求1所述的Flutter与原生平台的混合开发方法,其特征在于,所述发布Flutter的arr文件,包括:将Flutter的业务代码打包成arr文件,并发布到私有仓库中。3.根据权利要求2所述的Flutter与原生平台的混合开发方法,其特征在于,所述建立发布的arr文件与原始平台项目的依赖关系,包括:将发布出来的Flutter的arr 文件,通过远程仓库依赖的方式,依赖到原生平台的项目中。4.根据权利要求1所述的Flutter与原生平台的混合开发方法,其特征在于,所述创建Flutter与原生平台的双向消息通道,包括:通过Flutter内置的MethodChannel类,创建两个消息通道,分别负责Flutter到原生平台和原生平台到Flutter的消息处理。5.根据权利要求4所述的Flutter与原生平台的混合开发方法,其特征在于,所述创建Flutter与原生平台的双向消息通道具体为:通过Flutter内置的MethodChannel类,创建消息通道methodChannel和messageChannel;其中,methodChannel 是Flutter向Android原生平台发送消息的通道,messageChannel 是Android原生平台向Flutter 发送消息的通道;为消息通道methodChannel设置一个methodCallHandler接口,用于消息的封装处理;当An...

【专利技术属性】
技术研发人员:朱飞孙传浩
申请(专利权)人:山东为农信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1