CN112214223B - 应用启动方法、装置、终端设备及计算机可读存储介质 - Google Patents

应用启动方法、装置、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112214223B
CN112214223B CN202011186200.2A CN202011186200A CN112214223B CN 112214223 B CN112214223 B CN 112214223B CN 202011186200 A CN202011186200 A CN 202011186200A CN 112214223 B CN112214223 B CN 112214223B
Authority
CN
China
Prior art keywords
platform
script file
application
platform script
name
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
CN202011186200.2A
Other languages
English (en)
Other versions
CN112214223A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202011186200.2A priority Critical patent/CN112214223B/zh
Publication of CN112214223A publication Critical patent/CN112214223A/zh
Application granted granted Critical
Publication of CN112214223B publication Critical patent/CN112214223B/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
    • 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
    • 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
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种应用启动方法、装置、终端设备及计算机可读存储介质,该方法包括:响应第一应用的第一启动指令,调用第一应用对应的第一平台脚本文件启动第一应用,基于第一平台脚本文件确定对应的第一字节码;响应第二应用的第二启动指令,确定第二应用对应的第二平台脚本文件;第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件时,基于第一字节码启动第二应用。本申请确定第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件时,直接根据第一平台脚本文件生成的字节码启动第二应用,实现字节码的共享和复用,提升了脚本文件的执行速度,从而提升了应用启动的速度。

Description

应用启动方法、装置、终端设备及计算机可读存储介质
技术领域
本申请涉及应用控制技术领域,尤其涉及一种应用启动方法、装置、终端设备及计算机可读存储介质。
背景技术
应用启动时,服务器需要使用引擎中的平台脚本文件对启动应用中的应用脚本文件进行解析和编译。目前应用启动时,可能需要多次使用应用引擎中的平台脚本文件对应用脚本文件进行解析和编译,服务器需要对每一份应用脚本文件进行多次解析和多次编译,即使同一个应用的多次启动,服务器也都需要对该应用脚本文件进行多次解析和多次编译,由于服务器每次对应用脚本文件的解析和编译所花费的时间占运行总时间的1/3,因此,严重影响应用的启动速度。
发明内容
本申请的主要目的在于提供一种应用启动方法、装置、终端设备及计算机可读存储介质,旨在提升应用启动速度。
为实现上述目的,本申请实施例提供一种应用启动方法,所述应用启动方法包括:
响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用,并基于所述第一平台脚本文件确定对应的第一字节码;
响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件;
所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件时,基于所述第一字节码启动所述第二应用。
本申请实施例还提供一种应用启动装置,所述应用启动装置包括:
启动模块,用于响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用;
确定模块,用于基于所述第一平台脚本文件确定对应的第一字节码;
所述确定模块还用于响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件;
所述启动模块还用于所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件时,基于所述第一字节码启动所述第二应用。
本申请实施例还提供一种终端设备,所述终端设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的应用启动程序,所述应用启动程序被所述处理器执行时实现如上所述的应用启动方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有应用启动程序,所述应用启动程序被处理器执行时实现如上所述的应用启动方法的步骤。
本申请实施例提供的应用启动方法、装置、终端设备及计算机可读存储介质,通过响应第一应用的第一启动指令,调用第一应用对应的第一平台脚本文件启动第一应用,基于第一平台脚本文件确定对应的第一字节码;响应第二应用的第二启动指令,确定第二应用对应的第二平台脚本文件;第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件时,基于第一字节码启动第二应用。由此可知,本申请在启动应用的过程中,第一应用启动后,根据第一平台脚本文件生成对应的字节码,第二应用需要启动时,若第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件,则不需要对目标平台脚本文件进行再次解析和再次编译,然后直接获取并运行第一平台脚本文件生成的字节码,从而启动第二应用,实现一份字节码多个应用共同使用,即实现字节码的共享和复用,提升了脚本文件的执行速度,从而提升了应用启动的速度。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的终端设备结构示意图;
图2是本申请应用启动方法第一实施例的流程示意图;
图3是图2中的步骤S10的细化流程示意图;
图4是本申请应用启动方法第二实施例的流程示意图;
图5是图4中的步骤S23的细化流程示意图;
图6是本申请应用启动方法第三实施例的流程示意图;
图7是本申请应用启动装置的功能模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:响应第一应用的第一启动指令,调用第一应用对应的第一平台脚本文件启动第一应用,基于第一平台脚本文件确定对应的第一字节码;响应第二应用的第二启动指令,确定第二应用对应的第二平台脚本文件;第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件时,基于第一字节码启动第二应用。由此,确定第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件之后,不需要对目标平台脚本文件进行再次解析和再次编译,直接获取并运行第一平台脚本文件生成的字节码,从而启动第二应用,实现字节码的共享和复用,提升了脚本文件的执行速度,进一步提升了应用启动的速度。
具体地,参照图1,图1为本申请实施例方案涉及的硬件运行环境的终端设备结构示意图。
本申请实施例的终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
如图1所示,该终端设备可以包括:处理器1001,例如CPU(Central ProcessingUnit,中央处理器),存储器1005,用户接口1003,网络接口1004,通信总线1002。通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(board),用户接口1003可选的还可以包括标准的有线接口(如USB(UniversalSerial Bus,通用串行总线)接口)、无线接口(如蓝牙接口)。网络接口1004可以包括标准的有线接口、无线接口(如WI-FI((Wireless-Fidelity))接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,终端设备还可以包括RF(RadioFrequency,射频)电路,传感器、WiFi模块等。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作设备、网络通信模块、用户接口模块以及应用启动程序。其中,操作设备是管理和控制终端设备硬件和软件资源的程序,支持应用启动程序以及其它软件或程序的运行。
在图1所示的终端设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;其中,处理器1001可以用于调用存储器1005中存储的应用启动程序,并执行如下操作:
响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用,并基于所述第一平台脚本文件确定对应的第一字节码;
响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件;
所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件时,基于所述第一字节码启动所述第二应用。
进一步地,处理器1001可以调用存储器1005中存储的应用启动程序,还执行以下操作:
基于所述第一平台脚本文件确定对应的第一平台名称和第一平台脚本名称,并基于所述第二平台脚本文件确定对应的第二平台名称和第二平台脚本名称;
检测所述第一平台名称与所述第二平台名称是否相同;
若检测到所述第一平台名称与所述第二平台名称相同,则基于所述第一平台脚本名称和所述第二平台脚本名称,确定所述第二平台脚本文件是否存在与所述第一平台脚本文件相同的目标平台脚本文件。
进一步地,处理器1001可以调用存储器1005中存储的应用启动程序,还执行以下操作:
检测所述第二平台脚本名称中是否存在与所述第一平台脚本名称相同的目标平台脚本名称;
若检测到所述第二平台脚本名称中存在所述目标平台脚本名称,则确定所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件;或者,
若检测到所述第二平台脚本名称中不存在所述目标平台脚本名称,则确定所述第二平台脚本文件中不存在与所述第一平台脚本文件相同的目标平台脚本文件。
进一步地,处理器1001可以调用存储器1005中存储的应用启动程序,还执行以下操作:
若检测到所述第一平台名称与所述第二平台名称不相同,则调用所述第二平台脚本文件,并将所述第二平台脚本文件进行解析和编译,以启动所述第二应用;
获取所述第二平台脚本文件在编译过程中产生的第一序列化代码,并将所述第一序列化代码确定为所述第二平台脚本文件对应的第二字节码。
进一步地,处理器1001可以调用存储器1005中存储的应用启动程序,还执行以下操作:
响应所述第一启动指令,并检测在数据库中是否存在目标字节码,其中,所述目标字节码对应的平台脚本文件与所述第一平台脚本文件相同;
若检测到在所述数据库中不存在所述目标字节码,则调用所述第一平台脚本文件,并将所述第一平台脚本文件进行解析和编译,以启动所述第一应用。
进一步地,处理器1001可以调用存储器1005中存储的应用启动程序,还执行以下操作:
获取所述第一平台脚本文件在编译过程中产生的第二序列化代码,并将所述第二序列化代码确定为所述第一平台脚本文件对应的第一字节码。
本申请实施例通过响应第一应用的第一启动指令,调用第一应用对应的第一平台脚本文件启动第一应用,基于第一平台脚本文件确定对应的第一字节码;响应第二应用的第二启动指令,确定第二应用对应的第二平台脚本文件;第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件时,基于第一字节码启动第二应用。由此可知,本申请在启动应用的过程中,第一应用启动后,根据第一平台脚本文件生成对应的字节码,第二应用需要启动时,若第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件,则不需要对目标平台脚本文件进行再次解析和再次编译,然后直接获取并运行第一平台脚本文件生成的字节码,从而启动第二应用,实现一份字节码多个应用共同使用,即实现字节码的共享和复用,提升了脚本文件的执行速度,从而提升了应用启动的速度。
基于上述的终端设备架构但不限于上述架构,本申请实施例提供了应用启动方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
本申请本实施例方法的执行主体可以是一种应用启动装置,也可以是一种终端设备或服务器,本实施例以服务器作为执行主体进行举例。
参照图2,图2为本申请应用启动方法第一实施例的流程示意图。所述应用启动方法包括:
步骤S10,响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用,并基于所述第一平台脚本文件确定对应的第一字节码。
本实施例方案适用于智能移动终端中的轻应用(Light App)或者Web网站中的网页轻应用(Web App),比如,用于手机应用小程序或者网页小程序,因此,对应的客户端包括不限制于智能移动终端和电脑。
用户需要启动应用时,需要在客户端中对所要启动的应用进行点击,以触发并启动应用的启动指令,服务器侦测到启动指令后,响应启动指令并启动用户所点击的应用。
服务器侦测到客户端发送的第一应用的第一启动指令后,响应该第一启动指令,并获取第一应用中所使用的第一平台脚本文件,然后通过服务器中的脚本引擎对第一平台脚本文件进行解析,并对解析后的第一平台脚本文件进行编译,启动第一应用,同时,将第一平台脚本文件在编译过程中产生的第一字节码存储于服务器的数据库中,其中,第一平台脚本文件为JavaScript脚本文件,字节码是二进制字节序列组成的中间码。
其中,平台脚本文件即JavaScript文件,属于轻应用引擎,是轻应用运行所必须的脚本文件。
步骤S20,响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件。
服务器侦测到客户端发送的第二应用的启动指令后,确定第二应用中所使用的第二平台脚本文件,然后检测第二平台脚本文件中是否存在与第一平台脚本文件相同的目标平台脚本文件,若服务器检测到第二平台脚本文件中不存在与第一平台脚本文件相同的目标平台脚本文件,服务器则通过脚本引擎对第二平台脚本文件进行解析,并对解析后的第二平台脚本文件进行编译,启动第二应用,同时,将第二平台脚本文件在编译过程中产生的第二字节码存储于服务器的数据库中。其中,第二平台脚本文件为JavaScript脚本文件。
在本实施例中,比如,第一平台脚本文件为“a.js+b.js”,第二平台脚本文件为“c.js+d.js”,服务器则确定在第二平台脚本文件中不存在与第一平台脚本文件相同的平台脚本文件。
步骤S30,所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件时,基于所述第一字节码启动所述第二应用。
若服务器检测到第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件,服务器则获取第一平台脚本文件对应的第一字节码,并将第一字节码中的字节序列转换成内存对象,然后通过脚本引擎直接运行该内存对象。接着,服务器再通过脚本引擎对第二平台脚本文件中除目标平台脚本文件外的其他平台脚本文件进行解析和编译,启动第二应用。
需要说明的是,第二应用可以是除第一应用之外的其他应用,也可以是第一应用本身,本实施例不作限制。
在本实施例中,比如,第一平台脚本文件为“a.js+b.js+c.js”,第二平台脚本文件为“c.js+d.js”,服务器则直接运行第一平台脚本文件中“c.js”生成的字节码,再使用引擎脚本文件对“d.js”进行解析和编译,启动第二应用。再比如,第一平台脚本文件为“a.js+b.js+c.js”,第二平台脚本文件为“a.js+b.js+c.js”,即第一应用和第二应用相同,可以理解为,第一应用关闭后又重新启动,服务器则直接运行“a.js”、“b.js”和“c.js”对应的字节码,直接启动第二应用。
本实施例实现通过响应第一应用的第一启动指令,调用第一应用对应的第一平台脚本文件启动第一应用,基于第一平台脚本文件确定对应的第一字节码;响应第二应用的第二启动指令,确定第二应用对应的第二平台脚本文件;第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件时,基于第一字节码启动第二应用。由此可知,本实施例在启动应用的过程中,第一应用启动后,根据第一平台脚本文件生成对应的字节码,第二应用需要启动时,若第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件,则不需要对目标平台脚本文件进行再次解析和再次编译,然后直接获取并运行第一平台脚本文件生成的字节码,从而启动第二应用,实现一份字节码多个应用共同使用,即实现字节码的共享和复用,提升了脚本文件的执行速度,从而提升了应用启动的速度。
参照图3,图3为本申请应用启动方法第一实施例中步骤S10的细化流程示意图。所述步骤S10包括:
步骤S101,响应所述第一启动指令,并检测在数据库中是否存在目标字节码,其中,所述目标字节码对应的平台脚本文件与所述第一平台脚本文件相同;
步骤S102,若检测到在所述数据库中不存在所述目标字节码,则调用所述第一平台脚本文件,并将所述第一平台脚本文件进行解析和编译,以启动所述第一应用;
步骤S103,获取所述第一平台脚本文件在编译过程中产生的第二序列化代码,并将所述第二序列化代码确定为所述第一平台脚本文件对应的第一字节码。
具体地,服务器侦测到客户端发送的应用的启动指令后,获取该应用中所使用的平台脚本文件,然后检测该平台脚本文件是否第一次被调用,即服务器检测在数据库中是否存在与该平台脚本文件相同的平台脚本文件,若服务器检测到该平台脚本文件第一次被调用,即服务器检测到在数据库中不存在与该平台脚本文件相同的平台脚本文件,服务器则通过脚本引擎对该平台脚本文件进行解析,然后对解析后的平台脚本文件进行编译,启动该应用,同时,将该平台脚本文件在编译过程中产生的字节码存储于服务器的数据库中。若服务器检测到该平台脚本文件不是第一次被调用,即服务器检测到在数据库中存在与该平台脚本文件相同的平台脚本文件,服务器则在服务器的数据库中获取该平台脚本文件对应的字节码,并将该字节码中的字节序列转换成内存对象,然后通过脚本引擎直接运行该内存对象,直接启动该应用。在应用启动后,服务器获取平台脚本文件在编译过程中产生的各个二进制字节码,将各个二进制字节码进行序列化,得到该平台脚本文件在编译过程中产生的序列化代码,该序列化代码即为平台脚本文件对应的字节码
进一步地,若检测到在数据库中不存在目标字节码,则将第一平台脚本文件进行解析和编译,以启动第一应用的具体步骤可为,若服务器检测到平台脚本文件第一次被调用,即服务器检测到在数据库中不存在目标字节码,服务器则通过脚本引擎对该平台脚本文件进行语法分析、词法分析和抽象语法树构建等,启动该应用。
本实施例实现通过响应第一启动指令,并检测在数据库中是否存在目标字节码,其中,目标字节码对应的平台脚本文件与第一平台脚本文件相同;若检测到在数据库中不存在目标字节码,则调用第一平台脚本文件,并将第一平台脚本文件进行解析和编译,以启动第一应用。由此可知,本实施例在启动应用的过程中,在响应第一启动指令后,若确定在数据库中存在有与第一平台脚本文件相同的平台脚本文件,则不需要对第一平台脚本文件进行再次解析和再次编译,直接调用数据库中平台脚本文件对应的目标字节码,启动第一应用,实现字节码的共享和复用,提升了脚本文件的执行速度,从而提升了应用启动的速度。
参照图4,图4为本申请应用启动方法第二实施例的流程示意图。基于上述图2所示的实施例,在本实施例中,在上述步骤S20,响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件之后还包括:
步骤S21,基于所述第一平台脚本文件确定对应的第一平台名称和第一平台脚本名称,并基于所述第二平台脚本文件确定对应的第二平台名称和第二平台脚本名称;
步骤S22,检测所述第一平台名称与所述第二平台名称是否相同;
步骤S23,若检测到所述第一平台名称与所述第二平台名称相同,则基于所述第一平台脚本名称和所述第二平台脚本名称,确定所述第二平台脚本文件是否存在与所述第一平台脚本文件相同的目标平台脚本文件。
需要说明的是,在本实施例中,生成字节码的平台和调用字节码的平台必须是一致,否则字节码无法正常调用,即不同平台之间的字节码是不通用的。比如,若需要调用第一平台中的字节码,就必须获取在第一平台下生成的字节码,若需要调用第二平台的中字节码,就必须获取在第二平台下生成的字节码,第一平台不可以调用第二平台下生成的字节码,第二平台也不可以调用第一平台下生成的字节码。其中,第一平台中有各种轻应用的小程序,如聊天互动小程序、购物小程序和音视频小程序等,第二平台同理。
具体地,服务器侦测到第二应用的启动指令时,响应该启动指令,并获取第二应用中的第二平台脚本文件,对第二平台脚本文件进行分析,得到第二平台脚本文件对应的第二平台名称和第二平台脚本名称。然后服务器对第一平台脚本文件进行分析,得到第一平台脚本文件对应的第一平台名称和第一平台脚本名称。接着,服务器检测第一平台名称与第二平台名称是否相同,若服务器检测到第一平台名称与第二平台名称不相同,服务器则确定第一平台脚本文件和第二平台脚本文件不属于同一平台,即第一平台脚本文件对应的第一字节码与第二平台脚本文件不通用。若服务器检测到第一平台名称与第二平台名称相同,服务器则确定第一平台脚本文件和第二平台脚本文件属于同一平台。
需要说明的是,平台名称可以进一步理解为平台脚本文件的存储路径。每一个应用中的平台脚本文件对应唯一的平台名称和平台脚本名称。
本实施例通过基于第一平台脚本文件确定对应的第一平台名称和第一平台脚本名称,并基于第二平台脚本文件确定对应的第二平台名称和第二平台脚本名称;检测第一平台名称与第二平台名称是否相同;若检测到第一平台名称与第二平台名称相同,则基于第一平台脚本名称和第二平台脚本名称确定第二平台脚本文件是否与第一平台脚本文件相同。由此可知,本实施例在确定第二平台脚本文件是否存在与第一平台脚本文件相同的目标平台脚本文件的过程中,首先需要对脚本文件对应的平台名称进行比较,若平台名不同,则直接确定字节码不通用,不用再对平台脚本名称再进行确认,节省了字节码的确定时间,从而提升了应用的响应能力。
参照图5,图5为本申请应用启动方法第二实施例中步骤S23的流程示意图。所述步骤S23包括:
步骤S231,检测所述第二平台脚本名称中是否存在与所述第一平台脚本名称相同的目标平台脚本名称;
步骤S232,若检测到所述第二平台脚本名称中存在所述目标平台脚本名称,则确定所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件;或者,
步骤S233,若检测到所述第二平台脚本名称中不存在所述目标平台脚本名称,则确定所述第二平台脚本文件中不存在与所述第一平台脚本文件相同的目标平台脚本文件。
具体实现时,服务器若确定第一平台脚本文件和第二平台脚本文件属于同一平台,则获取第一平台脚本文件对应的第一平台脚本名称,以及获取第二平台脚本文件对应的第二平台脚本名称,然后检测第二平台脚本名称中是否存在与第二平台脚本名称相同的目标平台脚本名称,若服务器检测到第二平台脚本名称中存在目标平台脚本名称,服务器则确定第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件,即确定第二平台脚本文件可以使用第一平台脚本文件对应的第一字节码,通过第一字节码启动第二应用。若服务器检测到第二平台脚本名称中不存在目标平台脚本名称,服务器则确定第二平台脚本文件中不存在与第一平台脚本文件相同的目标平台脚本文件,即确定第二平台脚本文件不可以使用第一平台脚本文件对应的第一字节码,并将第二平台脚本文件进行解析和编译,启动第二应用,同时,服务器确定第二平台脚本文件在编译过程中产生的字节码。
在本实施例,比如,第一平台脚本文件为softperftest.(a.js+b.js+c.js),第二平台脚本文件为softperftest.(a.js+b.js+d.js),服务器分析第一平台脚本文件得到对应的第一平台名称为softperftest,第一平台脚本名称为a.js+b.js+c.js,服务器分析第二平台脚本文件得到对应的第二平台名称为softperftest,第二平台脚本名称为a.js+b.js+d.js,第一平台名称softperftest与第二平台名称softperftest相同,第二平台脚本名称a.js+b.js+d.js中存在与第一平台脚本名称相同的a.js+b.js,服务器则直接使用第一平台脚本文件中“a.js”和“b.js”生成的字节码,再使用脚本引擎对“d.js”进行解析和编译,启动第二应用。
本实施例通过检测第二平台脚本名称中是否存在与第一平台脚本名称相同的目标平台脚本名称;若检测到第二平台脚本名称中存在目标平台脚本名称,则确定第二平台脚本文件中存在与第一平台脚本文件相同的目标平台脚本文件;或者,若检测到第二平台脚本名称中不存在目标平台脚本名称,则确定第二平台脚本文件中不存在与第一平台脚本文件相同的目标平台脚本文件。由此可知,本实施例在确定第二平台脚本文件是否存在与第一平台脚本文件相同的目标平台脚本文件的过程中,在确定平台名称相同后,对平台脚本名称再次确定,通过平台名称和平台脚本名称进行共同确定,精准确定第二平台脚本文件中是否存在与第一平台脚本文件相同的目标平台脚本文件,同时,可以使得在同一个平台前提下,各个字节码的复用程度最大化,提升脚本执行速度和应用的响应能力。
参照图6,图6为本申请应用启动方法第三实施例的流程示意图。基于上述图4所示的实施例,在本实施例中,在上述步骤S22,检测所述第一平台名称与所述第二平台名称是否相同之后还包括:
步骤S24,若检测到所述第一平台名称与所述第二平台名称不相同,则调用所述第二平台脚本文件,并将所述第二平台脚本文件进行解析和编译,以启动所述第二应用;
步骤S25,获取所述第二平台脚本文件在编译过程中产生的第一序列化代码,并将所述第一序列化代码确定为所述第二平台脚本文件对应的第二字节码。
具体实现时,若服务器检测到第一平台名称与第二平台名称不相同,服务器确定第一平台脚本文件和第二平台脚本文件不属于同一平台,即确定第二平台脚本文件不能使用第一平台脚本文件对应的第一字节码,服务器则通过第二平台对应的引擎脚本对第二平台脚本文件进行解析和编译,启动第二应用,同时,服务器获取第二平台脚本文件在编译过程中产生的各个二进制字节码,将各个二进制字节码进行序列化,得到第二平台脚本文件在编译过程中产生的序列化代码,该序列化代码即为第二平台脚本文件对应的字节码。
在本实施例,比如,第一平台脚本文件为softperftest.(a.js+b.js+c.js),第二平台脚本文件为softnexttest.(a.js+b.js+d.js),服务器分析第一平台脚本文件对应的第一平台名称softperftest与第二平台脚本文件对应的第二平台名称softnexttest不一样,服务器确定第一平台脚本文件和第二平台脚本文件不属于同一平台,服务器则通过softnexttest平台对应的引擎脚本对第二平台脚本文件进行编译,启动第二应用,并生成对应的字节码。
本实施例通过若检测到第一平台名称与第二平台名称不相同,则调用第二平台脚本文件,并将第二平台脚本文件进行解析和编译,以启动第二应用;获取第二平台脚本文件在编译过程中产生的第一序列化代码,并将第一序列化代码确定为第二平台脚本文件对应的第二字节码。由此可知,本实施例检测到第一平台名称与第二平台名称不相同,则调用第二平台的引擎脚本对第二平台脚本文件进行解析和编译,确定第二平台脚本文件对应的第二字节码,在后续检测到在第三平台脚本文件存在与第二平台脚本文件相同的目标平台脚本文件时,不需要再对目标平台脚本文件进行再次解析和再次编译,然后直接获取并运行第二字节码,从而启动第三应用,实现字节码的共享和复用,提升了脚本文件的执行速度,从而提升了应用启动的速度。
本申请还提供一种应用启动装置。
参照图7,图7是本申请应用启动装置的功能模块示意图。
所述应用启动装置包括:
启动模块10,用于响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用;
确定模块20,用于基于所述第一平台脚本文件确定对应的第一字节码;
所述确定模块20还用于响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件;
所述启动模块10还用于所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件时,基于所述第一字节码启动所述第二应用。
进一步地,所述确定模块20还用于基于所述第一平台脚本文件确定对应的第一平台名称和第一平台脚本名称,并基于所述第二平台脚本文件确定对应的第二平台名称和第二平台脚本名称。
进一步地,所述确定模块20包括:
检测单元,用于检测所述第一平台名称与所述第二平台名称是否相同。
进一步地,所述确定模块20还用于若检测到所述第一平台名称与所述第二平台名称相同,则基于所述第一平台脚本名称和所述第二平台脚本名称,确定所述第二平台脚本文件是否存在与所述第一平台脚本文件相同的目标平台脚本文件;
所述检测单元还用于检测所述第二平台脚本名称中是否存在与所述第一平台脚本名称相同的目标平台脚本名称;
所述确定模块20还用于若检测到所述第二平台脚本名称中存在所述目标平台脚本名称,则确定所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件;或者,
所述确定模块20还用于若检测到所述第二平台脚本名称中不存在所述目标平台脚本名称,则确定所述第二平台脚本文件中不存在与所述第一平台脚本文件相同的目标平台脚本文件;
所述启动模块10还用于若检测到所述第一平台名称与所述第二平台名称不相同,则调用所述第二平台脚本文件,并将所述第二平台脚本文件进行解析和编译,以启动所述第二应用;
进一步地,所述确定模块20包括:
获取单元,用于获取所述第二平台脚本文件在编译过程中产生的第一序列化代码。
进一步地,所述确定模块20还用于将所述第一序列化代码确定为所述第二平台脚本文件对应的第二字节码;
所述检测单元还用于响应所述第一启动指令,并检测在数据库中是否存在目标字节码,其中,所述目标字节码对应的平台脚本文件与所述第一平台脚本文件相同;
所述启动模块10还用于若检测到在所述数据库中不存在所述目标字节码,则调用所述第一平台脚本文件,并将所述第一平台脚本文件进行解析和编译,以启动所述第一应用;
所述获取单元还用于获取所述第一平台脚本文件在编译过程中产生的第二序列化代码;
所述确定模块20还用于将所述第二序列化代码确定为所述第一平台脚本文件对应的第一字节码。
其中,上述应用启动装置中各个模块的功能实现与上述应用启动方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有应用启动程序,所述应用启动程序被处理器执行时实现如以上任一项实施例所述的应用启动方法的步骤。
本发明计算机可读存储介质的具体实施例与上述应用启动方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的数据下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多数据下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件货物的形式体现出来,该计算机软件货物存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备完成本申请各个实施例所述的方法。

Claims (10)

1.一种应用启动方法,其特征在于,所述应用启动方法包括:
响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用,并基于所述第一平台脚本文件确定对应的第一字节码;
响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件,其中,所述第二应用是除所述第一应用之外的其他应用;
所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件时,基于所述第一字节码启动所述第二应用,包括:
获取所述第一平台脚本文件对应的所述第一字节码;
将所述第一字节码中的字节序列转换成内存对象,通过脚本引擎运行所述内存对象;
通过所述脚本引擎对所述第二平台脚本文件中除目标平台脚本文件外的其他平台脚本文件进行解析和编译,启动所述第二应用。
2.如权利要求1所述的应用启动方法,其特征在于,所述响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件的步骤之后还包括:
基于所述第一平台脚本文件确定对应的第一平台名称和第一平台脚本名称,并基于所述第二平台脚本文件确定对应的第二平台名称和第二平台脚本名称;
检测所述第一平台名称与所述第二平台名称是否相同;
若检测到所述第一平台名称与所述第二平台名称相同,则基于所述第一平台脚本名称和所述第二平台脚本名称,确定所述第二平台脚本文件是否存在与所述第一平台脚本文件相同的目标平台脚本文件。
3.如权利要求2所述的应用启动方法,其特征在于,所述基于所述第一平台脚本名称和所述第二平台脚本名称,确定所述第二平台脚本文件是否存在与所述第一平台脚本文件相同的目标平台脚本文件的步骤包括:
检测所述第二平台脚本名称中是否存在与所述第一平台脚本名称相同的目标平台脚本名称;
若检测到所述第二平台脚本名称中存在所述目标平台脚本名称,则确定所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件;或者,
若检测到所述第二平台脚本名称中不存在所述目标平台脚本名称,则确定所述第二平台脚本文件中不存在与所述第一平台脚本文件相同的目标平台脚本文件。
4.如权利要求2所述的应用启动方法,其特征在于,所述检测所述第一平台名称与所述第二平台名称是否相同的步骤之后,还包括:
若检测到所述第一平台名称与所述第二平台名称不相同,则调用所述第二平台脚本文件,并将所述第二平台脚本文件进行解析和编译,以启动所述第二应用;
获取所述第二平台脚本文件在编译过程中产生的第一序列化代码,并将所述第一序列化代码确定为所述第二平台脚本文件对应的第二字节码。
5.如权利要求1所述的应用启动方法,其特征在于,所述响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用的步骤包括:
响应所述第一启动指令,并检测在数据库中是否存在目标字节码,其中,所述目标字节码对应的平台脚本文件与所述第一平台脚本文件相同;
若检测到在所述数据库中不存在所述目标字节码,则调用所述第一平台脚本文件,并将所述第一平台脚本文件进行解析和编译,以启动所述第一应用。
6.如权利要求1所述的应用启动方法,其特征在于,所述基于所述第一平台脚本文件确定对应的第一字节码的步骤包括:
获取所述第一平台脚本文件在编译过程中产生的第二序列化代码,并将所述第二序列化代码确定为所述第一平台脚本文件对应的第一字节码。
7.如权利要求1至6任一项所述的应用启动方法,其特征在于,所述第一平台脚本文件和所述第二平台脚本文件为JavaScript脚本文件。
8.一种应用启动装置,其特征在于,所述应用启动装置包括:
启动模块,用于响应第一应用的第一启动指令,调用所述第一应用对应的第一平台脚本文件启动所述第一应用;
确定模块,用于基于所述第一平台脚本文件确定对应的第一字节码;
所述确定模块还用于响应第二应用的第二启动指令,确定所述第二应用对应的第二平台脚本文件,其中,所述第二应用是除所述第一应用之外的其他应用;
所述启动模块还用于所述第二平台脚本文件中存在与所述第一平台脚本文件相同的目标平台脚本文件时,基于所述第一字节码启动所述第二应用;
所述启动模块还用于获取所述第一平台脚本文件对应的所述第一字节码;将所述第一字节码中的字节序列转换成内存对象,通过脚本引擎运行所述内存对象;通过所述脚本引擎对所述第二平台脚本文件中除目标平台脚本文件外的其他平台脚本文件进行解析和编译,启动所述第二应用。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的应用启动程序,所述应用启动程序被所述处理器执行时实现如权利要求1至7中任一项所述的应用启动方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用启动程序,所述应用启动程序被处理器执行时实现如权利要求1至7中任一项所述的应用启动方法的步骤。
CN202011186200.2A 2020-10-29 2020-10-29 应用启动方法、装置、终端设备及计算机可读存储介质 Active CN112214223B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011186200.2A CN112214223B (zh) 2020-10-29 2020-10-29 应用启动方法、装置、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011186200.2A CN112214223B (zh) 2020-10-29 2020-10-29 应用启动方法、装置、终端设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112214223A CN112214223A (zh) 2021-01-12
CN112214223B true CN112214223B (zh) 2024-02-09

Family

ID=74057632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011186200.2A Active CN112214223B (zh) 2020-10-29 2020-10-29 应用启动方法、装置、终端设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112214223B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807664B1 (en) * 1998-12-25 2004-10-19 Canon Kabushiki Kaisha Multiapplication concurrent-execution interpreter execution method therefor and computer-readable storage medium storing program therefor
CN101071378A (zh) * 2006-05-12 2007-11-14 日立软件工程株式会社 源代码生成方法、设备和程序
CN103176807A (zh) * 2011-12-22 2013-06-26 盛乐信息技术(上海)有限公司 网页应用执行的提速方法及系统
CN103177199A (zh) * 2011-12-22 2013-06-26 盛乐信息技术(上海)有限公司 网页应用代码保护方法及系统和执行的提速方法及系统
CN104834503A (zh) * 2014-02-12 2015-08-12 想象技术有限公司 具有粒度的增加立即数能力的处理器和方法
CN111033544A (zh) * 2017-08-15 2020-04-17 区块链控股有限公司 用于区块链实现的基于脚本的字节解释的方法和系统
CN111338633A (zh) * 2020-02-10 2020-06-26 Oppo(重庆)智能科技有限公司 免安装文件生成方法、装置及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807664B1 (en) * 1998-12-25 2004-10-19 Canon Kabushiki Kaisha Multiapplication concurrent-execution interpreter execution method therefor and computer-readable storage medium storing program therefor
CN101071378A (zh) * 2006-05-12 2007-11-14 日立软件工程株式会社 源代码生成方法、设备和程序
CN103176807A (zh) * 2011-12-22 2013-06-26 盛乐信息技术(上海)有限公司 网页应用执行的提速方法及系统
CN103177199A (zh) * 2011-12-22 2013-06-26 盛乐信息技术(上海)有限公司 网页应用代码保护方法及系统和执行的提速方法及系统
CN104834503A (zh) * 2014-02-12 2015-08-12 想象技术有限公司 具有粒度的增加立即数能力的处理器和方法
CN111033544A (zh) * 2017-08-15 2020-04-17 区块链控股有限公司 用于区块链实现的基于脚本的字节解释的方法和系统
EP3669313A1 (en) * 2017-08-15 2020-06-24 Nchain Holdings Limited Methods and systems for blockchain-implemented script-based byte interpretation
CN111338633A (zh) * 2020-02-10 2020-06-26 Oppo(重庆)智能科技有限公司 免安装文件生成方法、装置及电子设备

Also Published As

Publication number Publication date
CN112214223A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
CN110221872B (zh) 页面跳转方法、装置、电子设备和存储介质
CN107729014B (zh) 一种基于Android的页面跳转方法及结构
US20170300129A1 (en) Keypress processing method and apparatus for terminal
CN111045683A (zh) 小程序代码编译方法、装置、设备及介质
CN108255509B (zh) 应用部署方法、装置、设备及可读存储介质
US20140208309A1 (en) Method, apparatus, and communication system for implementing internet application
CN108197024B (zh) 嵌入式浏览器调试方法、调试终端及计算机可读存储介质
CN116523457A (zh) 基于业务流程的工作流处理方法、装置、设备及存储介质
CN112269746A (zh) 自动化测试方法及相关设备
WO2017185883A1 (zh) 一种动态扩展软件流程的方法和系统
CN114547514A (zh) 组件动态渲染方法、装置、设备及介质
CN108804120B (zh) 一种页面构建方法、装置、设备及存储介质
CN112214223B (zh) 应用启动方法、装置、终端设备及计算机可读存储介质
CN112965732A (zh) 资源包的获取方法、智能穿戴设备及存储介质
CN111538530A (zh) 页面跳转方法及系统、存储介质及电子设备
CN110990137B (zh) 应用程序的功能模块调度方法、调度信息处理方法及设备
CN112732265A (zh) 一种数据处理方法和相关装置
CN107391711B (zh) 获取歌曲伴奏的方法和装置
CN115982493A (zh) 页面跳转方法及装置、存储介质及电子装置
CN113377752A (zh) 数据的清洗方法、装置、系统及计算机可读存储介质
CN112148318A (zh) 应用包发布方法、应用方法、装置、介质、服务器及设备
CN114065084A (zh) 一种页面跳转方法、装置、设备及存储介质
CN111638914A (zh) 一种对终端功能的设置方法、设备及存储介质
CN110780983A (zh) 任务异常处理方法、装置、计算机设备以及存储介质
CN111078571A (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