CN111427569B - 免安装程序适配方法、装置、电子设备及存储介质 - Google Patents

免安装程序适配方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111427569B
CN111427569B CN201910023526.4A CN201910023526A CN111427569B CN 111427569 B CN111427569 B CN 111427569B CN 201910023526 A CN201910023526 A CN 201910023526A CN 111427569 B CN111427569 B CN 111427569B
Authority
CN
China
Prior art keywords
installation
target platform
free program
program
features
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.)
Active
Application number
CN201910023526.4A
Other languages
English (en)
Other versions
CN111427569A (zh
Inventor
张楠
杨益良
许国栋
曲亚童
王知良
孙立
陈靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN201910023526.4A priority Critical patent/CN111427569B/zh
Publication of CN111427569A publication Critical patent/CN111427569A/zh
Application granted granted Critical
Publication of CN111427569B publication Critical patent/CN111427569B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种免安装程序适配方法、装置、电子设备及存储介质,涉及计算机软件技术领域,其中,该方法获取基于预设框架中预设标准语言的免安装程序的源程序,根据该免安装程序的源程序,获取该源程序的公共特征和差异化特征,使得基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,通过多态组件中的差异化特征,适配免安装程序的目标平台的差异需求,进而输出与目标平台相匹配的免安装程序,可以实现采用标准化的语言和框架来开发免安装程序,进而根据需要适配的目标平台进行适配即可,实现通过编译、代码运行框架技术等让一套代码就可以实现在不同端运行,大大提高免安装程序的开发效率。

Description

免安装程序适配方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机软件技术领域,具体而言,涉及一种免安装程序适配方法、装置、电子设备及存储介质。
背景技术
小程序是一种不用下载就能使用的应用,用户扫一扫或搜一下即可打开应用,被广泛应用在企业、政府、媒体、其他组织或个人,从而提供不同的服务。例如快应用、百度智能小程序、微信小程序、支付宝小程序、头条小程序等。
现有的,将小程序服务于各种应用平台时,一般地,对于某一特定的应用平台,需要依据小程序的开发流程,按照设计、开发、测试等的过程进行,以便满足不同应用平台的使用。
但现有的对小程序的开发,为了实现各个小程序在不同应用平台的使用,往往需要重复开发、测试,小程序的可维护性较差、开发效率较低。
发明内容
有鉴于此,本申请实施例的目的在于提供一种免安装程序适配方法、装置、电子设备及存储介质,免安装程序可以适配在不同的目标平台中使用,具有开发效率高的特点。
一方面,本申请实施例提供一种免安装程序适配方法,包括:获取基于预设框架中预设标准语言的免安装程序的源程序;根据免安装程序的源程序,获取免安装程序的公共特征和差异化特征;基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的免安装程序。
可选地,基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的所述免安装程序,包括:基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,基于所述目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序,包括:
查找多态组件库中是否存在目标平台的适配代码;若存在,则获取目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序,包括:查找多态组件库中是否存在目标平台的适配代码;若不存在,则接收用户输入的目标平台的适配代码;基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,接收用户输入的目标平台的适配代码之后,还包括:
将目标平台的适配代码添加至多态组件库中,获取更新的多态组件库。
可选地,获取基于预设框架中预设标准语言的免安装程序的源程序之前,还包括:获取各平台的公共特征和差异化特征;将公共特征和差异化特征转换为预设标准语言,构建预设框架。
可选地,差异化特征包括:免开发程序模板和/或系统接口。
可选地,基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的免安装程序之后,还包括:
渲染目标平台匹配的免安装程序,获取适配于目标平台的免安装程序界面。
另一方面,本申请实施例还提供一种免安装程序适配装置,包括:第一获取模块、第二获取模块和输出模块;
第一获取模块,用于获取基于预设框架中预设标准语言的免安装程序的源程序;第二获取模块,用于根据免安装程序的源程序,获取免安装程序的公共特征和差异化特征;输出模块,用于基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的免安装程序。
可选地,输出模块,具体用于基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,输出模块,具体还用于查找多态组件库中是否存在目标平台的适配代码;若存在,则获取目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,输出模块,具体还用于查找多态组件库中是否存在目标平台的适配代码;若不存在,则接收用户输入的目标平台的适配代码;基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,输出模块,具体还用于将目标平台的适配代码添加至多态组件库中,获取更新的多态组件库。
可选地,该装置还包括第三获取模块和构建模块。
第三获取模块,用于获取各平台的公共特征和差异化特征;构建模块,用于将公共特征和差异化特征转换为预设标准语言,构建预设框架。
可选地,差异化特征包括:免开发程序模板和/或系统接口。
可选地,该装置还包括渲染模块;渲染模块,用于渲染目标平台匹配的免安装程序,获取适配于目标平台的免安装程序界面。
另一方面,本申请实施例还提供一种电子设备,包括:处理器、存储介质和总线;
存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如上述一方面提供的免安装程序适配方法的步骤。
另一方面,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述一方面提供的免安装程序适配方法的步骤。
基于上述任一方面,本发明的有益效果是:本申请实施例中,获取基于预设框架中预设标准语言的免安装程序的源程序,根据该免安装程序的源程序,获取该源程序的公共特征和差异化特征,使得基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,通过多态组件中的差异化特征,适配免安装程序的目标平台的差异需求,进而输出与目标平台相匹配的免安装程序,可以实现采用标准化的语言和框架来开发免安装程序,进而根据需要适配的目标平台进行适配即可,大大提高免安装程序的开发效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种免安装程序适配方法流程示意图;
图2示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图;
图3示出了本申请实施例所提供的又一种免安装程序适配方法流程示意图;
图4示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图;
图5示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图;
图6示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图;
图7示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图;
图8示出了本申请实施例所提供的又一种免安装程序适配方法流程示意图;
图9示出了本申请实施例所提供的一种免安装程序适配装置的结构示意图;
图10示出了本申请实施例所提供的另一种免安装程序适配装置的结构示意图;
图11示出了本申请实施例所提供的又一种免安装程序适配装置的结构示意图;
图12示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合免安装程序开发,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕免安装程序进行描述,但是应该理解,这仅是一个示例性实施例。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
首先,对本申请的应用场景进行介绍。本申请中的免安装程序可以适配于多端目标平台,通过目标平台可以实现对免安装程序的应用。本申请中的平台可以是不同应用程序(客户端)对应的平台,此外,本申请并不对该平台的运行系统进行限定,该系统可以是iOS系统、Android系统、Windows系统或其他。同时,上述免安装程序可以安装于各种终端,该终端可以是平板电脑、笔记本电脑、移动电话、个人数字助理(Personal DigitalAssistant,PDA)、智能手表、销售点(Point of sales,POS)设备、车载电脑、车载电视、或可穿戴设备等,或其任意组合。
为了更好地理解本申请以下的各实施例,这里对部分名词解释如下:
免安装程序:也可以称为“小程序”,即无需下载安装就可以使用的应用,可以集成于其他应用程序中,例如微信小程序、支付宝小程序等。
WPF(Windows Presentation Foundation):基于Windows的用户界面框架,属于.NET Framework 3.0的一部分,WPF提供了统一的编程模型、语言和框架,可以分离界面设计人员与开发人员的工作,同时提供了全新的多媒体交互用户图形界面。
Microsoft Silverlight:一个跨浏览器的、跨平台的插件,提供灵活的编程模型,并可以很方便地集成到现有的网络应用程序中。
MVVM(Model View ViewModel)框架:通过利用WPF和Microsoft Silverlight的特性来简化用户界面的事件驱动程序设计。其中,包括界面层(View)、视图模板(ViewModel)层和逻辑层(Model),通过视图模板这一层将界面层和逻辑层隔离开来,提供简单的DSL(JSX、Vue Template)模板来绑定逻辑层提供的数据,关联界面层和逻辑层的响应事件关系。
iOS(iPhone Operating System,苹果公司的移动操作系统)系统:由苹果公司开发的移动操作系统,属于类Unix的商业操作系统,可以应用于iPhone、iPod touch、iPad以及Apple TV等产品上。
Android系统:一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑。
Objective-C语言:扩充C的面向对象编程语言。
Java语言:静态面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
JavaScript语言:一种基于对象、设计简单紧凑、可以跨平台的脚本语言。
Weex:一种运行Android、iOS、web端的语言框架。
多态协议:一种代码语法糖,帮助分割跨目标平台的公用代码和下层各端代码,提升可维护性。
图1示出了本申请实施例所提供的一种免安装程序适配方法流程示意图。该方法的执行主体可以是开发程序所使用的终端、服务器等,在此不作限制。如图1所示,该方法包括:
S101、获取基于预设框架中预设标准语言的免安装程序的源程序。
本申请实施例中,基于一种标准化框架以及标准化语言来统一编写源程序,进而再适配于不同的平台。其中,免安装程序适配目标平台的过程中,需要关注界面层、逻辑处理层以及系统接口层。
预设框架指的是可以将界面层和逻辑处理层隔离开来的框架,该框架可以是MVVM框架或其他。预设标准语言是基于预设框架,可以完成免安装程序源程序编写的语言。
本申请以设计的Chameleon框架为例,Chameleon可以理解为运行任意以MVVM架构设计客户端的程序语言框架,免安装程序的源程序包括:视图层、逻辑层、样式层,其中,视图层的预设标准语言可以为CML语言、逻辑层的预设标准语言可以为JavaScript脚本语言、样式层的预设标准语言可以为CMSS语言。当然不以上述语言为例,可以根据实际应用情况提前配置预设标准语言。其中,JavaScript脚本语言是一种基于对象、设计简单紧凑、可以跨平台的脚本语言;CML语言(Chameleon Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构;CMSS(Chameleon Style Sheets)是一套样式语言,用于描述CML的组件样式。
免安装程序是用于目标平台无需下载安装就可以使用的小程序,该免安装程序可以是微信小程序、支付宝小程序、百度智能小程序、今日头条小程序或快应用等,本申请并不对免安装程序的类别进行限制。
本申请中以预设框架为MVVM框架、免安装程序为微信小程序中共享单车的小程序为例进行说明,也就是基于MVVM框架中的预设标准语言,获取使用该预设标准语言编写的共享单车小程序的源程序。
S102、根据免安装程序的源程序,获取免安装程序的公共特征和差异化特征。
其中,免安装程序的公共特征指的是,免安装程序运行于不同目标平台时,不同目标平台可以公用的部分程序特征;免安装程序的差异特征指的是,免安装程序运行于不同目标平台时,部分个性化的特征,即不同平台需要适配不同的内容。
在使用预设标准语言获取免安装程序的源程序之后,根据获取的免安装程序的源程序,将获取该源程序中的公共特征和差异特征,比如:免安装程序以共享单车的小程序为例进行说明,在使用预设标准语言获取到该共享单车的小程序的源程序之后,将进一步获取该共享单车的小程序运行于不同客户端,例如运行于不同客户端时的公共特征和差异特征,其中,该共享单车的源程序分别运行于不同客户端时,可以公用的源程序即为该共享单车小程序的公共特征,不可以公用的、需要修改、调整的源程序即为该共享单车小程序的差异化特征。
举例说明,基于MVVM框架编写的免安装程序中,渲染引擎(render engine)层和虚拟机层可以公用,即为公共特征部分。但是采用不同的域专用语言(Domain SpecifiedLanguage,DSL)模板、不同的系统扩展接口等,即为差异化特征部分。
S103、基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的免安装程序。
其中,免安装程序的目标平台可以是不同客户端(应用程序)对应的平台,该目标平台的运行系统可以是iOS系统、Android系统、Windows系统或其他,本申请在此便不再赘述。多态组件可以包括输入端、输出端,将上述免安装程序的源程序通过输入端输入,进而将公共特征和差异化特征进行隔离,分别进行处理,从而可以将免安装程序的公共特征和差异化特征与目标平台进行适配,获取可以满足不同目标平台下的差异化需求的免安装程序。
其中,多态组件提供大量通过多态协议写的基础组件,通过不同的基础组件可以编译适配于不同目标平台的程序。
例如:免安装程序为共享单车小程序,目标平台为微信运行平台时,即未来在微信客户端运行,将调用多态组件适配公共特征和差异化特征,输出与该微信运行平台相匹配的共享单车小程序。而免安装程序为共享单车小程序,目标平台为基于百度运行平台时,即未来在百度客户端运行,那么调用多态组件适配公共特征和差异化特征,输出与百度运行平台相匹配的共享单车小程序。其中,调用多态组件之前,可以通过程序指令指示目标平台,本申请不做具体限制。
综上所述,本申请所提供的免安装程序适配方法,获取基于预设框架中预设标准语言的免安装程序的源程序,根据该免安装程序的源程序,获取该源程序的公共特征和差异化特征,使得基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,通过多态组件中的差异化特征,适配免安装程序的目标平台的差异需求,进而输出与目标平台相匹配的免安装程序,可以实现采用标准化的语言和框架来开发免安装程序,进而根据需要适配的目标平台进行适配即可,实现通过编译、代码运行框架技术等让一套代码就可以实现在不同端(不同客户端、不同操作系统)运行,大大提高免安装程序的开发效率。
上述输出的与目标平台匹配的免安装程序即可以通过在目标平台对应的客户端上搜索运行。
需要说明的是,在适配获取与目标平台匹配的免安装程序之外,还可以获取适配于目标平台客户端的软件开发工具(Software Development Kit,SDK)包,该SDK包也可以基于上述预设框架、预设标准语音编写的免安装程序的源程序获取,即调用多态组件适配公共特征和差异化特征,获取与目标平台匹配的SDK包。类似地,SDK包的公共特征为:渲染引擎、虚拟机;差异化特征为:DSL模板、系统扩展接口等。
需要运行上述免安装程序时,目标平台的客户端(APP)调用上述SDK包渲染上述与目标平台匹配的免安装程序。
图2示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图。可选地,如图2所示,基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的所述免安装程序,包括:
S201、基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
目标平台的适配代码指的是目标平台可以运行的代码,对于不同的目标平台,该适配代码可能相同也可能不同。比如:对于目标平台的界面层,同样是绘制界面,适配代码可能不同。
因此,基于目标平台的适配代码,调用多态组件,对免安装程序的公共特征和差异化特征进行编译,编译成该目标平台可以识别的适配代码,从而输出与该目标平台相匹配的免安装程序。
比如:目标平台的适配代码可能为微信小程序代码、web代码、weex代码等,将基于预设框架中预设标准语言的免安装程序的源程序编译成该目标平台可以识别的代码,输出与该目标平台相匹配的免安装程序。
图3示出了本申请实施例所提供的又一种免安装程序适配方法流程示意图;可选地,如图3所示,基于所述目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序,可以包括:
S301、查找多态组件库中是否存在目标平台的适配代码。
在不断地积累过程中,多态组件可以包含各种平台对应的基础组件,进而可以转换成各种平台的适配代码。比如,可以基于目标平台的标识等,可以先查找态组件库中是否存在目标平台的适配代码,便于判定该多态组件是否可以直接对对公共特征和差异化特征进行编译,编译成该目标平台可以识别的适配代码,从而输出与目标平台匹配的免安装程序。
S302、若存在,则获取目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
查找发现多态组件库中存在目标平台的适配代码,则可直接对公共特征和差异化特征进行编译,编译成该目标平台可以识别的适配代码,从而输出与该目标平台相匹配的免安装程序。
可选地,多态组件通过语法检查、语法转译等,将公共特征和差异化特征编译成该目标平台可以识别的适配代码。其中,可以识别的适配代码包括:可以识别代码的种类、语法、编译方式等。
图4示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图。在上述实施例的基础上,也可能多态组件中还未包含目标平台的适配代码,那么可以由程序员进行添加。也即多态组件可以通过不断地积累越来越丰富,适配更多的平台。
可选地,如图4所示,基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序,包括:
S401、查找多态组件库中是否存在目标平台的适配代码。
该步骤与S301步骤中的功能类似,本申请在此不再赘述。
S402、若不存在,则接收用户输入的目标平台的适配代码。
对于查找发现多态组件库中并不存在目标平台的适配代码,则接收用户基于多态协议输入的目标平台的适配代码。
S403、基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
在接收用户输入的目标平台的适配代码后,将基于该输入的适配代码,对公共特征和差异化特征进行编译,编译成该目标平台可以识别的适配代码,从而输出与目标平台匹配的免安装程序。
图5示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图。可选地,如图5所示,接收用户输入的目标平台的适配代码之后,还包括:
S501、将目标平台的适配代码添加至多态组件库中,获取更新的多态组件库。
对于查找多态组件库中不存在目标平台的适配代码时,接收用户输入的目标平台的适配代码,并将目标平台的适配代码添加至多态组件库中,实现对多态组件库的更新,便于下次再次基于该目标平台,可以直接调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序,避免了用户再次输入该目标平台的适配代码。
图6示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图。可选地,如图6所示,获取基于预设框架中预设标准语言的免安装程序的源程序之前,还包括:
S601、获取各平台的公共特征和差异化特征。
其中,各平台即指的是应用免安装程序的各目标平台,各目标平台之间具有相同的部分和不同的部分,对于相同的部分所对应的特征,可以作为各平台的公共特征,而对于各目标平台不同的部分所对应的特征,则作为各平台的差异化特征。
分析各个平台适用的免安装程序,例如:微信小程序由渲染引擎(render engine)层、微信DSL模板、虚拟机层、微信系统扩展接口组成;支付宝小程序由render engine层、支付宝DSL模板、虚拟机层、支付宝系统扩展接口组成;百度小程序由render engine层、百度DSL模板、虚拟机层、百度系统扩展接口组成。分析可见,目前主流的小程序包括的公共特征有:render engine层、虚拟机层;主要差异化特征在于DSL模板和系统扩展接口。
那么构建预设框架时,可以收集不同平台对应的DSL模板和系统扩展接口,将他们都采用预设标准语言标准化。
S602、将公共特征和差异化特征转换为预设标准语言,构建预设框架。
根据获取的各平台的公共特征和差异化特征,依据该公共特征和差异化特征,将公共特征和差异化特征转换为预设标准语言,从而构建预设框架,之后便可以获取基于预设框架中预设标准语言的免安装程序的源程序。
可选地,差异化特征包括:免开发程序模板和/或系统接口。
对于免开发程序模板,例如可以是DSL模板,可以通过模板列举的方式列举所有的免开发程序模板,比如,该免开发程序模板可以包括:与微信小程序对应的微信DSL模板、与支付宝小程序对应的支付宝DSL模板、与百度小程序对应的百度DSL模板、与快应用对应的快应用DSL模板等,本申请并不对此进行限定。
类似地,对于不同平台,也将对应不同的系统接口,可以通过模板列举的方式列举所有的系统接口,比如,该系统接口可以包括:微信扩展系统接口、支付宝扩展系统接口、百度扩展系统接口、快应用扩展系统接口等,本申请并不对此进行限定。
此外,根据实际的应用情况,也可以对免开发程序模板和/或系统接口进行更新,以使得基于该更新后的免开发程序模板和/或系统接口可以适配更多的平台。
图7示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图。可选地,如图7所示,基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的免安装程序之后,还包括:
S701、渲染目标平台匹配的免安装程序,获取适配于目标平台的免安装程序界面。
在输出与目标平台匹配的免安装程序后,将渲染与目标平台匹配的免安装程序,从而使得可以适配于在目标平台的免安装程序界面,使得免安装程序界面可以呈现在目标平台中。
可选地,通过与目标平台匹配的SDK包渲染该目标平台匹配的免安装程序。可以在编写免安装程序的端测试渲染,也可以在实际使用免安装程序的终端上调用与目标平台匹配的SDK包渲染该目标平台匹配的免安装程序。
图8示出了本申请实施例所提供的另一种免安装程序适配方法流程示意图。可选地,如图8所示,该方法包括:
S801、获取各平台的公共特征和差异化特征。
S802、将公共特征和差异化特征转换为预设标准语言,构建预设框架。
S803、获取基于预设框架中预设标准语言的免安装程序的源程序。
S804、根据免安装程序的源程序,获取免安装程序的公共特征和差异化特征。
S805、查找多态组件库中是否存在目标平台的适配代码。
若存在则执行S806,不存在则依次执行S807、S808和S809。
S806、若存在,则获取目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
S807、若不存在,则接收用户输入的目标平台的适配代码。
S808、将目标平台的适配代码添加至多态组件库中,获取更新的多态组件库。
S809、基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
S810、渲染目标平台匹配的免安装程序,获取适配于目标平台的免安装程序界面。
图9示出了本申请实施例所提供的一种免安装程序适配装置的结构示意图。如图9所示,该装置,包括:第一获取模块210、第二获取模块220和输出模块230。
第一获取模块210,用于获取基于预设框架中预设标准语言的免安装程序的源程序。
第二获取模块220,用于根据免安装程序的源程序,获取免安装程序的公共特征和差异化特征。
输出模块230,用于基于免安装程序的目标平台,调用多态组件适配公共特征和差异化特征,输出与目标平台匹配的免安装程序。
可选地,输出模块230,具体用于基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,输出模块230,具体还用于查找多态组件库中是否存在目标平台的适配代码;若存在,则获取目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,输出模块230,具体还用于查找多态组件库中是否存在目标平台的适配代码;若不存在,则接收用户输入的目标平台的适配代码;基于目标平台的适配代码,调用多态组件,对公共特征和差异化特征进行编译,输出与目标平台匹配的免安装程序。
可选地,输出模块230,具体还用于将目标平台的适配代码添加至多态组件库中,获取更新的多态组件库。
图10示出了本申请实施例所提供的另一种免安装程序适配装置的结构示意图。可选地,如图10所示,该装置还包括第三获取模块310和构建模块320。
第三获取模块310,用于获取各平台的公共特征和差异化特征。
构建模块320,用于将公共特征和差异化特征转换为预设标准语言,构建预设框架。
可选地,差异化特征包括:免开发程序模板和/或系统接口。
图11示出了本申请实施例所提供的又一种免安装程序适配装置的结构示意图。可选地,如图11所示,该装置还包括渲染模块410,渲染模块410,用于渲染目标平台匹配的免安装程序,获取适配于目标平台的免安装程序界面。
图12示出了本申请实施例所提供的一种电子设备的结构示意图,如图12所示,该电子设备包括:处理器510、存储介质520和总线530,存储介质520存储有处理器510可执行的机器可读指令,当电子设备运行时,处理器510与存储介质520之间通过总线530通信,处理器510执行机器可读指令,以执行时执行上述的免安装程序适配方法的步骤。
电子设备可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请的免安装程序转换处理方法。本申请尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请描述的功能,以均衡处理负载。
例如,电子设备可以包括用于执行程序指令的一个或多个处理器510、总线530、和不同形式的存储介质520,例如,磁盘、ROM、或RAM,或其任意组合。示例性地,计算机平台还可以包括存储在ROM、RAM、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。根据这些程序指令可以实现本申请的方法。
为了便于说明,在电子设备中仅描述了一个处理器。然而,应当注意,本申请中的电子设备还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。
本申请还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的免安装程序适配方法的步骤。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (16)

1.一种免安装程序适配方法,其特征在于,包括:
获取基于预设框架中预设标准语言的免安装程序的源程序;
根据所述免安装程序的源程序,获取所述免安装程序的公共特征和差异化特征;
基于所述免安装程序的目标平台,调用多态组件适配所述公共特征和所述差异化特征,输出与所述目标平台匹配的所述免安装程序,其中,所述目标平台是不同客户端对应的平台,所述公共特征指的是免安装程序运行于不同目标平台时,不同目标平台可以公用的部分程序特征;所述差异特征指的是,免安装程序运行于不同目标平台时,部分个性化的特征;
所述基于所述免安装程序的目标平台,调用多态组件适配所述公共特征和所述差异化特征,输出与所述目标平台匹配的所述免安装程序,包括:
基于目标平台的适配代码,调用多态组件,对所述公共特征和差异化特征进行编译,输出与所述目标平台相匹配的免安装程序。
2.根据权利要求1所述方法,其特征在于,所述基于所述目标平台的适配代码,调用所述多态组件,对所述公共特征和所述差异化特征进行编译,输出与所述目标平台匹配的所述免安装程序,包括:
查找多态组件库中是否存在所述目标平台的适配代码;
若存在,则获取所述目标平台的适配代码,调用所述多态组件,对所述公共特征和所述差异化特征进行编译,输出与所述目标平台匹配的所述免安装程序。
3.根据权利要求1所述方法,其特征在于,所述基于所述目标平台的适配代码,调用所述多态组件,对所述公共特征和所述差异化特征进行编译,输出与所述目标平台匹配的所述免安装程序,包括:
查找多态组件库中是否存在所述目标平台的适配代码;
若不存在,则接收用户输入的所述目标平台的适配代码;
基于所述目标平台的适配代码,调用所述多态组件,对所述公共特征和所述差异化特征进行编译,输出与所述目标平台匹配的所述免安装程序。
4.根据权利要求3所述方法,其特征在于,所述接收用户输入的所述目标平台的适配代码之后,还包括:
将所述目标平台的适配代码添加至所述多态组件库中,获取更新的多态组件库。
5.根据权利要求1所述方法,其特征在于,所述获取基于预设框架中预设标准语言的免安装程序的源程序之前,还包括:
获取各平台的公共特征和差异化特征;
将所述公共特征和所述差异化特征转换为所述预设标准语言,构建所述预设框架。
6.根据权利要求5所述方法,其特征在于,所述差异化特征包括:免开发程序模板和/或系统接口。
7.根据权利要求1所述方法,其特征在于,所述基于所述免安装程序的目标平台,调用多态组件适配所述公共特征和所述差异化特征,输出与所述目标平台匹配的所述免安装程序之后,还包括:
渲染所述目标平台匹配的所述免安装程序,获取适配于所述目标平台的免安装程序界面。
8.一种免安装程序适配装置,其特征在于,包括:第一获取模块、第二获取模块和输出模块;
所述第一获取模块,用于获取基于预设框架中预设标准语言的免安装程序的源程序;
所述第二获取模块,用于根据所述免安装程序的源程序,获取所述免安装程序的公共特征和差异化特征;
所述输出模块,用于基于所述免安装程序的目标平台,调用多态组件适配所述公共特征和所述差异化特征,输出与所述目标平台匹配的所述免安装程序,其中,所述目标平台是不同客户端对应的平台,所述公共特征指的是免安装程序运行于不同目标平台时,不同目标平台可以公用的部分程序特征;所述差异特征指的是,免安装程序运行于不同目标平台时,部分个性化的特征;
所述输出模块,具体用于基于所述目标平台的适配代码,调用所述多态组件,对所述公共特征和所述差异化特征进行编译,输出与所述目标平台匹配的所述免安装程序。
9.根据权利要求8所述装置,其特征在于,所述输出模块,具体还用于查找多态组件库中是否存在所述目标平台的适配代码;若存在,则获取所述目标平台的适配代码,调用所述多态组件,对所述公共特征和所述差异化特征进行编译,输出与所述目标平台匹配的所述免安装程序。
10.根据权利要求8所述装置,其特征在于,所述输出模块,具体还用于查找多态组件库中是否存在所述目标平台的适配代码;若不存在,则接收用户输入的所述目标平台的适配代码;基于所述目标平台的适配代码,调用所述多态组件,对所述公共特征和所述差异化特征进行编译,输出与所述目标平台匹配的所述免安装程序。
11.根据权利要求10所述装置,其特征在于,所述输出模块,具体还用于将所述目标平台的适配代码添加至所述多态组件库中,获取更新的多态组件库。
12.根据权利要求8所述装置,其特征在于,还包括第三获取模块和构建模块;
所述第三获取模块,用于获取各平台的公共特征和差异化特征;
所述构建模块,用于将所述公共特征和所述差异化特征转换为所述预设标准语言,构建所述预设框架。
13.根据权利要求12所述装置,其特征在于,所述差异化特征包括:免开发程序模板和/或系统接口。
14.根据权利要求8所述装置,其特征在于,还包括渲染模块;
所述渲染模块,用于渲染所述目标平台匹配的所述免安装程序,获取适配于所述目标平台的免安装程序界面。
15.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1至7任一所述的免安装程序适配方法的步骤。
16.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的免安装程序适配方法的步骤。
CN201910023526.4A 2019-01-10 2019-01-10 免安装程序适配方法、装置、电子设备及存储介质 Active CN111427569B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910023526.4A CN111427569B (zh) 2019-01-10 2019-01-10 免安装程序适配方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910023526.4A CN111427569B (zh) 2019-01-10 2019-01-10 免安装程序适配方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111427569A CN111427569A (zh) 2020-07-17
CN111427569B true CN111427569B (zh) 2024-01-23

Family

ID=71546602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910023526.4A Active CN111427569B (zh) 2019-01-10 2019-01-10 免安装程序适配方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111427569B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416328A (zh) * 2020-12-11 2021-02-26 广州伊智信息科技有限公司 多平台小程序商城的构建方法、装置、设备及介质
CN112540803B (zh) * 2020-12-18 2023-08-11 深圳赛安特技术服务有限公司 一种表单设计适配方法、装置、设备及存储介质
CN113312055B (zh) * 2021-05-28 2023-02-24 支付宝(中国)网络技术有限公司 一种小程序投放方法、装置以及设备
CN114296717A (zh) * 2021-12-06 2022-04-08 北京声智科技有限公司 一种添加小程序的方法、装置及电子设备
CN114077368B (zh) * 2022-01-19 2022-06-28 腾讯科技(深圳)有限公司 车载小程序运行方法、装置、计算机设备及存储介质
CN114610385B (zh) * 2022-03-16 2023-05-09 山东福生佳信科技股份有限公司 一种运行环境适配系统及方法
CN116382775B (zh) * 2023-03-15 2024-08-30 中电金信软件有限公司 基于Hbuilderx插件的多平台程序包生成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516738A (zh) * 2014-12-15 2015-04-15 北京金和软件股份有限公司 一种app应用的开发与发布一体化实现方法
CN106980504A (zh) * 2017-03-28 2017-07-25 腾讯科技(深圳)有限公司 一种应用程序开发方法及其工具、设备
CN107239318A (zh) * 2017-06-13 2017-10-10 腾讯科技(深圳)有限公司 应用转换方法、装置及设备
CN109117119A (zh) * 2018-07-02 2019-01-01 成都四方伟业软件股份有限公司 一种多态组件融合方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465608B2 (en) * 2013-03-15 2016-10-11 ArtinSoft Corporation Code separation with semantic guarantees

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516738A (zh) * 2014-12-15 2015-04-15 北京金和软件股份有限公司 一种app应用的开发与发布一体化实现方法
CN106980504A (zh) * 2017-03-28 2017-07-25 腾讯科技(深圳)有限公司 一种应用程序开发方法及其工具、设备
CN107239318A (zh) * 2017-06-13 2017-10-10 腾讯科技(深圳)有限公司 应用转换方法、装置及设备
CN109117119A (zh) * 2018-07-02 2019-01-01 成都四方伟业软件股份有限公司 一种多态组件融合方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵慧峰.基于MVVM的Android App快速开发框架的设计与实现.《中国优秀硕士论文电子期刊网》.2018,全文. *

Also Published As

Publication number Publication date
CN111427569A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN111427569B (zh) 免安装程序适配方法、装置、电子设备及存储介质
KR101645052B1 (ko) 디버깅 파이프라인
EP3971706B1 (en) Method, apparatus and electronic device for deploying operator in deep learning frame work
CN110489101A (zh) 接口模拟方法、系统、介质和电子设备
GB2589658A (en) Method and apparatus for running an applet
CN111338623B (zh) 一种开发用户界面的方法、装置、介质和电子设备
CN110489323B (zh) 可视化的rpc api调试方法、装置、介质和设备
CN110531962A (zh) 小程序的开发处理方法、设备及计算机可读存储介质
CN111176629A (zh) 一种应用开发的方法和装置
CN111581555B (zh) 一种文档加载方法、装置、设备及存储介质
CN112965794B (zh) 算法调用方法、电子设备及存储介质
WO2019236261A2 (en) Annotating dynamic libraries for multi-os applications
CN109582317B (zh) 用于调试寄宿应用的方法和装置
CN110275704A (zh) 页面数据处理方法和装置,存储介质和电子设备
CN110543297A (zh) 用于生成源码的方法和装置
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN114217789A (zh) 功能组件拓展方法、装置、设备、存储介质及程序产品
CN111752644A (zh) 接口模拟方法、装置、设备及存储介质
CN111488286A (zh) 一种Android模块独立开发的方法及装置
CN106197394A (zh) 导航方法及装置
CN113722037B (zh) 一种用户界面的刷新方法、装置、电子设备及存储介质
CN111539200B (zh) 一种生成富文本的方法、装置、介质和电子设备
CN113724711A (zh) 一种语音识别服务实现方法、装置、系统、介质及设备
CN111782196A (zh) 基于mvp架构的开发方法及装置
CN113885996A (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
GR01 Patent grant
GR01 Patent grant