CN116594676A - 一种应用打包方法、装置、设备及存储介质 - Google Patents
一种应用打包方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116594676A CN116594676A CN202310637069.4A CN202310637069A CN116594676A CN 116594676 A CN116594676 A CN 116594676A CN 202310637069 A CN202310637069 A CN 202310637069A CN 116594676 A CN116594676 A CN 116594676A
- Authority
- CN
- China
- Prior art keywords
- page
- dsl
- application
- target
- target application
- 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 113
- 238000004806 packaging method and process Methods 0.000 title claims abstract description 39
- 238000009877 rendering Methods 0.000 claims abstract description 80
- 238000004458 analytical method Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 121
- 238000011161 development Methods 0.000 claims description 69
- 238000012546 transfer Methods 0.000 claims description 20
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 239000004973 liquid crystal related substance Substances 0.000 claims 2
- 238000004891 communication Methods 0.000 description 11
- 230000000977 initiatory effect Effects 0.000 description 9
- 239000013067 intermediate product Substances 0.000 description 9
- 238000012856 packing Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000012800 visualization Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000012467 final product Substances 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- KLPWJLBORRMFGK-UHFFFAOYSA-N Molindone Chemical compound O=C1C=2C(CC)=C(C)NC=2CCC1CN1CCOCC1 KLPWJLBORRMFGK-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229940028394 moban Drugs 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/71—Version control; Configuration management
-
- 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/38—Creation or generation of source code for implementing user interfaces
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种应用打包方法、装置、设备及存储介质。所述方法包括:获取用于描述目标应用初始配置信息的领域特定语言DSL数据集;目标应用中包含目标应用页面;解析DSL数据集,得到包含初始配置信息的可运行代码工程;可运行代码工程中,包含用于渲染目标应用页面的目标页面代码文件;在解析DSL数据集的过程中,将DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中;根据可运行代码工程,生成目标应用的程序包;所生成的程序包中包含DSL解析模块,DSL解析模块用于:在运行过程中,解析目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染目标应用页面。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种应用打包方法、装置、设备及存储介质。
背景技术
随着计算机技术的普及,用户可能使用多种应用提供的服务。例如,视频应用、音乐应用、社交应用等。
但是这些应用的开发往往都需要开发人员全程手动进行开发,开发效率较低。
发明内容
本发明提供一种应用打包方法、装置、设备及存储介质,以解决相关技术中的不足。
根据本发明实施例的第一方面,提供一种应用打包方法,包括:
获取用于描述目标应用初始配置信息的领域特定语言DSL数据集;所述目标应用中包含目标应用页面;
解析所述DSL数据集,得到包含所述初始配置信息的可运行代码工程;所述可运行代码工程中,包含用于渲染目标应用页面的目标页面代码文件;
在解析所述DSL数据集的过程中,将所述DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中;
根据所述可运行代码工程,生成所述目标应用的程序包;
所生成的程序包中包含DSL解析模块,所述DSL解析模块用于:在运行过程中,解析所述目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染所述目标应用页面。
可选地,所述解析所述目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染所述目标应用页面,包括:
在运行过程中,解析所述目标页面代码文件中填充的DSL页面数据,根据解析出的信息确定:所述目标应用页面中包含的控件和对应的控件属性值;根据所确定的控件和对应的控件属性值渲染所述目标应用页面。
可选地,所生成的程序包还用于:
在运行过程中,更新所述目标页面代码文件中填充的DSL页面数据,并调用所述DSL解析模块执行:解析更新后的DSL页面数据,根据解析出的信息更新渲染所述目标应用页面。
可选地,所述将所述DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中,包括:
解析所述DSL数据集中用于描述目标应用页面的DSL页面数据,根据解析结果创建:所述目标应用页面的页面初始代码文件;
将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件。
可选地,所述解析结果中包含:用于表征所述目标应用页面中是否包含业务功能模块的信息;
所述根据解析结果创建:所述目标应用页面的页面初始代码文件,包括:
在确定所述目标应用页面中包含业务功能模块的情况下,根据解析结果,分别为所述目标应用页面以及所包含的业务功能模块,创建不同的页面初始代码文件。
可选地,在确定所述目标应用页面中包含业务功能模块的情况下,所述将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件,包括:
将所解析的DSL页面数据中,用于描述所述业务功能模块的DSL业务数据,填充到为所述业务功能模块创建的页面初始代码文件中,得到业务代码文件;
将所解析的DSL页面数据中,用于描述页面布局的DSL布局数据,填充到为所述目标应用页面创建的页面初始代码文件中,得到布局代码文件;
将所得到的业务代码文件和布局代码文件,确定为目标页面代码文件。
可选地,所述根据所述可运行代码工程,生成所述目标应用的程序包,包括:
提供用于编辑所述可运行代码工程的编辑接口,以便于根据用户针对所提供的编辑接口的操作,针对所述可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到所述目标应用的程序包。
可选地,所述根据所述可运行代码工程,生成所述目标应用的程序包,包括:
运行所述可运行代码工程,获取参数传递信息,以便于根据参数传递信息,针对所述可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到所述目标应用的程序包。
可选地,所述业务代码文件用于渲染对应的业务功能模块;所述页面布局中包含业务功能模块在应用页面中的渲染位置;所述布局代码文件用于确定:业务功能模块在目标应用页面中的渲染位置;
在针对二次开发完成的可运行代码工程进行打包之前,所述方法还包括:
检测目标页面代码文件中,布局代码文件中是否包含业务功能模块的渲染位置信息。
可选地,所述初始配置信息包括以下至少一项:页面配置信息、事件绑定信息、数据绑定信息、以及组件路由信息。
可选地,所述方法还包括:确定目标应用的目标运行平台,并获取目标运行平台的应用工程模板;
所述解析所述DSL数据集,得到包含所述初始配置信息的可运行代码工程,包括:
解析所述DSL数据集,基于解析出的信息和所获取的应用工程模板,得到包含所述初始配置信息的可运行代码工程。
可选地,所获取的应用工程模板中包括DSL解析模块;
所述DSL解析模块用于:在运行过程中,解析任一页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染对应的应用页面。
可选地,所述获取目标运行平台的应用工程模板,包括:
获取跨平台应用工程模板;
将所获取的跨平台应用工程模板配置为目标运行平台的应用工程模板。
可选地,所述方法还包括:针对所获取的应用工程模板,配置目标应用的基础信息。
可选地,所述基础信息包括以下至少一项:
目标运行平台、应用标识、应用包名、应用版本号、应用资源文件、应用组件信息、应用依赖文件、DSL数据集标识。
可选地,所述基础信息包括DSL数据集标识;
所述获取用于描述目标应用初始配置信息的领域特定语言DSL数据集,包括:
根据所述基础信息中的DSL数据集标识,获取对应的DSL数据集;所获取的DSL数据集用于描述目标应用初始配置信息。
根据本发明实施例的第二方面,提供一种应用打包装置,包括:
获取单元,用于获取用于描述目标应用初始配置信息的领域特定语言DSL数据集;所述目标应用中包含目标应用页面;
解析单元,用于解析所述DSL数据集,得到包含所述初始配置信息的可运行代码工程;所述可运行代码工程中,包含用于渲染目标应用页面的目标页面代码文件;在解析所述DSL数据集的过程中,将所述DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中;
打包单元,用于根据所述可运行代码工程,生成所述目标应用的程序包;
所生成的程序包中包含DSL解析模块,所述DSL解析模块用于:在运行过程中,解析所述目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染所述目标应用页面。
可选地,所述DSL解析模块用于:
在运行过程中,解析所述目标页面代码文件中填充的DSL页面数据,根据解析出的信息确定:所述目标应用页面中包含的控件和对应的控件属性值;根据所确定的控件和对应的控件属性值渲染所述目标应用页面。
可选地,所生成的程序包还用于:
在运行过程中,更新所述目标页面代码文件中填充的DSL页面数据,并调用所述DSL解析模块执行:解析更新后的DSL页面数据,根据解析出的信息更新渲染所述目标应用页面。
可选地,所述解析单元用于:
解析所述DSL数据集中用于描述目标应用页面的DSL页面数据,根据解析结果创建:所述目标应用页面的页面初始代码文件;
将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件。
可选地,所述解析结果中包含:用于表征所述目标应用页面中是否包含业务功能模块的信息;
所述解析单元用于:
在确定所述目标应用页面中包含业务功能模块的情况下,根据解析结果,分别为所述目标应用页面以及所包含的业务功能模块,创建不同的页面初始代码文件。
可选地,在确定所述目标应用页面中包含业务功能模块的情况下,所述解析单元用于:
将所解析的DSL页面数据中,用于描述所述业务功能模块的DSL业务数据,填充到为所述业务功能模块创建的页面初始代码文件中,得到业务代码文件;
将所解析的DSL页面数据中,用于描述页面布局的DSL布局数据,填充到为所述目标应用页面创建的页面初始代码文件中,得到布局代码文件;
将所得到的业务代码文件和布局代码文件,确定为目标页面代码文件。
可选地,所述打包单元用于:
提供用于编辑所述可运行代码工程的编辑接口,以便于根据用户针对所提供的编辑接口的操作,针对所述可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到所述目标应用的程序包。
可选地,所述打包单元用于:
运行所述可运行代码工程,获取参数传递信息,以便于根据参数传递信息,针对所述可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到所述目标应用的程序包。
可选地,所述业务代码文件用于渲染对应的业务功能模块;所述页面布局中包含业务功能模块在应用页面中的渲染位置;所述布局代码文件用于确定:业务功能模块在目标应用页面中的渲染位置;
在针对二次开发完成的可运行代码工程进行打包之前,所述打包单元还用于:
检测目标页面代码文件中,布局代码文件中是否包含业务功能模块的渲染位置信息。
可选地,所述初始配置信息包括以下至少一项:页面配置信息、事件绑定信息、数据绑定信息、以及组件路由信息。
可选地,所述获取单元还用于:确定目标应用的目标运行平台,并获取目标运行平台的应用工程模板;
所述解析单元用于:
解析所述DSL数据集,基于解析出的信息和所获取的应用工程模板,得到包含所述初始配置信息的可运行代码工程。
可选地,所获取的应用工程模板中包括DSL解析模块;
所述DSL解析模块用于:在运行过程中,解析任一页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染对应的应用页面。
可选地,所述获取单元用于:
获取跨平台应用工程模板;
将所获取的跨平台应用工程模板配置为目标运行平台的应用工程模板。
可选地,所述获取单元还用于:针对所获取的应用工程模板,配置目标应用的基础信息。
可选地,所述基础信息包括以下至少一项:
目标运行平台、应用标识、应用包名、应用版本号、应用资源文件、应用组件信息、应用依赖文件、DSL数据集标识。
可选地,所述基础信息包括DSL数据集标识;
所述获取单元用于:
根据所述基础信息中的DSL数据集标识,获取对应的DSL数据集;所获取的DSL数据集用于描述目标应用初始配置信息。
根据上述实施例可知,可以通过获取到描述目标应用的DSL数据集,由设备自动解析DSL数据集,生成可运行代码工程,得到目标应用的程序包,减少开发人员的人工参与,提高开发效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据本发明实施例示出的一种应用打包方法的流程示意图;
图2是根据本发明实施例示出的一种应用打包装置的结构示意图;
图3是根据本发明实施例示出的一种配置本发明实施例方法的计算机设备硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
需要说明的是,本发明实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
随着计算机技术的普及,用户可能使用多种应用提供的服务。例如,视频应用、音乐应用、社交应用等。
但是这些应用的开发往往都需要开发人员全程手动进行开发,开发效率较低。
为了解决上述问题,本发明实施例公开了一种应用打包方法。
在该方法中,可以获取到采用中间语言描述应用的中间语言文件,从而可以由设备自动将中间语言文件解析为可运行代码工程,进而打包可运行代码工程,得到应用程序包。
中间语言具体可以是能够解析为可执行代码的语言,例如,一种自定义的语言,方便解析为可执行代码,具体可以具有较好的可解释性,方便业务人员查看,具体可以是伪代码,也可以是领域特定语言(Domain Specific Language,DSL)。
该方法可以通过由设备自动解析用于描述应用的中间语言文件,生成可运行代码工程,得到应用程序包,从而减少开发人员的人工参与,提高开发人员的开发效率。
其中,中间语言文件可以是由开发人员编辑的。而中间语言文件通常可以相比可执行代码更具有解释性,从而方便降低开发人员的门槛。
此外,设备自动解析中间语言得到可执行代码,通常需要预先设置中间语言与可执行代码之间的映射关系。
为了提高应用开发的灵活性,可以在生成可执行代码工程之后,进一步针对可执行代码工程开放编辑接口,从而可以方便在设备自动开发的基础上,进一步进行二次开发。
可选地,可以将设备自动解析生成的可执行代码工程看作是一个中间产物,经过进一步的二次开发后,再打包成一个应用程序包。
由于中间产物还没有打包成一个无法更改的程序,形态可以更加灵活,从而可以适应多种业务需求。
下面针对本发明实施例提供的一种应用打包方法进行详细解释。
如图1所示,图1是根据本发明实施例示出的一种应用打包方法的流程示意图。
本发明实施例并不限定本方法流程的执行主体。可选地,执行主体可以是任一计算设备。例如,终端、服务端、其他电子设备等等。
可选地,由于应用打包是开发流程中的一环,因此,执行主体可以是开发侧设备。
该方法可以包括以下步骤。
S101:获取用于描述目标应用初始配置信息的领域特定语言DSL数据集。
其中,目标应用中可以包含应用页面,具体可以包含目标应用页面。具体地,目标应用中可以包含一个或多个应用页面,以便于向用户展示信息,并且可以方便用户通过应用页面进行交互。
目标应用具体可以是任一应用。为了便于描述,将所需要开发的任一应用称为目标应用。
目标应用页面具体可以是任一应用页面。可以理解的是,目标应用中的任一应用页面的解释可以参见目标应用页面的解释。
初始配置信息具体可以是开发过程中,在二次开发之前针对目标应用所配置的相关信息。具体可以是配置目标应用中的页面配置信息、事件绑定信息、数据绑定信息等信息。
S102:解析DSL数据集,得到包含初始配置信息的可运行代码工程。
在可运行代码工程中,可以包含用于渲染应用页面的页面代码文件。具体可以包含用于渲染目标应用页面的目标页面代码文件。
目标页面代码文件具体可以是任一页面代码文件,为了方便描述,将任一页面代码文件称为目标页面代码文件,方便后续进行解释。
在解析DSL数据集的过程中,可以将DSL数据集中用于描述目标应用页面的DSL页面数据,填充到用于渲染目标应用页面的目标页面代码文件中。
可以理解的是,解析DSL数据集的过程中,可以生成多个页面代码文件,每个页面代码文件的解释可以参见目标页面代码文件的解释。
S103:根据可运行代码工程,生成目标应用的程序包。
所生成的程序包中可以包含DSL解析模块,DSL解析模块可以用于:在运行过程中,解析目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染目标应用页面。
可选地,可运行代码工程中可以包含:程序语言和DSL数据。程序语言具体可以是C语言、C++、python等。
上述方法流程可以通过获取到描述目标应用的DSL数据集,由设备自动解析DSL数据集,生成可运行代码工程,得到目标应用的程序包,减少开发人员的人工参与,提高开发人员的开发效率。
其中,本方法流程并不限定具体的目标应用。为了方便描述,将所需要打包的应用称为目标应用。
并且,本方法流程并不限定可运行代码工程中,页面代码文件的数量。为了方便描述,针对其中一个应用页面进行解释,并将对应的页面代码文件称为目标页面代码文件。可以理解的是,其他页面代码文件也可以参考对目标页面代码文件的解释。
下面针对各个步骤进行详细的解释。
一、S101:获取用于描述目标应用初始配置信息的领域特定语言DSL数据集。
1)关于DSL数据集。
本方法流程并不限定领域特定语言(Domain Specific Language,DSL)的具体形式,也不限定DSL数据集的具体格式。
例如,对于文档编写任务,可以以轻量级标记语言(Markdown)作为DSL语言;对于字符串匹配任务,可以以正则表达式(RegExp)作为DSL语言;对于工作进程控制任务,可以以依赖关系检测工具(Make)语言或自动化构建工具(Gradle)语言作为DSL语言;对于数据查找任务,可以以结构化查询语句(Structured Query Language,SQL)作为DSL语言;对于网页(Web)样式编码任务,可以以层叠样式表(CSS)语言作为DSL语言,等等,通过DSL编写得到的代码文件也即是DSL数据集,相应地,不同DSL语言对应的DSL数据集的具体格式也会有所不同,本申请对DSL数据集具体所使用的程序语言以及DSL数据集的格式不加以限定。
可选地,领域特定语言可以包括以下任一项:伪代码、用户自定义语言、中文等。可选地,DSL数据集的格式可以是json格式或其他格式。
其中,可选地,DSL数据集可以作为中间语言文件,方便解析为可执行代码。
因此,DSL数据集本身的语言或格式可以并不限定,只要进程能够解析DSL数据集,得到可执行代码工程即可。
2)本方法流程并不限定DSL数据集的获取方式和获取来源。
可选地,DSL数据集可以是从本地获取的,也可以是从外部获取的。具体可以是获取服务端或者其他设备下发的DSL数据集,也可以是从开发侧的其他设备上获取的。
可选地,DSL数据集也可以从本地获取,具体可以是预先下载的DSL数据集,也可以是开发侧设备自身接受开发人员的编辑所得到的DSL数据集。
3)关于目标应用的初始配置信息。
本方法流程并不限定目标应用的初始配置信息的具体形式。
可选地,初始配置信息包括以下至少一项:页面配置信息、事件绑定信息、数据绑定信息、以及组件路由信息。
其中,页面配置信息具体可以是页面中包含的控件相关信息,例如,页面包含的控件类型、控件属性等等。
事件绑定信息具体可以是目标应用中所包含的事件相关信息。事件具体可以包括触发机制和对应的操作,事件中的触发机制可以与页面中的控件进行绑定。例如,在点击页面中的查询按钮后,可以触发一个交互事件,执行对应的查询操作。
数据绑定信息具体可以是目标应用中所包含的数据相关信息。数据具体可以与页面中的控件进行绑定。例如,针对目标应用查询到的结果,可以将查询结果展示到绑定的页面表格中,方便用户查看。
组件路由信息具体可以是目标应用中所包含的组件依赖关系。目标应用中可以借助组件实现对应的功能,而组件之间可以存在依赖关系。例如,查询组件通常需要依赖于与后端数据库进行交互的组件。
4)关于目标应用的初始配置过程。
本方法流程并不限定目标应用在开发过程中的配置方式。
目标应用通常需要开发人员进行设计和配置,从而进行目标页面的发布或更新。
可选地,目标应用可以是由开发人员直接编写DSL数据集进行配置的;也可以是通过可视化平台进行配置的。
其中,可视化平台可以用于根据用户的交互操作,配置应用的初始配置信息。本实施例并不限定具体的交互操作和初始配置信息。
可选地,初始配置信息可以包括以下至少一项:页面配置信息、事件绑定信息、数据绑定信息、以及组件路由信息。具体解释可以参见上文。
可选地,具体可以配置页面配置信息中的控件相关信息,例如,控件布局信息、控件尺寸、控件内容等等。还可以配置应用中的事件绑定信息和数据绑定信息,例如,不同页面之间的跳转事件、控件的交互事件、页面内部的传参数据等。具体可以是进行事件绑定和数据绑定。
可选地,开发人员的交互操作可以包括以下至少一项:控件拖拽操作、事件绑定操作、数据绑定操作、配置操作、控件尺寸调整操作等。
在一种具体的示例中,开发人员可以针对可视化平台进行交互操作,先设置页面整体的背景面板大小,配置背景面板的内容,具体可以是配置图片。之后可以通过拖拽控件、调整控件的位置和尺寸等操作,设计出页面整体布局。还可以通过绑定事件和数据,设计出页面的操作逻辑和功能。
本实施例可以通过可视化平台,降低开发人员的开发门槛,提高开发人员配置应用的操作便利程度。
5)关于DSL数据集的生成方式。
本方法流程并不限定DSL数据集的生成方式。
可选地,可以由开发人员直接编辑用于描述目标页面的DSL数据集。
例如,DSL数据集可以采用伪代码,从而可以由开发人员编辑出用于描述目标页面初始配置信息的伪代码,作为DSL数据集。
可选地,也可以将目标应用的初始配置信息,转换为DSL数据集。具体可以是根据可视化平台中针对目标应用的配置信息进行转换。
例如,开发人员可以通过可视化平台,配置目标应用中的一个应用页面,具体可以是配置应用页面中的控件类型、控件位置和控件尺寸等属性。之后可以将这些配置信息,转换为DSL数据的形式,添加到DSL数据集中。
具体可以是将配置信息转换为json的形式,例如,针对目标应用页面中的一个尺寸为3*5的按钮控件,可以转换为json形式的控件信息,具体的控件类型是按钮,尺寸为3*5。
二、S102:解析DSL数据集,得到包含初始配置信息的可运行代码工程。
在可运行代码工程中,可以包含用于渲染应用页面的页面代码文件。可选地,页面代码文件具体可以是Dart格式,页面代码文件具体可以是Dart文件。
在解析DSL数据集的过程中,可以将DSL数据集中用于描述目标应用页面的DSL页面数据,填充到用于渲染目标应用页面的目标页面代码文件中。
可选地,目标页面代码文件具体可以是目标Dart文件,其中可以包含可运行的代码,用于实现页面渲染,进而可以包含填充的DSL页面数据。
其中,DSL页面数据可以是用于描述目标应用中的应用页面的DSL数据。
本实施例并不限定DSL页面数据中的内容。可选地,DSL页面数据中可以包含所描述应用页面中的控件相关信息、事件绑定信息、数据绑定信息等信息。从而可以根据DSL页面数据,方便解析得到应用页面的相关信息,用于后续的页面渲染。
1、下面针对可运行代码工程中的页面代码文件进行详细解释。
本方法流程也并不限定解析DSL数据集,得到可运行代码工程的方式,只要可运行代码工程中可以包含DSL数据集所描述的目标应用初始配置信息即可。
而针对可运行代码工程中的页面代码文件,在一种可选的实施例中,可以解析DSL数据集中的页面信息,生成相应的页面代码文件,用于渲染目标应用中的应用页面。
所生成的页面代码文件可以添加到可运行代码工程中。
并且,由于需要使得页面代码文件能够包含对应的DSL页面数据,可以将DSL页面数据填充到对应的页面代码文件中。
因此,可选地,将DSL数据集中用于描述目标应用页面的DSL页面数据,填充到用于渲染目标应用页面的目标页面代码文件中,可以是:解析DSL数据集中用于描述目标应用页面的DSL页面数据,根据解析结果创建:目标应用页面的页面初始代码文件;将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件。
本实施例可以通过解析DSL数据集中描述应用页面的DSL页面数据,创建页面初始代码文件,进而将DSL页面数据填充进去,得到可以用于渲染页面的页面代码文件,提高解析的效率和灵活程度。
关于页面初始代码文件,本实施例并不限定具体的格式,只要能够用于渲染页面即可。
可选地,页面初始代码文件中可以包括解析函数,以及未赋值的页面信息,从而可以通过解析函数,针对后续填充的DSL页面数据进行解析,为页面信息赋值,并基于赋值后的页面信息进行页面渲染。
可选地,页面初始代码文件可以是空白的,可以只包括后续填充的DSL页面数据。目标应用可以通过调用DSL解析模块,针对页面代码文件中的DSL页面数据,解析确定应用页面中包含的控件和对应的控件属性值,再根据所确定的控件和对应的控件属性值渲染应用页面。
换言之,可以通过解析DSL数据集中的DSL页面数据,确定页面初始代码文件的数量,方便之后填充DSL数据,以便于通过DSL解析模块进行解析和页面渲染。
可选地,页面初始代码文件的形式可以是dart文件,从而可以用于页面渲染。
进一步地,在创建页面初始代码文件时,为了方便后续的二次开发,可以针对单个应用页面,创建多个页面初始代码文件,并分别填充用于描述应用页面中不同部分的DSL数据。
需要说明的是,在应用开发配置过程中,可能存在部分功能较为复杂,无法直接由设备自动解析生成可执行代码进行功能实现,因此,通常会借助之后的二次开发进行功能实现。
如果单个应用页面对应于单个页面代码文件,具体进行二次开发时,往往就需要从整个应用页面的代码中查询。
并且,功能实现往往涉及到较为复杂的参数传递,而以页面为划分的代码文件之间,往往难以快速确定参数传递的情况。
例如,第一页面中的某个功能实现,需要第二页面中输入的某个参数,也就需要明确第二页面的代码中该参数的名称,从而需要从第二页面的整个页面代码文件中查询,较为费时。
又例如,第三页面和第四页面之间需要传递500个参数,但第三页面中某个功能实现只需要其中的1个参数,从而需要从500个参数中查询,费时费力。
因此,可以针对单个应用页面进行进一步的功能拆分,实现功能模块化,针对拆分出的功能模块,可以单独解析为一个代码文件。
换言之,单个应用页面可以解析为多个代码文件,从而可以降低单个代码文件中的代码量,并且各个代码文件具有对应的功能,方便进行查询。
而且,随着页面之间的参数传递,可以通过多个代码文件,区分页面之间传递的参数。
例如,第一页面中包含登录功能的模块和注册功能的模块,第二页面中包含查询功能的模块,用于查询登录用户的相关信息,因此,可以将第一页面发送到第二页面的参数,区分为从“登录功能模块对应的代码文件”和从“注册功能模块对应的代码文件”,发送到第二页面对应代码文件的参数。方便后续进行查询。
为了方便描述,将应用页面中用于实现功能的模块,描述为业务功能模块,业务功能模块可以用于实现所拆分的功能。
本实施例并不限定业务功能模块的拆分方式。可选地,可以直接根据开发人员的配置,确定应用页面中的业务功能模块。
业务功能模块例如,登录功能模块、注册功能模块、扫码功能模块等等。
一方面降低了单个代码文件中的代码量,方便查询。并且单个功能模块往往具备完整的功能实现,方便查看。另一方面,也可以方便区分页面之间传递的参数,明确不同功能模块之间的参数传递,方便查询。
因此,可选地,解析DSL页面数据的解析结果中,可以包含:用于表征目标应用页面中是否包含业务功能模块的信息。
根据解析结果创建:目标应用页面的页面初始代码文件,具体可以是:在确定目标应用页面中包含业务功能模块的情况下,根据解析结果,分别为目标应用页面以及所包含的业务功能模块,创建不同的页面初始代码文件。其中,所创建的页面初始代码文件可以用于渲染目标应用页面。
当然,应用页面中可以包含一个或多个业务功能模块,具体可以分别为所包含的每个业务功能模块创建页面初始代码文件,也可以针对部分业务功能模块创建页面初始代码文件。
本实施例可以通过针对单个应用页面创建多个页面初始代码文件,方便后续的二次开发,提高开发效率。
可选地,在任一应用页面中不包含业务功能模块的情况下,也就是没有需要划分的模块,也就可以直接创建单个页面初始代码文件。根据解析结果创建页面初始代码文件,可以包括:根据解析结果为该应用页面创建页面初始代码文件。
而具体填充页面初始代码文件,可选地,在确定目标应用页面中包含业务功能模块的情况下,将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件,可以是:将所解析的DSL页面数据中,用于描述业务功能模块的DSL业务数据,填充到为业务功能模块创建的页面初始代码文件中,得到业务代码文件;将所解析的DSL页面数据中,用于描述页面布局的DSL布局数据,填充到为目标应用页面创建的页面初始代码文件中,得到布局代码文件;将所得到的业务代码文件和布局代码文件,确定为目标页面代码文件。
其中,本实施例并不限定页面布局的具体内容。可选地,页面布局中可以包括业务功能模块的渲染位置,也可以包括业务功能模块以外的其他控件相关信息。
例如,针对一个应用页面中,需要部署1个查询功能模块和2个按钮。因此,页面布局可以包括查询功能模块的渲染位置,以及2个按钮的相关信息,具体可以是2个按钮的渲染位置、尺寸、展示文本等信息。
相对应地,本实施例并不限定DSL布局数据的具体内容。可选地,DSL布局数据中可以包含业务功能模块的渲染位置,也可以包括业务功能模块以外的其他控件相关信息。
为了便于理解,在一种可选的具体实施例中,可以针对包含业务功能模块的应用页面,创建一个文件夹,确定为目标页面代码文件,进而可以将业务代码文件和布局代码文件放在文件夹中。
可选地,布局代码文件和业务代码文件可以共同用于渲染目标页面代码文件所需要渲染的应用页面。具体可以是业务代码文件渲染业务功能模块,而布局代码文件渲染应用页面中的其他部分,并综合所渲染的业务功能模块,得到最终的应用页面。
具体可以是根据布局代码文件确定,业务功能模块在应用页面中的渲染位置。
可选地,业务代码文件可以用于渲染对应的业务功能模块;页面布局中可以包含业务功能模块在应用页面中的渲染位置;布局代码文件可以用于确定:业务功能模块在目标应用页面中的渲染位置。
本实施例并不限定业务功能模块的划分。
可选地,可以是在DSL数据集中规定了页面中的业务功能模块。
例如,DSL数据集中可以标记出用于描述页面中业务功能模块的DSL业务数据,也可以将用于描述页面中业务功能模块的DSL业务数据独立存放。
可选地,具体可以是由开发人员配置页面中的业务功能模块。
在一种具体的示例中,目标应用具体可以是大屏展示应用,具体需要展示5块的数据统计分析结果,从而可以配置出5个业务功能模块,分别渲染各自的数据统计分析结果。
又例如,目标应用具体可以是线下履约平台,单个页面中可以包括美食、外卖、租房、购物等多个业务功能模块。各个业务功能模块的实现逻辑完全不同,从而可以分别构建业务代码文件。
2、关于工程模板。
在一种可选的实施例中,可以借助应用工程模板生成可运行代码工程。
可选地,上述方法流程还可以包括:确定目标应用的目标运行平台,并获取目标运行平台的应用工程模板。运行平台例如,安卓、iOS、电脑端等。
本实施例并不限定应用工程模板的形式,也不限定具体的目标运行平台。
可选地,解析DSL数据集,得到包含初始配置信息的可运行代码工程,可以包括:解析DSL数据集,基于解析出的信息和所获取的应用工程模板,得到包含初始配置信息的可运行代码工程。
本实施例可以借助应用工程模板,提高可运行代码工程的生成效率。
当然,本实施例并不限定具体如何基于解析出的信息和应用工程模板,得到可运行代码工程。
可选地,可以是将解析出的信息中,目标应用的初始配置信息,填充到应用工程模板中,得到可运行代码工程。
可选地,可运行代码工程中可以包括页面代码文件。页面代码文件可以用于渲染应用页面。具体可以是Dart文件形式。
因此,可选地,所获取的应用工程模板中可以包括页面模板代码。
可选地,基于解析出的信息和所获取的应用工程模板,得到包含初始配置信息的可运行代码工程,可以包括:根据解析出的信息中任一应用页面的信息,确定对应的页面模板代码,组合所确定的页面模板代码,得到页面初始代码文件;将DSL数据集中用于描述该应用页面的DSL页面数据,填充到所创建的页面初始代码文件中,得到页面代码文件。
本实施例可以通过页面模板代码,提高页面代码文件的生成效率。
其中,页面模板代码具体可以包括控件模板代码,可以根据解析出的信息中应用页面包含的控件类型,确定对应的控件模板代码。
后续可以根据填充的DSL页面数据,将控件信息填充到控件模板代码中,渲染对应的控件,从而渲染应用页面。
可选地,工程模板中可以包含DSL解析模块。DSL解析模块可以用于:在运行过程中,解析任一页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染对应的应用页面。
所生成的程序包中的DSL解析模块,可以是工程模板中所提供包含的DSL解析模块。DSL解析模块具体可以是一种跨平台解析引擎,用于解析DSL数据。跨平台解析引擎可以方便适应不同的运行平台,提高解析的稳定性。
在本实施例中,页面代码文件可以只包含DSL页面数据,利用DSL解析模块也可以实现解析和页面渲染。
可选地,为了获取适应于目标运行平台的应用工程模板,可以借助跨平台的应用工程模板,降低开发难度。
可选地,获取目标运行平台的应用工程模板,可以包括:获取跨平台应用工程模板;将所获取的跨平台应用工程模板配置为目标运行平台的应用工程模板。
可选地,为了方便后续的程序打包,可以针对可运行代码工程配置目标应用的基础信息。例如,目标应用的名称、图标等。具体可以是开发人员进行配置。
可选地,上述方法流程还可以包括:针对所获取的应用工程模板,配置目标应用的基础信息。
本实施例并不限定基础信息的内容和形式。
可选地,基础信息可以包括以下至少一项:目标运行平台、应用标识、应用包名、应用版本号、应用资源文件、应用组件信息、应用依赖文件、DSL数据集标识。
其中,目标运行平台可以是目标应用运行的平台,具体可以是安卓、iOS或者电脑端等。应用标识可以是用于区分不同应用的标识。应用包名可以是作为打包的程序包体名称。应用版本号可以用于区分目标应用的不同版本,用于区分更新的先后顺序。
应用资源文件具体可以是应用在运行过程中需要调用的资源,例如,图像、视频、文本等。
应用组件信息具体可以是应用在运行过程中需要调用的组件。例如,数据库组件、数学组件、积分计算组件等等。
应用依赖文件具体可以是应用运行所需要依赖的文件。
DSL数据集标识具体可以用于确定所需要解析的DSL数据集。
通过配置上述基础信息,可以方便生成一个规范的程序包。
可选地,可以在获取基础信息之后,进一步获取DSL数据集。具体DSL数据集可以是预先设置的,方便后续进行选择获取。
因此,可选地,基础信息可以包括DSL数据集标识;获取用于描述目标应用初始配置信息的领域特定语言DSL数据集,可以是:根据基础信息中的DSL数据集标识,获取对应的DSL数据集;所获取的DSL数据集用于描述目标应用初始配置信息。
3、页面渲染和更新。
本方法流程并不限定实现页面渲染的具体方式。
可选地,解析目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染目标应用页面,可以是:在运行过程中,解析目标页面代码文件中填充的DSL页面数据,根据解析出的信息确定:目标应用页面中包含的控件和对应的控件属性值;根据所确定的控件和对应的控件属性值渲染目标应用页面。
本实施例中,利用目标页面代码文件,可以通过在运行过程中,实时解析其中的DSL页面数据实现页面渲染,从而可以提高渲染的实时性。并且,由于是通过实时解析DSL页面数据进行页面渲染,从而可以在后续针对运行的目标应用程序包,通过更新页面代码文件中的DSL数据,实现页面的渲染更新。
需要说明的是,上述解释针对的是可运行代码工程中的一个目标页面代码文件,可以理解的是,对于用于渲染应用页面的任一页面代码文件,都可以参考上述解释。
因此,可选地,可运行代码工程中用于渲染应用页面的任一页面代码文件,可以包括:用于描述所渲染应用页面的DSL页面数据。在所生成的程序包中,DSL解析模块可以用于:在运行过程中,解析任一页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染对应的应用页面。
本实施例并不限定具体实现页面更新渲染的方式。
针对目标应用,可选地,可能因为业务变化或者版本更新等原因,需要更新目标应用的页面中的布局或展示,从而需要更新渲染应用页面。当然,也可能因为本地设备的事件执行情况,例如,查询数据时需要列表展示相关结果,从而需要更新应用页面中的布局或展示,需要更新渲染应用页面。
可选地,所生成的程序包可以还用于:在运行过程中,更新目标页面代码文件中填充的DSL页面数据,并调用DSL解析模块执行:解析更新后的DSL页面数据,根据解析出的信息更新渲染目标应用页面。
本实施例并不限定具体更新页面代码文件中的DSL页面数据的方式。
可选地,可以直接进行更新,具体可以是接收到其他设备发送的新DSL页面数据,从而可以直接更新到对应的页面代码文件中。
可选地,页面代码文件中可以包括用于获取对应的当前DSL页面数据的接口代码,从而可以运行该接口代码,直接获取到当前的DSL页面数据进行更新。
可选地,页面代码文件中可以包括用于获取对应的当前DSL页面数据的数据标识,从而可以根据该数据标识,向其他设备(例如对应的服务端)获取到当前的DSL页面数据进行更新。
可选地,也可以从本地设备的事件执行情况中,获取到需要更新的DSL页面数据,再进行更新。
三、S103:根据可运行代码工程,生成目标应用的程序包。
本方法流程并不限定具体的打包方式。
而在具体进行打包之前,可以进行二次开发。
本方法流程并不限定具体的二次开发方式。
可选地,可以开放可运行代码工程的编辑权限和编辑接口,从编辑接口接收开发人员的操作,对可运行代码工程进行更新。
可选地,根据可运行代码工程,生成目标应用的程序包,可以是:提供用于编辑可运行代码工程的编辑接口,以便于根据用户针对所提供的编辑接口的操作,针对可运行代码工程进行二次开发;针对二次开发完成的可运行代码工程进行打包,得到目标应用的程序包。
可选地,为了方便进行二次开发,由于二次开发时可能需要借助可运行代码工程中传递的参数,例如,不同页面之间传递的参数、不同功能实现之间传递的参数等,可以直接运行可运行代码工程,使得当前可运行代码工程中的参数传递信息具体展示出来,方便进行二次开发。
例如,第一页面的刷卡功能接收到了第二页面中登录功能传递的账号字段“username”,从而可以方便二次开发刷卡功能时,确定使用username字段名进行开发。
本实施例并不限定参数传递信息的展示方式。可选地,在可运行代码工程运行的过程中,日志中可以包含有参数传递的相关信息,从而可以从日志中筛选出参数传递信息。例如,不同页面代码文件之间的传递的参数名。
可选地,在可运行代码工程中也可以设置抓取参数传递信息的程序,从而可以抓取到不同文件之间传递的参数名,进而展示给用户,方便进行二次开发。
因此,可选地,根据可运行代码工程,生成目标应用的程序包,可以包括:运行可运行代码工程,获取参数传递信息,以便于根据参数传递信息,针对可运行代码工程进行二次开发;针对二次开发完成的可运行代码工程进行打包,得到目标应用的程序包。
本实施例并不限定参数传递信息的具体形式和内容。
可选地,参数传递信息可以包括参数字段、参数来源和参数传递目标,从而方便二次开发。
本实施例可以通过获取参数传递信息,提高二次开发的效率。
在一种可选的实施例中,由于涉及到了参数传递,因此,可以针对包含业务功能模块的单个应用页面,创建多个代码文件,方便查询传递的参数。
具体地,在针对单个业务功能模块进行二次开发时,可以方便地直接确定出向该业务功能模块传递的参数信息,例如,参数字段、参数来源等。
而需要说明的是,由于部分业务功能模块可能经过二次开发后,才确定尺寸、形状、控件等外观,因此,布局代码文件可能遗漏这部分业务功能模块的渲染位置。
可选地,业务代码文件可以用于渲染对应的业务功能模块;页面布局中可以包含业务功能模块在应用页面中的渲染位置;布局代码文件可以用于确定:业务功能模块在目标应用页面中的渲染位置,在针对二次开发完成的可运行代码工程进行打包之前,可以检测目标页面代码文件中,布局代码文件中是否包含业务代码文件所对应的业务功能模块的位置信息。
可选地,具体可以检测目标页面代码文件中,布局代码文件中是否包含每个业务代码文件所对应的业务功能模块的位置信息。
如果目标页面代码文件中,布局代码文件中没有包含任一业务代码文件所对应的业务功能模块的位置信息,可以发出提示继续二次开发,也可以自动设置页面中一个位置。例如,页面中不遮挡其他控件的位置。
需要说明的是,上述解释针对的是目标页面代码文件。可以理解的是,对于任意页面代码文件,可以参见上述解释。
本实施例可以通过在打包之前,检测布局代码文件与业务代码文件之间的关系,提高应用开发的稳定性。
为了便于理解,本发明实施例还提供了一种具体的应用实施例。
首先可以通过可视化配置的方式,配置出应用中的页面。页面的配置信息可以转换为DSL数据,得到DSL数据集。
经过可视化的配置之后,可以存储DSL数据集,除了DSL数据集还有相应的图片等资源都可以保存起来。
之后为了进行后续开发,可以执行以下步骤。
1.基于匹配了跨平台引擎框架的Flutter跨平台工程模板,(模板中嵌入了基于iOS/Android/Windows相关的基础路由调用,以及信令的传递中间层)根据在可视化配置中所选择的运行平台类型,可以输出相应的工程模板。
具体可以是在所选择的运行平台上运行的工程模板。
2.将输出的工程模板git clone到Jenkins打包机内。
3.Jenkins下发应用的基础信息到工程模板。基础信息可以包括以下至少一项:
应用的平台类型(Android/iOS/Windows/Web)用来决定未来打包植入的信息是什么内容。
应用ID(应用的唯一ID,是区分与版本上层的内容,属于平台属性内容),应用的包名(为应用上架应用商店的唯一标识符),应用的版本号(为当前构建的版本内容)。
应用的启动图片/ICON等的资源文件,包括静态配置图片,将这些内容按照平台属性放到相应的目录文件夹下面。
根据平台信息,以及选配的组件信息,将分别属于Flutter/iOS/Android组件分别放到yaml,Podfile,Gradle文件内。
以及DSL数据集的ID信息。
4.根据DSL数据集的ID信息,去获取可视化编辑器所生成的DSL数据集。
根据应用ID在shell脚本内拿到的页面信息,可以生成相应的Dart文件(Dart文件实际也是工程内的模板,模板主要需要将固定的标记类字符串替换为DSL页面数据,以及模板内会统一回调CallBack以用来接收面板传递过来的事件):
如果页面包含的业务功能模块个数为0,那么直接生成XX页面Class.dart的文件即可;如果页面包含的业务功能模块个数不为0,那么生成则是名为XX页面的文件夹,然后再在文件夹内部生成XX页面Class.dart。
页面层的Dart文件生成完毕,根据上步所判定的目录,决定下级业务功能模块的位置,将所有XX页面下面的业务功能模块,按照获得的业务功能模块名称生成形如AaPannel.dart的格式放到该页面的文件夹下。
生成了相应的Dart文件后,把Dart内的标记字符串替换成真实的DSL内容。
根据以上步骤,可以获取一个中间产物的工程模板,这个工程模板实际上包含了DSL数据,具体可以通过其中的代码文件解析DSL数据。
工程模板是一个包含了所有dart文件,将文件目录都规划完毕,填写了相应的DSL数据,以及在相应位置用来二次编辑的入口也预备好,并且工程模板经过pub库/CocoaPods库/Marven库引入了所需要的组件,根据业务需求可以决定是否引入其他场景的基础配置。该中间产物是以工程存在,能看到源码,并且在源码上进行编辑,开发者可以直接拿着开发。中间产物与最终产物形态的区别在于,最终产物是以安装包存在,开发者不能进行任何二次开发和操作,直接安装使用,而中间产物经过二次编辑后,重新编译,才能生成最终产物,相较于直接生成最终产物,中间产物形态更具灵活性,可以高度切合各个业务线的开发需求。
对应于上述方法实施例,本发明实施例还提供了一种装置实施例。
如图2所示,图2是根据本发明实施例示出的一种应用打包装置的结构示意图。
本发明实施例并不限定本装置实施例的执行主体。可选地,执行主体可以是任一计算设备。例如,终端、服务端、其他电子设备等等。
可选地,由于应用打包是开发流程中的一环,因此,执行主体可以是开发侧设备。
该装置可以包括以下单元。
获取单元201,用于获取用于描述目标应用初始配置信息的领域特定语言DSL数据集;目标应用中包含目标应用页面;
解析单元202,用于解析DSL数据集,得到包含初始配置信息的可运行代码工程;可运行代码工程中,包含用于渲染目标应用页面的目标页面代码文件;在解析DSL数据集的过程中,将DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中;
打包单元203,用于根据可运行代码工程,生成目标应用的程序包;
所生成的程序包中包含DSL解析模块,DSL解析模块用于:在运行过程中,解析目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染目标应用页面。
可选地,DSL解析模块用于:
在运行过程中,解析目标页面代码文件中填充的DSL页面数据,根据解析出的信息确定:目标应用页面中包含的控件和对应的控件属性值;根据所确定的控件和对应的控件属性值渲染目标应用页面。
可选地,所生成的程序包还用于:
在运行过程中,更新目标页面代码文件中填充的DSL页面数据,并调用DSL解析模块执行:解析更新后的DSL页面数据,根据解析出的信息更新渲染目标应用页面。
可选地,解析单元202用于:
解析DSL数据集中用于描述目标应用页面的DSL页面数据,根据解析结果创建:目标应用页面的页面初始代码文件;
将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件。
可选地,解析结果中包含:用于表征目标应用页面中是否包含业务功能模块的信息;
解析单元202用于:
在确定目标应用页面中包含业务功能模块的情况下,根据解析结果,分别为目标应用页面以及所包含的业务功能模块,创建不同的页面初始代码文件。
可选地,在确定目标应用页面中包含业务功能模块的情况下,解析单元202用于:
将所解析的DSL页面数据中,用于描述业务功能模块的DSL业务数据,填充到为业务功能模块创建的页面初始代码文件中,得到业务代码文件;
将所解析的DSL页面数据中,用于描述页面布局的DSL布局数据,填充到为目标应用页面创建的页面初始代码文件中,得到布局代码文件;
将所得到的业务代码文件和布局代码文件,确定为目标页面代码文件。
可选地,打包单元203用于:
提供用于编辑可运行代码工程的编辑接口,以便于根据用户针对所提供的编辑接口的操作,针对可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到目标应用的程序包。
可选地,打包单元203用于:
运行可运行代码工程,获取参数传递信息,以便于根据参数传递信息,针对可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到目标应用的程序包。
可选地,业务代码文件用于渲染对应的业务功能模块;页面布局中包含业务功能模块在应用页面中的渲染位置;布局代码文件用于确定:业务功能模块在目标应用页面中的渲染位置;
在针对二次开发完成的可运行代码工程进行打包之前,打包单元203还用于:
检测目标页面代码文件中,布局代码文件中是否包含业务功能模块的渲染位置信息。
可选地,初始配置信息包括以下至少一项:页面配置信息、事件绑定信息、数据绑定信息、以及组件路由信息。
可选地,获取单元201还用于:确定目标应用的目标运行平台,并获取目标运行平台的应用工程模板;
解析单元202用于:
解析DSL数据集,基于解析出的信息和所获取的应用工程模板,得到包含初始配置信息的可运行代码工程。
可选地,所获取的应用工程模板中包括DSL解析模块;
DSL解析模块用于:在运行过程中,解析任一页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染对应的应用页面。
可选地,获取单元201用于:
获取跨平台应用工程模板;
将所获取的跨平台应用工程模板配置为目标运行平台的应用工程模板。
可选地,获取单元201还用于:针对所获取的应用工程模板,配置目标应用的基础信息。
可选地,基础信息包括以下至少一项:
目标运行平台、应用标识、应用包名、应用版本号、应用资源文件、应用组件信息、应用依赖文件、DSL数据集标识。
可选地,基础信息包括DSL数据集标识;
获取单元201用于:
根据基础信息中的DSL数据集标识,获取对应的DSL数据集;所获取的DSL数据集用于描述目标应用初始配置信息。
上述装置实施例的具体解释可以参见上述方法实施例。
本发明实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方法实施例。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一方法实施例。
图3是根据本发明实施例示出的一种配置本发明实施例方法的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本发明实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本发明实施例方案所必需的组件,而不必包含图中所示的全部组件。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一方法实施例。
本发明实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序在由处理器执行时实现上述任一方法实施例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案本质上或者说做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本发明实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明实施例的保护。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (19)
1.一种应用打包方法,其特征在于,应用于开发侧设备,所述方法包括:
获取用于描述目标应用初始配置信息的领域特定语言DSL数据集;所述目标应用中包含目标应用页面;
解析所述DSL数据集,得到包含所述初始配置信息的可运行代码工程;所述可运行代码工程中,包含用于渲染目标应用页面的目标页面代码文件;
在解析所述DSL数据集的过程中,将所述DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中;
根据所述可运行代码工程,生成所述目标应用的程序包;
所生成的程序包中包含DSL解析模块,所述DSL解析模块用于:在运行过程中,解析所述目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染所述目标应用页面。
2.根据权利要求1所述的方法,其特征在于,所述解析所述目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染所述目标应用页面,包括:
在运行过程中,解析所述目标页面代码文件中填充的DSL页面数据,根据解析出的信息确定:所述目标应用页面中包含的控件和对应的控件属性值;根据所确定的控件和对应的控件属性值渲染所述目标应用页面。
3.根据权利要求1所述的方法,其特征在于,所生成的程序包还用于:
在运行过程中,更新所述目标页面代码文件中填充的DSL页面数据,并调用所述DSL解析模块执行:解析更新后的DSL页面数据,根据解析出的信息更新渲染所述目标应用页面。
4.根据权利要求1所述的方法,其特征在于,所述将所述DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中,包括:
解析所述DSL数据集中用于描述目标应用页面的DSL页面数据,根据解析结果创建:所述目标应用页面的页面初始代码文件;
将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件。
5.根据权利要求4所述的方法,其特征在于,所述解析结果中包含:用于表征所述目标应用页面中是否包含业务功能模块的信息;
所述根据解析结果创建:所述目标应用页面的页面初始代码文件,包括:
在确定所述目标应用页面中包含业务功能模块的情况下,根据解析结果,分别为所述目标应用页面以及所包含的业务功能模块,创建不同的页面初始代码文件。
6.根据权利要求5所述的方法,其特征在于,在确定所述目标应用页面中包含业务功能模块的情况下,所述将所解析的DSL页面数据填充到所创建的页面初始代码文件中,得到目标页面代码文件,包括:
将所解析的DSL页面数据中,用于描述所述业务功能模块的DSL业务数据,填充到为所述业务功能模块创建的页面初始代码文件中,得到业务代码文件;
将所解析的DSL页面数据中,用于描述页面布局的DSL布局数据,填充到为所述目标应用页面创建的页面初始代码文件中,得到布局代码文件;
将所得到的业务代码文件和布局代码文件,确定为目标页面代码文件。
7.根据权利要求6所述的方法,其特征在于,所述根据所述可运行代码工程,生成所述目标应用的程序包,包括:
提供用于编辑所述可运行代码工程的编辑接口,以便于根据用户针对所提供的编辑接口的操作,针对所述可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到所述目标应用的程序包。
8.根据权利要求6所述的方法,其特征在于,所述根据所述可运行代码工程,生成所述目标应用的程序包,包括:
运行所述可运行代码工程,获取参数传递信息,以便于根据参数传递信息,针对所述可运行代码工程进行二次开发;
针对二次开发完成的可运行代码工程进行打包,得到所述目标应用的程序包。
9.根据权利要求7或8所述的方法,其特征在于,所述业务代码文件用于渲染对应的业务功能模块;所述页面布局中包含业务功能模块在应用页面中的渲染位置;所述布局代码文件用于确定:业务功能模块在目标应用页面中的渲染位置;
在针对二次开发完成的可运行代码工程进行打包之前,所述方法还包括:
检测目标页面代码文件中,布局代码文件中是否包含业务功能模块的渲染位置信息。
10.根据权利要求1所述的方法,其特征在于,所述初始配置信息包括以下至少一项:页面配置信息、事件绑定信息、数据绑定信息、以及组件路由信息。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定目标应用的目标运行平台,并获取目标运行平台的应用工程模板;
所述解析所述DSL数据集,得到包含所述初始配置信息的可运行代码工程,包括:
解析所述DSL数据集,基于解析出的信息和所获取的应用工程模板,得到包含所述初始配置信息的可运行代码工程。
12.根据权利要求11所述的方法,其特征在于,所获取的应用工程模板中包括DSL解析模块;
所述DSL解析模块用于:在运行过程中,解析任一页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染对应的应用页面。
13.根据权利要求11所述的方法,其特征在于,所述获取目标运行平台的应用工程模板,包括:
获取跨平台应用工程模板;
将所获取的跨平台应用工程模板配置为目标运行平台的应用工程模板。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:针对所获取的应用工程模板,配置目标应用的基础信息。
15.根据权利要求14所述的方法,其特征在于,所述基础信息包括以下至少一项:
目标运行平台、应用标识、应用包名、应用版本号、应用资源文件、应用组件信息、应用依赖文件、DSL数据集标识。
16.根据权利要求14所述的方法,其特征在于,所述基础信息包括DSL数据集标识;
所述获取用于描述目标应用初始配置信息的领域特定语言DSL数据集,包括:
根据所述基础信息中的DSL数据集标识,获取对应的DSL数据集;所获取的DSL数据集用于描述目标应用初始配置信息。
17.一种应用打包装置,其特征在于,应用于开发侧设备,所述装置包括:
获取单元,用于获取用于描述目标应用初始配置信息的领域特定语言DSL数据集;所述目标应用中包含目标应用页面;
解析单元,用于解析所述DSL数据集,得到包含所述初始配置信息的可运行代码工程;所述可运行代码工程中,包含用于渲染目标应用页面的目标页面代码文件;在解析所述DSL数据集的过程中,将所述DSL数据集中用于描述目标应用页面的DSL页面数据,填充到目标页面代码文件中;
打包单元,用于根据所述可运行代码工程,生成所述目标应用的程序包;
所生成的程序包中包含DSL解析模块,所述DSL解析模块用于:在运行过程中,解析所述目标页面代码文件中填充的DSL页面数据,并根据解析出的信息渲染所述目标应用页面。
18.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至16中任一项所述方法。
19.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序在由处理器执行时实现权利要求1至16中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310637069.4A CN116594676A (zh) | 2023-05-31 | 2023-05-31 | 一种应用打包方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310637069.4A CN116594676A (zh) | 2023-05-31 | 2023-05-31 | 一种应用打包方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116594676A true CN116594676A (zh) | 2023-08-15 |
Family
ID=87606134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310637069.4A Pending CN116594676A (zh) | 2023-05-31 | 2023-05-31 | 一种应用打包方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594676A (zh) |
-
2023
- 2023-05-31 CN CN202310637069.4A patent/CN116594676A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10127206B2 (en) | Dynamic column groups in excel | |
US9400784B2 (en) | Integrated application localization | |
CN110806863A (zh) | 接口文档生成方法及装置、电子设备、存储介质 | |
US9442744B2 (en) | Multilingual build integration for compiled applications | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
CN111881019B (zh) | 一种用户界面测试方法及装置 | |
US9916157B2 (en) | Workbook composer for application development framework | |
CN110119294A (zh) | 菜单页面的生成方法、装置及系统 | |
CA2539130A1 (en) | System and method for applying development patterns for component based applications | |
CN106997298A (zh) | 一种应用资源获取方法及装置 | |
CN110069737B (zh) | 内容生成方法、装置、计算机设备及存储介质 | |
CN114064024A (zh) | 微应用的开发方法、装置、设备、存储介质及程序产品 | |
CN106933518A (zh) | 一种打印装置及打印方法 | |
CN110806945A (zh) | 接口对接方法、装置和计算机可读介质 | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN113407284A (zh) | 导航界面的生成方法、装置、存储介质及电子设备 | |
CN116301951B (zh) | 一种基于kubernetes的微服务应用安装升级方法及装置 | |
CN109740074B (zh) | 参数配置信息的处理方法、装置及设备 | |
US10409575B2 (en) | System and method for developing software applications of wearable devices | |
CN116594676A (zh) | 一种应用打包方法、装置、设备及存储介质 | |
CN115994517A (zh) | 信息处理方法、装置、存储介质、设备及程序产品 | |
JP6097231B2 (ja) | プログラム生成装置および方法 | |
CN113342399A (zh) | 应用项目的结构配置方法、装置及可读存储介质 | |
CN114253546A (zh) | 代码的生成方法、装置、存储介质及电子装置 | |
CN112905178A (zh) | 业务功能页面生成方法、装置、设备及介质 |
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 |