CN114185551A - 小程序的编译方法、小程序的运行方法及装置、存储介质 - Google Patents
小程序的编译方法、小程序的运行方法及装置、存储介质 Download PDFInfo
- Publication number
- CN114185551A CN114185551A CN202210147021.0A CN202210147021A CN114185551A CN 114185551 A CN114185551 A CN 114185551A CN 202210147021 A CN202210147021 A CN 202210147021A CN 114185551 A CN114185551 A CN 114185551A
- Authority
- CN
- China
- Prior art keywords
- target
- applet
- function
- type
- code
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000006243 chemical reaction Methods 0.000 claims abstract description 102
- 238000010276 construction Methods 0.000 claims abstract description 62
- 230000006870 function Effects 0.000 claims description 311
- 238000004088 simulation Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 14
- 230000006399 behavior Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation 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/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- 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/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请公开了一种小程序的编译方法、小程序的运行方法及装置、存储介质,小程序的编译方法包括:基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序;在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口;依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数;将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换。本申请有助于减少针对多个平台进行小程序开发的工作量,提升小程序开发效率,节约开发成本。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及到一种小程序的编译方法、小程序的运行方法及装置、存储介质。
背景技术
随着互联网技术的飞速发展,小程序作为一种不需要下载安装即可使用的便捷工具,已经得到了各行各业的广泛关注,小程序需要通过平台运行,例如支付宝小程序需要在支付宝平台运行。
现有技术中,针对不同平台开发相同小程序时,需要对不同平台各自开发一套代码,对于研发人员来说,工作量较大,开发效率低。
发明内容
有鉴于此,本申请提供了一种小程序的编译方法、小程序的运行方法及装置、存储介质,有助于减少多平台小程序的开发工作量,提高开发效率。
根据本申请的一个方面,提供了一种小程序的编译方法,所述方法包括:
基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序;
在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口;
依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数;
将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换。
可选地,所述基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序,具体包括:
当所述源小程序包括第一类型代码时,基于所述第一类型代码对应的第一目标代码类型,对第一类型代码模块以及所述第一类型代码模块之间的引用进行转换,并注入所述目标小程序的新增接口模拟代码,其中,第一类型包括JS类型;
当所述源小程序包括第二类型代码时,基于所述第二类型代码对应的第二目标代码类型,对第二类型代码模块以及所述第二类型代码模块之间的引用进行转换,其中,第二类型包括WXS类型和/或SJS类型;
当所述源小程序包括第三类型代码时,基于所述第三类型代码对应的第三目标代码类型,对所述第三类型代码的模板、指令、内置组件以及属性进行转换,其中,第三类型包括WXML类型和/或AXML类型;
当所述源小程序包括第四类型代码时,基于所述第四类型代码对应的第四目标代码类型,对所述第四类型代码的选择器以及所述第四类型代码之间的引用进行转换,其中,第四类型包括WXSS类型和/或ACSS类型;
当所述源小程序包括第五类型代码时,基于所述第五类型代码对应的第五目标代码类型,对所述第五类型代码的配置项以及所述第五类型代码之间的引用进行转换,其中,第五类型包括JSON类型。
可选地,所述注入所述目标小程序的新增接口模拟代码,具体包括:
基于所述源小程序的源平台以及所述目标平台,识别所述源平台相对于所述目标平台的增加接口,将所述增加接口作为所述目标小程序的新增接口;
基于所述目标代码类型,在所述目标小程序中注入所述新增接口模拟代码。
可选地,所述功能构造函数包括注册小程序应用的第一构造函数、注册小程序页面的第二构造函数以及创建小程序自定义组件的第三构造函数;所述替换函数包括用于创建应用的第一替换函数、用于注册页面的第二替换函数以及用于创建组件的第三替换函数。
可选地,所述将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换,具体包括:
将所述第一替换函数作为所述目标小程序的应用初始化入口函数,对所述目标小程序的第一构造函数进行替换,并通过调用所述第一替换函数对所述目标小程序的应用注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的页面初始化入口函数,对所述目标小程序的第二构造函数进行替换,并通过调用所述第二替换函数,向所述目标小程序注入第一混入对象,以及对所述目标小程序的页面注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的自定义组件初始化入口函数,对所述目标小程序的第三构造函数进行替换,并通过调用所述第三替换函数,向所述目标小程序注入第二混入对象,以及对所述目标小程序的自定义组件创建逻辑进行转换。
可选地,所述在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口,具体包括:
在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,将所述源小程序对应的源应用程序接口映射为所述目标小程序的目标应用程序接口。
根据本申请的另一方面,提供了一种小程序的运行方法,所述方法包括:
在目标平台中启动目标小程序时,基于所述目标小程序的目标代码类型,配置所述目标小程序的应用程序接口,其中,所述目标小程序通过对源小程序进行代码转换得到;
依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数,并将所述功能构造函数替换为所述替换函数;
当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数。
可选地,所述当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数,具体包括:
在对所述目标小程序进行首次功能调用时,执行所述替换函数以对所述目标小程序进行功能逻辑转换,存储逻辑转换结果,并基于所述逻辑转换结果执行所述功能构造函数;
在对所述目标小程序进行非首次功能调用时,基于所述逻辑转换结果执行所述功能构造函数。
根据本申请的另一方面,提供了一种小程序的编译装置,包括:
代码转换模块,用于基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序;
接口配置模块,用于在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口;
逻辑转换模块,用于依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数;将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换。
可选地,所述代码转换模块,具体用于:
当所述源小程序包括第一类型代码时,基于所述第一类型代码对应的第一目标代码类型,对第一类型代码模块以及所述第一类型代码模块之间的引用进行转换,并注入所述目标小程序的新增接口模拟代码,其中,第一类型包括JS类型;
当所述源小程序包括第二类型代码时,基于所述第二类型代码对应的第二目标代码类型,对第二类型代码模块以及所述第二类型代码模块之间的引用进行转换,其中,第二类型包括WXS类型和/或SJS类型;
当所述源小程序包括第三类型代码时,基于所述第三类型代码对应的第三目标代码类型,对所述第三类型代码的模板、指令、内置组件以及属性进行转换,其中,第三类型包括WXML类型和/或AXML类型;
当所述源小程序包括第四类型代码时,基于所述第四类型代码对应的第四目标代码类型,对所述第四类型代码的选择器以及所述第四类型代码之间的引用进行转换,其中,第四类型包括WXSS类型和/或ACSS类型;
当所述源小程序包括第五类型代码时,基于所述第五类型代码对应的第五目标代码类型,对所述第五类型代码的配置项以及所述第五类型代码之间的引用进行转换,其中,第五类型包括JSON类型。
可选地,所述代码转换模块,还用于:
基于所述源小程序的源平台以及所述目标平台,识别所述源平台相对于所述目标平台的增加接口,将所述增加接口作为所述目标小程序的新增接口;
基于所述目标代码类型,在所述目标小程序中注入所述新增接口模拟代码。
可选地,所述功能构造函数包括注册小程序应用的第一构造函数、注册小程序页面的第二构造函数以及创建小程序自定义组件的第三构造函数;所述替换函数包括用于创建应用的第一替换函数、用于注册页面的第二替换函数以及用于创建组件的第三替换函数。
可选地,所述逻辑转换模块,具体用于:
将所述第一替换函数作为所述目标小程序的应用初始化入口函数,对所述目标小程序的第一构造函数进行替换,并通过调用所述第一替换函数对所述目标小程序的应用注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的页面初始化入口函数,对所述目标小程序的第二构造函数进行替换,并通过调用所述第二替换函数,向所述目标小程序注入第一混入对象,以及对所述目标小程序的页面注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的自定义组件初始化入口函数,对所述目标小程序的第三构造函数进行替换,并通过调用所述第三替换函数,向所述目标小程序注入第二混入对象,以及对所述目标小程序的自定义组件创建逻辑进行转换。
可选地,所述接口配置模块,具体用于:
在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,将所述源小程序对应的源应用程序接口映射为所述目标小程序的目标应用程序接口。
根据本申请的另一方面,提供了一种小程序的运行装置,所述装置包括:
接口配置模块,用于在目标平台中启动目标小程序时,基于所述目标小程序的目标代码类型,配置所述目标小程序的应用程序接口,其中,所述目标小程序通过对源小程序进行代码转换得到;
逻辑转换模块,用于依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数,并将所述功能构造函数替换为所述替换函数;
执行模块,用于当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数。
可选地,所述执行模块,具体用于:
在对所述目标小程序进行首次功能调用时,执行所述替换函数以对所述目标小程序进行功能逻辑转换,存储逻辑转换结果,并基于所述逻辑转换结果执行所述功能构造函数;
在对所述目标小程序进行非首次功能调用时,基于所述逻辑转换结果执行所述功能构造函数。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述小程序的编译方法或小程序的运行方法。
依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述小程序的编译方法或小程序的运行方法。
借由上述技术方案,本申请提供的一种小程序的编译方法、小程序的运行方法及装置、存储介质,对针对源平台开发的源小程序进行代码转换,将源小程序中的源代码转换为与目标平台的目标代码类型匹配的代码,得到目标小程序,接着,在目标平台启动目标小程序后,先对目标小程序的应用程序接口进行配置,以使目标小程序与目标平台的接口适配,保证小程序调用入参以及结果返回的一致性,进一步,利用与目标小程序的各功能构造函数对应的替换函数,对功能构造函数进行替换,通过调用功能构造函数对应的替换函数的方式,来实现对目标小程序的功能逻辑转换。本申请实施例通过对基于源平台的源小程序进行代码转换得到目标小程序,并在目标平台运行目标小程序时,进行应用程序接口配置和功能逻辑转换,保证目标小程序的代码能够有效、稳定的在目标平台运行,减少了针对多个平台进行小程序开发的工作量,提升了小程序开发效率,节约了开发成本。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种小程序的编译方法的流程示意图;
图2示出了本申请实施例提供的另一种小程序的编译方法的流程示意图;
图3示出了本申请实施例提供的另一种小程序的编译方法的流程示意图;
图4示出了本申请实施例提供的一种小程序的运行方法的流程示意图;
图5示出了本申请实施例提供的一种小程序的编译装置的结构示意图;
图6示出了本申请实施例提供的另一种小程序的运行装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种小程序的编译方法,如图1所示,该方法包括:
步骤101,基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序。
本申请实施例用于实现将基于源平台的小程序编译为可以运行在目标平台的小程序,对小程序的编译包括两个部分,其一为执行前编译部分,其二为执行时编译部分。获得基于源平台的源小程序后,先针对源小程序进行静态编译转换,从小程序的源代码文件开始分析,基于源代码的DSL类型(DSL:领域特定语言,这里用于指代适用于例如支付宝小程序代码编写所使用到的特定编程语言及相关语法规则),如支付宝小程序DSL,分别读取不同类型的文件,并基于不同类型的代码文件进行代码转换,以使得转换后得到的目标小程序的代码与目标平台匹配。
步骤102,在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口。
在该实施例中,由于部分代码难以在静态编译时完成,或者在静态编译阶段可以完成转换,但这种方式带来的性能和代码体积开销较大、或实现编译时转换的成本太高。经过静态编译得到的目标小程序在目标平台中启动后,为保证目标小程序的有效运行,目标小程序执行时,可以进一步对目标小程序代码进行转换,具体可以先基于目标平台对应的目标代码类型,确定目标小程序的应用程序接口API,并对目标小程序的应用程序接口API进行配置,保证小程序调用入参以及结果返回的一致性。
步骤103,依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数。
步骤104,将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换。
在该实施例中,进行应用程序接口配置后,为保障小程序的各项功能的使用有效性和稳定性,还可以对目标小程序的各功能进行逻辑转换,具体的,可以针对目标小程序的各功能构造函数,确定功能构造函数在目标平台中对应的用于实现逻辑转换的替换函数,利用替换函数对小程序的功能构造函数进行替换,以将替换函数作为小程序功能的入口函数,在相应的功能被调用时,基于替换作用,可以调用该功能的功能构造函数对应的替换函数,从而通过调用替换函数对目标小程序的相应功能进行逻辑转换,以使目标小程序与目标平台相匹配,最终使得经过功能逻辑转换后的目标小程序可以稳定、有效的实现相应的功能。
通过应用本实施例的技术方案,对针对源平台开发的源小程序进行代码转换,将源小程序中的源代码转换为与目标平台的目标代码类型匹配的代码,得到目标小程序,接着,在目标平台启动目标小程序后,先对目标小程序的应用程序接口进行配置,以使目标小程序与目标平台的接口适配,保证小程序调用入参以及结果返回的一致性,进一步,利用与目标小程序的各功能构造函数对应的替换函数,对功能构造函数进行替换,通过调用功能构造函数对应的替换函数的方式,来实现对目标小程序的功能逻辑转换。本申请实施例通过对基于源平台的源小程序进行代码转换得到目标小程序,并在目标平台运行目标小程序时,进行应用程序接口配置和功能逻辑转换,保证目标小程序的代码能够有效、稳定的在目标平台运行,减少了针对多个平台进行小程序开发的工作量,提升了小程序开发效率,节约了开发成本。
在本申请实施例中,可选地,所述源代码类型包括多种,所述源小程序包括多种代码类型的代码块;步骤101,具体包括:
步骤101-1,当所述源小程序包括第一类型代码时,基于所述第一类型代码对应的第一目标代码类型,对第一类型代码模块以及所述第一类型代码模块之间的引用进行转换,并注入所述目标小程序的新增接口模拟代码,其中,第一类型包括JS类型;
步骤101-2,当所述源小程序包括第二类型代码时,基于所述第二类型代码对应的第二目标代码类型,对第二类型代码模块以及所述第二类型代码模块之间的引用进行转换,其中,第二类型包括WXS类型和/或SJS类型;
步骤101-3,当所述源小程序包括第三类型代码时,基于所述第三类型代码对应的第三目标代码类型,对所述第三类型代码的模板、指令、内置组件以及属性进行转换,其中,第三类型包括WXML类型和/或AXML类型;
步骤101-4,当所述源小程序包括第四类型代码时,基于所述第四类型代码对应的第四目标代码类型,对所述第四类型代码的选择器以及所述第四类型代码之间的引用进行转换,其中,第四类型包括WXSS类型和/或ACSS类型;
步骤101-5,当所述源小程序包括第五类型代码时,基于所述第五类型代码对应的第五目标代码类型,对所述第五类型代码的配置项以及所述第五类型代码之间的引用进行转换,其中,第五类型包括JSON类型。
在该实施例中,如图2所示,针对不同类型的代码文件,可以采用不同的代码转换方式进行编译,将其源代码编译为多端产物,即编译为基于一种或多种目标平台的目标小程序。具体的,依据源代码的类型,确定对应的目标代码类型,再依据目标代码类型进行编译。在实际应用场景中,如果源代码文件是JS类型,其对应的目标代码类型为JS类型,那么可以使用Typescript(TypeScript是微软开发的一个开源的编程语言,通过在JavaScript语言的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统)配合转换逻辑,对JS的模块和引用进行处理,同时基于小程序目标转换类型(即第一类型代码对应的第一目标代码类型),注入运行时代码转换相关逻辑,并最终生成目标小程序的JS代码。如果文件是WXS或SJS类型,那么可以使用Typescript配合转换逻辑,对WXS或SJS的模块和引用进行处理,并最终生成目标小程序的WXS或SJS代码;如果文件是WXML或AXML类型,那么可以使用PostHtml处理器配合转换逻辑,对WXML或AXML的模版、指令、内置组件和属性进行处理,并最终生成目标小程序的WXML或AXML或QML或SWAN或TTML代码;如果文件是WXSS或ACSS类型,那么可以使用PostCSS处理器配合转换逻辑,对WXSS或ACSS的选择器和引用进行处理,并最终生成目标小程序的WXSS或ACSS或QSS或CSS或TTSS代码;如果文件是JSON类型,则针对SON文件所涉及到的小程序配置项和引用进行处理,并最终生成目标小程序的JSON代码。
举例来说,模块和引用进行处理的作用是,比如对于 a.sjs 源代码文件引用了b.sjs 源代码文件,那么在完成转换之后可以变成 a.wxs 文件引用了 b.wxs 文件,这里涉及到的处理分为两部分,第一部分是 a.sjs 文件和 b.sjs 文件均被转换成了 wxs 文件,第二部分是 a.sjs 文件中对 b.sjs 文件的引用被替换为了 b.wxs。
在本申请实施例中,可选地,步骤101-1中“注入所述目标小程序的新增接口模拟代码”具体包括:基于所述源小程序的源平台以及所述目标平台,识别所述源平台相对于所述目标平台的增加接口,将所述增加接口作为所述目标小程序的新增接口;基于所述目标代码类型,在所述目标小程序中注入所述新增接口模拟代码。
在该实施例中,代码注入主要是针对 JS 文件,对不同平台小程序框架本身提供的各类接口进行模拟,比如基于平台1的小程序有A接口而基于平台2的小程序没有该接口,那么这时候如果一个平台1小程序需要运行在平台2上,就可以通过运行时代码注入来模拟实现A接口。在这里,比对源平台提供的接口和目标平台提供的接口,获取源平台相对于目标平台多出的接口,即上述的增加接口,将增加接口作为目标小程序的新增接口,从而注入新增接口模拟代码来模拟该接口功能。
在本申请实施例中,可选地,步骤102具体包括:步骤102-1,在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,将所述源小程序对应的源应用程序接口映射为所述目标小程序的目标应用程序接口。
在该实施例中,目标小程序在目标平台启动后,先运行小程序JS API的代码转换逻辑,具体可以将小程序源码DSL在源平台对应的JS API映射为目标小程序在目标平台的JS API,从而保障源代码的API调用入参和结果返回的一致性,保证小程序在目标平台的运行可靠性。
在本申请实施例中,可选地,所述功能构造函数包括注册小程序应用的第一构造函数、注册小程序页面的第二构造函数以及创建小程序自定义组件的第三构造函数;所述替换函数包括用于创建应用的第一替换函数、用于注册页面的第二替换函数以及用于创建组件的第三替换函数。步骤104,具体包括:
步骤104-1,将所述第一替换函数作为所述目标小程序的应用初始化入口函数,对所述目标小程序的第一构造函数进行替换,并通过调用所述第一替换函数对所述目标小程序的应用注册逻辑进行转换;
步骤104-2,将所述第二替换函数作为所述目标小程序的页面初始化入口函数,对所述目标小程序的第二构造函数进行替换,并通过调用所述第二替换函数,向所述目标小程序注入第一混入对象,以及对所述目标小程序的页面注册逻辑进行转换;
步骤104-3,将所述第二替换函数作为所述目标小程序的自定义组件初始化入口函数,对所述目标小程序的第三构造函数进行替换,并通过调用所述第三替换函数,向所述目标小程序注入第二混入对象,以及对所述目标小程序的自定义组件创建逻辑进行转换。
在该实施例中,目标小程序的功能构造函数具体可以包括注册小程序的APP构造函数,即第一构造函数APP,还可以包括注册小程序页面的构造函数,即第二构造函数Page,还可以包括创建小程序自定义组件的构造函数,即第三构造函数Component。在具体应用场景中,如图3所示,可以将createApp作为第一替换函数,使用createApp替换第一功能构造函数App作为小程序应用初始化的入口函数,在createApp被调用时进行App层面的、向目标平台的结构和逻辑转换,另外在转换完成后执行原App入口函数,即第一功能构造函数,实现相应的小程序应用初始化功能。可以将createPage作为第二替换函数,使用createPage替换第二功能构造函数Page作为小程序页面初始化的入口函数,在createPage被调用时,向目标小程序注入第一混入对象,以注入Mixins支持,并进行页面Page层面的、向目标平台的结构和逻辑转换,并在转换完成后,执行原Page入口函数,即第二功能构造函数,实现相应的小程序页面注册的功能。可以将createComponent作为第三替换函数,使用createComponent替换第三功能构造函数Component作为小程序自定义组件初始化的入口函数,在createComponent被调用时,向目标小程序注入第二混入对象,以注入Mixins的支持,另外对一些类型的平台还可以注入Behavior支持(例如源平台支持Behavior,而目标平台不支持Behavior的情况,需要注入Behavior支持。Behavior是用于组件间代码共享的特性,类似于一些编程语言中的Mixins,每个Behavior可以包含一组属性、数据、生命周期函数和方法,组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用),以及进行自定义组件Component层面的、向目标平台的结构和逻辑转换,并在转换完成后执行原Component入口函数,即第三功能构造函数。
进一步的,本申请实施例还提供了一种小程序的运行方法,如图4所示,该方法包括:
步骤401,在目标平台中启动目标小程序时,基于所述目标小程序的目标代码类型,配置所述目标小程序的应用程序接口,其中,所述目标小程序通过对源小程序进行代码转换得到;
步骤402,依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数,并将所述功能构造函数替换为所述替换函数;
步骤403,当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数。
在该实施例中,可以基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序。在获得目标小程序之后,需要在目标平台使用该目标小程序时,在目标平台启动目标小程序后,首先对目标小程序在目标平台的应用程序接口进行配置,具体可以基于目标代码类型,将源小程序对应的源应用程序接口映射为目标小程序的目标应用程序接口。接着,基于目标小程序的各功能的功能构造函数,确定功能构造函数对应替换函数,并将替换函数作为目标小程序相应功能的入口函数,对原来的功能构造函数进行替换,从而通过调用替换函数,对目标小程序进行功能逻辑转换,具体的,可以在小程序的某个功能被调用时,调用该功能的功能构造函数对应的替换函数,通过调用替换函数对小程序进行功能逻辑转换,以使编译和注入的代码能够在目标平台运行时生效,转换结束后执行原来的功能构造函数,实现小程序的功能,换句话说,在小程序运行的时候,通过代码逻辑动态添加到正确的内存对象上保证目标小程序能被正确的调用,即通过调用替换函数保证目标小程序被编译和注入的代码生效,使其能够稳定、有效的在目标平台运行,而后使用小程序功能时,执行对应的功能构造函数即可。
在本申请实施例中,可选地,步骤403具体包括:
步骤403-1,在对所述目标小程序进行首次功能调用时,执行所述替换函数以对所述目标小程序进行功能逻辑转换,存储逻辑转换结果,并基于所述逻辑转换结果执行所述功能构造函数;
步骤403-2,在对所述目标小程序进行非首次功能调用时,基于所述逻辑转换结果执行所述功能构造函数。
在该实施例中,对于目标小程序包含的各功能,只需要在功能被首次调用时,运行一次该功能对应的替换函数,通过替换函数对该功能进行逻辑转换,并将逻辑转换结果存储在本地内存中,进而在该功能下一次被调用时,由于之前已经进行过逻辑转换,且存储了逻辑转换结果,可以直接在内存中调用逻辑转换结果,并基于逻辑转换结果直接执行对应的功能构造函数即可。另外,小程序页面关闭时,销毁逻辑转换结果,清除内存,避免造成内存占用,影响设备运行效率。
需要说明的是,如图4所示的实施例中,目标小程序可以通过步骤101-1至步骤101-5的方式实现,步骤401可以通过步骤102-1的方式实现,步骤402至步骤403可以参考步骤104-1至步骤104-3的方式来实现功能逻辑转换,在此不再赘述。
进一步的,作为图1方法的具体实现,本申请实施例提供了一种小程序的编译装置,如图5所示,该装置包括:
代码转换模块,用于基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序;
接口配置模块,用于在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口;
逻辑转换模块,用于依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数;将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换。
可选地,所述代码转换模块,具体用于:
当所述源小程序包括第一类型代码时,基于所述第一类型代码对应的第一目标代码类型,对第一类型代码模块以及所述第一类型代码模块之间的引用进行转换,并注入所述目标小程序的新增接口模拟代码,其中,第一类型包括JS类型;
当所述源小程序包括第二类型代码时,基于所述第二类型代码对应的第二目标代码类型,对第二类型代码模块以及所述第二类型代码模块之间的引用进行转换,其中,第二类型包括WXS类型和/或SJS类型;
当所述源小程序包括第三类型代码时,基于所述第三类型代码对应的第三目标代码类型,对所述第三类型代码的模板、指令、内置组件以及属性进行转换,其中,第三类型包括WXML类型和/或AXML类型;
当所述源小程序包括第四类型代码时,基于所述第四类型代码对应的第四目标代码类型,对所述第四类型代码的选择器以及所述第四类型代码之间的引用进行转换,其中,第四类型包括WXSS类型和/或ACSS类型;
当所述源小程序包括第五类型代码时,基于所述第五类型代码对应的第五目标代码类型,对所述第五类型代码的配置项以及所述第五类型代码之间的引用进行转换,其中,第五类型包括JSON类型。
可选地,所述代码转换模块,还用于:
基于所述源小程序的源平台以及所述目标平台,识别所述源平台相对于所述目标平台的增加接口,将所述增加接口作为所述目标小程序的新增接口;
基于所述目标代码类型,在所述目标小程序中注入所述新增接口模拟代码。
可选地,所述功能构造函数包括注册小程序应用的第一构造函数、注册小程序页面的第二构造函数以及创建小程序自定义组件的第三构造函数;所述替换函数包括用于创建应用的第一替换函数、用于注册页面的第二替换函数以及用于创建组件的第三替换函数。
可选地,所述逻辑转换模块,具体用于:
将所述第一替换函数作为所述目标小程序的应用初始化入口函数,对所述目标小程序的第一构造函数进行替换,并通过调用所述第一替换函数对所述目标小程序的应用注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的页面初始化入口函数,对所述目标小程序的第二构造函数进行替换,并通过调用所述第二替换函数,向所述目标小程序注入第一混入对象,以及对所述目标小程序的页面注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的自定义组件初始化入口函数,对所述目标小程序的第三构造函数进行替换,并通过调用所述第三替换函数,向所述目标小程序注入第二混入对象,以及对所述目标小程序的自定义组件创建逻辑进行转换。
可选地,所述接口配置模块,具体用于:
在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,将所述源小程序对应的源应用程序接口映射为所述目标小程序的目标应用程序接口。
进一步的,作为图4方法的具体实现,本申请实施例提供了一种小程序的运行装置,如图6所示,该装置包括:
接口配置模块,用于在目标平台中启动目标小程序时,基于所述目标小程序的目标代码类型,配置所述目标小程序的应用程序接口,其中,所述目标小程序通过对源小程序进行代码转换得到;
逻辑转换模块,用于依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数,并将所述功能构造函数替换为所述替换函数;
执行模块,用于当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数。
可选地,所述执行模块,具体用于:
在对所述目标小程序进行首次功能调用时,执行所述替换函数以对所述目标小程序进行功能逻辑转换,存储逻辑转换结果,并基于所述逻辑转换结果执行所述功能构造函数;
在对所述目标小程序进行非首次功能调用时,基于所述逻辑转换结果执行所述功能构造函数。
需要说明的是,本申请实施例提供的一种小程序的编译装置所涉及各功能单元的其他相应描述,可以参考图1至图4方法中的对应描述,在此不再赘述。
基于上述如图1至图4所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1至图4所示的小程序的编译方法、小程序的运行方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1至图4所示的方法,以及图5至图6所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图4所示的小程序的编译方法、小程序的运行方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现对针对源平台开发的源小程序进行代码转换,将源小程序中的源代码转换为与目标平台的目标代码类型匹配的代码,得到目标小程序,接着,在目标平台启动目标小程序后,先对目标小程序的应用程序接口进行配置,以使目标小程序与目标平台的接口适配,保证小程序调用入参以及结果返回的一致性,进一步,利用与目标小程序的各功能构造函数对应的替换函数,对功能构造函数进行替换,通过调用功能构造函数对应的替换函数的方式,来实现对目标小程序的功能逻辑转换。本申请实施例通过对基于源平台的源小程序进行代码转换得到目标小程序,并在目标平台运行目标小程序时,进行应用程序接口配置和功能逻辑转换,保证目标小程序的代码能够有效、稳定的在目标平台运行,减少了针对多个平台进行小程序开发的工作量,提升了小程序开发效率,节约了开发成本。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (12)
1.一种小程序的编译方法,其特征在于,所述方法包括:
基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序;
在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口;
依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数;
将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换。
2.根据权利要求1所述的方法,其特征在于,所述基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序,具体包括:
当所述源小程序包括第一类型代码时,基于所述第一类型代码对应的第一目标代码类型,对第一类型代码模块以及所述第一类型代码模块之间的引用进行转换,并注入所述目标小程序的新增接口模拟代码,其中,第一类型包括JS类型;
当所述源小程序包括第二类型代码时,基于所述第二类型代码对应的第二目标代码类型,对第二类型代码模块以及所述第二类型代码模块之间的引用进行转换,其中,第二类型包括WXS类型和/或SJS类型;
当所述源小程序包括第三类型代码时,基于所述第三类型代码对应的第三目标代码类型,对所述第三类型代码的模板、指令、内置组件以及属性进行转换,其中,第三类型包括WXML类型和/或AXML类型;
当所述源小程序包括第四类型代码时,基于所述第四类型代码对应的第四目标代码类型,对所述第四类型代码的选择器以及所述第四类型代码之间的引用进行转换,其中,第四类型包括WXSS类型和/或ACSS类型;
当所述源小程序包括第五类型代码时,基于所述第五类型代码对应的第五目标代码类型,对所述第五类型代码的配置项以及所述第五类型代码之间的引用进行转换,其中,第五类型包括JSON类型。
3.根据权利要求2所述的方法,其特征在于,所述注入所述目标小程序的新增接口模拟代码,具体包括:
基于所述源小程序的源平台以及所述目标平台,识别所述源平台相对于所述目标平台的增加接口,将所述增加接口作为所述目标小程序的新增接口;
基于所述目标代码类型,在所述目标小程序中注入所述新增接口模拟代码。
4.根据权利要求1所述的方法,其特征在于,
所述功能构造函数包括注册小程序应用的第一构造函数、注册小程序页面的第二构造函数以及创建小程序自定义组件的第三构造函数;
所述替换函数包括用于创建应用的第一替换函数、用于注册页面的第二替换函数以及用于创建组件的第三替换函数。
5.根据权利要求4所述的方法,其特征在于,所述将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换,具体包括:
将所述第一替换函数作为所述目标小程序的应用初始化入口函数,对所述目标小程序的第一构造函数进行替换,并通过调用所述第一替换函数对所述目标小程序的应用注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的页面初始化入口函数,对所述目标小程序的第二构造函数进行替换,并通过调用所述第二替换函数,向所述目标小程序注入第一混入对象,以及对所述目标小程序的页面注册逻辑进行转换;
将所述第二替换函数作为所述目标小程序的自定义组件初始化入口函数,对所述目标小程序的第三构造函数进行替换,并通过调用所述第三替换函数,向所述目标小程序注入第二混入对象,以及对所述目标小程序的自定义组件创建逻辑进行转换。
6.根据权利要求1所述的方法,其特征在于,所述在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口,具体包括:
在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,将所述源小程序对应的源应用程序接口映射为所述目标小程序的目标应用程序接口。
7.一种小程序的运行方法,其特征在于,所述方法包括:
在目标平台中启动目标小程序时,基于所述目标小程序的目标代码类型,配置所述目标小程序的应用程序接口,其中,所述目标小程序通过对源小程序进行代码转换得到;
依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数,并将所述功能构造函数替换为所述替换函数;
当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数。
8.根据权利要求7所述的方法,其特征在于,所述当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数,具体包括:
在对所述目标小程序进行首次功能调用时,执行所述替换函数以对所述目标小程序进行功能逻辑转换,存储逻辑转换结果,并基于所述逻辑转换结果执行所述功能构造函数;
在对所述目标小程序进行非首次功能调用时,基于所述逻辑转换结果执行所述功能构造函数。
9.一种小程序的编译装置,其特征在于,包括:
代码转换模块,用于基于源小程序的源代码类型,将所述源小程序的源代码向目标平台的目标代码类型进行转换,得到目标小程序;
接口配置模块,用于在所述目标平台中启动所述目标小程序时,基于所述目标代码类型,配置所述目标小程序的应用程序接口;
逻辑转换模块,用于依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数;将所述功能构造函数替换为所述替换函数,并通过调用所述替换函数对所述目标小程序进行功能逻辑转换。
10.一种小程序的运行装置,其特征在于,所述装置包括:
接口配置模块,用于在目标平台中启动目标小程序时,基于所述目标小程序的目标代码类型,配置所述目标小程序的应用程序接口,其中,所述目标小程序通过对源小程序进行代码转换得到;
逻辑转换模块,用于依据所述目标小程序的功能构造函数,获取所述功能构造函数对应的替换函数,并将所述功能构造函数替换为所述替换函数;
执行模块,用于当所述替换函数被调用时,对所述目标小程序进行功能逻辑转换后,执行所述功能构造函数。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法。
12.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210147021.0A CN114185551B (zh) | 2022-02-17 | 2022-02-17 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
PCT/CN2023/088583 WO2023155940A1 (zh) | 2022-02-17 | 2023-04-17 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210147021.0A CN114185551B (zh) | 2022-02-17 | 2022-02-17 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114185551A true CN114185551A (zh) | 2022-03-15 |
CN114185551B CN114185551B (zh) | 2022-06-21 |
Family
ID=80546130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210147021.0A Active CN114185551B (zh) | 2022-02-17 | 2022-02-17 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114185551B (zh) |
WO (1) | WO2023155940A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995830A (zh) * | 2022-08-03 | 2022-09-02 | 浙江口碑网络技术有限公司 | 一种代码编译方法及装置 |
CN115328529A (zh) * | 2022-06-30 | 2022-11-11 | 北京亚控科技发展有限公司 | 应用管理方法及相关设备 |
WO2023155940A1 (zh) * | 2022-02-17 | 2023-08-24 | 拉扎斯网络科技(上海)有限公司 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030196196A1 (en) * | 2002-04-12 | 2003-10-16 | Nylander Charles G. | Program interpreter |
EP1890228A2 (de) * | 2006-08-18 | 2008-02-20 | Giesecke & Devrient GmbH | Automatisches Erzeugen einer Anwendung |
CN107239318A (zh) * | 2017-06-13 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 应用转换方法、装置及设备 |
CN108319483A (zh) * | 2018-01-30 | 2018-07-24 | 腾讯科技(深圳)有限公司 | 网页处理方法、装置、终端及存储介质 |
CN109814942A (zh) * | 2018-12-19 | 2019-05-28 | 北京城市网邻信息技术有限公司 | 一种参数处理方法及装置 |
CN110442344A (zh) * | 2019-08-14 | 2019-11-12 | 中国工商银行股份有限公司 | 用于跨平台转换应用的方法、装置、系统及介质 |
CN110968325A (zh) * | 2019-10-28 | 2020-04-07 | 苏宁云计算有限公司 | 一种小程序转换方法及装置 |
CN111381825A (zh) * | 2020-03-06 | 2020-07-07 | 北京五八信息技术有限公司 | 一种小程序的生成方法和装置 |
CN111580820A (zh) * | 2020-05-25 | 2020-08-25 | 泰康保险集团股份有限公司 | 一种小程序生成方法和装置 |
CN111610978A (zh) * | 2020-05-19 | 2020-09-01 | 中国建设银行股份有限公司 | 一种小程序转换方法、装置、设备及存储介质 |
CN111651141A (zh) * | 2020-05-25 | 2020-09-11 | 北京百度网讯科技有限公司 | 小程序落地页的展现方法、装置、电子设备和存储介质 |
CN112527415A (zh) * | 2020-12-23 | 2021-03-19 | 深圳尚米网络技术有限公司 | 小程序跨平台迁移方法、装置、设备和介质 |
CN112748914A (zh) * | 2020-03-18 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 一种应用程序开发方法、装置、电子设备和存储介质 |
CN112905179A (zh) * | 2021-03-26 | 2021-06-04 | 中国建设银行股份有限公司 | 移动端h5页面生成方法、装置、电子设备和存储介质 |
CN113672224A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 小程序页面代码生成方法、装置及计算机设备 |
CN113805890A (zh) * | 2021-09-10 | 2021-12-17 | 中国银联股份有限公司 | 小程序跨应用迁移方法、设备、终端、系统及存储介质 |
CN113946384A (zh) * | 2021-10-15 | 2022-01-18 | 中电金信软件有限公司 | 一种小程序的运行方法、装置及电子设备 |
US20220035610A1 (en) * | 2020-07-30 | 2022-02-03 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method for compilation optimization of hosted app, electronic device and readable storage medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331425B2 (en) * | 2017-06-28 | 2019-06-25 | Google Llc | Automated source code adaption to inject features between platform versions |
CN114185551B (zh) * | 2022-02-17 | 2022-06-21 | 浙江口碑网络技术有限公司 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
-
2022
- 2022-02-17 CN CN202210147021.0A patent/CN114185551B/zh active Active
-
2023
- 2023-04-17 WO PCT/CN2023/088583 patent/WO2023155940A1/zh unknown
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030196196A1 (en) * | 2002-04-12 | 2003-10-16 | Nylander Charles G. | Program interpreter |
EP1890228A2 (de) * | 2006-08-18 | 2008-02-20 | Giesecke & Devrient GmbH | Automatisches Erzeugen einer Anwendung |
CN107239318A (zh) * | 2017-06-13 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 应用转换方法、装置及设备 |
CN108319483A (zh) * | 2018-01-30 | 2018-07-24 | 腾讯科技(深圳)有限公司 | 网页处理方法、装置、终端及存储介质 |
CN109814942A (zh) * | 2018-12-19 | 2019-05-28 | 北京城市网邻信息技术有限公司 | 一种参数处理方法及装置 |
CN110442344A (zh) * | 2019-08-14 | 2019-11-12 | 中国工商银行股份有限公司 | 用于跨平台转换应用的方法、装置、系统及介质 |
CN110968325A (zh) * | 2019-10-28 | 2020-04-07 | 苏宁云计算有限公司 | 一种小程序转换方法及装置 |
CN113110825A (zh) * | 2020-03-06 | 2021-07-13 | 北京五八信息技术有限公司 | 一种小程序的接口转换方法和装置 |
CN112965719A (zh) * | 2020-03-06 | 2021-06-15 | 北京五八信息技术有限公司 | 一种小程序的生成方法和装置 |
CN111381825A (zh) * | 2020-03-06 | 2020-07-07 | 北京五八信息技术有限公司 | 一种小程序的生成方法和装置 |
CN112748914A (zh) * | 2020-03-18 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 一种应用程序开发方法、装置、电子设备和存储介质 |
CN111610978A (zh) * | 2020-05-19 | 2020-09-01 | 中国建设银行股份有限公司 | 一种小程序转换方法、装置、设备及存储介质 |
CN111580820A (zh) * | 2020-05-25 | 2020-08-25 | 泰康保险集团股份有限公司 | 一种小程序生成方法和装置 |
CN111651141A (zh) * | 2020-05-25 | 2020-09-11 | 北京百度网讯科技有限公司 | 小程序落地页的展现方法、装置、电子设备和存储介质 |
US20220035610A1 (en) * | 2020-07-30 | 2022-02-03 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method for compilation optimization of hosted app, electronic device and readable storage medium |
CN112527415A (zh) * | 2020-12-23 | 2021-03-19 | 深圳尚米网络技术有限公司 | 小程序跨平台迁移方法、装置、设备和介质 |
CN112905179A (zh) * | 2021-03-26 | 2021-06-04 | 中国建设银行股份有限公司 | 移动端h5页面生成方法、装置、电子设备和存储介质 |
CN113672224A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 小程序页面代码生成方法、装置及计算机设备 |
CN113805890A (zh) * | 2021-09-10 | 2021-12-17 | 中国银联股份有限公司 | 小程序跨应用迁移方法、设备、终端、系统及存储介质 |
CN113946384A (zh) * | 2021-10-15 | 2022-01-18 | 中电金信软件有限公司 | 一种小程序的运行方法、装置及电子设备 |
Non-Patent Citations (5)
Title |
---|
IVAN BACHER: "Scoped: Evaluating A Composite Visualisation of the Scope Chain Hierarchy Within Source Code", 《2018 IEEE WORKING CONFERENCE ON SOFTWARE VISUALIZATION (VISSOFT)》 * |
宋倩等: "一种程序源代码的标准化流程图转化方法", 《计算机与数字工程》 * |
徐鸿雁等: "基于J2ME平台的码头货物管理系统的设计", 《计算机与现代化》 * |
滴滴出行CHAMELEON团队: "直接拿来用!前端如何快速实现跨平台开发", 《百度》 * |
高艳玲: "编译原理――C教学编译器设计", 《电脑知识与技术》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023155940A1 (zh) * | 2022-02-17 | 2023-08-24 | 拉扎斯网络科技(上海)有限公司 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
CN115328529A (zh) * | 2022-06-30 | 2022-11-11 | 北京亚控科技发展有限公司 | 应用管理方法及相关设备 |
CN115328529B (zh) * | 2022-06-30 | 2023-08-18 | 北京亚控科技发展有限公司 | 应用管理方法及相关设备 |
WO2024002229A1 (zh) * | 2022-06-30 | 2024-01-04 | 北京亚控科技发展有限公司 | 应用管理方法及相关设备 |
CN114995830A (zh) * | 2022-08-03 | 2022-09-02 | 浙江口碑网络技术有限公司 | 一种代码编译方法及装置 |
CN114995830B (zh) * | 2022-08-03 | 2022-11-11 | 浙江口碑网络技术有限公司 | 一种代码编译方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114185551B (zh) | 2022-06-21 |
WO2023155940A1 (zh) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114185551B (zh) | 小程序的编译方法、小程序的运行方法及装置、存储介质 | |
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN109325195B (zh) | 浏览器的渲染方法和系统、计算机设备、计算机存储介质 | |
CN108829378B (zh) | 一种应用软件的开发方法、装置及电子设备 | |
US8762963B2 (en) | Translation of programming code | |
CN110531962A (zh) | 小程序的开发处理方法、设备及计算机可读存储介质 | |
US10809988B2 (en) | Processor emulation using multiple translations | |
CN111111201B (zh) | 一种基于游戏的技能创建方法、装置、服务器及介质 | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN114924810B (zh) | 一种异构程序执行方法、装置、计算设备及可读存储介质 | |
CN111880801A (zh) | 应用程序动态化方法、装置、电子设备 | |
CN115878502A (zh) | 一种页表创建方法、处理器验证方法、装置及电子设备 | |
CN111930398A (zh) | 应用程序更新方法、装置、系统、介质及设备 | |
CN105335203B (zh) | 共享库的二进制翻译执行方法和装置 | |
CN112631915B (zh) | 一种pcie设备软件仿真的方法、系统、设备及介质 | |
CN114138376A (zh) | 一种在应用中加载插件的方法、计算设备及存储介质 | |
CN113238761A (zh) | 跨平台软件开发方法、装置、电子设备及存储介质 | |
CN107092472A (zh) | 一种动态发布方法及设备 | |
CN114020278B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114296718A (zh) | 一种Windows系统组件的设置方法及装置 | |
CN116775202A (zh) | 模糊测试方法、装置、介质、电子设备及计算机程序产品 | |
CN114706586A (zh) | 代码编译、代码运行方法、装置、计算机设备及存储介质 | |
CN114253615B (zh) | 一种引导程序设置方法、装置、电子设备及存储介质 | |
CN117472458B (zh) | 系统功能优化配置方法、装置、电子设备及存储介质 | |
Tijms | Binary translation: Classification of emulators |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230301 Address after: Room 507, 788 Zhenbei Road, Putuo District, Shanghai, 200333 Patentee after: Lazas Network Technology (Shanghai) Co., Ltd. Address before: 310012 block g, 11 / F, building a, Paradise Software Park, No.3 xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: ZHEJIANG KOUBEI NETWORK TECHNOLOGY Co.,Ltd. |