CN115113850A - 一种跨平台应用的构建、运行方法、服务器、终端和系统 - Google Patents
一种跨平台应用的构建、运行方法、服务器、终端和系统 Download PDFInfo
- Publication number
- CN115113850A CN115113850A CN202110290705.1A CN202110290705A CN115113850A CN 115113850 A CN115113850 A CN 115113850A CN 202110290705 A CN202110290705 A CN 202110290705A CN 115113850 A CN115113850 A CN 115113850A
- Authority
- CN
- China
- Prior art keywords
- cross
- platform application
- component
- application
- micro
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Abstract
本发明实施例公开一种跨平台应用的构建、运行和实现方法、终端、服务器、实现系统、计算机设备及存储介质。在一具体实施方式中,该方法包括:获取选取的跨平台应用工程模板及选取的跨平台应用工程模板对应的微程序组件的信息,跨平台应用工程模板包括基于领域特定语言的Flutter组件,Flutter组件能够解析及加载微程序组件的界面;根据跨平台应用工程模板及微程序组件的信息构建应用,生成应用包。该实施方式可使开发人员能够快速组合微程序组件信息,精准地构建跨平台应用,提高跨平台应用构建效率。
Description
技术领域
本发明涉及互联网技术领域。更具体地,涉及一种跨平台应用的构建、运行方法、服务器、终端和系统。
背景技术
随着移动应用的发展,区别于以往按业务需求进行全盘开发应用的设计理念,移动端应用开发方开始使用组件化和模块化技术进行应用开发,特别是对于目前常用的Android和iOS系统平台。组件化和模块化开发的好处主要体现在以下4个方面:开发和调试效率高、可维护性强、避免阻断、版本管理更容易。
目前由于组件化和模块化技术仍处于初期阶段,对于移动端应用的组件化、模块化业务拆解和开发后期的维护、复用、自动化构建和持续集成等方面仍存在一定问题,并且,移动端应用的开发工作通常需要多个分别针对不同移动平台的团队的实际研发投入,开发得到多个功能差距不大,但分别运行于不同移动平台的独立的移动端应用,对于项目来说在应用开发上形成了开发冗余,导致针对多种移动端系统平台的组件化和模块化的工作呈倍数增长,对应用开发工作形成更大的阻碍。
发明内容
本发明的目的在于提供一种跨平台应用的构建、运行方法、服务器、终端和系统,以解决现有技术存在的问题中的至少一个。
为达到上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种跨平台应用的构建方法,用于服务器,该方法包括:
获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件,所述Flutter组件能够解析及加载微程序组件的界面;
根据所述跨平台应用工程模板及所述微程序组件的信息构建应用,生成应用包。
本发明第一方面所提供的构建方法根据包括基于领域特定语言的Flutter组件的跨平台应用工程模板和微程序组件的信息生成应用包,即,将跨平台Flutter能力集成至跨平台应用工程模板内,且可通过对微程序组件解析进行页面的动态解析和加载生成,使得构建的跨平台应用可实现Flutter框架下的页面动态化加载能力;同时,该构建方法使得开发人员能够快速组合微程序组件信息,精准地构建跨平台应用,提高构建效率;而且,开发人员仅需开发一套代码,即,可在多端移动平台复用的跨平台功能基础,有效节省实际研发投入,避免开发冗余,简化组件化和模块化的工作,加快跨平台应用的开发工作进程。
在一种可能的实现方式中,所述微程序组件为抽象语法树格式的组件。
该实现方式通过设置抽象语法树格式的微程序组件,支持跨平台应用工程模板中的基于DSL的Flutter解释框架组件进行动态解析和页面加载的功能,可简化Flutter组件解析及加载微程序组件的过程并提高解析及加载速度,可实现微程序组件毫秒级的解析/加载速度,提高用户的体验。
在一种可能的实现方式中,所述获取选取的跨平台应用工程模板包括:调用跨平台应用脚本,以获取选取的跨平台应用工程模板。
在一种可能的实现方式中,所述获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息包括:
响应于对显示有跨平台应用工程模板的信息的界面的操作,获取选取的跨平台应用工程模板;
响应于对显示有选取的跨平台应用工程模板对应的微程序组件的信息的界面的操作,获取选取的跨平台应用工程模板对应的微程序组件的信息。
该实现方式通过响应于对界面的操作,分别获取跨平台应用工程模板和微程序组件的信息,即通过图像化、页面化等方式进行自动化构建跨平台应用前的参数配置(包括工程模板选择和微程序组件的信息选择),并且通过统一的流程引导方式使得开发人员能够快速选择工程模板和组合多个微程序组件的信息以生成跨平台应用包,降低整体的学习成本,进而提高开发人员在跨平台应用自动化构建场景下的交互便利性和流程便利性,可显著改善开发人员在跨平台应用组件化、模块化和跨平台能力设计过程中,经常遇到的组件重复开发、组件查询困难、组件复用率低的问题。
在一种可能的实现方式中,获取选取的原生组件;
所述根据所述跨平台应用工程模板及所述微程序组件的信息构建应用包括:根据所述跨平台应用工程模板、所述微程序组件的信息及所述原生组件构建应用。
该实现方式根据跨平台应用工程模板、微程序组件的信息及原生组件构建应用,实现在Flutter框架下的微程序组件和原有的原生组件兼容运行,且互不影响,给予用户相同的使用体验感。而且还使得开发人员可更灵活地构建跨平台应用,进一步减少开发冗余和开发工作量,推进跨平台应用的开发工作进程。
在一种可能的实现方式中,对于运行于安卓系统的跨平台应用,获取选取的跨平台应用工程模板、选取的所述跨平台应用工程模板对应的微程序组件的信息及选取的原生组件,根据所述跨平台应用工程模板、所述微程序组件的信息及所述原生组件构建应用包括:
获取并修改选取的跨平台应用工程模板的工程模板文件,注入原生组件依赖参数;
注入应用的名称,获取应用的首界面文件并修改所述首界面文件的名称;
抽取并下载Flutter组件依赖,注入微程序组件依赖参数;
构建应用,生成应用包。
本发明第二方面提供一种跨平台应用的运行方法,用于终端,该方法包括:
下载并安装所述应用包,所述应用包根据选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息构建,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件;
运行应用时,响应于对应用界面显示的微程序控件的操作,所述Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载所述微程序组件的界面。
本发明第二方面所提供的运行方法响应于微程序控件的操作,实时下载、解析并加载微程序组件,从而实现Flutter框架下的页面动态化、实时加载能力,减少跨平台应用内微程序组件的所占容量,进而减小跨平台应用的所占容量。同时该运行方法还可支持微程序组件的实时更新,仅需下载、解析和加载最新版本的微程序组件,无需重新更新,更新服务器内的微程序组件即可,避免多版本的微程序组件占用空间影响解析和加载速度。
在一种可能的实现方式中,所述微程序组件的信息包含于入口配置文件,该方法还包括:
运行应用时,所述Flutter组件解析所述入口配置文件,并加载应用的首界面。
本发明第三方面提供一种跨平台应用的实现方法,包括:
服务器获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件;
服务器根据所述跨平台应用工程模板及所述微程序组件的信息构建应用,生成应用包;
下载并安装所述应用包的终端运行应用时,响应于对应用界面显示的微程序控件的操作,所述Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载所述微程序组件的界面。
本发明第四方面提供一种服务器,包括:
获取模块,用于获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件,所述Flutter组件能够解析及加载微程序组件的界面;
构建模块,用于根据所述跨平台应用工程模板及所述微程序组件的信息构建应用,生成应用包。
在一种可能的实现方式中,所述微程序组件为抽象语法树格式的组件。
本发明第五方面提供一种终端,包括:
安装模块,用于下载并安装应用包,所述应用包根据选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息构建,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件;
运行模块,用于在运行应用时,响应于对应用界面显示的微程序控件的操作,所述Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载所述微程序组件的界面。
本发明第六方面提供一种跨平台应用的实现系统,包括如本发明第四方面所提供的服务器和至少一个如本发明第五方面所提供的终端。
本发明第七方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时:实现如本发明第一方面所提供的构建方法,或,实现如本发明第二方面所提供的运行方法。
本发明第八方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时:实现如本发明第一方面所提供的构建方法,或,实现如本发明第二方面所提供的运行方法。
本发明的有益效果如下:
针对现有技术中存在的技术问题,本发明提供一种跨平台应用的构建、运行和实现方法、终端、服务器、实现系统、计算机设备及存储介质。该构建方法根据包括基于领域特定语言的Flutter组件的跨平台应用工程模板和微程序组件的信息生成应用包,即,将跨平台Flutter能力集成至跨平台应用工程模板内,且可通过对微程序组件解析进行页面的动态解析和加载生成,使得构建的跨平台应用可实现Flutter框架下的页面动态化加载能力。同时,该构建方法使得开发人员能够快速组合微程序组件信息,精准地构建跨平台应用,提高构建效率。而且,开发人员仅需开发一套代码,即可在多端移动平台复用的跨平台功能基础,有效节省实际研发投入,避免开发冗余,简化组件化和模块化的工作,加快应用开发工作进程。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1示出本发明的一个实施例可以应用于其中的示例性系统架构图。
图2示出本发明的一个实施例的跨平台应用的实现方法的流程图。
图3示出本发明的一个实施例的服务器的软件结构框图。
图4示出本发明的一个实施例的跨平台应用工程模板的内部结构图。
图5示出本发明的一个实施例的跨平台应用开放平台中的微程序中心的原型图。
图6示出本发明的一个实施例的跨平台应用开放平台中的微程序组件详情查询页的原型图。
图7示出本发明的一个实施例的应用管理模块中的创建跨平台应用页面的原型图。
图8示出本发明的一个实施例的应用管理模块中的跨平台应用工程模板选择页面的原型图。
图9示出本发明的一个实施例的应用管理模块中的微程序组件选择页面的原型图。
图10示出本发明的一个实施例的应用管理模块中的编辑和选择原生组件页面的原型图。
图11示出本发明的一个实施例的应用管理模块中的应用信息编辑页面的原型图。
图12示出本发明的一个实施例的应用管理模块中的应用构建完成页面的原型图。
图13示出本发明的一个实施例的跨平台应用的构建流程业务原理图。
图14示出本发明的一个实施例的运行流程业务原理图。
图15示出本发明的一个实施例的服务器的结构图。
图16示出本发明的一个实施例的终端的结构图。
图17示出实现本发明实施例提供的装置的计算机系统的结构示意图。
具体实施方式
为了更清楚地说明本发明,下面结合实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
可理解的是,在不产生冲突的情况下,本发明的实施例及实施例中的特征可以相互组合,下面将参考附图并结合实施例来详细说明本发明。
需要说明的是,组件化和模块化起源于应用开发,现在逐渐被地应用于UI设计(User Interface Design,即界面设计)当中。组件化指的是把重复的代码提取出来合并成为一个个组件,组件化最重要的优点在于重用(复用),位于框架最底层,其他功能都依赖于组件,可供不同功能随时调用,而且组件的独立性强。
而模块化的定义为将分属同一功能/业务的代码进行隔离(分装)成独立的模块,可以独立运行,根据页面、功能或其他不同粒度可划分出不同程度的模块,模块位于业务框架层,模块与模块之间通过接口调用,目的是降低模块之间的耦合。由主应用与模块耦合逐步发展为主应用与接口耦合,接口与模块耦合。可理解的是,模块就像有多个USB插口的充电宝,可以通过不同的USB插头(接口)与不同的手机(主应用)连接,USB插头(接口)可以随意插拔,可见,模块具有较强的复用性且可对每个模块进行独立管理。
通过组件化和模块化技术进行应用开发,主要包括以下4个方面的好处:开发和调试效率高、可维护性强、避免阻断和版本管理更容易。具体地,随着应用的功能越来越多,使得代码结构也越发复杂,若想要修改某一个小功能,可能需要重新翻阅整个应用的代码,将其中所有相同的代码进行统一修改,造成大量的时间成本和人力成本的浪费,且效率较低;通过采用组件化技术将每个相同的功能结构都调用同一个组件,则当修改某一个小功能时,仅需要修改该功能对应的组件,即可实现全局修改,可有效提高开发和调试效率,同时也便于后期的代码查找和维护;另外,通过采用模块化技术将代码隔离呈独立的模块后,每个模块可独立运行,即使一个模块产生bug,也不会影响其他模块的正常调用;另外,将组件化和模块化用于多人协作开发的应用中,还可避免代码覆盖或代码冲突,更易于管理版本。
图1示出了可以应用本发明实施例的跨平台应用构建方法、跨平台应用的运行方法、跨平台应用的实现方法、用于构建跨平台应用的装置、用于运行跨平台应用或者用于实现跨平台应用的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。例如,可通过设置在终端设备101、102、103上的应用客户端或者网页访问的方式访问服务器105。终端设备101、102、103上可以安装有各种通讯客户端应用,例如跨平台应用创建应用、跨平台应用运行应用、跨平台应用实现应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且支持构建、运行或实现跨平台应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如可以包括有用于存储跨平台应用工程模板、微程序组件及信息(包括入口配置文件)、原生组件的数据库。另外,服务器105也可以是对终端设备101、102、103上的跨平台应用构建应用、或跨平台应用运行应用提供支持的后台服务器。后台服务器可以根据用户选取的跨平台应用工程模板以及用户选取的跨平台应用工程模板所对应的微程序组件的信息,从数据库中调取相应的跨平台工程模板和微程序组件的信息进行构建跨平台应用,并生成应用包。后台服务器还可以响应于用户对该跨平台应用界面显示的微程序空间的操作,下载微程序组件并解析及加载微程序组件的界面。
需要说明的是,本发明实施例所提供的用于构建跨平台应用的方法一般由服务器106执行,相应地,用于构建跨平台应用的装置一般设置于服务器106中。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意合适数目的终端设备、网络和服务器。
继续参考图2,图2示出本发明的一个实施例的跨平台应用的实现方法的流程图,该跨平台应用的实现方法包括以下步骤:
S201、服务器获取选取的跨平台应用工程模板及选取的跨平台应用工程模板对应的微程序组件的信息,跨平台应用工程模板包括基于领域特定语言的Flutter组件。
在该实施例中,跨平台应用例如可为至少兼容两个平台的移动端应用程序,即在可同时在两个平台中运行的移动应用程序,例如IOS和安卓系统。另外,领域特定语言(domain-specific language、DSL)指的是专注于某个应用程序领域的计算机语言,又可称作为领域专用语言。而Flutter组件作为一种移动UI框架,可迅速在多端移动平台(如IOS和Android)上构建高质量的原生用户界面,且Flutter组还可与现有的代码共同工作。本实施例中的微程序组件是一种基于Flutter技术的跨平台组件,可实现例如登录、查询等设定功能。在一个具体示例中,基于领域特定语言的Flutter组件可为基于DSL的Flutter解释框架组件,能够解析及加载微程序组件的界面。
在该实施例中,执行该跨平台应用的构建方法的执行主体(例如服务器105)可以从本地或者远程网络获取来自终端(例如终端设备101、102、103)的开发人员输入的构建参数(包括选取哪个跨平台应用工程模板以及选取的跨平台应用工程模板所对应的微程序组件的信息等参数)。例如,跨平台应用工程模板可为应用于金融领域、园区领域、社交领域或购物领域等,对应的,金融领域的跨平台应用工程模板对应的微程序组件可为实现查询、新闻浏览、登录等功能的微程序组件。
现有技术中的安卓系统的应用开发语言多数为Java语言,且打包生成的应用包均为apk格式,而IOS系统的应用开发语言一般为Objective-C,打包生成的应用包均为ipa格式。可见,现有技术中的安卓系统和IOS系统分别使用不同的通用语言进行应用开发,应用构建流程也不相同,使得最后生成的应用包的格式也不相同,进而导致应用无法跨平台使用。
本实施例通过基于与普通的编程语言(如安卓常用的编程语言Java或IOS系统常用的编程语言Objective-C)不同的领域特定语言(DSL)的Flutter组件,可实现在安卓系统或IOS系统内均可进行识别和解析,从而实现跨平台应用的开发。
在一个具体示例中,本发明的一个实施例的服务器中的用于跨平台应用的构建的软件结构框图如图3所示,其中,分层架构将软件结构分成若干层,每一层都有清晰的角色和分工。层与层之间通过软件接口实现通信。在一些实施例中,将软件结构分为五层,如图3所示,从上至下分别为:跨平台应用开放平台、组件和跨平台应用管理后台、组件源代码托管平台、组件包托管平台、跨平台应用自动化构建系统等五层。
其中,跨平台应用开放平台作为与开发人员进行交互的入口,用于对接开发人员,并向开发人员展示微程序组件的资源池和微程序组件的详细信息等业务入口,并提供跨平台应用的自动化构建操作平台。例如,可通过在开发人员的终端设备上显示包括有微程序组件及其详细信息的界面。其中,跨平台应用开放平台包括用户管理、模板和组件管理、构建应用管理和权项管理等部分。通过跨平台应用开放平台作为跨平台应用自动化构建的入口以及详细定制业务工作流完成微程序组件的配置管理和跨平台应用构建的业务整体流程。
另外,跨平台应用开发平台与组件和跨平台应用管理后台通过网络接口调用的方式进行连接,以实现调用组件和跨平台应用管理后台中存储的微程序组件的信息(如入口配置文件)并显示,或者跨平台应用开放平台将接受到的用户输入的参数(例如包括跨平台工程模板的选择、微程序组件的信息的选取、输入应用信息操作流程)传输给组件和跨平台应用管理后台进行参数筛查。
组件和跨平台应用管理后台主要管理存储跨平台应用,微程序组件、原生组件和跨平台应用工程模板的信息、配置信息及其详情,通过组件和跨平台应用管理后台负责管理存储的微程序组件、跨平台工程模板的信息、微程序组件入口及详情和原生组件的资源及详情,为跨平台应用开放平台提供业务数据(微程序组件、跨平台应用工程模板和跨平台应用的信息),以供开发人员查询和使用。其中,组件和跨平台应用管理后台中主要包括组件管理后台、应用管理后台、业务服务后台和数据后台。
组件源代码托管平台用于管理、存储微程序组件的源代码和跨平台应用工程模板,图4示出本发明一个实施例的跨平台应用工程模板的内部结构图,如图4所示,跨平台应用工程模板内装载有基于DSL的Flutter解释框架组件以及与基于DSL的Flutter解释框架组件连接的微程序组件的信息(包括微程序入口配置文件)。在一个示例中,跨平台应用工程模板内还加载有原生组件以及可与基于DSL的Flutter解释框架组件连接的微程序组件。
在一个具体示例中,该组件源代码托管平台例如可为独立的Git或SVN等代码管理平台,即组件源代码托管平台可作为一个独立闭环系统进行使用。在另一个具体示例中,也可以远程网络连接的方式通过组件源代码托管平台提供的外部接口进行微程序组件的源代码和跨平台应用工程模板下载等操作。其中,组件源代码托管平台包括源码管理、用户管理和业务接口,用户管理部分可自成体系。
组件包托管平台用于管理、存储原生组件依赖包。在一个具体示例中,该组件包托管平台例如可为独立的JAR或AAR等第三方库,即组件包托管平台可作为一个独立闭环系统进行使用。在另一个具体示例中,可以远程网络连接的方式通过组件包托管平台所提供的外部接口进行原生组件依赖包的下载等操作。其中,组件包托管平台包括组件包管理、用户管理和业务接口,其中,用户管理部分可自成体系。
跨平台应用自动化构建系统用于跨平台应用自动化构建以及管理工作流等用途,跨平台应用自动化构建系统与组件和跨平台应用管理后台可通过软件接口对接,从而调用自动化构建的相关流程和业务线,实现微程序组件依赖参数注入并构建生成跨平台应用的相关流程。在另一个示例中,可以通过跨平台应用自动化构建系统提供的外部接口以远程网络连接的方式与组件和跨平台应用管理后台连接,组件和跨平台应用管理后台调用其接口将用户输入的构建参数传输给跨平台应用自动化构建系统,实现完整的跨平台应用的自动化构建过程。跨平台应用自动化构建系统中包括jenkins自动化构建、跨平台应用脚本、iOS业务脚本、Android业务脚本等部分。在一个具体示例中,跨平台应用自动化构建系统可作为一个独立闭环系统进行使用。
在一个具体示例中,组件源代码托管平台和组件包托管平台可合并为一个数据库平台,用于管理和存储微程序组件的源代码、工程模板和原生组件依赖包。可理解的是,合并后的平台也可为一个独立闭环系统进行使用,以远程网络连接的方式通过其提供的外部接口进行微程序组件的源代码、工程模板和原生组件依赖包的下载操作。
在另一个具体示例中,组件和跨平台应用管理后台、组件源代码托管平台和组件包托管平台可合并为一个数据库平台,用于管理和存储微程序组件、原生组件、跨平台应用工程模板的信息及其详情、微程序组件的源代码、工程模板和原生组件依赖包。
该实施例的软件结构通过将每一个自动化构建和组件管理业务流程节点串联起来,从而形成一套完整的跨平台应用自动化构建的业务系统。
在一个具体示例中,开发人员在选择跨平台应用工程模板以及跨平台应用工程模板所对应的微程序组件的信息之前,例如可在跨平台应用开放平台显示在开发人员的终端设备上的如图5所示的Web界面中的微程序中心进行微程序组件查询微程序组件的详细信息,以便于开发人员了解,避免开发人员组件重复开发、组件查询困难、组件复用率低的问题。
在一个具体的实施方式中,微程序组件为抽象语法树格式的组件。抽象语法树(abstract syntax code,AST)为源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现,从而减少解析及加载微程序组件的工作量;抽象语法树格式不依赖于源语言的语法,也就是说语法分析阶段所采用的上下文无文文法,从而避免给文法分析引入一些多余的成分导致对后续阶段造成不利影响,甚至会使整个阶段变得混乱的情况。该实施方式的微程序组件作为一种基于Flutter技术的跨平台组件,区别于其他原生组件而言,微程序组件作为一种抽象语法树格式的组件,所占容量更小,基于移动端应用组件化技术,将跨平台Flutter能力和AST解析能力统一集成至跨平台工程模板中,再通过动态下发微程序组件入口文件的方式进行页面的动态解析和生成,简化Flutter组件解析及加载微程序组件的过程并提高解析及加载速度,可实现微程序组件毫秒级的解析/加载速度,提高用户的体验。
在一个具体示例中,执行该跨平台应用的构建方法的执行主体(如服务器105)接收到开发人员通过跨平台应用开放平台的构建应用管理部分所选择的跨平台应用工程模板、跨平台应用工程模板对应的微程序组件的信息并输入应用信息操作流程,跨平台应用开放平台将开发人员输入的上述构建参数传输至组件和跨平台应用管理后台进行应用参数筛查,以确定构建参数是否正确,从而确保跨平台应用的正常构建;若筛查出构建参数有误,可通过跨平台应用开放平台向开发人员展示错误的位置,如显示“输入有误”、“信息错误”等信息,并提示开发人员重新进行选择。
在一个具体的实施方式中,获取选取的跨平台应用工程模板包括:调用跨平台应用脚本,以获取选取的跨平台应用工程模板。
在该实施例中,执行该跨平台应用的构建方法的执行主体(如服务器105)接收到开发人员输入的构建参数并经过组件和跨平台应用管理后台进行应用参数筛查后,组件和跨平台应用管理后台通过调用跨平台应用自动化构建系统中的自动化构建接口,调用跨平台应用脚本,跨平台应用脚本通过连接组件源代码托管平台进行跨平台应用工程模板和微程序组件的查询,并下载开发人员所选择的跨平台应用工程模板及微程序组件的信息(如包括微程序组件的入口配置文件)。在一个具体示例中,组件和跨平台应用管理后台还可通过调用跨平台应用自动化构建系统中的自动化构建接口,调用跨平台应用脚本,跨平台应用脚本通过组件包托管平台进行原生组件的查询,并下载开发人员所选择的原生组件。
在一个具体的实施方式中,获取选取的跨平台应用工程模板及选取的跨平台应用工程模板对应的微程序组件的信息包括:
响应于对显示有跨平台应用工程模板的信息的界面的操作,获取选取的跨平台应用工程模板;
响应于对显示有选取的跨平台应用工程模板对应的微程序组件的信息的界面的操作,获取选取的跨平台应用工程模板对应的微程序组件的信息。
具体地,执行该跨平台应用的构建方案的执行主体(例如服务器105)中的跨平台应用开放平台例如可在开发人员的终端设备上展示包括有跨平台应用工程模板的信息和跨平台工程模板对应的微程序组件的信息的Web页面,如图5-12所示。
跨平台应用开放平台所展示的页面中包括有微程序中心、开发平台、管理平台和个人中心等部分,其中,微程序中心的原型图如图5所示,微程序中心包括服务器中存储的所有微程序组件的展示列表,每个微程序组件例如可按照卡片式布局或其他熟知的布局方式进行排列,其中,每个微程序组件所展示的内容包括但不限于:微程序组件名称、微程序组件的类型、微程序组件的类别、微程序组件的版本、微程序组件的开发者、微程序组件的引用次数、微程序组件是否支持横竖屏使用、微程序组件所支持默认分辨率以及微程序组件的简要描述。在一个具体示例中,每个微程序组件下方均设置有“查看详情”和“收藏”两个虚拟按键,以便于开发人员根据自身实际需要,于当前页面对对应的微程序组件进行收藏、详情查询或者微程序组件筛选、微程序组件搜索等后续操作。
当开发人员在微程序中心的微程序组件列表展示页中点击任何一个微程序组件的“查看详情”的虚拟按键,则跳转至微程序组件详情查询页,如图6所示。该页面用于展示选中的微程序组件的详细情况,展示的内容包括但不限于:微程序组件名称、发布时间、开发人员收藏情况、微程序组件的类型、微程序组件的类别、微程序组件的编号、微程序组件的负责人、微程序组件的引用次数、微程序组件是否支持横竖屏使用、微程序组件的截图、微程序组件所支持默认分辨率、微程序组件的简要描述、微程序组件的版本号、微程序组件的内部依赖情况和微程序组件的协同人列表。
另外,跨平台应用开方平台的页面中的开发平台的应用管理模块主要用于展示开发人员发布的、协同管理的所有跨平台应用的列表,也可以用于实现创建跨平台应用的相关流程入口的功能,该应用管理模块页面展示的内容包括但不限于:跨平台应用的名称、跨平台应用的发布时间、跨平台应用的版本、跨平台应用的类别、跨平台应用支持平台、跨平台应用的状态、跨平台应用的操作功能列表,其中,跨平台应用的应用状态可包括不限于:已上架、未完成或待更新。
在一个具体示例中,开发人员可通过点击应用管理模块页面中的“创建应用”的虚拟按键,从而进行跨平台应用的创建操作,创建跨平台应用的页面如图7所示,创建跨平台应用的页面需要开发人员输入跨平台应用的基础信息等内容,基础信息包括但不限于:构建跨平台应用工程名、跨平台应用的类型、跨平台应用所支持的平台、跨平台应用的类别选择(“跨平台应用”)、分辨率、显示类型等。开发人员填写完上述基础信息后,可通过点击创建页面中的“下一步”的虚拟按键,将开发人员输入的基础信息存储并进入创建跨平台应用的第二步,即为跨平台应用工程模板的选择。
图8示出应用管理模块中的跨平台应用工程模板选择页面,该页面的主要功能是用于选择对应领域的跨平台应用的工程模板,该页面还可以向开发人员提供跨平台应用工程模板的页面查看、元素查询、根据名称检索跨平台应用工程模板等功能。跨平台应用工程模板主要是承载页面UI的具体实现样式、UI的支持样式、页面内容样式的跨平台解释框架组件,例如包括基于DSL的Flutter解释框架组件的跨平台应用工程模板。在一个具体示例中,开发人员对显示有跨平台应用工程模板的信息的界面的操作例如可为开发人员点击跨平台应用工程模板选择页面中跨平台应用工程模板下方的“使用”虚拟按键,以选择该跨平台应用工程模板。
当开发人员选择需要的跨平台应用工程模板并点击页面中的“下一步”,从而进入微程序组件选择页面,如图9所示。微程序组件选择页面用于展示存储的所有微程序组件列表,展示内容例如可通过微程序组件的类型进行分类。在一个具体示例中,开发人员对显示有选取的跨平台应用工程模板对应的微程序组件的信息的界面的操作例如可为开发人员通过点击微程序组件的“使用”的虚拟按键,根据微程序组件的使用顺序将选择的微程序组件的信息添加在跨平台应用工程模板的微程序组件控制区的对应位置上。开发人员也可以通过点击微程序组件的“详情”按键跳转至微程序组件的详情查询页面。开发人员完成对微程序组件的信息的选择后,可点击微程序组件选择页面中的“下一步”按键,进入编辑和选择原生组件页面。
编辑和选择原生组件页面如图10所示,该页面用于展示存储的所有原生组件列表,展示内容例如可通过组件类型进行分类,开发人员通过点击原生组件的“使用”的虚拟按键,根据原生组件的使用顺序将选择的原生组件添加在跨平台应用工程模板上,即开发人员对显示有原生组件的信息的界面的操作。该页面主要是将原生组件能力赋能至跨平台应用中,以实现跨平台应用的底层交互能力。完成原生组件的选择后,开发人员可点击“下一步”按键以进入应用信息编辑页面。
应用信息编辑页面如图11所示,主要用于上传跨平台应用图标、上传跨平台应用的介绍图、上传跨平台应用的描述文件。在一个具体示例中,应用信息编辑页面还可用于上传IOS平台专用的应用证书和添加管理成员信息等操作。完成上传后,开发人员可点击“下一步”按键以进入应用构建完成页面。
应用构建完成页面如图12所示,主要用于向开发人员展示跨平台应用生成结果供开发人员确认,若开发人员确认成功构建跨平台应用,可在该页面上展示跨平台应用的发布二维码或点击“下载到本地”按键,开发人员或用户可通过扫描发布二维码直接将跨平台应用包下载至终端设备中,也可以通过点击“下载到本地”按键将跨平台应用包下载到本地设备中。
该实施方式通过响应于对界面的操作,分别获取跨平台应用工程模板和微程序组件的信息,即通过图像化、页面化等方式进行自动化构建跨平台应用前的参数配置(包括工程模板选择和微程序组件的信息选择),并且通过统一的流程引导方式使得开发人员能够快速选择工程模板和组合多个微程序组件的信息以生成跨平台应用包,降低整体的学习成本,进而提高开发人员在跨平台应用自动构建场景下的交互便利性和流程便利性,可显著改善开发人员在跨平台应用组件化、模块化和跨平台能力设计过程中,经常遇到的组件重复开发、组件查询困难、组件复用率低的问题。
S202、服务器根据跨平台应用工程模板及微程序组件的信息构建应用,生成应用包;
在一个具体示例中,执行该跨平台应用的构建方案的执行主体(例如服务器105)获取到开发人员所选取的跨平台应用工程模板以及选取的跨平台应用工程模板所对应的微程序组件的信息之后,通过跨平台应用的构建流程构建开发人员选择和生成的跨平台应用,如通过跨平台应用自动化构建系统的Jenkins自动化构建将获取到的跨平台应用工程模板和对应的微程序组件的信息打包生成可执行或可安装运行的应用程序,随后进行发布流程,将生成的应用包存储至组件和跨平台应用管理后台,以供用户或开发人员下载并使用,如图13所示。
在一个具体的实施方式中,该方法还包括获取选取的原生组件;
根据跨平台应用工程模板及微程序组件的信息构建应用包括:根据跨平台应用工程模板、微程序组件的信息及原生组件构建应用。
具体地,执行该跨平台应用的构建方法的执行主体(例如服务器105)响应于对显示有选取的原生组件的界面的操作,获取开发人员选取的原生组件,同时服务器根据跨平台应用工程模板、微程序组件的信息和原生组件构建跨平台应用,从而实现在Flutter框架下的微程序组件和原有的原生组件兼容运行,使得开发人员可更灵活地构建跨平台应用,进一步减少开发冗余和开发工作,推进跨平台开发工作进程。
在基于Flutter构建运行于安卓(Android)系统的跨平台应用时本实施例提供的跨平台应用构建方法采用的构建路径和构建参数配置方法的说明如下。
在一个具体的实施方式中,对于运行于安卓系统的跨平台应用,获取选取的跨平台应用工程模板、选取的所述跨平台应用工程模板对应的微程序组件的信息及选取的原生组件,根据所述跨平台应用工程模板、所述微程序组件的信息及所述原生组件构建应用包括:
获取并修改选取的跨平台应用工程模板的工程模板文件,注入原生组件依赖参数;
注入应用的名称,获取应用的首界面文件并修改所述首界面文件的名称;
抽取并下载Flutter组件依赖,注入微程序组件依赖参数;
构建应用,生成应用包。
在一个具体示例中,区别于现有的安卓原生应用的构建流程,本实现方式提供的对于运行于安卓系统的跨平台应用的构建流程如下:
首先,针对于构建参数而言,需要修改的参数包括但不限于:是否为测试包(debug/release)、原生组件依赖、微程序组件依赖、跨平台应用名称、进程名、跨平台应用版本(版本号、版本名)、跨平台应用内部Id(作为动态化页面配置的唯一ID)、跨平台应用开屏页、跨平台应用图标下载地址。
跨平台应用的构建和发布过程所需要经过的步骤与现有的类似,包括但不限于:工程模板文件下载、接收构建依赖各参数、修改跨平台工程内部文件参数、执行跨平台应用构建、上传至组件和跨平台应用管理后台,但是该实施例中的对应的构建参数和内部文件修改位置与现有技术的应用构建方式不同。
具体地,将跨平台应用的图标下载完成后存储路径设置为/android/app/src/main/res/+图标对应路径。
ic_launcher_hdpi.png——/src/main/res/mipmap-hdpi
ic_launcher_mdpi.png——/src/main/res/mipmap-mdpi
ic_launcher_xdpi.png——/src/main/res/mipmap-xhdpi
ic_launcher_xxdpi.png——/src/main/res/mipmap-xxhdpi
ic_launcher_xxxdpi.png——/src/main/res/mipmap-xxxhdpi
在该实施例中,执行该跨平台应用的构建方案的执行主体(例如服务器105)获取工程模板文件,并修改工程模板文件和注入原生组件依赖参数,修改/android/app/build.gradle文件,注入工程模板文件原生组件依赖、跨平台应用版本(版本号、版本名)、进程名、是否为测试包(debug/release)等相关信息。
通过修改/android/app/src/main/res/values/strings.xml的内容将跨平台应用的名称注入,开屏页则通过下载图片放入/android/app/src/main/res/drawable/文件夹中并修改为特定名称。
另外,执行该跨平台应用的构建方案的执行主体(例如服务器105)先行通过在工作空间根目录内执行Flutter pub get命令,从而进行Flutter组件依赖的抽取和下载,同时,微程序组件依赖参数需要通过修改./pubspec.yaml文件从而实现注入,随后,可进入/android/文件夹下通过./gradlew进行跨平台应用包的构建。
而对于编译测试包和正式包,则需要判断参数是否为测试包(debug/release)从而进行不同的构建命令。
一般编译debug包构建命令为:./gradlewassembleDebug;
一般编译release包构建命令为:./gradlewassembleRelease;
一般同时编译debug和release包构建命令为:./gradlew assemble。
该实施例的步骤S201、202根据包括基于领域特定语言的Flutter组件的跨平台应用工程模板、微程序组件的信息和原生组件生成应用包,即将跨平台Flutter能力集成至跨平台应用工程模板内,也就是说,将跨平台Flutter能力打包至多种移动平台的应用包中,且可通过对微程序组件解析进行页面的动态解析和加载生成,使得构建的跨平台应用可实现Flutter框架下的页面动态化加载能力;同时,该构建方法使得开发人员能够快速组合微程序组件信息,精准地构建跨平台应用,提高构建效率;同时,开发人员仅需开发一套代码,即可在多端移动平台复用的跨平台功能基础,有效节省实际研发投入,避免开发冗余,简化组件化和模块化的工作,加快应用开发工作进程。
S203、下载并安装应用包的终端运行应用时,响应于对应用界面显示的微程序控件的操作,Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载微程序组件的界面。
具体地,如图14的运行流程业务原理图(其描述的是跨平台应用运行时内部基于DSL的Flutter解释框架组件的运行流程原理)所示,执行该跨平台应用的运行方法的执行主体(例如终端101、102、103)安装并运行跨平台应用。在一个具体示例中,应用界面显示的微程序控件例如可设置在跨平台应用的显示界面上的微程序组件的虚拟按键。对应用界面显示的微程序控件的操作例如可为开发人员或者用户点击跨平台应用的显示界面上的微程序组件的虚拟按键。执行该跨平台应用的运行方法的执行主体(例如终端101、102、103)响应于开发人员或者用户每一次点击微程序组件的虚拟按键,根据跨平台应用工程模板内装载的微程序组件的信息(如入口配置文件)中的微程序组件的下载地址连接组件和跨平台应用管理后台进行微程序组件下载,将下载所得到的微程序组件的文件通过基于DSL的Flutter解释框架组件进行解析并显示该微程序组件的页面内容。可理解的是,该实施方式的微程序组件进行更新时,仅需对服务器(如组件和跨平台应用管理后台)存储的微程序组件进行版本更新,随后在每次用户点击微程序组件的虚拟按键,基于DSL的Flutter解释框架组件根据跨平台应用工程模板内装载的微程序组件的信息(如入口配置文件)中的微程序组件的下载地址直接下载最新版本的微程序组件并解析和加载,无需重复更新终端内的微程序组件。
步骤S203通过响应于对微程序控件的操作,下载、解析并加载微程序组件,从而实现Flutter框架下的页面动态化、实时加载能力,减少跨平台应用内微程序组件所占容量,进而减小跨平台应用的所占容量,同时该运行方法还可支持微程序组件的实时更新,无需重新更新,仅需要更新服务器内的微程序组件即可,进而提高对微程序组件的下载、解析和加载速度。
在一个具体的实施方式中,微程序组件的信息包含于入口配置文件,该方法还包括:运行应用时,Flutter组件解析入口配置文件,并加载应用的首界面。
具体地,如图14的运行流程业务原理图(其描述的是跨平台应用运行时内部基于DSL的Flutter解释框架组件的运行流程原理)所示,执行该跨平台应用的运行方法的执行主体(例如终端101、102、103)在运行跨平台应用时,基于DSL的Flutter解释框架组件根据应用包内在构建时加入的微程序组件的入口配置文件进行解析,并加载整体跨平台应用工程模板入口页面和跨平台应用的首页面。
本发明的另一个实施方式提供一种跨平台应用的实现系统,包括服务器和终端。
其中,如图15所示,服务器包括:
获取模块301,用于获取选取的跨平台应用工程模板及选取的跨平台应用工程模板对应的微程序组件的信息,跨平台应用工程模板包括基于领域特定语言的Flutter组件,Flutter组件能够解析及加载微程序组件的界面;
构建模块302,用于根据跨平台应用工程模板及微程序组件的信息构建应用,生成应用包。
在一个具体的实施方式中,微程序组件为抽象语法树格式的组件。
如图16所示,终端包括:
安装模块401,用于下载并安装应用包,应用包根据选取的跨平台应用工程模板及选取的跨平台应用工程模板对应的微程序组件的信息构建,跨平台应用工程模板包括基于领域特定语言的Flutter组件;
运行模块402,用于在运行应用时,响应于对应用界面显示的微程序控件的操作,Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载微程序组件的界面。
需要说明的是,本实施例提供的跨平台应用的实现系统的原理及工作流程与上述跨平台应用的实现方法相似,相关之处可以参照上述说明,在此不再赘述。
如图17所示,适于用来实现上述实施例提供的跨平台应用的实现系统的计算机系统,包括中央处理模块(CPU),其可以根据存储在只读存储器(ROM)中的程序或者从存储部分加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有计算机系统操作所需的各种程序和数据。CPU、ROM以及RAM通过总线被此相连。输入/输入(I/O)接口也连接至总线。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
特别地,根据本实施例,上文流程图描述的过程可以被实现为计算机软件程序。例如,本实施例包括一种计算机程序产品,其包括有形地包含在计算机可读介质上的计算机程序,上述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
附图中的流程图和示意图,图示了本实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或示意图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,示意图和/或流程图中的每个方框、以及示意和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器,包括获取模块、构建模块。或一种处理器,包括安装模块和运行模块其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。例如,构建模块还可以被描述为“打包模块”。
作为另一方面,本实施例还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中上述装置中所包含的非易失性计算机存储介质,也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当上述一个或者多个程序被一个设备执行时,使得上述设备:获取选取的跨平台应用工程模板及选取的跨平台应用工程模板对应的微程序组件的信息,跨平台应用工程模板包括基于领域特定语言的Flutter组件,Flutter组件能够解析及加载微程序组件的界面;根据跨平台应用工程模板及微程序组件的信息构建应用,生成应用包。或,下载并安装应用包,应用包根据选取的跨平台应用工程模板及选取的跨平台应用工程模板对应的微程序组件的信息构建,跨平台应用工程模板包括基于领域特定语言的Flutter组件;运行应用时,响应于对应用界面显示的微程序控件的操作,Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载微程序组件的界面。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于本领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (15)
1.一种跨平台应用的构建方法,用于服务器,其特征在于,该方法包括:
获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件,所述Flutter组件能够解析及加载微程序组件的界面;
根据所述跨平台应用工程模板及所述微程序组件的信息构建应用,生成应用包。
2.根据权利要求1所述的构建方法,其特征在于,所述微程序组件为抽象语法树格式的组件。
3.根据权利要求1所述的构建方法,其特征在于,
所述获取选取的跨平台应用工程模板包括:调用跨平台应用脚本,以获取选取的跨平台应用工程模板。
4.根据权利要求1所述的构建方法,其特征在于,所述获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息包括:
响应于对显示有跨平台应用工程模板的信息的界面的操作,获取选取的跨平台应用工程模板;
响应于对显示有选取的跨平台应用工程模板对应的微程序组件的信息的界面的操作,获取选取的跨平台应用工程模板对应的微程序组件的信息。
5.根据权利要求3所述的构建方法,其特征在于,该方法还包括:获取选取的原生组件;
所述根据所述跨平台应用工程模板及所述微程序组件的信息构建应用包括:根据所述跨平台应用工程模板、所述微程序组件的信息及所述原生组件构建应用。
6.根据权利要求5所述的构建方法,其特征在于,
对于运行于安卓系统的跨平台应用,获取选取的跨平台应用工程模板、选取的所述跨平台应用工程模板对应的微程序组件的信息及选取的原生组件,根据所述跨平台应用工程模板、所述微程序组件的信息及所述原生组件构建应用包括:
获取并修改选取的跨平台应用工程模板的工程模板文件,注入原生组件依赖参数;
注入应用的名称,获取应用的首界面文件并修改所述首界面文件的名称;
抽取并下载Flutter组件依赖,注入微程序组件依赖参数;
构建应用,生成应用包。
7.一种跨平台应用的运行方法,用于终端,其特征在于,该方法包括:
下载并安装所述应用包,所述应用包根据选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息构建,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件;
运行应用时,响应于对应用界面显示的微程序控件的操作,所述Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载所述微程序组件的界面。
8.根据权利要求7所述的运行方法,其特征在于,所述微程序组件的信息包含于入口配置文件,该方法还包括:
运行应用时,所述Flutter组件解析所述入口配置文件,并加载应用的首界面。
9.一种跨平台应用的实现方法,其特征在于,包括:
服务器获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件;
服务器根据所述跨平台应用工程模板及所述微程序组件的信息构建应用,生成应用包;
下载并安装所述应用包的终端运行应用时,响应于对应用界面显示的微程序控件的操作,所述Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载所述微程序组件的界面。
10.一种服务器,其特征在于,包括:
获取模块,用于获取选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件,所述Flutter组件能够解析及加载微程序组件的界面;
构建模块,用于根据所述跨平台应用工程模板及所述微程序组件的信息构建应用,生成应用包。
11.根据权利要求10所述的服务器,其特征在于,所述微程序组件为抽象语法树格式的组件。
12.一种终端,其特征在于,包括:
安装模块,用于下载并安装应用包,所述应用包根据选取的跨平台应用工程模板及选取的所述跨平台应用工程模板对应的微程序组件的信息构建,所述跨平台应用工程模板包括基于领域特定语言的Flutter组件;
运行模块,用于在运行应用时,响应于对应用界面显示的微程序控件的操作,所述Flutter组件根据相应的微程序组件的信息下载微程序组件,并解析及加载所述微程序组件的界面。
13.一种跨平台应用的实现系统,其特征在于,包括如权利要求10所述的服务器和至少一个如权利要求12所述的终端。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时:实现如权利要求1-6中任一项所述的构建方法,或,实现如权利要求7或8所述的运行方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时:实现如权利要求1-6中任一项所述的构建方法,或,实现如权利要求7或8所述的运行方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110290705.1A CN115113850A (zh) | 2021-03-18 | 2021-03-18 | 一种跨平台应用的构建、运行方法、服务器、终端和系统 |
US17/575,983 US20220300262A1 (en) | 2021-03-18 | 2022-01-14 | Method for constructing, running and implementing cross-platform application, terminal, server and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110290705.1A CN115113850A (zh) | 2021-03-18 | 2021-03-18 | 一种跨平台应用的构建、运行方法、服务器、终端和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115113850A true CN115113850A (zh) | 2022-09-27 |
Family
ID=83284845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110290705.1A Pending CN115113850A (zh) | 2021-03-18 | 2021-03-18 | 一种跨平台应用的构建、运行方法、服务器、终端和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220300262A1 (zh) |
CN (1) | CN115113850A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543410A (zh) * | 2022-11-29 | 2022-12-30 | 深圳开源互联网安全技术有限公司 | 组件依赖关系分析方法、装置与介质 |
CN117762391A (zh) * | 2024-02-22 | 2024-03-26 | 欢乐互娱(上海)科技股份有限公司 | 一种多平台的业务逻辑代码运行方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10426820B2 (en) * | 2011-04-13 | 2019-10-01 | Case Western Reserve University | Synthetic platelets |
US20140047413A1 (en) * | 2012-08-09 | 2014-02-13 | Modit, Inc. | Developing, Modifying, and Using Applications |
US10379846B1 (en) * | 2018-01-25 | 2019-08-13 | Walmart Apollo, Llc | Systems and methods for real time version control for integrating updated web-based components with a native application |
US10846083B2 (en) * | 2018-12-12 | 2020-11-24 | Sap Se | Semantic-aware and self-corrective re-architecting system |
US11609800B2 (en) * | 2020-08-20 | 2023-03-21 | Capital One Services, Llc | Systems and methods for providing a hybrid mobile application |
US20230067084A1 (en) * | 2021-08-30 | 2023-03-02 | Calibo LLC | System and method for monitoring of software applications and health analysis |
-
2021
- 2021-03-18 CN CN202110290705.1A patent/CN115113850A/zh active Pending
-
2022
- 2022-01-14 US US17/575,983 patent/US20220300262A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220300262A1 (en) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868231B2 (en) | System and method for evaluating code by a hybrid of local and cloud-based computers | |
El-Kassas et al. | Taxonomy of cross-platform mobile applications development approaches | |
US9274784B2 (en) | Automatic deployment and update of hybrid applications | |
US9400784B2 (en) | Integrated application localization | |
US7917888B2 (en) | System and method for building multi-modal and multi-channel applications | |
US9442744B2 (en) | Multilingual build integration for compiled applications | |
Lock | ASP. NET core in Action | |
US8250458B2 (en) | Method, system, and software tool for emulating a portal application | |
MacDonald et al. | Pro ASP. NET 4 in VB 2010 | |
US20140173454A1 (en) | Method and system for designing, deploying and executing transactional multi-platform mobile applications | |
Cardone et al. | Using XForms to simplify web programming | |
CN115113850A (zh) | 一种跨平台应用的构建、运行方法、服务器、终端和系统 | |
CN112988165A (zh) | 基于Kubernetes的交互式建模方法、装置、电子设备及存储介质 | |
Snell et al. | Microsoft Visual Studio 2012 Unleashed: Micro Visua Studi 2012 Unl_p2 | |
Panigrahy | Xamarin Mobile Application Development for Android | |
Gassner | Flash Builder 4 and Flex 4 Bible | |
US20200097260A1 (en) | Software application developer tools platform | |
Chiaretta | Front-end Development with ASP. NET Core, Angular, and Bootstrap | |
Süß et al. | Using DevOps toolchains in Agile model-driven engineering | |
CN114217789A (zh) | 功能组件拓展方法、装置、设备、存储介质及程序产品 | |
Jaber et al. | A high-level modeling language for the efficient design, implementation, and testing of Android applications | |
Åkesson et al. | Jatte: A tunable tree editor for integrated DSLs | |
Del Sole | Visual Basic 2012 Unleashed | |
Lachgar et al. | Dsl and code generator for accelerating ios apps development | |
Del Sole | Visual Studio 2015 Succinctly |
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 |