WO2021223544A1 - 一种启动应用的方法和相关装置 - Google Patents

一种启动应用的方法和相关装置 Download PDF

Info

Publication number
WO2021223544A1
WO2021223544A1 PCT/CN2021/083779 CN2021083779W WO2021223544A1 WO 2021223544 A1 WO2021223544 A1 WO 2021223544A1 CN 2021083779 W CN2021083779 W CN 2021083779W WO 2021223544 A1 WO2021223544 A1 WO 2021223544A1
Authority
WO
WIPO (PCT)
Prior art keywords
plug
target
application
configuration information
code package
Prior art date
Application number
PCT/CN2021/083779
Other languages
English (en)
French (fr)
Inventor
蔡凌波
马良
林庆杰
柯弘正
胡越
黄灿辉
彭宇洋
张德明
Original Assignee
腾讯科技(深圳)有限公司
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 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Publication of WO2021223544A1 publication Critical patent/WO2021223544A1/zh
Priority to US17/709,039 priority Critical patent/US11941411B2/en

Links

Images

Classifications

    • 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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • This application relates to the field of computer technology, in particular to launching applications.
  • the embodiment of the present application provides a method and related device for starting an application, which can increase the startup speed of the application, save the storage space of the user terminal, and reduce the development cost of the developer.
  • an embodiment of the present application provides a method for starting an application, the method is executed by a user terminal, and the method includes:
  • the configuration parameters of the target application are obtained from the data management server, and the configuration parameters include plug-in configuration information and code package configuration information.
  • the target code package corresponding to the code package configuration information is obtained from the data management server.
  • an embodiment of the present application provides a method for starting an application, the method is executed by a data management server, and the method includes:
  • the configuration parameters of the target application are sent to the user terminal, where the configuration parameters include plug-in configuration information and code package configuration information.
  • the target code package corresponding to the code package configuration information is sent to the user terminal, so that the user terminal uses the target code package and the locally cached target plug-in to run the target application.
  • an embodiment of the present application provides a user terminal for starting an application, and the device includes:
  • the obtaining module is configured to obtain configuration parameters of the target application from the data management server when a startup instruction for the target application is detected, and the configuration parameters include plug-in configuration information and code package configuration information.
  • the obtaining module is further configured to obtain the target code package corresponding to the code package configuration information from the data management server if the locally cached plug-in includes the target plug-in corresponding to the plug-in configuration information.
  • the processing module is configured to use the target code package and the locally cached target plug-in to run the target application.
  • an embodiment of the present application provides a data management server for starting an application, and the device includes:
  • the receiving module is configured to receive a first data acquisition request sent by the user terminal when a startup instruction for the target application is detected, where the first data acquisition request includes the application identifier of the target application.
  • the sending module is configured to send configuration parameters of the target application to the user terminal in response to the first data acquisition request, where the configuration parameters include plug-in configuration information and code package configuration information.
  • the receiving module is further configured to receive a second data acquisition request sent by the user terminal when it is determined that the locally cached plug-in includes the target plug-in corresponding to the plug-in configuration information, where the second data acquisition request includes the code Package configuration information.
  • the sending module is further configured to send the target code package corresponding to the code package configuration information to the user terminal in response to the second data acquisition request, so that the user terminal uses the target code package and the locally cached
  • the target plug-in runs the target application.
  • an embodiment of the present application provides a user terminal.
  • the user terminal includes a processor, a storage device, a network interface, and an input/output device.
  • the processor, the storage device, the network interface, and the input/output device interact with each other. Connection, wherein the network interface is controlled by the processor to send and receive data, the input/output device is used to detect touch operations and output images, the storage device is used to store a computer program, the computer program includes Program instructions, and the processor is configured to call the program instructions for executing the method for launching an application as described in the foregoing aspect.
  • an embodiment of the present application provides a data management server.
  • the data management server includes a processor, a storage device, and a network interface.
  • the processor, the storage device, and the network interface are connected to each other, wherein the network interface It is used to send and receive data under the control of the processor, the storage device is used to store a computer program, the computer program includes program instructions, and the processor is configured to call the program instructions for executing the above-mentioned aspects. The method of starting the application described.
  • an embodiment of the present application provides a computer-readable storage medium, the computer storage medium stores a computer program, the computer program includes program instructions, and the program instructions are executed by a processor to execute the above aspects. The described method of starting an application.
  • the embodiments of the present application provide a computer program product including instructions, which when run on a computer, cause the computer to execute the method for launching an application in the foregoing aspect.
  • the user terminal when a startup instruction for the target application is detected, can obtain the configuration parameters of the target application from the data management server.
  • the configuration parameters include plug-in configuration information and code package configuration information. If the locally cached plug-in includes If the plug-in configuration information corresponds to the target plug-in, the user terminal only needs to obtain the target code package corresponding to the code package configuration information from the data management server, and then use the target code package and the locally cached target plug-in to run the target application, which can improve the application’s performance. Start-up speed, the user terminal no longer needs to store repeated plug-in codes, saving the storage space of the user terminal.
  • FIG. 1 is a schematic diagram of the architecture of a data management system provided by an embodiment of the present application
  • FIG. 2 is a schematic flowchart of a method for starting an application provided by an embodiment of the present application
  • FIG. 3 is a schematic flowchart of another method for starting an application provided by an embodiment of the present application.
  • Figure 4a is a schematic diagram of a process for developing a plug-in provided by an embodiment of the present application
  • Figure 4b is a schematic diagram of a data processing flow for starting a mini game provided by an embodiment of the present application
  • FIG. 5 is a schematic flowchart of another method for starting an application provided by an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of a user terminal for launching an application provided by an embodiment of the present application
  • FIG. 7 is a schematic structural diagram of a data management server for starting an application provided by an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a user terminal provided by an embodiment of the present application.
  • Fig. 9 is a schematic structural diagram of a data management server provided by an embodiment of the present application.
  • the embodiment of the application provides a data processing method that can improve the startup speed of the application, save the storage space of the user terminal, and reduce the number of developers. Development costs.
  • FIG. 1 is a schematic diagram of the architecture of a data management system provided by an embodiment of the present application.
  • the data management system includes a data management server 10, a user terminal 20, a plug-in development terminal 30, and an application development terminal 40, in which:
  • the data management server 10 may be an independent physical server, a server cluster or a distributed system composed of multiple physical servers, or a cloud server that provides cloud computing services.
  • the data management server 10 can be used as a data management platform to provide plug-in developers, application developers and users with unified plug-in management services, for example, to manage plug-in developers’ applications for plug-ins, to review and manage plug-ins uploaded by plug-in developers
  • Application developers configure and use plug-ins when developing applications such as mini games/ mini programs, store configuration parameters of each mini game/ mini program (including plug-in configuration information and code package configuration information), when the mini game/ mini program is started Provide required plug-ins and/or code packages.
  • the data management server is configured with a unified universal plug-in, which can provide users with plug-ins when starting applications, application developers when developing and testing applications, and provide plug-ins when the correct plug-ins are not cached locally on the user terminal
  • the incremental package enables the user terminal to obtain the correct plug-in (for example, the target plug-in) to successfully start the application.
  • the data management server can also generate and maintain the configuration parameters of the application based on the plug-ins and code packages of the application, and provide the corresponding code package to the user terminal based on the configuration parameters when the user terminal starts the application.
  • a plug-in refers to a piece of code that can be used by multiple small games/small programs.
  • Mini Program is an application that can be used without downloading and installing.
  • Mini games are a kind of game application that can be used without downloading and installing. Similar to Mini Programs, it is click and play without downloading and installing, and the experience is light.
  • the user terminal 20, the plug-in development terminal 30, and the application development terminal 40 may include electronic devices such as a smart phone, a tablet computer, a notebook, a desktop computer, a smart speaker, and a smart watch.
  • the user terminal 20 is used by the user to use applications such as mini games/mini programs.
  • the plug-in development terminal 30 is used for plug-in developers to develop plug-ins using developer tools, and upload the developed plug-ins to the data management server 10.
  • the application development terminal 40 is used by the application developer to develop the application using the plug-in developed by the plug-in developer, and upload the plug-in and code package corresponding to the developed application to the data management server 10.
  • the user terminal 20 may obtain the configuration parameters of the target application from the data management server 10.
  • the configuration parameters include plug-in configuration information and code package configuration information. If the locally cached plug-in includes If the plug-in configuration information corresponds to the target plug-in, the user terminal 20 only needs to obtain the target code package corresponding to the code package configuration information from the data management server 10, and then use the target code package and the locally cached target plug-in to run the target application, which can improve The startup speed of the application, the user terminal 20 no longer needs to store additional plug-in codes, which saves the storage space of the user terminal, and the plug-in development terminal 30 does not need to develop additional plug-ins, and can directly obtain the plug-ins required for development from the data management server 10
  • the application development can be completed through the application development terminal 40, which reduces the developer's development cost.
  • FIG. 2 is a schematic flowchart of a method for starting an application provided by the data management system shown in FIG. 1 based on an embodiment of the present application.
  • the method for starting an application includes the following steps:
  • the user terminal obtains configuration parameters of the target application from a data management server, where the configuration parameters include plug-in configuration information and code package configuration information.
  • the target application may be a small program or a small game, and specifically may be any one of a small program or a small game provided to the user.
  • a client (such as a WeChat client) can be installed on the user terminal.
  • the display interface of the client can display multiple mini programs/games for users to use.
  • the user can start the target application through the client, for example, click on the display interface of the client.
  • the icon or logo of the target application can also start the target application by clicking the shortcut of the target application on the system desktop of the user terminal.
  • the user terminal can obtain the configuration parameters of the target application from the data management server.
  • the configuration parameters include plug-in configuration information and code package configuration information, and the plug-in configuration information indicates where the target application is running.
  • the required plug-in, code package configuration information indicates the code package written by the application developer for the target application.
  • the plug-in may include multiple types of plug-ins such as a basic library domain plug-in, a developer domain plug-in, an open data domain plug-in, and an independent domain plug-in.
  • the target plug-in can include one or more plug-ins, that is, it supports one application to reference multiple plug-ins.
  • the runtime environment of the plug-in can be called the runtime domain (domain for short).
  • the domain is an isolated JS Context (context) environment, which is a closed container for running JS code.
  • Different types of applications can be divided into different domains. For example, mini games have three basic domains, including basic library domain, developer domain, and open data domain; mini programs have two basic domains, including basic library domain and developer domain.
  • the open data domain refers to the domain where the social relationship chain is located (for example, the WeChat friend relationship chain), which is used to process data such as game rankings.
  • the user terminal obtains the target code package corresponding to the code package configuration information from the data management server.
  • the user terminal uses the target code package and the locally cached target plug-in to run the target application.
  • the user terminal After the user terminal obtains the configuration parameters of the target application, it first queries whether the locally cached plug-ins include the target plug-in corresponding to the plug-in configuration information in the configuration parameters. If there is a target plug-in in the local cache, the target application is run. The user terminal only It is necessary to obtain the target code package corresponding to the code package configuration information from the data management server, and then use the target code package and the locally cached target plug-in to run the target application.
  • the user terminal can inject the basic library.
  • Injecting the basic library means to parse and run the code data corresponding to the basic library on the user terminal, and then create the operating domain required by the target plug-in through the basic library.
  • the target plug-in and the corresponding target code package are injected into the target plug-in, and after each target plug-in and the corresponding target code package are injected, the target application can be run.
  • the user terminal can be cached in the local storage space. For example, the user terminal can obtain the usage frequency of each plug-in from the data management server, and if the usage frequency reaches the preset frequency threshold , The user terminal can cache the corresponding plug-in in the local storage space, so that when starting the application, the plug-in required by the current application can be reused first from the locally cached plug-in.
  • the user terminal when a startup instruction for the target application is detected, can obtain the configuration parameters of the target application from the data management server.
  • the configuration parameters include plug-in configuration information and code package configuration information. If the locally cached plug-in includes If the plug-in configuration information corresponds to the target plug-in, the user terminal only needs to obtain the target code package corresponding to the code package configuration information from the data management server, and then use the target code package and the locally cached target plug-in to run the target application, which can improve the application’s performance.
  • the startup speed saves the storage space of the user terminal and reduces the developer's development cost.
  • the plug-in configuration information includes the plug-in identification and plug-in version of the target plug-in.
  • the user terminal can first obtain the locally cached plug-in, and search for the pending plug-in with the same plug-in identification from the locally cached plug-in. For pending plug-ins, use the target code package and pending plug-ins to run the target application.
  • the plug-in configuration information also includes the plug-in version of the target plug-in.
  • the user terminal can detect whether the plug-in version of the pending plug-in is consistent with the plug-in version of the target plug-in. Run the target application using the target code package and pending plug-ins. If they are inconsistent, the user terminal can obtain the first plug-in incremental package between the plug-in version of the pending plug-in and the plug-in version of the target plug-in from the data management server, and then use the pending plug-in and the first plug-in incremental package to generate the target plug-in, and then use The target code package and the generated target plug-in run the target application.
  • the user terminal can obtain the first plug-in incremental package between V3.0 and V5.0 of the target plug-in from the data management server , And then use the V3.0 plug-in and the first plug-in incremental package to generate the V5.0 target plug-in.
  • the plug-in incremental package By downloading the plug-in incremental package, the amount of downloaded data can be effectively reduced and the startup speed of the application can be improved.
  • the user terminal can obtain the latest version of the target plug-in from the data management server, and check whether the plug-in version of the pending plug-in is consistent with the latest version of the target plug-in. If they are consistent, use the target code package and the pending plug-in to run the target application; if they are inconsistent, the user terminal can obtain the second plug-in incremental package between the plug-in version of the pending plug-in and the latest version of the target plug-in from the data management server, and then use The pending plug-in and the second plug-in incremental package generate the latest version of the target plug-in, and use the target code package and the latest version of the target plug-in to run the target application.
  • the user terminal needs to obtain the target code package corresponding to the code package configuration information from the data management server, and also needs to obtain the corresponding plug-in configuration information.
  • the target plug-in and use the target code package and the target plug-in to run the target application that is, when there is no required plug-in in the local cache, the complete data package needs to be obtained from the data management server, and the complete data package includes Plug-ins and code packages.
  • FIG. 3 is a schematic flowchart of another method for starting an application provided by the data management system shown in FIG. 1 based on an embodiment of the present application.
  • the method for starting an application includes the following steps:
  • a data management server receives a first data acquisition request sent by a user terminal when a startup instruction for a target application is detected, where the first data acquisition request includes an application identifier of the target application.
  • the data management server sends configuration parameters of the target application to the user terminal in response to the first data acquisition request, where the configuration parameters include plug-in configuration information and code package configuration information.
  • the user terminal may send a first data acquisition request to the data management server when detecting a startup instruction for the target application.
  • the first data acquisition request includes the identification of the target application, and the data management server acquires the information of the target application according to the identification of the target application.
  • Configuration parameters include plug-in configuration information and code package configuration information, and the configuration parameters of the target application are sent to the user terminal.
  • the data management server receives a second data acquisition request sent by the user terminal when it is determined that the locally cached plug-in includes the target plug-in corresponding to the plug-in configuration information, where the second data acquisition request includes the code package Configuration information.
  • the data management server In response to the second data acquisition request, the data management server sends the target code package corresponding to the code package configuration information to the user terminal, so that the user terminal uses the target code package and all locally cached data.
  • the target plug-in runs the target application.
  • the user terminal when determining that the locally cached plug-in includes the target plug-in corresponding to the plug-in configuration information, the user terminal sends a second data acquisition request to the data management server, the second data acquisition request includes code package configuration information, and the data management server acquires the code package Configure the target code package corresponding to the information, and send the target code package to the user terminal, so that the user terminal can run the target application by using the target code package and the locally cached target plug-in after receiving the target code package.
  • the user terminal may send a third data acquisition request to the data management server.
  • the third data acquisition request includes the plug-in configuration information and Code package configuration information
  • the data management server obtains the target plug-in corresponding to the plug-in configuration information and the target code package corresponding to the code package configuration information, and sends the target plug-in and the target code package to the user terminal, so that the user terminal uses the target plug-in and the target code package.
  • the target code package runs the target application.
  • the data management server may specifically be a WeChat public platform for managing application, configuration, and review of plug-ins.
  • the data management server can receive the plug-in application information submitted by the application developer for the target application.
  • the plug-in application information includes the plug-in ID, the plug-in version and the plug-in type.
  • the application developer can develop the target application (such as a small game) according to the actual development You need to apply for the plug-in provided by the data management server.
  • the data management server obtains the corresponding target plug-in from the plug-in library according to the plug-in application information, and sends the target plug-in to the user terminal corresponding to the application developer.
  • the application developer writes a code package for the target application (Recorded as the target code package).
  • the application developer After the application developer obtains the required target plug-in, he can use the developer tool IDE (Integrated Development Environment) to compile the target plug-in and the target code package to test run the target application , And preview the operating effect of the target application, by providing developers with plug-ins, it can greatly reduce the development threshold and provide developers with a better experience.
  • IDE Integrated Development Environment
  • the target plug-in and the target code package can be packaged and uploaded to the data management server, and the data management server receives the upload for the target application
  • the target plug-in and the target code package are associated with the identification of the target application and then stored, and the configuration parameters of the target application are generated, and then the product can be released, that is, to provide users with the use of the target application.
  • the process for the developer tool IDE to compile the target plug-in and the target code package to run the target application can be as follows.
  • the WeChat developer tool will retrieve the plug-in of the corresponding domain and perform the plug-in injection in advance (that is, resolve the plug-in implementation Code and run), and then inject the developer's related logic, including: pull the plug-in content according to the plug-in configuration, and inject the basic library; determine whether the target plug-in includes the basic library domain plug-in, if it is, inject the basic library domain plug-in; determine the target Whether the plug-in includes an independent domain plug-in, if so, create an independent domain and inject the independent domain plug-in; determine whether the target plug-in includes a developer domain plug-in, if it is, inject the developer domain plug-in, and then inject the developer's related logic, develop
  • the related logic refers to the developer code, such as game.js (small game) or app-service.js (small program); determine whether the target plug-in includes
  • the data management server may receive the first data acquisition request sent by the user terminal when the startup instruction for the target application is detected.
  • the user terminal sends the configuration parameters of the target application, the configuration parameters include plug-in configuration information and code package configuration information, and receives the second data acquisition request sent by the user terminal when it determines that the locally cached plug-in includes the target plug-in corresponding to the plug-in configuration information.
  • the data acquisition request includes the code package configuration information, and the target code package corresponding to the code package configuration information is sent to the user terminal, so that the user terminal uses the target code package and the locally cached target plug-in to run the target application, which can improve the startup speed of the application and save money
  • the storage space of the user terminal reduces the developer's development cost.
  • the types of plug-ins may include one or more of basic library domain plug-ins, developer domain plug-ins, open data domain plug-ins, and independent domain plug-ins.
  • application developers can perform the following configuration and submit plug-in application information. Take the target application as a mini game as an example:
  • Mini game developers can use plug-ins through simple configuration in game.json.
  • Mini program developers can use plug-ins through simple configuration in app.json.
  • game.json of the mini game Take game.json of the mini game as an example, the plug-in application information submitted is as follows:
  • alias is the alias of the plug-in, meaning that the long path of the plug-in can be replaced with a short alias.
  • the provider is the appid of the plug-in that the plug-in developer applies for in the data management server, and the version is the version of the plug-in itself.
  • the data management server maps the version of the plug-in to the version stored in the backend.
  • openDataContext corresponds to the open data domain plug-in
  • isolatedContext corresponds to the independent domain plug-in
  • gameContext corresponds to the game domain plug-in
  • the independent domain plug-in will verify the legitimacy of contexts, and cannot be configured with other plug-ins for the same appid.
  • Plugins support multiple configurations and can be configured in sub-packages.
  • Name is the alias of the basic library domain plug-in, that is, the official plug-in
  • Version is the version of the plug-in, which can also be configured as an automatically updated version.
  • the data management server when it detects a request from an application developer to use a plug-in, it can use the basic library to first parse the request to use the plug-in.
  • the new version of the basic library implements the requiredPlugin interface, and the parameter format is " ⁇ alias ⁇ [/ ⁇ filename ⁇ ]" is implemented to find the real module based on alias and filename through configuration. Take the game.json of the aforementioned configuration as an example:
  • the second is to separate the plug-in from the code, and only package the local developer domain code and provide it to the new version of WeChat client to use.
  • the second is to separate the plug-in from the code, and only package the local open data domain code and provide it to the new version of WeChat client.
  • plug-in developers when plug-in developers develop plug-ins on the data management server, they can first apply for plug-in types, that is, from basic library domain plug-ins, developer domain plug-ins, open data domain plug-ins, and independent domain plug-ins. Select the type of plug-in you want to develop. Among them, the independent domain plug-in needs to be designated as an independent domain plug-in when the data management server is initialized, and cannot be changed afterwards.
  • the plug-in developer can first apply for the plug-in on the WeChat public platform, determine the plug-in identifier (such as appid), use the WeChat developer tool to develop the plug-in, upload the plug-in after the development and debugging is completed, and store it in the WeChat public platform
  • the plugin code is pulled by the review platform for review, such as the security risk of the plugin implementation code and the size of the plugin implementation code. After the review is passed, the plugin can be browsed on the WeChat public platform.
  • application developers can choose appropriate universal plug-ins to use according to their needs.
  • the development process of a plug-in developer can be as follows:
  • Each plug-in has a separate plug-in code directory, which contains plugin.json in addition to the plug-in implementation code.
  • the main configuration of plugin.json is as follows, fill in the entry file of the plugin in main:
  • pluginEnv For independent domain plugins, the unique API in the plugin environment is accessed from pluginEnv:
  • the plug-in developer After the plug-in developer successfully debugs the plug-in, he uploads the plug-in code through the WeChat developer tool, and the plug-in user (such as small game/small program developers) can use it after passing the review.
  • the user terminal detects that the user clicks on the mini game, and pulls the data package Pkg information of the mini game from the WeChat public platform ( That is, the aforementioned configuration parameters), the Pkg information includes the plug-in information corresponding to the mini game (i.e. plug-in configuration information) and related information about the excluded plug-in (i.e. code package configuration information). If the user terminal is running a new version of the WeChat client, the user The terminal first queries whether there is a plug-in with the same appid (plug-in ID) locally.
  • the user terminal determines whether the required plug-in version is the same as the plug-in version that exists locally. If the version is the same, the local existing plug-in is reused. If the versions are not the same, download the plug-in incremental package from the WeChat public platform and generate the required version of the plug-in complete package; if there is no plug-in with the same appid, download the required version of the plug-in complete package Pkg from the WeChat public platform; Download the code package Pkg that excludes the plugin from the WeChat public platform, and run the mini game by injecting the complete package of the plugin and the code package excluding the plugin, so that the reuse of plugins can effectively reduce the developer’s development cost and save the user’s storage Space, and improve the startup speed of the application. If the user terminal is running an old version of the WeChat client, the user terminal needs to download the complete package of the built-in plug-in directly from the WeChat public platform, and run the mini game by injecting the complete package
  • FIG. 5 is a schematic flowchart of yet another method for starting an application provided by the data management system shown in FIG. 1 according to an embodiment of the present application.
  • the method for starting an application includes the following steps:
  • the user terminal sends a first data acquisition request to a data management server, where the first data acquisition request includes an application identifier of the target application.
  • the data management server receives the first data acquisition request, and in response to the first data acquisition request, queries the stored configuration parameters of the target application according to the application identifier of the target application.
  • the configuration parameters include plug-in configuration information and code package configuration information.
  • the data management server sends the configuration parameters of the target application to the user terminal.
  • the user terminal receives the configuration parameters of the target application, and queries whether the locally cached plug-ins include the target plug-in corresponding to the plug-in configuration information.
  • the user terminal sends a second data acquisition request to the data management server, where the second data acquisition request includes the code package configuration information.
  • the data management server receives the second data acquisition request, and responds to the second data acquisition request to query the stored target code package corresponding to the code package configuration information.
  • the data management server sends the target code package to the user terminal.
  • the user terminal receives the target code package, and uses the target code package and the locally cached target plug-in to run the target application.
  • steps 501 to 508 For the specific implementation of steps 501 to 508, reference may be made to the related description in the foregoing embodiment, and details are not described herein again.
  • FIG. 6 is a schematic structural diagram of a user terminal for launching an application according to an embodiment of the present application.
  • the user terminal for launching an application includes:
  • the obtaining module 601 is configured to obtain configuration parameters of the target application from the data management server when a startup instruction for the target application is detected.
  • the configuration parameters include plug-in configuration information and code package configuration information.
  • the obtaining module 601 is further configured to obtain the target code package corresponding to the code package configuration information from the data management server if the locally cached plug-in includes the target plug-in corresponding to the plug-in configuration information.
  • the processing module 602 is configured to use the target code package and the locally cached target plug-in to run the target application.
  • the plug-in configuration information includes the plug-in identifier and the plug-in version of the target plug-in, and the device further includes a detection module 603, wherein:
  • the acquiring module 601 is also used to acquire locally cached plug-ins.
  • the acquiring module 601 is further configured to search for a pending plug-in whose plug-in ID is the same as the plug-in ID of the target plug-in from the locally cached plug-ins.
  • the detection module 603 is configured to respond to detecting that the plug-in version of the pending plug-in is consistent with the plug-in version of the target plug-in, and use the pending plug-in as the target plug-in.
  • the obtaining module 601 is further configured to, in response to detecting that the plug-in version of the pending plug-in is inconsistent with the plug-in version of the target plug-in, obtain the plug-in version of the pending plug-in and the plug-in version from the data management server.
  • the first plug-in incremental package between plug-in versions of the target plug-in.
  • the processing module 602 is further configured to generate the target plug-in by using the pending plug-in and the first plug-in incremental package.
  • the plug-in version is an automatically updated version
  • the obtaining module 601 is further configured to obtain the latest version of the target plug-in from the data management server.
  • the detection module 603 is further configured to, in response to detecting that the plug-in version of the pending plug-in is consistent with the latest version of the target plug-in, use the pending plug-in as the target plug-in.
  • the obtaining module 601 is further configured to, in response to detecting that the plug-in version of the pending plug-in is inconsistent with the latest version of the target plug-in, obtain the plug-in version of the pending plug-in and the latest version of the target plug-in from the data management server.
  • the second plug-in incremental package between the latest versions of the target plug-in.
  • the processing module 602 is further configured to use the pending plug-in and the second plug-in incremental package to generate the latest version of the target plug-in.
  • the obtaining module 601 is further configured to obtain the target plug-in corresponding to the plug-in configuration information from the data management server if the locally cached plug-in does not include the target plug-in corresponding to the plug-in configuration information The target code package corresponding to the code package configuration information.
  • the processing module 602 is further configured to use the target code package and the target plug-in to run the target application.
  • processing module 602 is specifically configured to:
  • the operating domain required by the target plug-in is created through the basic library.
  • the data management server for starting applications includes:
  • the receiving module 701 is configured to receive a first data acquisition request sent by a user terminal when a startup instruction for a target application is detected, where the first data acquisition request includes the application identifier of the target application.
  • the sending module 702 is configured to send configuration parameters of the target application to the user terminal in response to the first data acquisition request, where the configuration parameters include plug-in configuration information and code package configuration information.
  • the receiving module 701 is further configured to receive a second data acquisition request sent by the user terminal when it is determined that the locally cached plug-in includes the target plug-in corresponding to the plug-in configuration information, and the second data acquisition request includes the Code package configuration information.
  • the sending module 702 is further configured to send the target code package corresponding to the code package configuration information to the user terminal in response to the second data acquisition request, so that the user terminal uses the target code package and local cache
  • the target plug-in runs the target application.
  • the receiving module 701 is further configured to receive a third data acquisition request sent by the user terminal when it is determined that the locally cached plug-in does not include the target plug-in corresponding to the plug-in configuration information. 3.
  • the data acquisition request includes the plug-in configuration information and the code package configuration information.
  • the sending module 702 is further configured to send the target plug-in corresponding to the plug-in configuration information and the target code package corresponding to the code package configuration information to the user terminal in response to the third data acquisition request, so that the user The terminal uses the target code package and the target plug-in to run the target application.
  • the device further includes:
  • the obtaining module 703 is used to obtain the target plug-in and the target code package sent by the application development terminal after the target plug-in and the target code package corresponding to the target application are compiled, and to combine the target plug-in and the target code package.
  • the target code package is associated with the application identifier of the target application and then stored, and the configuration parameters of the target application are generated.
  • the obtaining module 703 is further configured to obtain plug-in application information of the target application submitted through the application development terminal, where the plug-in application information includes a plug-in identifier, a plug-in version, and a plug-in type.
  • the obtaining module 703 is also used to search for the target plug-in corresponding to the plug-in application information from the plug-in library.
  • the sending module 702 is further configured to send the target plug-in to the application development terminal, so that the application development terminal compiles the target plug-in and the corresponding target code package.
  • the plug-in type includes one or more of a basic library domain plug-in, a developer domain plug-in, an open data domain plug-in, and an independent domain plug-in.
  • FIG. 8 is a schematic structural diagram of a user terminal in an embodiment of the present application.
  • the user terminal in the embodiment of the present application includes a power supply module and other structures, and includes a processor 801, a storage device 802, a network interface 803, and an input/ Output device 804.
  • the processor 801, the storage device 802, the network interface 803, and the input/output device 804 can exchange data.
  • the storage device 802 may include a volatile memory (volatile memory), such as random-access memory (RAM); the storage device 802 may also include a non-volatile memory (non-volatile memory), such as fast Flash memory (flash memory), solid-state drive (SSD), etc.; the storage device 802 may also include a combination of the foregoing types of memories.
  • volatile memory volatile memory
  • non-volatile memory non-volatile memory
  • flash memory flash memory
  • SSD solid-state drive
  • the network interface 803 is used to send and receive data.
  • the input/output device 804 may be a display screen, a touch screen, a microphone, a speaker, etc., for detecting touch operations and outputting text, images, sounds, and the like.
  • the processor 801 may be a central processing unit (CPU) 801. In an embodiment, the processor 801 may also be a graphics processor 801 (Graphics Processing Unit, GPU). The processor 801 may also be a combination of a CPU and a GPU. In one embodiment, the storage device 802 is used to store program instructions. The processor 801 can call the program instructions to perform the following operations:
  • the configuration parameters of the target application are obtained from the data management server, and the configuration parameters include plug-in configuration information and code package configuration information.
  • the target code package corresponding to the code package configuration information is obtained from the data management server.
  • the processor 801 is further configured to:
  • the pending plug-in is used as the target plug-in.
  • the processor 801 is further configured to:
  • the target plug-in is generated using the pending plug-in and the first plug-in incremental package.
  • the plug-in version is an automatically updated version
  • the processor 801 is further configured to:
  • the pending plug-in is used as the target plug-in.
  • the processor 801 is further configured to:
  • the processor 801 is further configured to:
  • the target plug-in corresponding to the plug-in configuration information and the target code package corresponding to the code package configuration information are obtained from the data management server.
  • the processor 801 is specifically configured to:
  • the operating domain required by the target plug-in is created through the basic library.
  • the processor 801, the storage device 802, the network interface 803, and the input/output device 804 described in the embodiment of the present application can execute the relevant embodiment of the method for starting the application provided in FIG. 2 or FIG. 5 of the embodiment of the present application.
  • the implementation manner described in FIG. 6 can also be implemented as the implementation manner described in the related embodiment of the apparatus for starting an application provided in FIG. 6 of the embodiment of the present application, and will not be repeated here.
  • FIG. 9 is a schematic structural diagram of a data management server in an embodiment of the present application.
  • the data management server in the embodiment of the present application includes a power supply module and other structures, and includes a processor 901, a storage device 902, and a network interface 903.
  • the processor 901, the storage device 902, and the network interface 903 can exchange data.
  • the storage device 902 may include a volatile memory (volatile memory), such as random-access memory (RAM); the storage device 902 may also include a non-volatile memory (non-volatile memory), such as fast Flash memory (flash memory), solid-state drive (SSD), etc.; the storage device 902 may also include a combination of the foregoing types of memories.
  • volatile memory volatile memory
  • non-volatile memory non-volatile memory
  • flash memory flash memory
  • SSD solid-state drive
  • the network interface 903 is used to send and receive data.
  • the processor 901 may be a central processing unit (CPU). In an embodiment, the processor 901 may also be a graphics processor 901 (Graphics Processing Unit, GPU). The processor 901 may also be a combination of a CPU and a GPU. In one embodiment, the storage device 902 is used to store program instructions. The processor 901 may call the program instructions to perform the following operations:
  • the configuration parameters of the target application are sent to the user terminal, where the configuration parameters include plug-in configuration information and code package configuration information.
  • the target code package corresponding to the code package configuration information is sent to the user terminal, so that the user terminal uses the target code package and the locally cached target plug-in to run the target application.
  • processor 901 is further configured to:
  • the target plug-in corresponding to the plug-in configuration information and the target code package corresponding to the code package configuration information are sent to the user terminal, so that the user terminal uses the target code package and the target code package.
  • the target plug-in runs the target application.
  • processor 901 is further configured to:
  • the target plug-in and the target code package sent by the application development terminal after compiling the target plug-in and the target code package corresponding to the target application, and combine the target plug-in, the target code package and the target application After associating the application identifiers of, it is stored, and the configuration parameters of the target application are generated.
  • processor 901 is further configured to:
  • plug-in application information of the target application submitted through the application development terminal where the plug-in application information includes a plug-in identifier, a plug-in version, and a plug-in type.
  • the plug-in type includes one or more of a basic library domain plug-in, a developer domain plug-in, an open data domain plug-in, and an independent domain plug-in.
  • the processor 901, the storage device 902, and the network interface 903 described in the embodiment of the present application can execute the implementation described in the related embodiment of the method for starting an application provided in FIG. 3 or FIG. 5 of the embodiment of the present application.
  • the implementation described in the related embodiment of the device for starting an application provided in FIG. 7 of the embodiment of the present application can also be performed, and details are not described herein again.
  • an embodiment of the present application also provides a storage medium, where the storage medium is used to store a computer program, and the computer program is used to execute the method provided in the foregoing embodiment.
  • the embodiments of the present application also provide a computer program product including instructions, which when run on a computer, cause the computer to execute the method provided in the above-mentioned embodiments.
  • the disclosed device may be implemented in other ways.
  • the device embodiments described above are only illustrative, for example, the division of the above-mentioned units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or integrated. To another system, or some features can be ignored, or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical or other forms.
  • the units described above as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the above integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present application essentially or the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium , Including several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc., specifically a processor in a computer device) execute all or part of the steps of the foregoing methods of the various embodiments of the present application.
  • the aforementioned storage medium may include: U disk, mobile hard disk, magnetic disk, optical disk, read-only memory (English: Read-Only Memory, abbreviation: ROM) or random access memory (English: Random Access Memory, abbreviation: RAM) and other media that can store program codes.

Landscapes

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

Abstract

本申请实施例提供了一种启动应用的方法和相关装置,其中方法包括:当检测到针对目标应用的启动指令时,用户终端可以从数据管理服务器获取目标应用的配置参数,配置参数包括插件配置信息和代码包配置信息,如果本地缓存的插件中包括插件配置信息对应的目标插件,则用户终端只需要从数据管理服务器获取代码包配置信息对应的目标代码包,进而利用目标代码包和本地缓存的目标插件即可运行目标应用,从而可以提升应用的启动速度,用户终端不再需要额外存储重复的插件代码,节省用户终端的存储空间,并降低了开发者的开发成本。

Description

一种启动应用的方法和相关装置
本申请要求于2020年05月08日提交中国专利局、申请号为202010381949.6、申请名称为“一种启动应用的方法、装置及计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及启动应用。
背景技术
目前,小游戏/小程序的开发者在需要某种通用代码时,通常是自己编写或从相关站点下载通用代码,然后打包到小游戏/小程序的代码包中,用户终端上的客户端(例如微信)会对包含相同通用代码以及自身代码的小游戏/小程序进行缓存,用户在打开一个新的小游戏/小程序时,需要去后台下载包含了完整代码(通用代码以及自身代码)的数据。
发明内容
本申请实施例提供一种启动应用的方法和相关装置,可以提升应用的启动速度,节省用户终端的存储空间,并降低了开发者的开发成本。
一方面,本申请实施例提供了一种启动应用的方法,所述方法由用户终端执行,所述方法包括:
当检测到针对目标应用的启动指令时,从数据管理服务器获取所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
若本地缓存的插件中包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述代码包配置信息对应的目标代码包。
利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
另一方面,本申请实施例提供了一种启动应用的方法,所述方法由数据管理服务器执行,所述方法包括:
接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识。
响应所述第一数据获取请求向所述用户终端发送所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
接收所述用户终端在确定本地缓存的插件中包括所述插件配置信息对应 的目标插件时发送的第二数据获取请求,所述第二数据获取请求包括所述代码包配置信息。
响应所述第二数据获取请求向所述用户终端发送所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
另一方面,本申请实施例提供了一种用于启动应用的用户终端,所述装置包括:
获取模块,用于当检测到针对目标应用的启动指令时,从数据管理服务器获取所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
所述获取模块,还用于若本地缓存的插件中包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述代码包配置信息对应的目标代码包。
处理模块,用于利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
另一方面,本申请实施例提供了一种用于启动应用的数据管理服务器,所述装置包括:
接收模块,用于接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识。
发送模块,用于响应所述第一数据获取请求向所述用户终端发送所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
所述接收模块,还用于接收所述用户终端在确定本地缓存的插件中包括所述插件配置信息对应的目标插件时发送的第二数据获取请求,所述第二数据获取请求包括所述代码包配置信息。
所述发送模块,还用于响应所述第二数据获取请求向所述用户终端发送所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
另一方面,本申请实施例提供了一种用户终端,所述用户终端包括处理器、存储装置、网络接口以及输入/输出设备,所述处理器、存储装置、网络接口 以及输入/输出设备相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述输入/输出设备用于检测触摸操作以及输出图像,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行上述方面所述的启动应用的方法。
另一方面,本申请实施例提供了一种数据管理服务器,所述数据管理服务器包括处理器、存储装置以及网络接口,所述处理器、存储装置以及网络接口相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行上述方面所述的启动应用的方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行上述方面所述的启动应用的方法。
又一方面,本申请实施例提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述方面的启动应用的方法。
本申请实施例中,当检测到针对目标应用的启动指令时,用户终端可以从数据管理服务器获取目标应用的配置参数,配置参数包括插件配置信息和代码包配置信息,如果本地缓存的插件中包括插件配置信息对应的目标插件,则用户终端只需要从数据管理服务器获取代码包配置信息对应的目标代码包,进而利用目标代码包和本地缓存的目标插件即可运行目标应用,从而可以提升应用的启动速度,用户终端不再需要额外存储重复的插件代码,节省用户终端的存储空间。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据管理系统的架构示意图;
图2是本申请实施例提供的一种启动应用的方法的流程示意图;
图3是本申请实施例提供的另一种启动应用的方法的流程示意图;
图4a是本申请实施例提供的一种开发插件的流程示意图;
图4b是本申请实施例提供的一种启动小游戏的数据处理流程示意图;
图5是本申请实施例提供的又一种启动应用的方法的流程示意图;
图6是本申请实施例提供的一种用于启动应用的用户终端的结构示意图;
图7是本申请实施例提供的一种用于启动应用的数据管理服务器的结构示意图;
图8是本申请实施例提供的一种用户终端的结构示意图;
图9是本申请实施例提供的一种数据管理服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对目前在开发小游戏/小程序时开发者的开发成本较高,需要为大量相似或相同的通用代码耗费精力,并且客户端需要存储很多的相同代码,占用大量的存储空间,增加了打开新的小游戏/小程序时下载数据的耗时,影响启动速度的问题,本申请实施例提供了一种数据处理方法,可以提升应用的启动速度,节省用户终端的存储空间,并降低了开发者的开发成本。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
请参见图1,是本申请实施例提供的一种数据管理系统的架构示意图,该数据管理系统包括数据管理服务器10、用户终端20、插件开发终端30和应用开发终端40,其中:
数据管理服务器10,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。数据管理服务器10,可以作为数据管理平台为插件开发着、应用开发者和用户提供统一的插件管理服务,例如用于管理插件开发者对插件的申请,对插件开发者上传的插件进行审核,管理应用开发者在开发小游戏/小程序等应用时对插件的配置和使用,存储各个小游戏/小程序的配置参数(包括插件配置信息和代码包配置信息),为小游戏/小程序启动时提供所需的插件和/或代码包。
数据管理服务器作为数据管理平台,配置有统一的通用插件,可以为用户在启动应用时、应用开发者在开发、测试应用时提供所需的插件,并在用户终端本地未缓存正确插件时提供插件增量包以使得用户终端可以获取到正确的插件(例如目标插件)以成功启动应用。除此之外,数据管理服务器还可以基于应用的插件和代码包生成并维护应用的配置参数,并在用户终端启动应用时基于配置参数向用户终端提供对应的代码包。
其中,插件是指一种能被多个小游戏/小程序使用的代码片段。小程序是一种不需要下载安装即可使用的应用。小游戏属于一种不需要下载安装即可使用的游戏应用,类似于小程序,它即点即玩,无需下载安装,体验轻便。
用户终端20、插件开发终端30和应用开发终端40可以包括智能手机、平板电脑、笔记本、台式电脑、智能音箱、智能手表等电子设备。
用户终端20用于用户使用小游戏/小程序等应用。插件开发终端30用于插件开发者利用开发者工具进行插件开发,并将开发的插件上传到数据管理服务器10。应用开发终端40用于应用开发者利用插件开发者开发的插件进行应用开发,并将开发的应用对应的插件、代码包上传到数据管理服务器10。
具体的,当检测到用户针对目标应用的启动指令时,用户终端20可以从数据管理服务器10获取目标应用的配置参数,配置参数包括插件配置信息和代码包配置信息,如果本地缓存的插件中包括插件配置信息对应的目标插件,则用户终端20只需要从数据管理服务器10获取代码包配置信息对应的目标代码包,进而利用目标代码包和本地缓存的目标插件即可运行目标应用,从而可以提升应用的启动速度,用户终端20不再需要额外存储重复的插件代码,节省用户终端的存储空间,而且插件开发终端30不需要再额外开发插件,可以直接从数据管理服务器10获取开发所需的插件即可通过应用开发终端40完成应用开发,降低了开发者的开发成本。
请参见图2,是本申请实施例基于图1所示的数据管理系统提供的一种启动应用的方法的流程示意图,该启动应用的方法包括如下步骤:
201、当检测到针对目标应用的启动指令时,用户终端从数据管理服务器获取所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
其中,目标应用可以是一种小程序或者小游戏,具体可以是提供给用户使用的小程序或者小游戏中的任意一个。用户终端上可以安装客户端(例如微信客户端),客户端的显示界面中可以展示多个小程序/小游戏供用户使用,用户可以通过该客户端启动目标应用,例如点击客户端的显示界面中该目标应用的图标或者标识,当然用户也可以通过点击该目标应用在用户终端的系统桌面中的快捷方式来启动该目标应用。
具体的,当检测到用户针对目标应用的启动指令时,用户终端可以从数据管理服务器获取目标应用的配置参数,配置参数包括插件配置信息和代码包配置信息,插件配置信息指示了运行目标应用所需的插件,代码包配置信息指示了应用开发者针对目标应用自行编写的代码包。
在一些可行的实施方式中,插件可以包括基础库域插件、开发者域插件、开放数据域插件和独立域插件等多种类型的插件。目标插件可以包括一个或者多个插件,即支持一个应用引用多个插件。插件的运行环境可以称之为运行域(简称域),域是一个隔离的JS Context(上下文)环境,用于运行JS代码的一个封闭容器。不同类型的应用可以划分出不同的域,例如小游戏有三个基础域,包括基础库域、开发者域和开放数据域;小程序有两个基础域,包括基础库域和开发者域。其中,开放数据域是指社交关系链所在的域(例如微信好友关系链),用于处理游戏排行榜等数据。
202、若本地缓存的插件中包括所述插件配置信息对应的目标插件,则所述用户终端从所述数据管理服务器获取所述代码包配置信息对应的目标代码包。
203、所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
具体的,用户终端获取到目标应用的配置参数之后,先查询本地缓存的插件中是否包括配置参数中插件配置信息对应的目标插件,如果本地缓存有目标插件,则为运行目标应用,用户终端只需要从数据管理服务器获取代码包配置信息对应的目标代码包,然后利用目标代码包和本地缓存的目标插件即可运行目标应用。
在一些可行的实施方式中,用户终端可以注入基础库,注入基础库是指在 用户终端上解析并运行基础库对应的代码数据,然后通过基础库创建目标插件所需的运行域,在运行域中注入目标插件和对应的目标代码包,在各个目标插件以及对应的目标代码包注入完毕后,即可实现目标应用的运行。
在一些可行的实施方式中,对于使用频率较高的插件,用户终端可以缓存在本地存储空间中,例如,用户终端可以从数据管理服务器获取各个插件的使用频率,如果使用频率达到预设频率阈值,则用户终端可以将对应的插件缓存在本地存储空间中,使得在启动应用时,可以优先从本地缓存的插件中复用当前应用所需的插件。
本申请实施例中,当检测到针对目标应用的启动指令时,用户终端可以从数据管理服务器获取目标应用的配置参数,配置参数包括插件配置信息和代码包配置信息,如果本地缓存的插件中包括插件配置信息对应的目标插件,则用户终端只需要从数据管理服务器获取代码包配置信息对应的目标代码包,进而利用目标代码包和本地缓存的目标插件即可运行目标应用,从而可以提升应用的启动速度,节省用户终端的存储空间,并降低了开发者的开发成本。
在一些可行的实施方式中,插件配置信息包括目标插件的插件标识和插件版本,用户终端可以先获取本地缓存的插件,从本地缓存的插件中查找与该插件标识相同的待定插件,如果查找到待定插件,则利用目标代码包和待定插件运行目标应用。
在一些可行的实施方式中,插件配置信息还包括目标插件的插件版本,用户终端在查找到待定插件之后,可以检测待定插件的插件版本与目标插件的插件版本是否一致,如果一致,则即可利用目标代码包和待定插件运行目标应用。如果不一致,则用户终端可以从数据管理服务器获取待定插件的插件版本与目标插件的插件版本之间的第一插件增量包,然后利用待定插件和第一插件增量包生成目标插件,进而利用目标代码包和生成的目标插件运行目标应用。例如,目标插件的插件版本为V5.0,待定插件的插件版本为V3.0,则用户终端可以从数据管理服务器获取目标插件的V3.0与V5.0之间的第一插件增量包,然后利用V3.0的插件和第一插件增量包生成V5.0的目标插件,通过下载插件增量包的方式可以有效减少下载的数据量,提升应用的启动速度。
在一些可行的实施方式中,插件版本为自动更新版本(auto update),则 用户终端可以从数据管理服务器获取目标插件的最新版本,并检测待定插件的插件版本与目标插件的最新版本是否一致,如果一致,则利用目标代码包和待定插件运行目标应用;如果不一致,则用户终端可以从数据管理服务器获取待定插件的插件版本与目标插件的最新版本之间的第二插件增量包,然后利用待定插件和第二插件增量包生成最新版本的目标插件,并利用目标代码包和最新版本的目标插件运行目标应用。
在一些可行的实施方式中,如果本地缓存的插件中不包括插件配置信息对应的目标插件,则用户终端从数据管理服务器除了获取代码包配置信息对应的目标代码包,还需要获取插件配置信息对应的目标插件,并利用目标代码包和目标插件运行所述目标应用,也就是说,在本地缓存中没有所需的插件时,需要从数据管理服务器获取完整的数据包,完整的数据包同时包括插件和代码包。
请参见图3,是本申请实施例基于图1所示的数据管理系统提供的另一种启动应用的方法的流程示意图,该启动应用的方法包括如下步骤:
301、数据管理服务器接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识。
302、所述数据管理服务器响应所述第一数据获取请求向所述用户终端发送所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
具体的,用户终端在检测到针对目标应用的启动指令时可以向数据管理服务器发送第一数据获取请求,第一数据获取请求包括目标应用的标识,数据管理服务器根据目标应用的标识获取目标应用的配置参数,配置参数包括插件配置信息和代码包配置信息,并向用户终端发送目标应用的配置参数。
303、所述数据管理服务器接收所述用户终端在确定本地缓存的插件中包括所述插件配置信息对应的目标插件时发送的第二数据获取请求,所述第二数据获取请求包括所述代码包配置信息。
304、所述数据管理服务器响应所述第二数据获取请求向所述用户终端发送所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
具体的,用户终端在确定本地缓存的插件中包括插件配置信息对应的目标插件时,向数据管理服务器发送第二数据获取请求,第二数据获取请求包括代码包配置信息,数据管理服务器获取代码包配置信息对应的目标代码包,并向用户终端发送目标代码包,使得用户终端在接收到目标代码包后利用目标代码包和本地缓存的目标插件即可运行目标应用。
在一些可行的实施方式中,用户终端在确定本地缓存的插件中不包括插件配置信息对应的目标插件时,可以向数据管理服务器发送第三数据获取请求,第三数据获取请求包括插件配置信息和代码包配置信息,数据管理服务器获取插件配置信息对应的目标插件和代码包配置信息对应的目标代码包,并向用户终端发送该目标插件和该目标代码包,使得用户终端利用该目标插件和该目标代码包运行目标应用。
在一些可行的实施方式中,数据管理服务器具体可以是微信公众平台,用于管理插件的申请、配置、审核。数据管理服务器可以接收应用开发者针对目标应用提交的插件申请信息,插件申请信息包括插件标识、插件版本和插件类型,应用开发者在开发目标应用(例如一款小游戏)时,可以根据实际开发需要申请使用数据管理服务器提供的插件,数据管理服务器根据插件申请信息从插件库中获取对应的目标插件,并向应用开发者对应的用户终端发送目标插件,应用开发者针对目标应用编写有代码包(记为目标代码包),应用开发者获取到所需的目标插件后,可以利用开发者工具IDE(Integrated Development Environment,集成开发环境)对目标插件和目标代码包进行编译,以试运行目标应用,并预览目标应用的运行效果,通过向开发者提供插件能够极大地降低开发门槛,为开发者提供更优的体验。
进一步的,应用开发者在应用开发终端上利用开发者工具对目标插件和目标代码包编译通过后,可以将目标插件和目标代码包打包后上传到数据管理服务器,数据管理服务器接收针对目标应用上传的目标插件和目标代码包,并将目标插件、目标代码包与目标应用的标识关联后进行存储,并生成所述目标应用的配置参数,进而可以发布产品,即面向用户提供目标应用的使用。
其中,开发者工具IDE对目标插件和目标代码包进行编译以运行目标应用的过程可以如下,在进行编译时,微信开发者工具会检索对应域的插件,提前 进行插件的注入(即解析插件实现代码并运行),再注入开发者相关逻辑,具体包括:根据插件配置拉取插件内容,注入基础库;判断目标插件中是否包括基础库域插件,如果是,则注入基础库域插件;判断目标插件中是否包括独立域插件,如果是,则创建独立域并注入独立域插件;判断目标插件中是否包括开发者域插件,如果是,则注入开发者域插件,然后注入开发者相关逻辑,开发者相关逻辑是指开发者代码,如game.js(小游戏)或app-service.js(小程序);判断目标插件中是否包括开放数据域插件,如果是,则注入开放数据域插件,然后注入开放数据域代码subcontext.js,注入完成后运行目标应用(如小游戏)。
本申请实施例中,数据管理服务器可以接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,第一数据获取请求包括目标应用的应用标识,根据目标应用的应用标识向用户终端发送目标应用的配置参数,配置参数包括插件配置信息和代码包配置信息,接收用户终端在确定本地缓存的插件中包括插件配置信息对应的目标插件时发送的第二数据获取请求,第二数据获取请求包括代码包配置信息,向用户终端发送代码包配置信息对应的目标代码包,以使得用户终端利用目标代码包和本地缓存的目标插件运行目标应用,从而可以提升应用的启动速度,节省用户终端的存储空间,并降低了开发者的开发成本。
在一些可行的实施方式中,插件的类型可以包括基础库域插件、开发者域插件、开放数据域插件和独立域插件中的一种或多种。应用开发者在申请插件时,可以进行如下配置提交插件申请信息,以目标应用是小游戏为例:
(一)对开发者域插件、独立域插件或者开放数据域插件的配置。
小游戏开发者通过在game.json中通过简单的配置即可使用插件。小程序开发者通过在app.json中通过简单的配置即可使用插件。以小游戏的game.json为例,提交的插件申请信息如下:
1.{
2."plugins":{
3."aaa":{//alias
4."provider":"wx123456789",
5."version":"1.0",
6."contexts":{"type":"openDataContext"},{"type":"isolatedContext"},{"type":"gameContext"}
7.}
8.}
9.}
其中,alias是插件的别名,含义是插件的长路径可以用简短的alias方式替换。provider是插件开发者在数据管理服务器申请的插件的appid,version是插件自身的版本,插件开发者在上传插件时数据管理服务器会对插件的版本和后台存储的version进行映射。contexts中填写插件类型type,openDataContext对应的是开放数据域插件,isolatedContext对应的是独立域插件,gameContext对应的是游戏域插件,contexts不填写的话默认是开发者域插件。其中,独立域插件会校验contexts的合法性,且对于同一个appid不能与其他插件共同配置。plugins支持配置多个且可以在分包中进行配置。
(二)对基础库域插件(即官方插件)的配置。
1.{
2."useSystemExtendedLib":{
3."name":"ccc"
4."version(包含autoupdate)"
5.}
6.}
其中,Name是基础库域插件的别名,亦即官方插件,Version是插件的版本,也可以配置为自动更新版本。
在一些可行的实施方式中,应用开发者在使用插件时,可以通过如下方式进行:
使用开发者域插件、开放数据域插件或者基础库域插件,使用方法:
requirePlugin('aaa')。
在开发者域或者开放数据域中使用独立域插件时,按照如下规则使用:
1.requirePlugin('bbb',{
2.enableRequireHostModule:true,//是否允许插件引用宿主的模块,默认false
3.customEnv:{//传递给插件的值,多次调用传递会覆盖写(Object.assign)
4.wx,
5.foo:{
6.bar:1
7.}
8.}
9.})
在一些可行的实施方式中,数据管理服务器在检测到应用开发者使用插件的请求时,可以利用基础库先对使用插件的请求进行解析,新版本基础库实现requirPlugin接口,参数格式为"{alias}[/{filename}]",实现为通过配置根据alias和filename去找到真实的模块,以前述配置的game.json为例:
requirePlugin('aaa')//等同于requirePlugin('aaa/index.js')
可以解析成:
require('__plugin__/wx123456789/index.js')//根据plugin.json里的main定位到index.js。为了兼容旧的基础库版本和微信客户端版本,开发者工具编译后台需要对requirePlugin的实现进行兼容。针对旧版本的基础库,开发者工具编译后台需要进行和基础库相同的实现,以达到不同版本之间的兼容。
在一些可行的实施方式中,在对使用插件的小游戏/小程序进行代码包的打包时,将开发者域插件打包到小游戏代码包中有两种方式:
一是拉取插件,并直接打包在game.js(小游戏)或app-service.js(小程序)中,提供给微信旧版本客户端使用。
二是将插件与代码剥离,仅打包本地开发者域代码,提供给微信新版本客户端使用。
将开放数据域插件打包到小游戏代码包中有两种方式:
一是拉取插件,并直接打包在subcontext.js中,提供给微信旧版本客户端使用。
二是将插件与代码剥离,仅打包本地开放数据域代码,提供给微信新版本客户端使用。
对于独立域插件和基础库域插件:由于不存在整包,因此只有一种打包方式:仅打包本地的代码,独立域插件或基础库域插件的插件信息存储在数据管理服务器中。
在一些可行的实施方式中,插件开发者在数据管理服务器上开发插件时,可以先申请好插件类型,即从基础库域插件、开发者域插件、开放数据域插件和独立域插件多种类型中选择要开发的插件类型。其中,独立域插件在数据管理服务器初始化时即需指定为独立域插件,且之后无法更改。如图4a所示,插件开发者可以先到微信公众平台申请插件,确定插件标识(如appid),利用微信开发者工具进行插件的开发,开发调试完成后进行插件的上传,存储到微信公众平台的后台,并由审核平台拉取插件代码进行审核,例如审核插件实现代码的安全风险、插件实现代码的大小,审核通过后在微信公众平台可以进行插件的浏览。在开发小游戏/小程序时,应用开发者可以针对需求选择合适的通用插件进行使用。插件开发者的开发流程可以如下:
每个插件都有一个单独的插件代码目录,里面除了包含插件实现代码外,还需要包含plugin.json。plugin.json的主要配置如下,在main中填写插件的入口文件:
1.{
2."main":"index.js"//范例入口文件
3.}
对于独立域插件,插件环境下独有的API从pluginEnv访问:
1.pluginEnv={
2.requireHostModule,//等同于宿主小游戏的require,需要宿主小游戏允许才可以获取到
3.customEnv:{}//宿主小游戏传过来的变量
4.}
插件开发者对插件调试成功后,通过微信开发者工具上传插件代码,审核 通过后插件使用者(例如小游戏/小程序开发者)即可使用。
在一些可行的实施方式中,如图4b所示,以用户在用户终端上启动小游戏为例,用户终端检测到用户点击小游戏,从微信公众平台拉取该小游戏的数据包Pkg信息(即前述配置参数),Pkg信息包括该小游戏对应的插件信息(即插件配置信息)和排除插件相关信息(即代码包配置信息),如果用户终端上运行的是新版本微信客户端,则用户终端先查询本地是否存在相同appid(插件标识)的插件,如果存在相同appid的插件,则判断所需插件版本与本地存在的插件版本是否相同,如果版本相同,则复用本地已有的插件,如果版本不相同,则从微信公众平台下载插件增量包,并生成所需版本的插件完整包;如果不存在相同appid的插件,则从微信公众平台下载所需版本的插件完整包Pkg;另外,从微信公众平台下载排除插件外的代码包Pkg,通过注入插件完整包和排除插件外的代码包来运行该小游戏,从而通过复用插件可以有效降低开发者的开发成本,节省用户端的存储空间,并提升了应用的启动速度。如果用户终端上运行的是旧版本微信客户端,则用户终端需要直接从微信公众平台下载内置插件的完整包,通过注入内置插件的完整包来运行该小游戏。
请参见图5,是本申请实施例基于图1所示的数据管理系统提供的又一种启动应用的方法的流程示意图,该启动应用的方法包括如下步骤:
501、当检测到针对目标应用的启动指令时,用户终端向数据管理服务器发送第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识。
502、所述数据管理服务器接收所述第一数据获取请求,并响应所述第一数据获取请求根据所述目标应用的应用标识查询存储的所述目标应用的配置参数。
其中,所述配置参数包括插件配置信息和代码包配置信息。
503、所述数据管理服务器向所述用户终端发送所述目标应用的配置参数。
504、所述用户终端接收所述目标应用的配置参数,并查询本地缓存的插件中是否包括所述插件配置信息对应的目标插件。
505、若所述本地缓存的插件中包括所述目标插件,则所述用户终端向所述数据管理服务器发送第二数据获取请求,所述第二数据获取请求包括所述代 码包配置信息。
506、所述数据管理服务器接收所述第二数据获取请求,并响应所述第二数据获取请求查询存储的所述代码包配置信息对应的目标代码包。
507、所述数据管理服务器向所述用户终端发送所述目标代码包。
508、所述用户终端接收所述目标代码包,并利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
其中,步骤501~508的具体实现可以参见前述实施例中的相关描述,此处不再赘述。
请参见图6,是本申请实施例的一种用于启动应用的用户终端的结构示意图,所述用于启动应用的用户终端包括:
获取模块601,用于当检测到针对目标应用的启动指令时,从数据管理服务器获取所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
所述获取模块601,还用于若本地缓存的插件中包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述代码包配置信息对应的目标代码包。
处理模块602,用于利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
可选的,所述插件配置信息包括所述目标插件的插件标识和插件版本,所述装置还包括检测模块603,其中:
所述获取模块601,还用于获取本地缓存的插件。
所述获取模块601,还用于从所述本地缓存的插件中查找插件标识与所述目标插件的插件标识相同的待定插件。
所述检测模块603,用于响应于检测所述待定插件的插件版本与所述目标插件的插件版本是一致,将所述待定插件作为所述目标插件。
可选的,所述获取模块601,还用于响应于检测所述待定插件的插件版本与所述目标插件的插件版本不一致,则从所述数据管理服务器获取所述待定插件的插件版本与所述目标插件的插件版本之间的第一插件增量包。
所述处理模块602,还用于利用所述待定插件和所述第一插件增量包生成所述目标插件。
可选的,所述插件版本为自动更新版本,所述获取模块601,还用于从所述数据管理服务器获取所述目标插件的最新版本。
所述检测模块603,还用于响应于检测所述待定插件的插件版本与所述目标插件的最新版本一致,则将所述待定插件作为所述目标插件。
可选的,所述获取模块601,还用于响应于检测所述待定插件的插件版本与所述目标插件的最新版本不一致,则从所述数据管理服务器获取所述待定插件的插件版本与所述目标插件的最新版本之间的第二插件增量包。
所述处理模块602,还用于利用所述待定插件和所述第二插件增量包生成最新版本的目标插件。
可选的,所述获取模块601,还用于若所述本地缓存的插件中不包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述插件配置信息对应的目标插件和所述代码包配置信息对应的目标代码包。
所述处理模块602,还用于利用所述目标代码包和所述目标插件运行所述目标应用。
可选的,所述处理模块602,具体用于:
注入基础库。
通过所述基础库创建所述目标插件所需的运行域。
在所述运行域中注入所述目标插件和对应的所述目标代码包,以运行所述目标应用。
需要说明的是,本申请实施例的启动应用的装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图7,是本申请实施例的一种用于启动应用的数据管理服务器的结构示意图,所述用于启动应用的数据管理服务器包括:
接收模块701,用于接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识。
发送模块702,用于响应所述第一数据获取请求向所述用户终端发送所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
所述接收模块701,还用于接收所述用户终端在确定本地缓存的插件中包括所述插件配置信息对应的目标插件时发送的第二数据获取请求,所述第二数据获取请求包括所述代码包配置信息。
所述发送模块702,还用于响应所述第二数据获取请求向所述用户终端发送所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
可选的,所述接收模块701,还用于接收所述用户终端在确定所述本地缓存的插件中不包括所述插件配置信息对应的目标插件时发送的第三数据获取请求,所述第三数据获取请求包括所述插件配置信息和所述代码包配置信息。
所述发送模块702,还用于响应所述第三数据获取请求向所述用户终端发送所述插件配置信息对应的目标插件和所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和所述目标插件运行所述目标应用。
可选的,所述装置还包括:
所述获取模块703,用于获取应用开发终端在对目标应用对应的目标插件和目标代码包编译通过后,发送的所述目标插件和所述目标代码包,并将所述目标插件、所述目标代码包与所述目标应用的应用标识关联后进行存储,并生成所述目标应用的配置参数。
可选的,所述获取模块703,还用于获取通过所述应用开发终端提交的所述目标应用的插件申请信息,所述插件申请信息包括插件标识、插件版本和插件类型。
所述获取模块703,还用于从插件库中查找所述插件申请信息对应的目标插件。
所述发送模块702,还用于向所述应用开发终端发送所述目标插件,以使得所述应用开发终端对所述目标插件和对应的目标代码包进行编译。
可选的,所述插件类型包括基础库域插件、开发者域插件、开放数据域插件和独立域插件中的一种或多种。
需要说明的是,本申请实施例的启动应用的装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图8,是本申请实施例的一种用户终端的结构示意图,本申请实施例的所述用户终端包括供电模块等结构,并包括处理器801、存储装置802、网络接口803以及输入/输出设备804。所述处理器801、存储装置802、网络接口803以及输入/输出设备804之间可以交互数据。
所述存储装置802可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置802也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;所述存储装置802还可以包括上述种类的存储器的组合。
所述网络接口803用于收发数据。
所述输入/输出设备804可以是显示屏、触摸屏、麦克风、扬声器等,用于检测触摸操作以及输出文字、图像、声音等。
所述处理器801可以是中央处理器801(central processing unit,CPU)。在一个实施例中,所述处理器801还可以是图形处理器801(Graphics Processing Unit,GPU)。所述处理器801也可以是由CPU和GPU的组合。在一个实施例中,所述存储装置802用于存储程序指令。所述处理器801可以调用所述程序指令,执行如下操作:
当检测到针对目标应用的启动指令时,从数据管理服务器获取所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
若本地缓存的插件中包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述代码包配置信息对应的目标代码包。
利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
可选的,所述处理器801,还用于:
获取本地缓存的插件。
从所述本地缓存的插件中查找插件标识与所述目标插件的插件标识相同 的待定插件。
响应于检测所述待定插件的插件版本与所述目标插件的插件版本一致,将所述待定插件作为所述目标插件。
可选的,所述处理器801,还用于:
响应于检测所述待定插件的插件版本与所述目标插件的插件版本不一致,则从所述数据管理服务器获取所述待定插件的插件版本与所述目标插件的插件版本之间的第一插件增量包。
利用所述待定插件和所述第一插件增量包生成所述目标插件。
可选的,所述插件版本为自动更新版本,所述处理器801,还用于:
从所述数据管理服务器获取所述目标插件的最新版本。
响应于检测所述待定插件的插件版本与所述目标插件的最新版本一致,则将所述待定插件作为所述目标插件。
可选的,所述处理器801,还用于:
响应于检测所述待定插件的插件版本与所述目标插件的最新版本不一致,则从所述数据管理服务器获取所述待定插件的插件版本与所述目标插件的最新版本之间的第二插件增量包。
利用所述待定插件和所述第二插件增量包生成最新版本的目标插件。
可选的,所述处理器801,还用于:
若所述本地缓存的插件中不包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述插件配置信息对应的目标插件和所述代码包配置信息对应的目标代码包。
利用所述目标代码包和所述目标插件运行所述目标应用。
可选的,所述处理器801,具体用于:
注入基础库。
通过所述基础库创建所述目标插件所需的运行域。
在所述运行域中注入所述目标插件和对应的所述目标代码包,以运行所述目标应用。
具体实现中,本申请实施例中所描述的处理器801、存储装置802、网络接口803以及输入/输出设备804可执行本申请实施例图2或图5提供的启动应用的 方法的相关实施例中所描述的实现方式,也可执行本申请实施例图6提供的启动应用的装置的相关实施例中所描述的实现方式,在此不再赘述。
请参见图9,是本申请实施例的一种数据管理服务器的结构示意图,本申请实施例的所述数据管理服务器包括供电模块等结构,并包括处理器901、存储装置902以及网络接口903。所述处理器901、存储装置902以及网络接口903之间可以交互数据。
所述存储装置902可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置902也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;所述存储装置902还可以包括上述种类的存储器的组合。
所述网络接口903用于收发数据。
所述处理器901可以是中央处理器901(central processing unit,CPU)。在一个实施例中,所述处理器901还可以是图形处理器901(Graphics Processing Unit,GPU)。所述处理器901也可以是由CPU和GPU的组合。在一个实施例中,所述存储装置902用于存储程序指令。所述处理器901可以调用所述程序指令,执行如下操作:
接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识。
响应所述第一数据获取请求向所述用户终端发送所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息。
接收所述用户终端在确定本地缓存的插件中包括所述插件配置信息对应的目标插件时发送的第二数据获取请求,所述第二数据获取请求包括所述代码包配置信息。
响应所述第二数据获取请求向所述用户终端发送所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
可选的,所述处理器901,还用于:
接收所述用户终端在确定所述本地缓存的插件中不包括所述插件配置信息对应的目标插件时发送的第三数据获取请求,所述第三数据获取请求包括所述插件配置信息和所述代码包配置信息。
响应所述第三数据获取请求向所述用户终端发送所述插件配置信息对应的目标插件和所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和所述目标插件运行所述目标应用。
可选的,所述处理器901,还用于:
获取应用开发终端在对目标应用对应的目标插件和目标代码包编译通过后,发送的所述目标插件和所述目标代码包,并将所述目标插件、所述目标代码包与所述目标应用的应用标识关联后进行存储,并生成所述目标应用的配置参数。
可选的,所述处理器901,还用于:
获取通过所述应用开发终端提交的所述目标应用的插件申请信息,所述插件申请信息包括插件标识、插件版本和插件类型。
从插件库中查找所述插件申请信息对应的目标插件。
向所述应用开发终端发送所述目标插件,以使得所述应用开发终端对所述目标插件和对应的目标代码包进行编译。
可选的,所述插件类型包括基础库域插件、开发者域插件、开放数据域插件和独立域插件中的一种或多种。
具体实现中,本申请实施例中所描述的处理器901、存储装置902以及网络接口903可执行本申请实施例图3或图5提供的启动应用的方法的相关实施例中所描述的实现方式,也可执行本申请实施例图7提供的启动应用的装置的相关实施例中所描述的实现方式,在此不再赘述。
另外,本申请实施例还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于执行上述实施例提供的方法。
本申请实施例还提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(英文:Read-Only Memory,缩写:ROM)或者随机存取存储器(英文:Random Access Memory,缩写:RAM)等各种可 以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (17)

  1. 一种启动应用的方法,所述方法由用户终端执行,所述方法包括:
    当检测到针对目标应用的启动指令时,从数据管理服务器获取所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息;
    若本地缓存的插件中包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述代码包配置信息对应的目标代码包;
    利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
  2. 根据权利要求1所述的方法,所述插件配置信息包括所述目标插件的插件标识和插件版本,所述利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用之前,所述方法还包括:
    获取本地缓存的插件;
    从所述本地缓存的插件中查找插件标识与所述目标插件的插件标识相同的待定插件;
    响应于检测所述待定插件的插件版本与所述目标插件的插件版本一致,将所述待定插件作为所述目标插件。
  3. 根据权利要求2所述的方法,所述方法还包括:
    响应于检测所述待定插件的插件版本与所述目标插件的插件版本不一致,则从所述数据管理服务器获取所述待定插件的插件版本与所述目标插件的插件版本之间的第一插件增量包;
    利用所述待定插件和所述第一插件增量包生成所述目标插件。
  4. 根据权利要求2或3所述的方法,所述插件版本为自动更新版本,所述从所述本地缓存的插件中查找插件标识与所述目标插件的插件标识相同的待定插件之后,所述方法还包括:
    从所述数据管理服务器获取所述目标插件的最新版本;
    响应于检测所述待定插件的插件版本与所述目标插件的最新版本一致,则将所述待定插件作为所述目标插件。
  5. 根据权利要求4所述的方法,所述方法还包括:
    响应于检测所述待定插件的插件版本与所述目标插件的最新版本不一致,则从所述数据管理服务器获取所述待定插件的插件版本与所述目标插件的最 新版本之间的第二插件增量包;
    利用所述待定插件和所述第二插件增量包生成最新版本的目标插件。
  6. 根据权利要求1所述的方法,所述方法还包括:
    若所述本地缓存的插件中不包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述插件配置信息对应的目标插件和所述代码包配置信息对应的目标代码包;
    利用所述目标代码包和所述目标插件运行所述目标应用。
  7. 根据权利要求1所述的方法,所述利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用,包括:
    注入基础库;
    通过所述基础库创建所述目标插件所需的运行域;
    在所述运行域中注入所述目标插件和对应的所述目标代码包,以运行所述目标应用。
  8. 一种启动应用的方法,所述方法由数据管理服务器执行,所述方法包括:
    接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识;
    响应所述第一数据获取请求向所述用户终端发送所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息;
    接收所述用户终端在确定本地缓存的插件中包括所述插件配置信息对应的目标插件时发送的第二数据获取请求,所述第二数据获取请求包括所述代码包配置信息;
    响应所述第二数据获取请求向所述用户终端发送所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
  9. 根据权利要求8所述的方法,所述方法还包括:
    接收所述用户终端在确定所述本地缓存的插件中不包括所述插件配置信息对应的目标插件时发送的第三数据获取请求,所述第三数据获取请求包括所述插件配置信息和所述代码包配置信息;
    响应所述第三数据获取请求向所述用户终端发送所述插件配置信息对应的目标插件和所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和所述目标插件运行所述目标应用。
  10. 根据权利要求8或9所述的方法,所述接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求之前,所述方法还包括:
    获取应用开发终端在对目标应用对应的目标插件和目标代码包编译通过后,发送的所述目标插件和所述目标代码包;
    将所述目标插件、所述目标代码包与所述目标应用的应用标识关联后进行存储,并生成所述目标应用的配置参数。
  11. 根据权利要求10所述的方法,所述获取应用开发终端在对目标应用对应的目标插件和目标代码包编译通过后,发送的所述目标插件和所述目标代码包之前,所述方法还包括:
    获取通过所述应用开发终端提交的所述目标应用的插件申请信息,所述插件申请信息包括插件标识、插件版本和插件类型;
    从插件库中查找所述插件申请信息对应的目标插件;
    向所述应用开发终端发送所述目标插件,以使得所述应用开发终端对所述目标插件和对应的目标代码包进行编译。
  12. 根据权利要求11所述的方法,所述插件类型包括基础库域插件、开发者域插件、开放数据域插件或独立域插件中的至少一种。
  13. 一种用于启动应用的用户终端,所述用户终端包括:
    获取模块,用于当检测到针对目标应用的启动指令时,从数据管理服务器获取所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息;
    所述获取模块,还用于若本地缓存的插件中包括所述插件配置信息对应的目标插件,则从所述数据管理服务器获取所述代码包配置信息对应的目标代码包;
    处理模块,用于利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
  14. 一种用于启动应用的数据管理服务器,所述数据管理服务器包括:
    接收模块,用于接收用户终端在检测到针对目标应用的启动指令时发送的第一数据获取请求,所述第一数据获取请求包括所述目标应用的应用标识;
    发送模块,用于响应所述第一数据获取请求向所述用户终端发送所述目标应用的配置参数,所述配置参数包括插件配置信息和代码包配置信息;
    所述接收模块,还用于接收所述用户终端在确定本地缓存的插件中包括所述插件配置信息对应的目标插件时发送的第二数据获取请求,所述第二数据获取请求包括所述代码包配置信息;
    所述发送模块,还用于响应所述第二数据获取请求向所述用户终端发送所述代码包配置信息对应的目标代码包,以使得所述用户终端利用所述目标代码包和本地缓存的所述目标插件运行所述目标应用。
  15. 一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行如权利要求1-7任一项所述的启动应用的方法,或者如权利要求8-12任一项所述的启动应用的方法。
  16. 一种计算机设备,所述计算机设备包括:
    处理器、通信接口、存储器和通信总线;
    其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;所述通信接口为通信模块的接口;
    所述存储器,用于存储程序代码,并将所述程序代码传输给所述处理器;
    所述处理器,用于调用存储器中程序代码的指令执行如权利要求1-7任一项所述的启动应用的方法,或者如权利要求8-12任一项所述的启动应用的方法。
  17. 一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行如权利要求1-7任一项所述的启动应用的方法,或者如权利要求8-12任一项所述的启动应用的方法。
PCT/CN2021/083779 2020-05-08 2021-03-30 一种启动应用的方法和相关装置 WO2021223544A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/709,039 US11941411B2 (en) 2020-05-08 2022-03-30 Application starting method and related device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010381949.6A CN113703857A (zh) 2020-05-08 2020-05-08 一种启动应用的方法、装置及计算机可读存储介质
CN202010381949.6 2020-05-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/709,039 Continuation US11941411B2 (en) 2020-05-08 2022-03-30 Application starting method and related device

Publications (1)

Publication Number Publication Date
WO2021223544A1 true WO2021223544A1 (zh) 2021-11-11

Family

ID=78468626

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/083779 WO2021223544A1 (zh) 2020-05-08 2021-03-30 一种启动应用的方法和相关装置

Country Status (3)

Country Link
US (1) US11941411B2 (zh)
CN (1) CN113703857A (zh)
WO (1) WO2021223544A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295110A1 (en) * 2007-05-23 2008-11-27 Fabrizio Muscarella Framework for Startup of Local Instance of Remote Application
CN107102880A (zh) * 2017-05-11 2017-08-29 腾讯科技(深圳)有限公司 消息处理方法、装置、存储介质和计算机设备
CN109032691A (zh) * 2018-06-25 2018-12-18 腾讯科技(深圳)有限公司 一种小程序运行方法、装置及存储介质
CN110166543A (zh) * 2019-05-16 2019-08-23 腾讯科技(深圳)有限公司 应用程序处理方法、装置和计算机设备
CN110389935A (zh) * 2019-07-25 2019-10-29 上海连尚网络科技有限公司 一种启动小程序的方法、设备和计算机存储介质
CN110908738A (zh) * 2019-11-29 2020-03-24 百度在线网络技术(北京)有限公司 用于运行小程序的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8561058B2 (en) * 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
CN103902265B (zh) * 2012-12-26 2018-01-09 腾讯科技(深圳)有限公司 一种应用实现方法及相关装置
CN105335187B (zh) * 2014-08-14 2019-12-13 阿里巴巴集团控股有限公司 一种应用的处理方法及装置
CN111367577A (zh) * 2018-12-25 2020-07-03 中兴通讯股份有限公司 加载应用的插件的方法、装置和终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295110A1 (en) * 2007-05-23 2008-11-27 Fabrizio Muscarella Framework for Startup of Local Instance of Remote Application
CN107102880A (zh) * 2017-05-11 2017-08-29 腾讯科技(深圳)有限公司 消息处理方法、装置、存储介质和计算机设备
CN109032691A (zh) * 2018-06-25 2018-12-18 腾讯科技(深圳)有限公司 一种小程序运行方法、装置及存储介质
CN110166543A (zh) * 2019-05-16 2019-08-23 腾讯科技(深圳)有限公司 应用程序处理方法、装置和计算机设备
CN110389935A (zh) * 2019-07-25 2019-10-29 上海连尚网络科技有限公司 一种启动小程序的方法、设备和计算机存储介质
CN110908738A (zh) * 2019-11-29 2020-03-24 百度在线网络技术(北京)有限公司 用于运行小程序的方法和装置

Also Published As

Publication number Publication date
US11941411B2 (en) 2024-03-26
US20220222088A1 (en) 2022-07-14
CN113703857A (zh) 2021-11-26

Similar Documents

Publication Publication Date Title
WO2017050094A1 (zh) 加载应用程序的方法及装置
US10949191B2 (en) Patch-upgrade-based file processing method and apparatus, terminal, and storage medium
CN108027722B (zh) 在编译和部署中动态更新应用
EP3035191B1 (en) Identifying source code used to build executable files
US8683462B2 (en) Handling calls to native code in a managed code environment
Gilbert et al. Pocket ISR: Virtual machines anywhere
US20110145803A1 (en) Extension mechanism
US20130205277A1 (en) Environment and method for cross-platform development of software applications
US11016785B2 (en) Method and system for mirror image package preparation and application operation
WO2022083316A1 (zh) 一种应用运行的方法、装置及计算机存储介质
US11237843B2 (en) Application-level runtime environment for executing applications native to mobile devices without full installation
US8539506B2 (en) Dynamic injection of code into running process
US9513762B1 (en) Static content updates
WO2020248727A1 (zh) 一种软件模块的管理方法、装置及服务器
CN111724133A (zh) 一种创建项目的方法及装置
US10789751B2 (en) Method and apparatus for implementing animation in client application and animation script framework
US9756149B2 (en) Machine-specific instruction set translation
CN111290740B (zh) 应用程序的开发方法、装置、计算机设备和存储介质
WO2021223544A1 (zh) 一种启动应用的方法和相关装置
WO2022078057A1 (zh) 应用包发布方法、应用方法、装置、介质、服务器及设备
CN114860202A (zh) 项目运行方法、装置、服务器及存储介质
RU2595763C2 (ru) Способ и устройство менеджмента загрузки на базе браузера android
CN113110849A (zh) 按需加载资源
US8615736B2 (en) Module facility for JAVASCRIPT language
Vavru et al. Android programming: Complete application programming guide

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21799636

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 110423)

122 Ep: pct application non-entry in european phase

Ref document number: 21799636

Country of ref document: EP

Kind code of ref document: A1