CN113419712A - 跨平台的应用生成方法、跨平台应用调用方法、开发装置 - Google Patents
跨平台的应用生成方法、跨平台应用调用方法、开发装置 Download PDFInfo
- Publication number
- CN113419712A CN113419712A CN202110735609.3A CN202110735609A CN113419712A CN 113419712 A CN113419712 A CN 113419712A CN 202110735609 A CN202110735609 A CN 202110735609A CN 113419712 A CN113419712 A CN 113419712A
- Authority
- CN
- China
- Prior art keywords
- layer
- platform
- cross
- api
- platforms
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000011161 development Methods 0.000 title abstract description 27
- 230000003993 interaction Effects 0.000 claims abstract description 68
- 238000005516 engineering process Methods 0.000 claims abstract description 34
- 238000004806 packaging method and process Methods 0.000 claims abstract description 10
- 230000006399 behavior Effects 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 18
- 230000002452 interceptive effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开一种跨平台的应用生成方法、跨平台应用调用方法、开发装置。在一具体实施方式中,该应用生成方法包括:基于跨平台技术栈生成视图逻辑层;基于多个平台的属性建立API层,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互;将视图逻辑层和API层进行打包形成跨平台应用。该实施方式基于跨平台技术栈开发视图逻辑层并基于多个平台属性建立API层,从而实现能够满足跨平台交互的跨平台应用。
Description
技术领域
本发明涉及软件技术领域。更具体地,涉及一种跨平台的应用生成方法、跨平台应用调用方法、开发装置。
背景技术
随着跨平台技术的兴起,以Flutter、React Native、Weexs等为代表的跨平台方案在业内越来越受到广泛关注和使用。在多形态业务场景下,如何保障多端体验的一致性,是前端技术领域一个比较受关注的方向。
但是,在很多应用场景下,各种不同平台的开发,都需要使用不同平台的开发工具、开发语言、以及对应的开发环境和工具,多平台同一应用很难保证多端的体验一致,同时不同平台对应不同的开发技术栈,每一端的开发人员无法复用,只能够做基于本端技术栈的开发工作,这样在人力方面以及研发效率上面没有办法达到最大化的利用率与效率。
发明内容
本发明的目的在于提供一种,以解决现有技术存在的问题中的至少一个。
为达到上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种跨平台的应用生成方法,包括:
基于跨平台技术栈生成视图逻辑层;
基于多个平台的属性建立API层,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互;
将视图逻辑层和API层进行打包形成跨平台应用。
在一些可选的实施例中,跨平台技术栈为Flutter,多个平台包括IOS、Android、Web、Windows、macOS和Linux中的至少两个。
在一些可选的实施例中,基于跨平台技术生成视图逻辑层进一步包括:
基于跨平台技术创建模块化代码,模块化代码包括跨平台技术栈提供的常规数据包和应用于多个平台的插件数据包。
在一些可选的实施例中,通用接口层,用于定义多个平台与视图逻辑层的公共交互行为。
在一些可选的实施例中,基于多个平台的属性建立API层还包括:建立公共逻辑处理层,用于根据公共交互行为分别建立对应于多个平台的私有交互功能,并利用私有交互功能与扩展接口层进行信息交互。
在一些可选的实施例中,扩展接口层包括对应于多个平台的插件接口,插件接口用于与其所属平台进行信息交互。
本发明第二方面提供一种上文生成的跨平台应用的调用方法,应用于终端,其特征在于,包括:
响应于用户启动宿主的操作获取加载有宿主的平台的类型参数;
根据宿主的封装与服务器中的跨平台应用的API层进行通信,向API层发送信息调用请求,其中,信息调用请求包括类型参数,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互;
自API层接收服务器中的视图逻辑层中创建的模块化代码;以及
宿主加载模块化代码,实现信息调用。
在一些可选的实施例中,根据宿主的封装与服务器中的跨平台应用的API层进行通信进一步包括:
在一些可选的实施例中,API层还包括公共逻辑处理层,自API层接收服务器中的视图逻辑层中创建的模块化代码进一步包括:
根据公共交互行为分别建立对应于多个平台的私有交互功能,并利用私有交互功能与扩展接口层进行信息交互。
本发明第三方面提供一种跨平台应用的开发装置,包括:
视图逻辑层生成单元,被配置成基于跨平台技术栈生成视图逻辑层;
API层生成单元,被配置成基于多个平台的属性建立API层,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互;以及
打包单元,将视图逻辑层和API层进行打包形成跨平台应用。
本发明第四方面提供一种计算机设备,包括:
一个或多个处理器;
存储装置,其上存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上文所述的应用生成方法。
本发明第五方面提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上文所述的应用生成方法。
本发明的有益效果如下:
本发明针对目前现有的问题,制定一种跨平台的应用生成方法、跨平台应用调用方法、开发装置、计算机设备以及计算机可读存储介质,通过基于跨平台技术栈开发视图逻辑层并基于多个平台属性建立API层,并设置API层包括用于与所述视图逻辑层进行信息交互的通用接口层和用于分别与各平台进行信息交互的扩展接口层,能够生成满足跨平台交互的跨平台应用,从而真正实现的“Write Once&Run AnyWhere”(写一次,到处可用),使得开发人员能够实现多端复用,从而降低人力成本,提高应用的开发效率,具有广泛的应用前景。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1示出根据本发明的一个实施例的跨平台的应用生成方法的示意性流程图。
图2示出可以应用本发明的应用生成方法或调用方法的示例性硬件***框图。
图3示出根据本发明实施例开发的跨平台的应用的功能框架图。
图4示出根据本发明实施例的利用本发明生成的跨平台应用的调用方法的示意性流程图。
图5示出根据本发明实施例的利用本发明生成的跨平台应用的调用过程的示意性框图。
图6示出根据本发明实施例的跨平台应用的开发装置的示意性框图。
图7示出本发明另一个实施例所述的一种计算机设备的结构示意图。
具体实施方式
为了更清楚地说明本发明,下面结合实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
为了解决以上问题之一,如图1所示,本发明的实施例提供一种跨平台的应用生成方法,包括:
S101、基于跨平台技术栈生成视图逻辑层;
S102、基于多个平台的属性建立API层,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互;
S103、将视图逻辑层和API层进行打包形成跨平台应用。
在本实施例中,通过基于跨平台技术栈开发视图逻辑层并基于多个平台属性建立API层,并设置API层包括用于与所述视图逻辑层进行信息交互的通用接口层和用于分别与各平台进行信息交互的扩展接口层,能够生成满足跨平台交互的跨平台应用,从而真正实现的“Write Once&Run AnyWhere”(写一次,到处可用),使得开发人员能够实现多端复用,从而降低人力成本,提高应用的开发效率,具有广泛的应用前景。
为了进一步理解本发明,下面参照具体的示例详细描述本发明的方法和装置。
如图2所示,图中示出了可以应用本发明的应用生成方法或调用方法的示例性硬件***框图。该硬件***包括服务器100、网络200和终端设备300。网络200是用以在服务器100和终端设备300之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
终端设备300上可以安装有各种应用的宿主,应用例如为网页浏览器类应用、视频类应用、内容分享类应用、社交类应用等等。其中,应用包括适用于各种平台的应用,平台例如为,IOS、Android、Web、Windows、macOS、Linux、鸿蒙等等,应用的宿主可以为自各种应用下载上,例如应用商店下载的应用(APP)外壳,特殊地,对于Web平台来说,应用的宿主为基于Web浏览器的网页应用的外壳。该宿主通常包括应用的封装和本地化的插件库,其中,封装中包括与服务器100中存储的跨平台应用进行交互的路由通道,例如,Methchannel、Flutter Web Pluin类等。
终端设备300为接收用户操作的各种电子设备,包括但不限于台式机、平板电脑、笔记本电脑等,终端设备300上可以搭载IOS、Android、Windows、macOS、Linux、鸿蒙等等各种***。终端设备300可以通过网络200与服务器100交互,以接收或发送消息等。
服务器100可以是支持终端设备300上安装的应用的宿主的后台服务器。服务器100可以基于与终端设备300的通信,调用预先存储的应用;然后基于应用的应用编程接口(API)将跨平台应用中的模块化代码下发至终端设备200以实现应用的动态化调用。在本发明的实施例中,预先存储在服务器100中的应用是跨平台应用,即经过开发人员一次开发后可以多个平台运行的跨平台应用。
另外,服务器100也可以同时为装载有开发装置的本地服务器,开发装置为基于跨平台的服务和编译器的台式机、平板电脑、笔记本电脑等。经过该开发装置生成的跨平台应用可以基于网络200与终端设备300进行通信,实现以上动态化调用。
下面结合具体的实施例描述本发明实施例的跨平台的应用开发方法。
在一个具体的示例中,参照图1和图2所示,在步骤S101中,基于跨平台技术栈生成视图逻辑层。在本发明的实施例中,跨平台技术栈可以是各种平台的技术栈,例如Flutter、React Native、Weexs等,只要满足一套技术栈完成视图逻辑层的开发即可。其中,Flutter是一种跨屏的移动开发框架,开发语言采用Dart,因为Dart同时支持AOT(Ahead-of-TimeComplation,提前编译)和JIT(Just in Time Complication,即时编译),因此Flutter天生支持动态化,因此,较为优选地,可以选择基于Flutter生成视图逻辑层。
在步骤S101中,基于跨平台技术生成视图逻辑层进一步包括:创建模块化代码。具体地,当生成视图逻辑层的跨平台技术栈为Flutter时,模块化代码均是由Dart语言编写的,其包括跨平台技术栈提供的常规数据包(Dart Package)和应用于所述多个平台的插件数据包(Plugin Package)。
其中,常规数据包可以包含依赖于Flutter框架的特定功能,例如依赖于Flutter框架的用户界面(UI)、图标(Icon)等,其使用范围仅限于Flutter。插件数据包可以为Android(使用Kotlin或Java的平台)、iOS(使用Swift或Objective-C的平台)、Web、macOS、Windows和Linux或至少两种任意组合的平台编写插件包。换句话说,通过一种跨平台技术栈,例如Flutter,在生成视图逻辑层时,为将要应用的多个平台创建将用于动态化调用的数据包。
在步骤S102中,基于多个平台的属性建立API层,API层包括通用接口层和扩展接口层。多个平台包括IOS、Android、Web、Windows、macOS和Linux中的至少两个。当然以上平台并不是穷举的,本发明并不限于此,其他平台也是适用的,例如还可以包括鸿蒙。
如图3所示,通用接口层用于与视图逻辑层进行信息交互。具体地,通用接口层用于定义多个平台与视图逻辑层的公共交互行为。即,以定义的形式规范各平台的动作,以保证多个平台的操作的统一性。具体地,形成通用结构层时,仅给出图片处理行为、页面跳转行为、场景转换行为等公共交互行为的定义
通过该设置,对于各个平台之间无法对齐的实现场景,例如,Web平台与Android和IOS平台在路由上具有不同的实现方式,Android和IOS平台通过注册Methchannel形成路由通道,并以平台特有的Json语言实现数据包传递,而Web平台利用官方指定形式(FederatedPlugin)编写的Flutter Web Plugin类进行路由,并通过Dart Libarary或者Package实现数据包传递,或者对于已有现成可用的JS SDK或需要大量使用JS实现功能的情况下,官方提供了package:js包调用Javascript,从而实现与Javascript的交互;通过通用接口层,不再不约束具体的实现,而是只存在定义,从而能够以统一的API网络请求与视图逻辑层实现交互。
继续参照图3所示,扩展接口层用于分别与各平台进行信息交互,其包括对应于多个平台的插件接口,具体地,插件接口用于与其所属平台进行信息交互。即,通过扩展接口直接完成与对应的各个平台的交互对接。
具体地,对于各个平台而言,即使是通用功能在具体实现上也会具有限制。例如,应用的手势,上划下载或者下拉刷新的手势,此种手势在IOS或Android平台的手机端是可以实现的,而在Web平台则没有手势的概念,在Web平台则更多出现与IOS或Android平台不同的鼠标操作,例如拖、拉、拽。以上功能差异可能均对应于通用接口层的页面跳转或场景转换的公共行为定义,因此,通过扩展接口层,将通用接口层对外交互的公共行为对接到相应的平台进行扩展实现。
然而,考虑到接***互类型的扩展性,为了处理依赖中的公共逻辑,继承与实现视图逻辑层针对各个平台差异性的交互行为,本发明的实施例中,基于多个平台的属性建立API层还包括:建立公共逻辑处理层,该公共逻辑处理层用于根据公共交互行为分别建立对应于多个平台的私有交互功能,并利用私有交互功能与扩展接口层进行信息交互。公共逻辑处理层是基于各个平台的实现,API层下层对应各个平台的扩展接口层的扩展均是基于公共逻辑层实现的。
具体地,以Flutter为例,在Flutter中的基础依赖均是使用Plugin的形式进行开发维护的,在架构上,最终暴露给开发者的为Plugin API层提供的通用接口层,在细节实现上,以公共逻辑处理层来处理各种平台的各自各种依赖关系之间的差异。
一方面,多个平台之间存在能够在各平台对齐的场景。例如,埋点库。其中埋点库包括日志打点、日志统计等。埋点库不论在IOS、Android、Windows、macOS、Linux平台还是在Web平台,均使用统一提供的SDK,在API层设计上具有天然的一致性,因此可以在扩展接口层中直接对齐所有接口,在公共逻辑处理层只需进行兼容处理即可。
另一方面,多个平台之间存在无法对齐的场景。例如,路由库。如上文所述,Web平台与Android和IOS平台在路由上具有不同的实现方式,路由通道不同,传递数据的数据包也不同。在Android或IOS等终端***平台,路由库是这些平台在底层维护的一套全新的路由体系,依靠原生支持提供了强大的定制化功能。而在Web平台无法与这些平台在原生实现层达到百分百的支持,对于路由库这样无法对齐的场景,通过上层通用接口层对外对齐,而在公共逻辑处理层针对Web平台,借助Flutter Navigator、dart:html用纯Dart语言完成扩展,并在后期调用时,由公共逻辑层向下的相应扩展接口层进行模块化代码的下发。对于其它不能对齐的场景在逻辑上也是类似的,在公共逻辑处理层,本发明的实施例提供了默认的继承接口来实现对于默认逻辑的修改,从而提供了灵活的扩展空间。
在步骤S103中,将视图逻辑层和API层进行打包形成跨平台应用。具体地,打包形成的跨平台应用为能够同时实现于多个平台的跨平台的应用,即能够实现与各个平台进行动态化调用的动态化应用框架。
通过本发明的以上设置,通过以一套跨平台技术栈生成上层的视图逻辑层,并设计API层,在API层通过通用接口层对视图逻辑层中的各种公共行为进行统一的定义,而在下层以扩展接口层对接各个平台,实现针对多个平台的行为扩展,从而能够对上完成与视图逻辑层的交互,对下完成对各种平台的交互,从而实现真正的“Write Once&RunAnyWhere”。
相应地,参照图4和图5,本发明的实施例还提供一种利用上文方法生成的跨平台应用的调用方法,应用于终端,包括:
S401、响应于用户启动宿主的操作获取加载有宿主的平台的类型参数,
具体地,在步骤S401中,启动宿主的操作可以是使用终端的用户,点击打开安装有应用的宿主,并通过输入用户名或者密码启动宿主。宿主包括应用的封装和本地化的插件库,平台的类型参数包括指示平台类型的信息;
S402、根据宿主的封装与服务器中的跨平台应用的API层进行通信,向API层发送信息调用请求,其中,信息调用请求包括类型参数,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互,
具体地,通过API层中通用接口层对公共行为的定义与视图逻辑层进行交互,在下层通过扩展接口层对接各个平台,实现针对多个平台的行为扩展,从而能够对上完成与视图逻辑层的交互;
S403、自API层接收服务器中的视图逻辑层中创建的模块化代码,即,通过API层下发视图逻辑层中创建的模块化代码,
更为具体地,API层还包括公共逻辑处理层,自API层接收所述服务器中的视图逻辑层中创建的模块化代码进一步包括根据公共交互行为分别建立对应于多个平台的私有交互功能,并利用私有交互功能与所述扩展接口层进行信息交互,从而完成模块化代码的下发;以及
S404、宿主加载模块化代码,实现信息调用。
通过以上设置,通过基于跨平台技术栈开发的视图逻辑层和基于多个平台属性建立的API层,其中,设置API层包括用于与所述视图逻辑层进行信息交互的通用接口层和用于分别与各平台进行信息交互的扩展接口层,能够实现了自本地终端上的各种平台与服务器上的跨平台应用之间的动态化调用,从而真正实现的“Write Once&Run AnyWhere”(写一次,到处可用),使得开发人员能够实现多端复用,从而降低人力成本,提高应用的开发效率,具有广泛的应用前景。
基于同一发明构思,参照图6所示,本发明的实施例还提供了一种跨平台应用的开发装置,包括:
视图逻辑层生成单元,被配置成基于跨平台技术栈生成视图逻辑层;
API层生成单元,被配置成基于多个平台的属性建立API层,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互;以及
打包单元,将视图逻辑层和所述API层进行打包形成跨平台应用。
通过以上设置,通过视图逻辑层生成单元来基于跨平台技术栈开发的视图逻辑层并设置API层生成单元来基于多个平台属性建立的API层,其中,设置API层包括用于与所述视图逻辑层进行信息交互的通用接口层和用于分别与各平台进行信息交互的扩展接口层,能够生成满足跨平台交互的跨平台应用,从而真正实现的“Write Once&Run AnyWhere”(写一次,到处可用),使得开发人员能够实现多端复用,从而降低人力成本,提高应用的开发效率,具有广泛的应用前景。
本发明的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现:基于跨平台技术栈生成视图逻辑层;基于多个平台的属性建立API层,API层包括通用接口层和扩展接口层,其中,通用接口层用于与视图逻辑层进行信息交互,扩展接口层用于分别与各平台进行信息交互;将视图逻辑层和API层进行打包形成跨平台应用。
在实际应用中,计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
如图7所示,本发明的另一个实施例提供的一种计算机设备的结构示意图。图7显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图7中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理器单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种跨平台的应用生成方法。
需要说明的是,本发明实施例提供的视线追踪方法步骤的先后顺序可以进行适当谓整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发费揭露的技术范围内,可轻易程到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
本发明针对目前现有的问题,制定一种跨平台的应用生成方法、跨平台应用调用方法、开发装置、计算机设备以及计算机可读存储介质,通过基于跨平台技术栈开发视图逻辑层并基于多个平台属性建立API层,并设置API层包括用于与所述视图逻辑层进行信息交互的通用接口层和用于分别与各平台进行信息交互的扩展接口层,能够生成满足跨平台交互的跨平台应用,从而真正实现的“Write Once&Run AnyWhere”(写一次,到处可用),使得开发人员能够实现多端复用,从而降低人力成本,提高应用的开发效率,具有广泛的应用前景。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于本领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (11)
1.一种跨平台的应用生成方法,其特征在于,包括:
基于跨平台技术栈生成视图逻辑层;
基于多个平台的属性建立API层,所述API层包括通用接口层和扩展接口层,其中,所述通用接口层用于与所述视图逻辑层进行信息交互,所述扩展接口层用于分别与各平台进行信息交互;
将所述视图逻辑层和所述API层进行打包形成跨平台应用。
2.根据权利要求1所述的应用生成方法,其特征在于,所述跨平台技术栈为Flutter,所述多个平台包括IOS、Android、Web、Windows、macOS和Linux中的至少两个。
3.根据权利要求2所述的应用生成方法,其特征在于,所述基于跨平台技术生成视图逻辑层进一步包括:
基于跨平台技术创建模块化代码,所述模块化代码包括所述跨平台技术栈提供的常规数据包和应用于所述多个平台的插件数据包。
4.根据权利要求1所述的应用生成方法,其特征在于,所述通用接口层,用于定义所述多个平台与所述视图逻辑层的公共交互行为。
5.根据权利要求4所述的应用生成方法,其特征在于,所述基于多个平台的属性建立API层还包括:建立公共逻辑处理层,用于根据所述公共交互行为分别建立对应于所述多个平台的私有交互功能,并利用私有交互功能与所述扩展接口层进行信息交互。
6.根据权利要求1所述的应用生成方法,其特征在于,所述扩展接口层包括对应于所述多个平台的插件接口,所述插件接口用于与其所属平台进行信息交互。
7.一种利用权利要求1-6生成的跨平台应用的调用方法,应用于终端,其特征在于,包括:
响应于用户启动宿主的操作获取加载有宿主的平台的类型参数;
根据所述宿主的封装与服务器中的跨平台应用的API层进行通信,向所述API层发送信息调用请求,其中,所述信息调用请求包括所述类型参数,所述API层包括通用接口层和扩展接口层,其中,所述通用接口层用于与所述视图逻辑层进行信息交互,所述扩展接口层用于分别与各平台进行信息交互;
自所述API层接收所述服务器中的视图逻辑层中创建的模块化代码;以及
所述宿主加载所述模块化代码,实现信息调用。
8.根据权利要求7所述的调用方法,其特征在于,所述API层还包括公共逻辑处理层,所述自所述API层接收所述服务器中的视图逻辑层中创建的模块化代码进一步包括:
根据所述公共交互行为分别建立对应于所述多个平台的私有交互功能,并利用私有交互功能与所述扩展接口层进行信息交互。
9.一种跨平台应用的开发装置,其特征在于,包括:
视图逻辑层生成单元,被配置成基于跨平台技术栈生成视图逻辑层;
API层生成单元,被配置成基于多个平台的属性建立API层,所述API层包括通用接口层和扩展接口层,其中,所述通用接口层用于与所述视图逻辑层进行信息交互,所述扩展接口层用于分别与各平台进行信息交互;以及
打包单元,将所述视图逻辑层和所述API层进行打包形成跨平台应用。
10.一种计算机设备,包括:
一个或多个处理器;
存储装置,其上存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6中任一项所述的应用生成方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-6中任一项所述的应用生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110735609.3A CN113419712A (zh) | 2021-06-30 | 2021-06-30 | 跨平台的应用生成方法、跨平台应用调用方法、开发装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110735609.3A CN113419712A (zh) | 2021-06-30 | 2021-06-30 | 跨平台的应用生成方法、跨平台应用调用方法、开发装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113419712A true CN113419712A (zh) | 2021-09-21 |
Family
ID=77717266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110735609.3A Pending CN113419712A (zh) | 2021-06-30 | 2021-06-30 | 跨平台的应用生成方法、跨平台应用调用方法、开发装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419712A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023092292A1 (zh) * | 2021-11-23 | 2023-06-01 | 京东方科技集团股份有限公司 | Flutter Web应用程序与宿主程序通信方法、计算机设备 |
CN116795356A (zh) * | 2023-08-21 | 2023-09-22 | 山东为农信息科技有限公司 | Flutter与原生平台的混合开发方法、***及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099863A1 (en) * | 2000-06-02 | 2002-07-25 | Guillaume Comeau | Software support layer for processors executing interpreted language applications |
US20030182461A1 (en) * | 2002-03-21 | 2003-09-25 | Stelting Stephen A. | Service mapping method of enterprise application modeling and development for multi-tier service environments |
KR20100100685A (ko) * | 2009-03-05 | 2010-09-15 | 주식회사 코아로직 | 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템 |
CN104834519A (zh) * | 2015-04-04 | 2015-08-12 | 杭州中焯信息技术股份有限公司 | 跨平台的应用软件开发*** |
CN106990966A (zh) * | 2017-03-31 | 2017-07-28 | 中国科学技术大学苏州研究院 | 基于前端框架的移动端跨平台应用开发框架及开发方法 |
US9846682B1 (en) * | 2013-11-25 | 2017-12-19 | Amazon Technologies, Inc. | Cross-platform presentation of digital content |
CN107908426A (zh) * | 2017-12-21 | 2018-04-13 | 江苏国泰新点软件有限公司 | 跨平台应用程序的设计方法、装置、移动终端及存储介质 |
US20200159220A1 (en) * | 2018-11-15 | 2020-05-21 | Raven Industries, Inc. | Integrated platform and common software structural architecture for autonomous agricultural vehicle and machinery operation |
-
2021
- 2021-06-30 CN CN202110735609.3A patent/CN113419712A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099863A1 (en) * | 2000-06-02 | 2002-07-25 | Guillaume Comeau | Software support layer for processors executing interpreted language applications |
US20030182461A1 (en) * | 2002-03-21 | 2003-09-25 | Stelting Stephen A. | Service mapping method of enterprise application modeling and development for multi-tier service environments |
KR20100100685A (ko) * | 2009-03-05 | 2010-09-15 | 주식회사 코아로직 | 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템 |
US9846682B1 (en) * | 2013-11-25 | 2017-12-19 | Amazon Technologies, Inc. | Cross-platform presentation of digital content |
CN104834519A (zh) * | 2015-04-04 | 2015-08-12 | 杭州中焯信息技术股份有限公司 | 跨平台的应用软件开发*** |
CN106990966A (zh) * | 2017-03-31 | 2017-07-28 | 中国科学技术大学苏州研究院 | 基于前端框架的移动端跨平台应用开发框架及开发方法 |
CN107908426A (zh) * | 2017-12-21 | 2018-04-13 | 江苏国泰新点软件有限公司 | 跨平台应用程序的设计方法、装置、移动终端及存储介质 |
US20200159220A1 (en) * | 2018-11-15 | 2020-05-21 | Raven Industries, Inc. | Integrated platform and common software structural architecture for autonomous agricultural vehicle and machinery operation |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023092292A1 (zh) * | 2021-11-23 | 2023-06-01 | 京东方科技集团股份有限公司 | Flutter Web应用程序与宿主程序通信方法、计算机设备 |
CN116795356A (zh) * | 2023-08-21 | 2023-09-22 | 山东为农信息科技有限公司 | Flutter与原生平台的混合开发方法、***及装置 |
CN116795356B (zh) * | 2023-08-21 | 2023-11-24 | 山东为农信息科技有限公司 | Flutter与原生平台的混合开发方法、***及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032706B (zh) | 智能合约执行方法、装置、设备和存储介质 | |
CN106462407B (zh) | 用于语言无关调度的代码服务 | |
CN111176626B (zh) | 跨编程语言的代码调用方法及装置、介质、设备 | |
CN111158818A (zh) | 一种页面渲染方法和装置 | |
CN111338623B (zh) | 一种开发用户界面的方法、装置、介质和电子设备 | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN111581555B (zh) | 一种文档加载方法、装置、设备及存储介质 | |
CN113419712A (zh) | 跨平台的应用生成方法、跨平台应用调用方法、开发装置 | |
CN111026439B (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN113127361B (zh) | 应用程序的开发方法、装置、电子设备和存储介质 | |
CN111857658A (zh) | 一种渲染动态组件的方法、装置、介质和电子设备 | |
CN103443763A (zh) | 包含对重写虚拟函数的调用的支持的isa桥接 | |
CN113918195A (zh) | 应用界面更新方法、装置、电子设备及可读存储介质 | |
CN104025046A (zh) | 利用调回的isa桥接 | |
CN111324376B (zh) | 功能配置方法、装置、电子设备及计算机可读介质 | |
CN110888639A (zh) | 一种业务代码编译打包方法和装置 | |
CN112416303B (zh) | 软件开发工具包热修复方法、装置及电子设备 | |
CN112835615A (zh) | 软件开发工具包的插件化处理方法、装置及电子设备 | |
WO2023083071A1 (zh) | 视图交互方法、装置、电子设备及计算机可读介质 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN108667902B (zh) | iOS设备的远程控制***、方法、装置及设备 | |
CN112162755B (zh) | 一种数据处理方法、装置、介质和电子设备 | |
CN114547604A (zh) | 一种应用检测方法、装置、存储介质及电子设备 | |
KR20210040333A (ko) | 요청 처리 방법,장치,기기, 컴퓨터 저장매체 및 컴퓨터 프로그램 | |
CN111782196A (zh) | 基于mvp架构的开发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |