CN111949272A - 寄宿应用的编译优化方法、装置、电子设备及可读存储介质 - Google Patents

寄宿应用的编译优化方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN111949272A
CN111949272A CN202010752207.XA CN202010752207A CN111949272A CN 111949272 A CN111949272 A CN 111949272A CN 202010752207 A CN202010752207 A CN 202010752207A CN 111949272 A CN111949272 A CN 111949272A
Authority
CN
China
Prior art keywords
result
compiling
hosted application
application
hosted
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
Application number
CN202010752207.XA
Other languages
English (en)
Other versions
CN111949272B (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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010752207.XA priority Critical patent/CN111949272B/zh
Publication of CN111949272A publication Critical patent/CN111949272A/zh
Priority to US17/348,334 priority patent/US11586425B2/en
Priority to EP21179699.0A priority patent/EP3945415B1/en
Priority to KR1020210092287A priority patent/KR102572726B1/ko
Priority to JP2021117431A priority patent/JP7231137B2/ja
Application granted granted Critical
Publication of CN111949272B publication Critical patent/CN111949272B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/49Partial evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了寄宿应用的编译优化方法、装置、电子设备及可读存储介质,涉及应用编译技术领域,具体涉及小程序技术领域。本申请通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及编译处理优化之后的寄宿应用的第二编译结果,并将其上传到管理平台,由管理平台根据宿主应用所提供的寄宿应用运行环境的环境数据,进行对应编译结果的下发,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行所获得的编译结果,由于寄宿应用的编译处理的优化不再受限于用户所使用的宿主应用的版本,使得寄宿应用的编译处理的优化得以顺利进行,从而有效地提高了优化之后的寄宿应用运行的效率和可靠性。

Description

寄宿应用的编译优化方法、装置、电子设备及可读存储介质
技术领域
涉及计算机技术领域,具体涉及应用编译技术领域,进一步涉及小程序技术领域,尤其涉及寄宿应用的编译优化方法、装置、电子设备及可读存储介质。
背景技术
随着互联网的深入发展,应用于终端上的应用(Application,APP)层出不穷。有些应用,可以被称为宿主应用,能够通过运行在其中的特定形式的应用提供一些其他应用的特定服务。这些特定形式的应用无需安装在终端上,可以被称为寄宿应用,例如,各种小程序如百度APP中的百度知道小程序、百度文库小程序等特定服务。通常,开发者需要利用开发者工具对寄宿应用的源代码进行编译处理,并由开发者工具将编译处理之后的编译结果打包上传之后才可以被用户检索使用。
然而,由于宿主应用中所运行的寄宿应用完全依赖于该宿主应用,使得部分用户所使用的当前版本的宿主应用可能会无法获取并运行优化之后的寄宿应用的编译结果,因此寄宿应用的编译处理的优化很难进行,从而导致了寄宿应用运行的效率和可靠性的降低。
发明内容
本申请的多个方面提供寄宿应用的编译优化方法、装置、电子设备及可读存储介质,用以提高寄宿应用运行的效率和可靠性。
根据第一方面,提供了一种寄宿应用的编译优化方法,包括:
响应于接收到宿主应用发送的寄宿应用的获取请求,获取所述宿主应用所提供的寄宿应用运行环境的环境数据;
根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
向所述宿主应用下发所获得的所述宿主应用可运行的一个编译结果,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
根据第二方面,提供了另一种寄宿应用的编译优化方法,包括:
获取寄宿应用的源代码;
根据所述寄宿应用的源代码,构建所述寄宿应用的编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
向管理平台上传所述寄宿应用的编译结果。
根据第三方面,提供了一种寄宿应用的编译优化装置,包括:
获取单元,用于响应于接收到宿主应用发送的寄宿应用的获取请求,获取所述宿主应用所提供的寄宿应用运行环境的环境数据;
查询单元,用于根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
下发单元,用于向所述宿主应用下发所获得的所述宿主应用可运行的一个编译结果,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
根据第四方面,提供了另一种寄宿应用的编译优化装置,包括:
获取单元,用于获取寄宿应用的源代码;
构建单元,用于根据所述寄宿应用的源代码,构建所述寄宿应用的编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
上传单元,用于向管理平台上传所述寄宿应用的编译结果。
根据第五方面,提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。
根据第六方面,提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。
由上述技术方案可知,本申请实施例通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及编译处理优化之后的寄宿应用的第二编译结果,并将其上传到管理平台,由管理平台根据宿主应用所提供的寄宿应用运行环境的环境数据,进行对应编译结果的下发,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行所获得的编译结果,由于寄宿应用的编译处理的优化不再受限于用户所使用的宿主应用的版本,使得寄宿应用的编译处理的优化得以顺利进行,从而有效地提高了优化之后的寄宿应用运行的效率和可靠性。
另外,采用本申请所提供的技术方案,由于开发者工具不仅构建了编译处理优化之后的寄宿应用的第二编译结果,还构建了编译处理优化之前的寄宿应用的第一编译结果,使得开发者工具在进行编译处理优化的过程中能够去掉对宿主应用的历史版本兼容的包袱,使得开发者工具的内部代码更清晰,其编译产物也更高效,从而提高了开发者工具的编译效率。
另外,采用本申请所提供的技术方案,能够有效为构建编译产物变化快速上线开辟了一个新的路径,有较大的收益。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。附图仅仅用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的示意图;
图2是根据本申请第二实施例的示意图;
图3是根据本申请第三实施例的示意图;
图4是根据本申请第四实施例的示意图;
图5是根据本申请第五实施例的示意图;
图6是用来实现本申请实施例的寄宿应用的编译优化方法的电子设备的示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中所涉及的终端设备可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(TabletComputer)等智能设备;显示设备可以包括但不限于个人电脑、电视等具有显示功能的设备。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请中所涉及的寄宿应用,可以为小程序等无需安装在终端上的应用,是一种通过渲染层和逻辑层物理隔离的可纯离线工作的运行时生态。寄宿应用需要运行在宿主应用所集成的寄宿应用运行平台上,例如,小程序运行时软件开发工具包(SoftwareDevelopment Kit,SDK)等,该寄宿应用运行平台上加载有寄宿应用框架。基于标准JS扩展的领域特定语言(Domain Specific Language,DSL)语法,并需要通过开发者工具进行编译打包之后,上传到管理平台才可以被用户检索使用。
以小程序为例,小程序的开发者可以通过开发者工具开发小程序时,小程序的源代码会通过开发者工具编译打包后,上传到小程序的管理平台,小程序运行时SDK运行小程序时会对开发者工具的构建产物按照一定顺序进行加载执行。
小程序秒开是指导我们提升小程序侧用户极致体验的宏伟愿景,需要从小程序开发的全流程上进行优化。而现有在小程序生产环节所做的优化,由于涉及到小程序的编译产物不同,会涉及对开发者使用的开发者工具的版本、小程序框架如百度智能小程序核心框架(swanjs)的最低版本、宿主应用的版本产生依赖。因此,导致在现有机制下,小程序在生产环节所的优化方案无法快速上线实验。
综上,当开发者工具构建的编译产物发生变化之后,会涉及小程序的生产环节的全流程链路上的所有环节依赖:
1、对开发者当前所使用的开发者工具(是否使用最新版本)的依赖;
2、对开发者工具在小程序的管理平台上所表达的小程序框架如swanjs的最低版本的依赖;
3、对宿主应用的版本和当前运行的小程序框架如swanjs版本的依赖。
如果需要能够具备运行开发者工具的编译产物的最新版本优化,上述这些依赖需要同时满足。其中,特别是对于依赖2来说,需要开发者主动放弃在低版本的宿主应用分发小程序,这会对开发者的日活跃用户数量(Daily Active User,DAU)用户造成一部分损失,从而使得在现有机制下上述条件极难同时满足。因此,开发者工具如涉及编译产物发生变化则无法上线。
因此,现有方案下,存在如下两个技术问题:
1、开发者工具的最新版本始终要维护对历史版本代码的兼容逻辑,其所构建的编译产物一直需要运行在宿主应用所提供的寄宿应用运行环境的全版本上。
2、上述依赖条件无法同时满足,从而造成了开发者工具涉及编译产物变化的功能和优化,迟迟无法上线。
本申请提出一种寄宿应用的编译优化方法,能够实现寄宿应用的编译产物不同时快速上线,能够支持根据用户当前所使用的宿主应用和swanjs版本下发最优的构建产物版本,从而解决现有寄宿应用的生产环节编译构建产物发生变化后的优化手段或功能迟迟无法落地的窘境。
图1是根据本申请第一实施例的示意图,如图1所示。
101、响应于接收到宿主应用发送的寄宿应用的获取请求,获取所述宿主应用所提供的寄宿应用运行环境的环境数据。
102、根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果。
103、向所述宿主应用下发所获得的所述宿主应用可运行的一个编译结果,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
需要说明的是,101~103的执行主体的部分或全部可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的管理平台中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。
可以理解的是,所述宿主应用可以是安装在本地终端上的本地程序(nativeApp),或者还可以是本地终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
本申请中,寄宿应用的第一编译结果和寄宿应用的第二编译结果,均为开发者工具根据寄宿应用的同一个源代码进行构建的,其区别在于:所述第一编译结果可以为对开发者工具的编译处理优化之前的原始编译结果;所述第二编译结果可以为对开发者工具的编译处理优化之后的优化编译结果。
具体来说,所述第一编译结果可以为对开发者工具的编译处理优化之前的一个原始编译结果,其可以在开发者所设置的寄宿应用框架的最低版本以上的全部版本上运行;所述第二编译结果可以为对开发者工具的编译处理优化之后的一个或者多个优化编译结果,例如,最新的一次编译处理优化之后的最新编译结果,以及对开发者工具的历史的一次或者多次编译处理优化之后的中间编译结果,其可以在开发者工具所记录的寄宿应用框架的最低版本以上的版本上运行。
所谓的原始编译结果,可以是指开发者工具上未进行任何优化的原始功能所涉及的构建产物未变化的初始版本,例如,未开启任何优化的S1版本;所谓的最新编译结果,可以是指开发者工具上进行了所有优化的功能所涉及的构建产物变化的变化版本,例如,开启了10项优化的S5版本;所谓的中间编译结果,可以是指开发者工具上进行了部分优化的功能所涉及的构建产物变化的变化版本,例如,开启了3项优化的S2、开启了5项优化的S3和开启了8项优化的S4版本。
这样,通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及多次编译处理优化之后的寄宿应用的多个第二编译结果,使得开发者工具不仅能够提供单一版本的优化编译结果,还能够进一步提供多个版本的优化编译结果,从而提高了构建产物变化之后上线运行的可靠性。
为了简化操作,所述第二编译结果可以优选为对开发者工具的最新的一次编译处理优化之后的最新编译结果,这样,开发者工具可以不再内部维护构建产物优化的中间结果即中间编译结果,一方面可使得后面分发设计较为简单,另一方面也使得开发者工具和管理平台处理较为简单。
本申请中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据,例如,百度APP的版本号等;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
其中,所述宿主应用所提供的寄宿应用运行环境的版本数据可以为所述宿主应用所集成的寄宿应用运行平台的版本数据,例如,小程序运行时软件开发工具包(SoftwareDevelopment Kit,SDK)的版本号等,或者还可以为所述宿主应用所集成的寄宿应用运行平台上加载的寄宿应用框架的版本数据,例如,百度智能小程序核心框架(swanjs)的版本号等,本实施例对此不进行特别限定。
通常,宿主应用的版本数据,与,宿主应用所提供的寄宿应用运行环境的版本数据,可以为一一对应,因此,确定二者其一,均可以确定另外一个。类似地,宿主应用所集成的寄宿应用运行平台的版本数据,与,宿主应用所集成的寄宿应用运行平台上加载的寄宿应用框架的版本数据,可以为一一对应,因此,确定二者其一,均可以确定另外一个。
所谓的寄宿应用运行平台,可以用于在宿主应用中为寄宿应用提供运行环境,是寄宿应用能够在宿主应用中启动和运行的必要条件。寄宿应用运行平台可以向寄宿应用提供待显示的界面的模板、浏览器以及针对不同宿主应用或者不同操作系统的个性化服务。
可选地,在本实施例的一个可能的实现方式中,在102中,所查询的所述寄宿应用的编译结果,是由开发者工具进行构建并上传的。
具体地,开发者工具具体可以获取寄宿应用的源代码,进而,则可以根据所述寄宿应用的源代码,构建所述寄宿应用的编译结果即所述第一编译结果和所述第二编译结果,并向管理平台上传所构建的所述寄宿应用的编译结果。
在一个具体的实现过程中,开发者工具对于寄宿应用的各编译结果的上传顺序,需要依据约定的指定顺序,例如,先上传第一编译结果,再上传第二编译结果。
相应地,在接收到开发者工具依据约定的指定顺序所上传的所述寄宿应用的各编译结果之后,则可以根据开发者工具的上传顺序,对各编译结果所依赖的寄宿应用运行环境进行标记处理,即对各编译结果所依赖的寄宿应用运行环境的最低版本、各编译结果所依赖的寄宿应用运行平台上加载的寄宿应用框架的最低版本等环境数据进行标记处理,以保证第二编译结果所依赖的寄宿应用运行环境的版本数据大于第一编译结果所依赖的寄宿应用运行环境的版本数据,以及各第二编译结果所依赖的寄宿应用运行环境的版本数据按照优化的功能数量从少到多的顺序递增。
例如,开发者工具首先上传第一编译结果,在接收到该第一编译结果之后,则可以将该第一编译结果所依赖的寄宿应用运行环境的最低版本记录为开发者所设置的寄宿应用运行环境的最低版本,记为S1,并可以将该第一编译结果记为V。接着,开发者工具再上传第二编译结果,如果有多个编译结果,则按照优化的功能数量从少到多的顺序,依次上传各编译结果,在接收到该第二编译结果之后,以一个第二编译结果为例,则可以将该第二编译结果所依赖的寄宿应用运行环境的最低版本记录为开发者工具所记录的寄宿应用运行环境的最低版本,例如,百度智能小程序核心框架(swanjs)的最低版本,记为S2(S1<=S2),并可以将该第二编译结果记为V1(V<V1)。
在另一个具体的实现过程中,在构建所述寄宿应用的编译结果之后,开发者工具具体可以根据所述寄宿应用的编译结果,生成各编译结果的版本数据。其中,所述各编译结果的版本数据可以包括但不限于所述第一编译结果的版本数据、所述第一编译结果所依赖的寄宿应用运行环境的最低版本数据、所述第二编译结果的版本数据和所述第二编译结果所依赖的寄宿应用运行环境的最低版本数据。然后,开发者工具则可以向所述管理平台上传所述各编译结果和所述各编译结果的版本数据。
其中,寄宿应用的各编译结果(即第一编译结果和第二编译结果)所依赖的寄宿应用运行环境的最低版本数据,可以为所依赖的寄宿应用运行平台的版本数据,例如,小程序运行时SDK的版本号等,或者还可以为所依赖的寄宿应用运行平台上加载的寄宿应用框架的最低版本数据,例如,百度智能小程序核心框架(swanjs)的版本号等,本实施例对此不进行特别限定。
在该实现过程中,开发者工具对于寄宿应用的各编译结果的上传顺序,可以为随意的任意顺序,无需依据约定的指定顺序。开发者工具所生成的各编译结果的版本数据,可以用于指示寄宿应用本次编译处理的版本标记,例如,开发者工具具体可以根据所述寄宿应用的本次编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据,或者还可以用于指示寄宿应用所有编译处理的版本标记,例如,开发者工具具体可以根据所述寄宿应用的统一编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据。
相应地,在接收到开发者工具所上传的所述寄宿应用的各编译结果和各编译结果的版本数据之后,则可以根据各编译结果的版本数据,对各编译结果所依赖的寄宿应用运行环境进行标记处理,即对各编译结果所依赖的寄宿应用运行环境的最低版本进行标记处理,例如,各编译结果所依赖的寄宿应用运行平台上加载的寄宿应用框架的最低版本等环境数据等。
可选地,在本实施例的一个可能的实现方式中,在102之前,还可以进一步获取开发者工具上传的所述寄宿应用的编译结果,进而,则可以对所述寄宿应用的编译结果中各编译结果进行审核处理。然后,则可以根据所述各编译结果的审核处理结果,对所述审核处理结果为通过的编译结果,进行可运行环境的标记处理。
为了保证只能提供最低版本的寄宿应用运行环境的宿主应用能够获取到寄宿应用的编译结果,因此,可以利用所述第一编译结果的审核处理结果,对依据配置审核策略所获得的所述第二编译结果的审核处理结果进行关联性调整,使得能够有效提高优化之后的寄宿应用运行的效率和可靠性。
具体来说,具体可以依据现有的配置审核策略,分别对所述第一编译结果和所述第二编译结果进行审核处理。
例如,依据寄宿应用的各编译结果(即所述第一编译结果和所述第二编译结果)所依赖的寄宿应用运行环境的最低版本数据生成对应的宿主版本二维码,进而由审核人员所使用的宿主应用根据所述宿主版本二维码运行各编译结果,以供审核人员审核各编译结果,例如,各编译结果的运行功能是否正常,以及是否存在不符合寄宿应用设计规范的一些行为等。
在对所述第一编译结果和所述第二编译结果分别进行审核处理,以获得所述第一编译结果的审核处理结果和所述第二编译结果的审核处理结果之后,若所述第一编译结果的审核处理结果为通过,则可以不对所述第二编译结果的审核处理结果进行调整;若所述第一编译结果的审核处理结果为未通过,则可以进一步将所述第二编译结果的审核处理结果调整为未通过。
在获得各编译结果的审核处理结果之后,则可以根据所述各编译结果的审核处理结果和所标记的各编译结果所依赖的寄宿应用运行环境的最低版本,对所述审核处理结果为通过的编译结果,进行可运行环境的标记处理。
例如,标记寄宿应用的第一编译结果的分发区间为[S1,正无穷),即宿主应用可提供的寄宿应用运行环境的版本号在[S1,正无穷)范围之内可下发,例如,宿主应用中运行的百度智能小程序核心框架(swanjs)的版本号在[S1,正无穷)范围之内可下发。
或者,再例如,标记寄宿应用的第二编译结果的分发区间为[S2,正无穷),S1<=S2,即宿主应用可提供的寄宿应用运行环境的版本号在[S2,正无穷)范围之内可下发,例如,宿主应用中运行的百度智能小程序核心框架(swanjs)的版本号在[S2,正无穷)范围之内可下发。
可选地,在本实施例的一个可能的实现方式中,在102中,具体可以对所述宿主应用所提供的寄宿应用运行环境的环境数据进行第一次判断处理,以判断所述宿主应用所提供的寄宿应用运行环境的环境数据是否在寄宿应用的第二编译结果的分发区间之内。
若所述宿主应用所提供的寄宿应用运行环境的环境数据在寄宿应用的第二编译结果的分发区间之内,则可以将所述寄宿应用的第二编译结果作为查询处理结果,即该宿主应用可运行的一个编译结果。
若所述宿主应用所提供的寄宿应用运行环境的环境数据不在寄宿应用的第二编译结果的分发区间之内,则可以进一步对所述宿主应用所提供的寄宿应用运行环境的环境数据进行第二次判断处理,以判断所述宿主应用所提供的寄宿应用运行环境的环境数据是否在寄宿应用的第一编译结果的分发区间之内。
若所述宿主应用所提供的寄宿应用运行环境的环境数据在寄宿应用的第一编译结果的分发区间之内,则可以将所述寄宿应用的第一编译结果作为查询处理结果,即该宿主应用可运行的一个编译结果。
若所述宿主应用所提供的寄宿应用运行环境的环境数据不在寄宿应用的第一编译结果的分发区间之内,则向宿主应用进行提示处理,以提示升级宿主应用。
至此,获得宿主应用所匹配的可运行的一个编译结果。将所获得的宿主应用可运行的一个编译结果下发给该宿主应用,由该宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
应用本申请的技术方案之后,一部分当前已确定的优化手段通过实验上线获取收益,通过跑通此机制,后续的优化手段均可使用此通路进行快速落地。
本申请的技术方案,主要通过解决现有寄宿应用生生产环节中的依赖2,开发者工具依据绝大部分用户当前可能所使用的宿主应用所提供的寄宿应用运行环境,对开发者一份寄宿应用的源代码构建出不同的构建产物版本,即为对开发者工具的编译处理优化之前的原始编译结果,以及对开发者工具的编译处理优化之后的优化编译结果,进而,将所构建的构建产物版本上传到寄宿应用的管理平台,由寄宿应用的管理平台依据用户所使用的宿主应用所提供的寄宿应用运行环境,具有针对性地下发对应的构建产物版本,由于依赖1和依赖3收敛较为迅速,例如,新版本发布1周内均能够收敛至80%+水平,从而能够保证应用本申请的技术方案之后,寄宿应用的生产环节优化手段能够在较为短的时间内上线,并覆盖线上较多用户流量版本。
本实施例中,通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及编译处理优化之后的寄宿应用的第二编译结果,并将其上传到管理平台,由管理平台根据宿主应用所提供的寄宿应用运行环境的环境数据,进行对应编译结果的下发,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行所获得的编译结果,由于寄宿应用的编译处理的优化不再受限于用户所使用的宿主应用的版本,使得寄宿应用的编译处理的优化得以顺利进行,从而有效地提高了优化之后的寄宿应用运行的效率和可靠性。
另外,采用本申请所提供的技术方案,由于开发者工具不仅构建了编译处理优化之后的寄宿应用的第二编译结果,还构建了编译处理优化之前的寄宿应用的第一编译结果,使得开发者工具在进行编译处理优化的过程中能够去掉对宿主应用的历史版本兼容的包袱,使得开发者工具的内部代码更清晰,其编译产物也更高效,从而提高了开发者工具的编译效率。
另外,采用本申请所提供的技术方案,能够有效为构建编译产物变化快速上线开辟了一个新的路径,有较大的收益。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
图2是根据本申请第二实施例的示意图。
201、获取寄宿应用的源代码。
202、根据所述寄宿应用的源代码,构建所述寄宿应用的编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果。
203、向管理平台上传所述寄宿应用的编译结果。
需要说明的是,201~203的执行主体的部分或全部可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(SoftwareDevelopment Kit,SDK)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的开发者工具中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在本地终端上的本地程序(nativeApp),或者还可以是本地终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
本申请中,寄宿应用的第一编译结果和寄宿应用的第二编译结果,均为开发者工具根据寄宿应用的同一个源代码进行构建的,其区别在于:所述第一编译结果可以为对开发者工具的编译处理优化之前的原始编译结果;所述第二编译结果可以为对开发者工具的编译处理优化之后的优化编译结果。
具体来说,所述第一编译结果可以为对开发者工具的编译处理优化之前的一个原始编译结果,其可以在开发者所设置的寄宿应用框架的最低版本以上的全部版本上运行;所述第二编译结果可以为对开发者工具的编译处理优化之后的一个或者多个优化编译结果,例如,最新的一次编译处理优化之后的最新编译结果,以及对开发者工具的历史的一次或者多次编译处理优化之后的中间编译结果,其可以在开发者工具所记录的寄宿应用框架的最低版本以上的版本上运行。
所谓的原始编译结果,可以是指开发者工具上未进行任何优化的原始功能所涉及的构建产物未变化的初始版本,例如,未开启任何优化的S1版本;所谓的最新编译结果,可以是指开发者工具上进行了所有优化的功能所涉及的构建产物变化的变化版本,例如,开启了10项优化的S5版本;所谓的中间编译结果,可以是指开发者工具上进行了部分优化的功能所涉及的构建产物变化的变化版本,例如,开启了3项优化的S2、开启了5项优化的S3和开启了8项优化的S4版本。
这样,通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及多次编译处理优化之后的寄宿应用的多个第二编译结果,使得开发者工具不仅能够提供单一版本的优化编译结果,还能够进一步提供多个版本的优化编译结果,从而提高了构建产物变化之后上线运行的可靠性。
为了简化操作,所述第二编译结果可以优选为对开发者工具的最新的一次编译处理优化之后的最新编译结果,这样,开发者工具可以不再内部维护构建产物优化的中间结果即中间编译结果,一方面可使得后面分发设计较为简单,另一方面也使得开发者工具和管理平台处理较为简单。
本申请中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据,例如,百度APP的版本号等;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
其中,所述宿主应用所提供的寄宿应用运行环境的版本数据可以为所述宿主应用所集成的寄宿应用运行平台的版本数据,例如,小程序运行时软件开发工具包(SoftwareDevelopment Kit,SDK)的版本号等,或者还可以为所述宿主应用所集成的寄宿应用运行平台上加载的寄宿应用框架的版本数据,例如,百度智能小程序核心框架(swanjs)的版本号等,本实施例对此不进行特别限定。
通常,宿主应用的版本数据,与,宿主应用所提供的寄宿应用运行环境的版本数据,可以为一一对应,因此,确定二者其一,均可以确定另外一个。类似地,宿主应用所集成的寄宿应用运行平台的版本数据,与,宿主应用所集成的寄宿应用运行平台上加载的寄宿应用框架的版本数据,可以为一一对应,因此,确定二者其一,均可以确定另外一个。
所谓的寄宿应用运行平台,可以用于在宿主应用中为寄宿应用提供运行环境,是寄宿应用能够在宿主应用中启动和运行的必要条件。寄宿应用运行平台可以向寄宿应用提供待显示的界面的模板、浏览器以及针对不同宿主应用或者不同操作系统的个性化服务。
可选地,在本实施例的一个可能的实现方式中,在203中,具体可以采用不同的传输策略,向管理平台上传所构建的所述寄宿应用的编译结果。
在一个具体的实现过程中,开发者工具对于寄宿应用的各编译结果的上传顺序,需要依据约定的指定顺序,例如,先上传第一编译结果,再上传第二编译结果。
相应地,在接收到开发者工具依据约定的指定顺序所上传的所述寄宿应用的各编译结果之后,管理平台则可以根据开发者工具的上传顺序,对各编译结果所依赖的寄宿应用运行环境进行标记处理,即对各编译结果所依赖的寄宿应用运行环境的最低版本、各编译结果所依赖的寄宿应用运行平台上加载的寄宿应用框架的最低版本等环境数据进行标记处理,以保证第二编译结果所依赖的寄宿应用运行环境的版本数据大于第一编译结果所依赖的寄宿应用运行环境的版本数据,以及各第二编译结果所依赖的寄宿应用运行环境的版本数据按照优化的功能数量从少到多的顺序递增。
例如,开发者工具首先上传第一编译结果,在接收到该第一编译结果之后,管理平台则可以将该第一编译结果所依赖的寄宿应用运行环境的最低版本记录为开发者所设置的寄宿应用运行环境的最低版本,记为S1,并可以将该第一编译结果记为V。接着,开发者工具再上传第二编译结果,如果有多个编译结果,则按照优化的功能数量从少到多的顺序,依次上传各编译结果,在接收到该第二编译结果之后,以一个第二编译结果为例,管理平台则可以将该第二编译结果所依赖的寄宿应用运行环境的最低版本记录为开发者工具所记录的寄宿应用运行环境的最低版本,例如,百度智能小程序核心框架(swanjs)的最低版本,记为S2(S1<=S2),并可以将该第二编译结果记为V1(V<V1)。
在另一个具体的实现过程中,在构建所述寄宿应用的编译结果之后,开发者工具具体可以根据所述寄宿应用的编译结果,生成各编译结果的版本数据。其中,所述各编译结果的版本数据可以包括但不限于所述第一编译结果的版本数据、所述第一编译结果所依赖的寄宿应用运行环境的最低版本数据、所述第二编译结果的版本数据和所述第二编译结果所依赖的寄宿应用运行环境的最低版本数据。然后,开发者工具则可以向所述管理平台上传所述各编译结果和所述各编译结果的版本数据。
其中,寄宿应用的各编译结果(即第一编译结果和第二编译结果)所依赖的寄宿应用运行环境的最低版本数据,可以为所依赖的寄宿应用运行平台的版本数据,例如,小程序运行时SDK的版本号等,或者还可以为所依赖的寄宿应用运行平台上加载的寄宿应用框架的最低版本数据,例如,百度智能小程序核心框架(swanjs)的版本号等,本实施例对此不进行特别限定。
在该实现过程中,开发者工具对于寄宿应用的各编译结果的上传顺序,可以为随意的任意顺序,无需依据约定的指定顺序。开发者工具所生成的各编译结果的版本数据,可以用于指示寄宿应用本次编译处理的版本标记,例如,开发者工具具体可以根据所述寄宿应用的本次编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据,或者还可以用于指示寄宿应用所有编译处理的版本标记,例如,开发者工具具体可以根据所述寄宿应用的统一编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据。
相应地,在接收到开发者工具所上传的所述寄宿应用的各编译结果和各编译结果的版本数据之后,管理平台则可以根据各编译结果的版本数据,对各编译结果所依赖的寄宿应用运行环境进行标记处理,即对各编译结果所依赖的寄宿应用运行环境的最低版本进行标记处理,例如,各编译结果所依赖的寄宿应用运行平台上加载的寄宿应用框架的最低版本等环境数据等。
可选地,在本实施例的一个可能的实现方式中,在203之后,管理平台还可以进一步获取开发者工具上传的所述寄宿应用的编译结果,进而,则可以对所述寄宿应用的编译结果中各编译结果进行审核处理。然后,则可以根据所述各编译结果的审核处理结果,对所述审核处理结果为通过的编译结果,进行可运行环境的标记处理。
为了保证只能提供最低版本的寄宿应用运行环境的宿主应用能够获取到寄宿应用的编译结果,因此,管理平台则可以利用所述第一编译结果的审核处理结果,对依据配置审核策略所获得的所述第二编译结果的审核处理结果进行关联性调整,使得能够有效提高优化之后的寄宿应用运行的效率和可靠性。
具体来说,管理平台具体可以依据现有的配置审核策略,分别对所述第一编译结果和所述第二编译结果进行审核处理。
例如,管理平台依据寄宿应用的各编译结果(即所述第一编译结果和所述第二编译结果)所依赖的寄宿应用运行环境的最低版本数据生成对应的宿主版本二维码,进而由审核人员所使用的宿主应用根据所述宿主版本二维码运行各编译结果,以供审核人员审核各编译结果,例如,各编译结果的运行功能是否正常,以及是否存在不符合寄宿应用设计规范的一些行为等。
在对所述第一编译结果和所述第二编译结果分别进行审核处理,以获得所述第一编译结果的审核处理结果和所述第二编译结果的审核处理结果之后,若所述第一编译结果的审核处理结果为通过,管理平台则可以不对所述第二编译结果的审核处理结果进行调整;若所述第一编译结果的审核处理结果为未通过,管理平台则可以进一步将所述第二编译结果的审核处理结果调整为未通过。
在获得各编译结果的审核处理结果之后,管理平台则可以根据所述各编译结果的审核处理结果和所标记的各编译结果所依赖的寄宿应用运行环境的最低版本,对所述审核处理结果为通过的编译结果,进行可运行环境的标记处理。
例如,管理平台标记寄宿应用的第一编译结果的分发区间为[S1,正无穷),即宿主应用可提供的寄宿应用运行环境的版本号在[S1,正无穷)范围之内可下发,例如,宿主应用中运行的百度智能小程序核心框架(swanjs)的版本号在[S1,正无穷)范围之内可下发。
或者,再例如,管理平台标记寄宿应用的第二编译结果的分发区间为[S2,正无穷),S1<=S2,即宿主应用可提供的寄宿应用运行环境的版本号在[S2,正无穷)范围之内可下发,例如,宿主应用中运行的百度智能小程序核心框架(swanjs)的版本号在[S2,正无穷)范围之内可下发。
至此,寄宿应用的管理平台则可以准备进行寄宿应用的各编译结果的分发。
在接收到宿主应用发送的寄宿应用的获取请求之后,管理平台则可以获取所述宿主应用所提供的寄宿应用运行环境的环境数据,进而,该管理平台则可以根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果。然后,管理平台则可以向所述宿主应用下发所获得的所述宿主应用可运行的一个编译结果,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
具体来说,管理平台具体可以对所述宿主应用所提供的寄宿应用运行环境的环境数据进行第一次判断处理,以判断所述宿主应用所提供的寄宿应用运行环境的环境数据是否在寄宿应用的第二编译结果的分发区间之内。
若所述宿主应用所提供的寄宿应用运行环境的环境数据在寄宿应用的第二编译结果的分发区间之内,管理平台则可以将所述寄宿应用的第二编译结果作为查询处理结果,即该宿主应用可运行的一个编译结果。
若所述宿主应用所提供的寄宿应用运行环境的环境数据不在寄宿应用的第二编译结果的分发区间之内,管理平台则可以进一步对所述宿主应用所提供的寄宿应用运行环境的环境数据进行第二次判断处理,以判断所述宿主应用所提供的寄宿应用运行环境的环境数据是否在寄宿应用的第一编译结果的分发区间之内。
若所述宿主应用所提供的寄宿应用运行环境的环境数据在寄宿应用的第一编译结果的分发区间之内,管理平台则可以将所述寄宿应用的第一编译结果作为查询处理结果,即该宿主应用可运行的一个编译结果。
若所述宿主应用所提供的寄宿应用运行环境的环境数据不在寄宿应用的第一编译结果的分发区间之内,管理平台则向宿主应用进行提示处理,以提示升级宿主应用。
至此,管理平台则获得宿主应用所匹配的可运行的一个编译结果。管理平台将所获得的宿主应用可运行的一个编译结果下发给该宿主应用,由该宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
应用本申请的技术方案之后,一部分当前已确定的优化手段通过实验上线获取收益,通过跑通此机制,后续的优化手段均可使用此通路进行快速落地。
本申请的技术方案,主要通过解决现有寄宿应用生生产环节中的依赖2,开发者工具依据绝大部分用户当前可能所使用的宿主应用所提供的寄宿应用运行环境,对开发者一份寄宿应用的源代码构建出不同的构建产物版本,即为对开发者工具的编译处理优化之前的原始编译结果,以及对开发者工具的编译处理优化之后的优化编译结果,进而,将所构建的构建产物版本上传到寄宿应用的管理平台,由寄宿应用的管理平台依据用户所使用的宿主应用所提供的寄宿应用运行环境,具有针对性地下发对应的构建产物版本,由于依赖1和依赖3收敛较为迅速,例如,新版本发布1周内均能够收敛至80%+水平,从而能够保证应用本申请的技术方案之后,寄宿应用的生产环节优化手段能够在较为短的时间内上线,并覆盖线上较多用户流量版本。
本实施例中,通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及编译处理优化之后的寄宿应用的第二编译结果,并将其上传到管理平台,由管理平台根据宿主应用所提供的寄宿应用运行环境的环境数据,进行对应编译结果的下发,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行所获得的编译结果,由于寄宿应用的编译处理的优化不再受限于用户所使用的宿主应用的版本,使得寄宿应用的编译处理的优化得以顺利进行,从而有效地提高了优化之后的寄宿应用运行的效率和可靠性。
另外,采用本申请所提供的技术方案,由于开发者工具不仅构建了编译处理优化之后的寄宿应用的第二编译结果,还构建了编译处理优化之前的寄宿应用的第一编译结果,使得开发者工具在进行编译处理优化的过程中能够去掉对宿主应用的历史版本兼容的包袱,使得开发者工具的内部代码更清晰,其编译产物也更高效,从而提高了开发者工具的编译效率。
另外,采用本申请所提供的技术方案,能够有效为构建编译产物变化快速上线开辟了一个新的路径,有较大的收益。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3是根据本申请第三实施例的示意图,如图3所示。本实施例的寄宿应用的编译优化装置300可以包括获取单元301、查询单元302和下发单元303。其中,获取单元301,用于响应于接收到宿主应用发送的寄宿应用的获取请求,获取所述宿主应用所提供的寄宿应用运行环境的环境数据;查询单元302,用于根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;下发单元303,用于向所述宿主应用下发所获得的所述宿主应用可运行的一个编译结果,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
需要说明的是,本实施例的寄宿应用的编译优化装置的部分或全部可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的管理平台中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。
可以理解的是,所述宿主应用可以是安装在本地终端上的本地程序(nativeApp),或者还可以是本地终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
可选地,在本实施例的一个可能的实现方式中,所述第二编译结果可以为一个编译结果,或者还可以为两个或者多个编译结果。
可选地,在本实施例的一个可能的实现方式中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据,例如,百度APP的版本号等;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
可选地,在本实施例的一个可能的实现方式中,如图4所示,本实施例所提供的寄宿应用的编译优化装置400还可以进一步包括审核单元401,可以用于获取开发者工具上传的所述寄宿应用的编译结果;对所述寄宿应用的编译结果中各编译结果进行审核处理;以及根据所述各编译结果的审核处理结果,对所述审核处理结果为通过的编译结果,进行可运行环境的标记处理。
具体地,所述审核单元401,具体可以用于对所述第一编译结果和所述第二编译结果分别进行审核处理,以获得所述第一编译结果的审核处理结果和所述第二编译结果的审核处理结果;若所述第一编译结果的审核处理结果为通过,不对所述第二编译结果的审核处理结果进行调整;若所述第一编译结果的审核处理结果为未通过,将所述第二编译结果的审核处理结果调整为未通过。
需要说明的是,图1对应的实施例中的方法可以由本实施例提供的寄宿应用的编译优化装置实现。详细描述可以参见图1对应的实施例中的相关内容,此处不再赘述。
本实施例中,通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及编译处理优化之后的寄宿应用的第二编译结果,并将其上传到管理平台,分别由查询单元和下发单元根据获取单元所获取的宿主应用所提供的寄宿应用运行环境的环境数据,进行对应编译结果的查询与下发,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行所获得的编译结果,由于寄宿应用的编译处理的优化不再受限于用户所使用的宿主应用的版本,使得寄宿应用的编译处理的优化得以顺利进行,从而有效地提高了优化之后的寄宿应用运行的效率和可靠性。
另外,采用本申请所提供的技术方案,由于开发者工具不仅构建了编译处理优化之后的寄宿应用的第二编译结果,还构建了编译处理优化之前的寄宿应用的第一编译结果,使得开发者工具在进行编译处理优化的过程中能够去掉对宿主应用的历史版本兼容的包袱,使得开发者工具的内部代码更清晰,其编译产物也更高效,从而提高了开发者工具的编译效率。
另外,采用本申请所提供的技术方案,能够有效为构建编译产物变化快速上线开辟了一个新的路径,有较大的收益。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
图5是根据本申请第五实施例的示意图,如图5所示。本实施例的寄宿应用的编译优化装置500可以包括获取单元501、构建单元502和上传单元503。其中,获取单元501,用于获取寄宿应用的源代码;构建单元502,用于根据所述寄宿应用的源代码,构建所述寄宿应用的编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;上传单元503,用于向管理平台上传所述寄宿应用的编译结果。
需要说明的是,本实施例的寄宿应用的编译优化装置可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(SoftwareDevelopment Kit,SDK)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的开发者工具中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在本地终端上的本地程序(nativeApp),或者还可以是本地终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
可选地,在本实施例的一个可能的实现方式中,所述第二编译结果可以为一个编译结果,或者还可以为两个或者多个编译结果。
可选地,在本实施例的一个可能的实现方式中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据,例如,百度APP的版本号等;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
可选地,在本实施例的一个可能的实现方式中,所述上传单元503,具体可以用于根据所述寄宿应用的编译结果,生成各编译结果的版本数据,所述各编译结果的版本数据包括所述第一编译结果的版本数据、所述第一编译结果所依赖的寄宿应用运行环境的最低版本数据、所述第二编译结果的版本数据和所述第二编译结果所依赖的寄宿应用运行环境的最低版本数据;以及向所述管理平台上传所述各编译结果和所述各编译结果的版本数据。
具体地,所述上传单元503,具体可以用于根据所述寄宿应用的统一编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据;或者根据所述寄宿应用的本次编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据。
需要说明的是,图2对应的实施例中的方法可以由本实施例提供的寄宿应用的编译优化装置实现。详细描述可以参见图2对应的实施例中的相关内容,此处不再赘述。
本实施例中,通过构建单元基于获取单元所获取的寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及编译处理优化之后的寄宿应用的第二编译结果,并由上传单元将其上传到管理平台,由管理平台根据宿主应用所提供的寄宿应用运行环境的环境数据,进行对应编译结果的下发,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行所获得的编译结果,由于寄宿应用的编译处理的优化不再受限于用户所使用的宿主应用的版本,使得寄宿应用的编译处理的优化得以顺利进行,从而有效地提高了优化之后的寄宿应用运行的效率和可靠性。
另外,采用本申请所提供的技术方案,由于开发者工具不仅构建了编译处理优化之后的寄宿应用的第二编译结果,还构建了编译处理优化之前的寄宿应用的第一编译结果,使得开发者工具在进行编译处理优化的过程中能够去掉对宿主应用的历史版本兼容的包袱,使得开发者工具的内部代码更清晰,其编译产物也更高效,从而提高了开发者工具的编译效率。
另外,采用本申请所提供的技术方案,能够有效为构建编译产物变化快速上线开辟了一个新的路径,有较大的收益。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
根据本申请的实施例,本申请还提供了一种电子设备和一种存储有计算机指令的非瞬时计算机可读存储介质。
如图6所示,是用来实现本申请实施例的寄宿应用的编译优化方法的电子设备的示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI(图形用户界面)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的寄宿应用的编译优化方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的寄宿应用的编译优化方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及单元,如本申请实施例中的寄宿应用的编译优化方法对应的程序指令/单元(例如,附图3所示的获取单元301、查询单元302和下发单元303等)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及单元,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的寄宿应用的编译优化方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据实现本申请实施例提供的寄宿应用的编译优化方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至实现本申请实施例提供的寄宿应用的编译优化方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
寄宿应用的编译优化方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与实现本申请实施例提供的寄宿应用的编译优化方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,LCD(液晶显示器)、LED(发光二极管)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、PLD(可编程逻辑器件)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:LAN(局域网)、WAN(广域网)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
根据本申请实施例的技术方案,通过开发者工具基于寄宿应用的源代码分别构建编译处理优化之前的寄宿应用的第一编译结果,以及编译处理优化之后的寄宿应用的第二编译结果,并将其上传到管理平台,由管理平台根据宿主应用所提供的寄宿应用运行环境的环境数据,进行对应编译结果的下发,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行所获得的编译结果,由于寄宿应用的编译处理的优化不再受限于用户所使用的宿主应用的版本,使得寄宿应用的编译处理的优化得以顺利进行,从而有效地提高了优化之后的寄宿应用运行的效率和可靠性。
另外,采用本申请所提供的技术方案,由于开发者工具不仅构建了编译处理优化之后的寄宿应用的第二编译结果,还构建了编译处理优化之前的寄宿应用的第一编译结果,使得开发者工具在进行编译处理优化的过程中能够去掉对宿主应用的历史版本兼容的包袱,使得开发者工具的内部代码更清晰,其编译产物也更高效,从而提高了开发者工具的编译效率。
另外,采用本申请所提供的技术方案,能够有效为构建编译产物变化快速上线开辟了一个新的路径,有较大的收益。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (22)

1.一种寄宿应用的编译优化方法,包括:
响应于接收到宿主应用发送的寄宿应用的获取请求,获取所述宿主应用所提供的寄宿应用运行环境的环境数据;
根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
向所述宿主应用下发所获得的所述宿主应用可运行的一个编译结果,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
2.根据权利要求1所述的方法,其中,所述第二编译结果包括至少一个编译结果。
3.根据权利要求1所述的方法,其中,所述根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果之前,还包括:
获取开发者工具上传的所述寄宿应用的编译结果;
对所述寄宿应用的编译结果中各编译结果进行审核处理;
根据所述各编译结果的审核处理结果,对所述审核处理结果为通过的编译结果,进行可运行环境的标记处理。
4.根据权利要求3所述的方法,其中,所述对所述寄宿应用的编译结果中各编译结果进行审核处理,包括:
对所述第一编译结果和所述第二编译结果分别进行审核处理,以获得所述第一编译结果的审核处理结果和所述第二编译结果的审核处理结果;
若所述第一编译结果的审核处理结果为通过,不对所述第二编译结果的审核处理结果进行调整;
若所述第一编译结果的审核处理结果为未通过,将所述第二编译结果的审核处理结果调整为未通过。
5.根据权利要求1-4中任一项所述的方法,其中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
6.一种寄宿应用的编译优化方法,包括:
获取寄宿应用的源代码;
根据所述寄宿应用的源代码,构建所述寄宿应用的编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
向管理平台上传所述寄宿应用的编译结果。
7.根据权利要求6所述的方法,其中,所述第二编译结果包括至少一个编译结果。
8.根据权利要求6所述的方法,其中,所述向管理平台上传所述寄宿应用的编译结果,包括:
根据所述寄宿应用的编译结果,生成各编译结果的版本数据,所述各编译结果的版本数据包括所述第一编译结果的版本数据、所述第一编译结果所依赖的寄宿应用运行环境的最低版本数据、所述第二编译结果的版本数据和所述第二编译结果所依赖的寄宿应用运行环境的最低版本数据;
向所述管理平台上传所述各编译结果和所述各编译结果的版本数据。
9.根据权利要求8所述的方法,其中,所述根据所述寄宿应用的编译结果,生成各编译结果的版本数据,包括:
根据所述寄宿应用的统一编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据;或者
根据所述寄宿应用的本次编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据。
10.根据权利要求6-9中任一项所述的方法,其中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
11.一种寄宿应用的编译优化装置,包括:
获取单元,用于响应于接收到宿主应用发送的寄宿应用的获取请求,获取所述宿主应用所提供的寄宿应用运行环境的环境数据;
查询单元,用于根据所述宿主应用所提供的寄宿应用运行环境的环境数据,在开发者工具所上传的所述寄宿应用的编译结果中进行查询处理,以获得所述宿主应用可运行的一个编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
下发单元,用于向所述宿主应用下发所获得的所述宿主应用可运行的一个编译结果,以供所述宿主应用利用该宿主应用所提供的寄宿应用运行环境,运行该一个编译结果。
12.根据权利要求11所述的装置,其中,所述第二编译结果包括至少一个编译结果。
13.根据权利要求11所述的装置,其中,所述装置还包括审核单元,用于
获取开发者工具上传的所述寄宿应用的编译结果;
对所述寄宿应用的编译结果中各编译结果进行审核处理;以及
根据所述各编译结果的审核处理结果,对所述审核处理结果为通过的编译结果,进行可运行环境的标记处理。
14.根据权利要求13所述的装置,其中,所述审核单元,具体用于
对所述第一编译结果和所述第二编译结果分别进行审核处理,以获得所述第一编译结果的审核处理结果和所述第二编译结果的审核处理结果;
若所述第一编译结果的审核处理结果为通过,不对所述第二编译结果的审核处理结果进行调整;
若所述第一编译结果的审核处理结果为未通过,将所述第二编译结果的审核处理结果调整为未通过。
15.根据权利要求11-14中任一项所述的装置,其中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
16.一种寄宿应用的编译优化装置,包括:
获取单元,用于获取寄宿应用的源代码;
构建单元,用于根据所述寄宿应用的源代码,构建所述寄宿应用的编译结果,所述寄宿应用的编译结果包括编译处理优化之前的第一编译结果和编译处理优化之后的第二编译结果;
上传单元,用于向管理平台上传所述寄宿应用的编译结果。
17.根据权利要求16所述的装置,其中,所述第二编译结果包括至少一个编译结果。
18.根据权利要求16所述的装置,其中,所述上传单元,具体用于
根据所述寄宿应用的编译结果,生成各编译结果的版本数据,所述各编译结果的版本数据包括所述第一编译结果的版本数据、所述第一编译结果所依赖的寄宿应用运行环境的最低版本数据、所述第二编译结果的版本数据和所述第二编译结果所依赖的寄宿应用运行环境的最低版本数据;以及
向所述管理平台上传所述各编译结果和所述各编译结果的版本数据。
19.根据权利要求18所述的装置,其中,所述上传单元,具体用于
根据所述寄宿应用的统一编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据;或者
根据所述寄宿应用的本次编译版本生成规则,按照顺序依次生成所述各编译结果的版本数据。
20.根据权利要求16-19中任一项所述的装置,其中,所述宿主应用所提供的寄宿应用运行环境的环境数据包括下列数据中的至少一项:
所述宿主应用的版本数据;以及
所述宿主应用所提供的寄宿应用运行环境的版本数据。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5或者6-10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-5或者6-10中任一项所述的方法。
CN202010752207.XA 2020-07-30 2020-07-30 寄宿应用的编译优化方法、装置、电子设备及可读存储介质 Active CN111949272B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010752207.XA CN111949272B (zh) 2020-07-30 2020-07-30 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
US17/348,334 US11586425B2 (en) 2020-07-30 2021-06-15 Method for compilation optimization of hosted app, electronic device and readable storage medium
EP21179699.0A EP3945415B1 (en) 2020-07-30 2021-06-16 Method and apparatus for compilation optimization of hosted app, electronic device and readable storage medium
KR1020210092287A KR102572726B1 (ko) 2020-07-30 2021-07-14 호스팅 애플리케이션의 컴파일 최적화 방법, 장치, 전자 기기 및 판독 가능 저장 매체
JP2021117431A JP7231137B2 (ja) 2020-07-30 2021-07-15 ボーディングアプリケーションのコンパイル最適化方法、装置、電子機器及び読み取り可能な記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010752207.XA CN111949272B (zh) 2020-07-30 2020-07-30 寄宿应用的编译优化方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111949272A true CN111949272A (zh) 2020-11-17
CN111949272B CN111949272B (zh) 2023-12-22

Family

ID=73338717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010752207.XA Active CN111949272B (zh) 2020-07-30 2020-07-30 寄宿应用的编译优化方法、装置、电子设备及可读存储介质

Country Status (5)

Country Link
US (1) US11586425B2 (zh)
EP (1) EP3945415B1 (zh)
JP (1) JP7231137B2 (zh)
KR (1) KR102572726B1 (zh)
CN (1) CN111949272B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540767A (zh) * 2020-12-25 2021-03-23 北京百度网讯科技有限公司 程序代码的生成方法、装置、电子设备及存储介质
CN112559980A (zh) * 2020-11-24 2021-03-26 珠海凡泰极客科技有限责任公司 一种可内嵌众多任意app的小程序运行时
CN112860355A (zh) * 2021-02-09 2021-05-28 南方电网数字电网研究院有限公司 应用程序运行、发布方法、装置、计算机设备和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114185551B (zh) * 2022-02-17 2022-06-21 浙江口碑网络技术有限公司 小程序的编译方法、小程序的运行方法及装置、存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110307858A1 (en) * 2010-06-14 2011-12-15 Microsoft Corporation Pre-compiling hosted managed code
US9134980B1 (en) * 2012-05-01 2015-09-15 Amazon Technologies, Inc. Compiler optimization in a computing environment
US20160170727A1 (en) * 2014-12-12 2016-06-16 The Regents Of The University Of Michigan Runtime Compiler Environment With Dynamic Co-Located Code Execution
CN108846100A (zh) * 2018-06-19 2018-11-20 上海掌门科技有限公司 快速搜索寄宿应用的方法及设备
US10552130B1 (en) * 2017-06-09 2020-02-04 Azul Systems, Inc. Code optimization conversations for connected managed runtime environments
CN111212183A (zh) * 2019-12-12 2020-05-29 上海连尚网络科技有限公司 一种用于运行寄宿应用的方法与设备
CN111367635A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 宿主平台层中的应用接口实现方法、装置、设备和介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018960A1 (en) * 2001-07-23 2003-01-23 Hacking Lance E. System and a method of sorting perfomance data from one or more system configurations
US20030182652A1 (en) * 2001-12-21 2003-09-25 Custodio Gabriel T. Software building and deployment system and method
CA2443049A1 (en) * 2003-09-26 2005-03-26 Ali I. Sheikh Method for computer program optimization in a dynamic compiling environment
US7694291B2 (en) * 2004-04-06 2010-04-06 Hewlett-Packard Development Company, L.P. Build optimizer tool for efficient management of software builds for mobile devices
US8234636B2 (en) * 2006-09-12 2012-07-31 International Business Machines Corporation Source code modification technique
FR2934388A1 (fr) * 2008-07-25 2010-01-29 Proviciel Mlstate Procede de creation de programme informatique
US8667483B2 (en) 2009-03-25 2014-03-04 Microsoft Corporation Device dependent on-demand compiling and deployment of mobile applications
JP5460430B2 (ja) * 2010-04-05 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 動的コンパイラプログラム、動的コンパイル方法及び動的コンパイル装置
US8819382B2 (en) * 2012-08-09 2014-08-26 Apple Inc. Split heap garbage collection
US20160196204A1 (en) * 2015-01-04 2016-07-07 International Business Machines Corporation Smart Validated Code Searching System
US9645814B1 (en) 2015-05-04 2017-05-09 Amazon Technologies, Inc. Generating and publishing applications for multiple platforms
US10409559B2 (en) * 2016-03-18 2019-09-10 Oracle International Corporation Single-source-base compilation for multiple target environments
US10956137B2 (en) * 2019-06-10 2021-03-23 International Business Machines Corporation Compiling source code using source code transformations selected using benchmark data
US20210141632A1 (en) * 2019-11-08 2021-05-13 Salesforce.Com, Inc. Automated software patching for versioned code

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110307858A1 (en) * 2010-06-14 2011-12-15 Microsoft Corporation Pre-compiling hosted managed code
US9134980B1 (en) * 2012-05-01 2015-09-15 Amazon Technologies, Inc. Compiler optimization in a computing environment
US20160170727A1 (en) * 2014-12-12 2016-06-16 The Regents Of The University Of Michigan Runtime Compiler Environment With Dynamic Co-Located Code Execution
US10552130B1 (en) * 2017-06-09 2020-02-04 Azul Systems, Inc. Code optimization conversations for connected managed runtime environments
CN108846100A (zh) * 2018-06-19 2018-11-20 上海掌门科技有限公司 快速搜索寄宿应用的方法及设备
CN111212183A (zh) * 2019-12-12 2020-05-29 上海连尚网络科技有限公司 一种用于运行寄宿应用的方法与设备
CN111367635A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 宿主平台层中的应用接口实现方法、装置、设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘琳羽;南凯;: "一种基于Docker的开发者服务平台设计", 科研信息化技术与应用, no. 05 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559980A (zh) * 2020-11-24 2021-03-26 珠海凡泰极客科技有限责任公司 一种可内嵌众多任意app的小程序运行时
CN112559980B (zh) * 2020-11-24 2023-05-05 深圳凡泰极客科技有限责任公司 一种可内嵌众多任意app的小程序运行时
CN112540767A (zh) * 2020-12-25 2021-03-23 北京百度网讯科技有限公司 程序代码的生成方法、装置、电子设备及存储介质
CN112540767B (zh) * 2020-12-25 2023-07-25 北京百度网讯科技有限公司 程序代码的生成方法、装置、电子设备及存储介质
CN112860355A (zh) * 2021-02-09 2021-05-28 南方电网数字电网研究院有限公司 应用程序运行、发布方法、装置、计算机设备和存储介质
CN112860355B (zh) * 2021-02-09 2024-01-30 南方电网数字平台科技(广东)有限公司 应用程序运行、发布方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
KR20220015323A (ko) 2022-02-08
EP3945415B1 (en) 2023-08-09
JP7231137B2 (ja) 2023-03-01
EP3945415A1 (en) 2022-02-02
KR102572726B1 (ko) 2023-08-29
CN111949272B (zh) 2023-12-22
US11586425B2 (en) 2023-02-21
US20220035610A1 (en) 2022-02-03
JP2022027529A (ja) 2022-02-10

Similar Documents

Publication Publication Date Title
CN111949272A (zh) 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
CN111625224B (zh) 代码生成方法、装置、设备及存储介质
US10635437B1 (en) Techniques to deploy an application as a cloud computing service
US10175977B2 (en) User profile based code review
CN111913998B (zh) 数据处理方法、装置、设备和存储介质
US11270669B2 (en) Rendering method and apparatus, electronic device and storage medium
CN111752843A (zh) 用于确定影响面的方法、装置、电子设备及可读存储介质
CN111885114B (zh) 网关中的应用程序接口模块的升级方法、设备及存储介质
CN110752968B (zh) 性能基准测试方法、装置、电子设备及存储介质
CN112015468A (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
CN111610972A (zh) 页面生成方法、装置、设备及存储介质
JP7220733B2 (ja) ユーザappインタレストの埋め込み方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
CN111880778B (zh) 接口文档的生成方法、装置、电子设备及存储介质
US11196828B2 (en) Method, apparatus, device and computer storage medium for determining source channel
CN114661274A (zh) 用于生成智能合约的方法和装置
CN111639116B (zh) 数据访问连接会话保护方法以及装置
CN111951788A (zh) 一种语言模型的优化方法、装置、电子设备及存储介质
CN112379945A (zh) 用于运行应用的方法、装置、设备以及存储介质
CN111611582B (zh) 用于识别页面劫持行为的方法和装置
CN111291201B (zh) 一种多媒体内容分值处理方法、装置和电子设备
CN111294245B (zh) 离线系统质控方法、离线系统质控装置和电子设备
CN113126854B (zh) 一种菜单显示方法、装置以及电子设备
WO2024118206A1 (en) Graphical user interface and flexible architecture for a rule engine
WO2023036399A1 (en) Managing an app, especially developing an app comprising an event artifact, method and system
CN114968988A (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