CN113986388B - Program set loading method, system, electronic device and storage medium - Google Patents
Program set loading method, system, electronic device and storage medium Download PDFInfo
- Publication number
- CN113986388B CN113986388B CN202111265738.7A CN202111265738A CN113986388B CN 113986388 B CN113986388 B CN 113986388B CN 202111265738 A CN202111265738 A CN 202111265738A CN 113986388 B CN113986388 B CN 113986388B
- Authority
- CN
- China
- Prior art keywords
- target
- program
- loading
- project
- client
- 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
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 claims abstract description 73
- 238000004590 computer program Methods 0.000 claims description 4
- 239000002699 waste material Substances 0.000 abstract description 5
- 230000006399 behavior Effects 0.000 description 57
- 230000006870 function Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
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
The embodiment of the invention discloses a program set loading method, a program set loading system, electronic equipment and a storage medium, wherein the program set loading method comprises the following steps: the method comprises the steps that a client loads a native code library of a target item in the starting process of the target item; when the loading of the native code library of the target item is completed, the client loads a pre-built program loading hook file; the client loads a target plug-in sub-program set corresponding to the target item in an engine plug-in library based on the program loading hook file; the client initiates the target item based on the target plug-in sub-program set. According to the technical scheme, in the starting process of the target project, the hook file is loaded through the loaded pre-built program, the target plug-in sub-program set corresponding to the target project is loaded, the engine plug-in library is not directly loaded in a full amount, the waste of memory resources can be effectively avoided, the project starting flow is optimized, and the project starting efficiency is improved.
Description
Technical Field
The embodiment of the invention relates to the technical field of computer application, in particular to a program set loading method, a program set loading system, electronic equipment and a storage medium.
Background
During the project operation, the implementation of each function often depends on the subroutine set corresponding to the function in the project related program set. In one item, various functions are often provided, which requires loading a subroutine set corresponding to the various functions.
Currently, the related art processes a project by loading all sub-program sets in a program set related to the project and then running the project when the project is started. However, such full loading has the disadvantage that the number of sub-program sets in the program set related to the project is often large, and functions that may be applied by different users are not the same, so that the loaded sub-program sets may not be all used, which may cause waste of memory resources of the user terminal and affect user experience.
Disclosure of Invention
The embodiment of the invention provides a program set loading method, a program set loading system, electronic equipment and a storage medium, which are used for realizing dynamic loading and personalized loading of a project subprogram set.
In a first aspect, an embodiment of the present invention provides a program set loading method, including:
the method comprises the steps that a client loads a native code library of a target item in the starting process of the target item;
When the loading of the native code library of the target item is completed, the client loads a pre-built program loading hook file;
the client loads a target plug-in sub-program set corresponding to the target item in an engine plug-in library based on the program loading hook file;
the client initiates the target item based on the target plug-in sub-program set.
In a second aspect, an embodiment of the present invention further provides a program set loading system, which is characterized by including a client, where the client includes:
the system comprises a native code library loading module, a target project loading module and a target project loading module, wherein the native code library loading module is used for loading a native code library of the target project in the starting process of the target project;
the hook file loading module is used for loading a pre-built program loading hook file when the loading of the original code library of the target item is completed;
the subprogram set loading module is used for loading a target plug-in subprogram set corresponding to the target item in an engine plug-in library based on the program loading hook file;
the target item starting module: for launching the target item based on the target plug-in subroutine set.
In a third aspect, an embodiment of the present invention further provides an electronic device, including:
One or more processors;
storage means for storing one or more programs,
the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the program set loading method provided by any embodiment of the present invention.
In a fourth aspect, an embodiment of the present invention further provides a computer readable storage medium, on which a computer program is stored, where the computer program is executed by a processor to implement the program set loading method provided in any embodiment of the present invention.
According to the technical scheme, the program loading hook file which is built in advance is loaded in the starting process of the target item, the subprogram set in the engine plug-in library is loaded based on the program loading hook file, and the engine plug-in library is not directly loaded in full quantity, but the target plug-in subprogram set corresponding to the starting target item is loaded. Furthermore, the operation of starting the target item is continuously executed based on the target plug-in subprogram set, so that the problem of memory resource waste caused by full loading of the subprogram set in the prior art is solved, the technical effects of saving memory resources, optimizing the item starting flow and improving the item starting efficiency are realized.
Drawings
In order to more clearly illustrate the technical solution of the exemplary embodiments of the present invention, a brief description is given below of the drawings required for describing the embodiments. It is obvious that the drawings presented are only drawings of some of the embodiments of the invention to be described, and not all the drawings, and that other drawings can be made according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a flowchart of a procedure set loading method according to an embodiment of the present invention;
FIG. 2 is a flowchart of a procedure set loading method according to a second embodiment of the present invention;
fig. 3 is a flow chart of a procedure set loading method in an application scenario according to a third embodiment of the present invention;
fig. 4 is a schematic structural diagram of a client of a program set loading system according to a fourth embodiment of the present invention;
fig. 5 is a schematic structural diagram of an electronic device according to a fifth embodiment of the present invention.
Detailed Description
The invention is described in further detail below with reference to the drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the invention and are not limiting thereof. It should be further noted that, for convenience of description, only some, but not all of the structures related to the present invention are shown in the drawings.
It should be further noted that, for convenience of description, only some, but not all of the matters related to the present invention are shown in the accompanying drawings. Before discussing exemplary embodiments in more detail, it should be mentioned that some exemplary embodiments are described as processes or methods depicted as flowcharts. Although a flowchart depicts operations (or steps) as a sequential process, many of the operations can be performed in parallel, concurrently, or at the same time. Furthermore, the order of the operations may be rearranged. The process may be terminated when its operations are completed, but may have additional steps not included in the figures. The processes may correspond to methods, functions, procedures, subroutines, and the like.
In embodiments of the present invention, a project may be understood as a variety of software projects developed by a developer. The target item may be understood as the item to which the current start-up procedure corresponds. In order to facilitate understanding, before the specific technical scheme of the embodiment of the invention is introduced, a target item is taken as a game item as an example, and an item starting process is introduced. Specifically, the starting process of the target item may include the steps of: 1. initializing a project running environment; 2. loading a full program set required by a target item; 3. loading a shader required for the target item; 4. loading a numerical value file of a target item; 5. entering a login flow of a target item; 4. and running the game and entering a game interface. Wherein the full program set required by the target item comprises: the system comprises an engine native code library corresponding to a target project, an engine plug-in layer program set corresponding to the engine native code library, a project engineering program set of the target project and a third party library program set corresponding to the project engineering program set.
Wherein the project program set may contain all program code of the project; the whole program code of game engineering can be dll file code of Project series. The third party library program set may be a third party software development kit or a third party plug-in library program set, or the like.
Example 1
Fig. 1 is a flow chart of a procedure set loading method according to an embodiment of the present invention, where the embodiment is applicable to a case of loading a procedure set during a process of starting a target item, the method may be performed by a procedure set loading device, and the device may be implemented by software and/or hardware, and may be configured in a terminal and/or a server to implement the procedure set loading method according to the embodiment of the present invention.
As shown in fig. 1, the method of this embodiment specifically includes the following steps:
s110, loading a native code library of a target item by the client in the starting process of the target item.
Wherein a client may be understood as a program providing a user with an interactive service with a target item. In particular, the client may be understood as an application installed on a target item of the user terminal. Alternatively, when the target item is a game item, the client may be a game client.
As previously described, the target item may be the item that needs to be activated at the current time. Alternatively, the target item may be an application program installed in the intelligent terminal, where the intelligent terminal may be a mobile phone terminal, a PC terminal, or the like.
The native code library of the target item can be understood as a basic code file supporting the starting of the target item. The language in which the native code library is written may be the c# language. Alternatively, the native code library may be a UnityEngine. Dll library, or the like.
Specifically, when the client receives a start instruction for starting the target item by the user, the file position of the native code library of the target item can be determined, and then the native code library can be loaded into the memory according to the file position of the native code library of the target item.
And S120, when the original code library of the target item is loaded, the client loads a pre-built program loading hook file.
Wherein the program load hook file may be a file for selecting a desired program set to load. In particular, the program load hook file may contain instructions for the loading of the subroutine set. The program load hook file may be a. Dll file or a. Lab file, etc.
For example, the program loading hook file may be an enginepreentry hook file, and the dll method may be generated based on the c# of the target project engine, so as to construct an engineering enginepreentry hook in advance, thereby generating an enginepreentry hook file, which is used as the program loading hook file.
In embodiments of the present invention, a program load hook file may be pre-built based on a native code library. By building a program load hook file with code of a native code library, it is intended to reduce the time and effort expended by a developer in building a program load hook file.
Specifically, when the completion of the loading of the native code library of the target item is detected, the program set loading hook file for loading the subroutine set, which is constructed in advance, may be loaded into the memory.
S130, the client loads a target plug-in sub-program set corresponding to the target item in an engine plug-in library based on the program loading hook file.
The engine plug-in library can be understood as a program written by an application program interface conforming to a certain specification. Alternatively, an engine plug-in library may be understood as a repository storing various plug-ins for supporting engine start-up. The engine plug-in layer program set of the target item may contain engine plug-in layer code or program code that invokes native code. Such as dll files containing package and plug in families.
The target plug-in sub-program set may be understood as a plug-in program required when starting the target item. In the embodiment of the invention, the specific sub-program sets in the engine plug-in library are not limited to the target plug-in sub-program sets, and can be determined according to the starting requirement of the target item.
Because the engine plug-in library is very extensive in terms of users or applicable items, the engine plug-in library often contains a large number of plug-in sub-program sets. However, the plug-in sub-program sets required for different items at start-up are not identical, and in particular only a part of the plug-in sub-program sets are often required during start-up. The related art is often full load when loading subroutines in the engine plug-in library. In the embodiment of the invention, the method can be specifically based on program loading hook files, and can determine the target plug-in sub-program set corresponding to the target item, so that only the target plug-in sub-program set is loaded, and the full load is not performed, thereby realizing the dynamic loading of the sub-program set in the engine plug-in library and further achieving the purpose of saving the starting memory.
The method for determining the target plug-in sub-program set corresponding to the target item based on the program loading hook file may be various, for example, the method may be that the program loading hook file is called, and the target plug-in sub-program set corresponding to the target item is determined according to a preset identification rule. For example, the preset recognition rule may be a preset program set acquisition path, or a preset program set key character, or the like. The specific recognition rule may be set according to actual requirements, and is not particularly limited herein.
And S140, the client starts the target item based on the target plug-in sub-program set.
Specifically, when the native code library of the target item and the subroutine set of the target plug-in are loaded, the client may start the target item based on the loaded subroutine set.
As previously described, the project program set of the target project and the third party library corresponding to the project program set may continue to be loaded. The third party library may be a third party software development kit or a third party plug-in library program set, etc.
According to the technical scheme, the program loading hook file which is built in advance is loaded in the starting process of the target item, and the aim of loading the target plug-in sub-program set corresponding to the starting target item is fulfilled on the basis of loading and deleting the sub-program set in the engine plug-in library by the program loading hook file. Furthermore, the operation of starting the target item is continuously executed based on the target plug-in subprogram set, so that the problem of memory resource waste caused by full loading of the subprogram set in the prior art is solved, the item starting flow is optimized, and the technical effect of improving the item starting efficiency is achieved.
Example two
Fig. 2 is a flow chart of a procedure set loading method according to a second embodiment of the present invention, and on the basis of the above technical solution, the technical solution is further refined in this embodiment. The embodiment of the present invention further includes, optionally, after the loading of the target plug-in subroutine set, on the basis of any optional technical solution in the embodiment of the present invention: the client loads a project sub program set in a project engineering program set based on the program loading hook file; the client initiates the target item based on the target plug-in sub-program set, including: the client initiates the target project based on the target plug-in set and the project promoter set.
On the basis of any optional technical scheme of the invention, optionally, after the client starts the target item based on the target plug-in sub-program set, the method further comprises: the client displays a login interface of the target item, receives login information input by a target user on the login interface, and operates the target item based on the login information.
Wherein, the technical terms identical to or corresponding to the above embodiments are not repeated herein. As shown in fig. 2, the method of this embodiment specifically includes the following steps:
S210, loading a native code library of a target item by the client in the starting process of the target item.
S220, when the loading of the native code library of the target item is completed, the client loads a pre-built program loading hook file.
And S230, the client loads a target plug-in sub-program set corresponding to the target item in an engine plug-in library based on the program loading hook file.
S240, the client loads the project sub program set in the project engineering program set based on the program loading hook file.
The project program set can be understood as all source program code files to be loaded for developing the project based on the target project. Taking a target project as an example of a game project, a project program set may be understood as the entire program code of the game project. In particular, the entire program code of the game Project may be dll file code of the Project series. A project start subroutine set may be understood as a set of subroutines in the project engineering set required for starting the target project.
Wherein the project promoter program set comprises a basic subroutine set for starting the target project, or comprises a common subroutine set and a basic subroutine set for starting the target project. The common subprogram set comprises subprograms of which the calling frequency reaches a preset frequency threshold value and/or the number of terminals calling the project engineering subprogram set reaches a preset number threshold value.
The basic subroutine set can be understood as various code files for basic functions of the project when the target project is started.
The calling frequency of the project engineering subroutine set may be the calling frequency of the project engineering subroutine set called by the target terminal currently running the target project, or may be the calling frequency of the project engineering subroutine set called by two or more target terminals. The specific application of which terminals can be used to set the calling frequency of the project engineering subroutine set according to actual requirements is not specifically limited herein. For example, the frequency sum or the frequency average of the call frequencies of all the terminals in the same area as the target terminal to call the project engineering subroutine set may be used. It will be appreciated that the frequency of invocation of a project sub-program set refers to the number of times the project sub-program set is invoked per unit time. The preset frequency threshold may be preset according to actual requirements, and specific values thereof are not limited herein.
The number of terminals that call the project engineering subroutine set may be the number of terminals that call the project engineering subroutine set in all terminals that have operated the target project, or the number of terminals that call the project engineering subroutine set in terminals that belong to the same area as the target terminal that has operated the target project. Optionally, counting the number of terminals calling the project engineering subroutine set in a preset time period. For example, within a period of time closest to the current time, for example, within 1 month closest to the current time. Similarly, the preset number threshold may be preset according to actual requirements. For example, the number of terminals may be determined statistically, and specific values thereof are not limited herein.
Specifically, taking a game item as an example, when the server detects that a game item is started, a subroutine set corresponding to a battle scene in the game item is frequently called, and then the program loading hook file preferentially loads the subroutine set of the boss battle and the pvc.
Optionally, before the client loads the target plug-in sub-program set corresponding to the target item in the engine plug-in library based on the program loading hook file, the method further comprises: the client stores an item start subroutine set in a first storage space of a target terminal for running the target item; accordingly, the client loads a project sub-program set in a project engineering program set based on the program loading hook file, and the method comprises the following steps: the client loads a project sub-program set in a project engineering program set from the first storage space based on the program loading hook file.
It should be noted that, the project engineering program set includes, but is not limited to, a project sub-program set, and in order to facilitate loading of the project sub-program set, the client may store the project sub-program set in the first storage space of the target terminal running the target project in advance. This has the advantage that the client can perform project starting by only loading the project sub-program sets in the project program set in full from the first storage space based on the program loading hook file, and the loading accuracy and loading efficiency of the project sub-program sets are higher than the previous method that all sub-program sets in the project program set are stored together.
Specifically, after the target plug-in sub-program set is detected to be loaded, the project engineering program set can be processed through a program loading hook file, and the project starting sub-program set for starting the target project is selected to be loaded, so that the purpose of saving a loading memory is achieved.
S250, the client starts the target item based on the target plug-in subprogram set and the item promoter subprogram set.
As described above, in the starting process of the target project, a plurality of program sets are loaded, and compared with the full loading of the engine plug-in library and the project engineering program set, only the target plug-in sub-program set and the project promoter sub-program set are loaded, so that the loading memory can be saved and the user experience can be improved under the condition that the smooth starting of the project is ensured.
S260, the client displays a login interface of the target item, receives login information input by a target user on the login interface, and operates the target item based on the login information.
Specifically, when the target item is operated, the login interface is entered after the start-up process. The login interface may include a login display screen and an interface component for inputting login information, such as a login frame. The target user may enter login information on a login interface of the target item. After receiving login information input by a target user on a login interface, the client can operate a target item according to the login information and display item information corresponding to the login information. Typically, the login information may be an account number and a password of the target user.
In consideration of the fact that individual behavior differences exist among different users in the running process of the target items, the requirements of the subroutine sets of the target items required by the users are different. Optionally, the running the target item based on the login information specifically includes: the client sends the login information and the current behavior data of the target user to an edge server based on the program loading hook file, so that the edge server determines information to be loaded of a subprogram set to be loaded corresponding to the target user based on the login information and the current behavior data; the client receives information to be loaded of the subprogram set to be loaded fed back by the edge server, and loads the subprogram set to be loaded based on the information to be loaded; and the client runs the target item based on the subprogram set to be loaded.
The current behavior data may be understood as behavior data generated when the user runs the target item at the current moment. Illustratively, the current behavior data may be at least one of identity data, level data, project progress data, project manipulation data, project branch data, and the like of the target user.
An edge server is understood to be a front-end server that can interact with clients to collect and store behavior data of users running the target item and can analyze it. Specifically, the client sends login information and current behavior data of a user to the edge server, the edge server performs a series of operation analysis to obtain data possibly interested by a target user in the follow-up process, so that the program loading hook file determines information to be loaded of a subprogram set to be loaded of the target user according to measurement and calculation of the edge server, and sends the information to the client, so that the client loads the subprogram set to be loaded according to the received information to be loaded, and continuously operates a target item according to the subprogram set to be loaded.
Further, the determining, by the edge server, information to be loaded of a subroutine set to be loaded corresponding to the target user based on the login information and the current behavior data may specifically include: the edge server obtains first historical behavior data of the target user based on the login information; if the first historical behavior data is acquired, determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the historical behavior data; and if the edge server does not acquire the first historical behavior data, determining a reference user based on the login information, acquiring second historical behavior data of the reference user, and determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the second historical behavior data.
The method has the advantages that the method can realize selective loading of the sub program set in the running of the target item, and memory resources occupied by the game in running are saved.
The first historical behavior data may be understood as various behavior data about the target item before the target user runs the target item.
Wherein a reference user may be understood as other users running the same target item as the target user. The second historical behavior data can be understood as the historical behavior information of other users in the operation of the target item.
Specifically, when the edge server receives login information of the target user, the behavior data of the target user before the login information is called, the subsequent behavior data of the target user when the target user runs the target project is obtained through operation analysis, and the program loading hook file can load a corresponding subprogram set according to operation of the edge server, so that better user experience is brought to the user.
Optionally, if the target user runs the target item for the first time, the edge server may call various behavior data of other users about the target item, and perform operation analysis on the behavior data to obtain common behavior data of other users about the target item, where the client may selectively load a corresponding sub-program set to run the target item based on a result of the operation of the program loading hook file according to the edge server.
For example, determining the information to be loaded of the subroutine set to be loaded corresponding to the target user based on the current behavior data and the second historical behavior data may include: and determining reference behavior data corresponding to the current behavior data in second historical behavior data, and further determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the reference behavior data. Further, determining the reference behavior data corresponding to the current behavior data in the second historical behavior data may be to use the historical behavior data, of which the data similarity with the current behavior data exceeds a preset similarity threshold, in the second historical behavior data as the reference behavior data corresponding to the current behavior data. The data similarity can be determined by the ratio of the number of types of behavior data belonging to the same type to the number of types of behavior data belonging to different types in each type of behavior data divided in advance. Or whether the information to be compared preset in the comparison behavior data is consistent or not, and the like.
According to the technical scheme, the pre-built program loading hook file is loaded in the starting process of the target project, the target plug-in sub-program set in the engine plug-in library can be loaded based on the program loading hook file, the project sub-program set in the project engineering program set can be loaded based on the program loading hook file, the project engineering program set can be selectively loaded, and the purpose of saving more loaded memory in the starting process of the target project is achieved. Furthermore, in the operation process of the target item, based on the operation of the edge server on the login information and the behavior data of the target item, the program is used for loading the hook file selectively to load the subprogram set, so that the loading memory in the operation stage is saved, and the technical effects of optimizing the item starting flow and improving the item starting efficiency are further realized.
Example III
In order to make the technical solution of the embodiments of the present invention further clear to those skilled in the art, a specific application scenario example is given below by taking a target item as a game and a target terminal for starting the game as a client installed on a mobile phone.
Fig. 3 is a flow chart of a procedure set loading method in an application scenario according to an embodiment of the present invention; as shown in fig. 3, the target item is a mobile game application.
The method of the embodiment of the invention can comprise the following steps:
before the mobile phone client starts the game, the program is pre-built to load the hook file. Specifically, a dll method is generated by using the c# of the original code library, an engineering EnginePreEntry hook for loading a hook file by a program is constructed in advance, and a file EnginePreEntry hook. Dll in a dynamic link database format is generated. And implements a program set manager AssemblyMgr in EnginePreEntry hook for loading load of the subroutine set.
The method comprises the steps that a mobile phone client loads a native code library of an engine in the starting process of a game;
when the loading of the native code library of the engine is completed, loading an EnginePreEntry hook; then, a common sub-program set is obtained by utilizing forward extension operation of an edge server, and a target plug-in sub-program set corresponding to the target item in an engine plug-in library is loaded based on an EnginePreEntry hook, wherein the target plug-in sub-program set is generally an engine plug-in sub-program set commonly used in the engine plug-in library, such as a timeline plug-in sub-program set, and a project start sub-program set in a project engineering program set, such as a basic sub-program set and a common sub-program set for starting the target item, for example, a program set of a main flow in the project engineering program set (such as a program set marked with key marks such as main or common), a common fight program set and/or a dll file of a worldwide exploration program set;
Then, entering a login interface, inputting login information by a user, and running a game by the client.
At this time, during the game running process, the edge server is utilized to collect the current behavior data and login information of the user, the subsequent behavior data of the player is obtained through calculating various data, the subprogram set to be loaded is further determined, the information to be loaded of the subprogram set to be loaded is transmitted to the client, and the client loads the subprogram set to be loaded according to the information to be loaded based on the EnginePreEntry file, so that the subprogram set is selectively loaded, and memory is saved. Such as a player fighting, then the program sets of the boss fight and pvc are loaded later on preferentially; if the player is social, the collection of programs that load the home system is given priority.
According to the technical scheme, the purpose of saving the loading memory in the starting process of the target project is achieved by loading the pre-built program loading hook file in the starting process of the target project, loading the target plug-in sub-program set in the engine plug-in library based on the program loading hook file and loading the project sub-program set in the project engineering program set. Furthermore, based on the operation stage of the target item, the program set is selectively loaded through the operation of the edge server, so that the memory occupied by the game operation is further saved, and the user experience is greatly improved.
Example IV
Fig. 4 is a schematic structural diagram of a program set loading system according to a third embodiment of the present invention, where the program set loading system according to the present embodiment includes a client, and the client includes: a native code library loading module 410, a hook file loading module 420, a subroutine set loading module 430, and a target item launching module 440.
The native code library loading module 410 is configured to load a native code library of a target item during a starting process of the target item; a hook file loading module 420, configured to load a pre-built program loading hook file when loading of the native code library of the target item is completed; a plug-in sub-program set loading module 430, configured to load, based on the program loading hook file, a target plug-in sub-program set corresponding to the target item in an engine plug-in library; an item launch module 440 for launching the target item based on the target plug-in subroutine set.
According to the technical scheme, the program loading hook file which is built in advance is loaded in the starting process of the target item, and the aim of loading the target plug-in sub-program set corresponding to the starting target item is fulfilled on the basis of loading and deleting the sub-program set in the engine plug-in library by the program loading hook file. Furthermore, the operation of starting the target item is continuously executed based on the target plug-in subprogram set, so that the problem of memory resource waste caused by full loading of the subprogram set in the prior art is solved, the item starting flow is optimized, and the technical effect of improving the item starting efficiency is achieved.
Optionally, the client further includes:
the project sub program set loading module is used for loading the project sub program set in the project engineering program set based on the program loading hook file after the target plug-in sub program set is loaded;
the project starting module 440 is further configured to start the target project based on the target plug-in program set and the project start sub-program set.
Optionally, the project start subprogram set loading module is further configured to start a basic subprogram set of the target project, or a common subprogram set and a basic subprogram set for starting the target project.
Optionally, the client further includes:
the project start sub program set storage module is used for storing the project start sub program set in a first storage space of a target terminal for running the target project; correspondingly, the project sub program set loading module is further used for loading the project sub program set in the project engineering program set from the first storage space based on the program loading hook file.
Optionally, the client further includes:
the login information receiving module is used for displaying a login interface of the target item, receiving login information input by a target user on the login interface, and operating the target item based on the login information.
Optionally, the login information receiving module further comprises an information sending unit and a subroutine set loading unit.
The information sending unit is used for sending the login information and the current behavior data of the target user to an edge server based on the program loading hook file so that the edge server can determine information to be loaded of a subprogram set to be loaded corresponding to the target user based on the login information and the current behavior data; and the subprogram set loading unit is used for receiving the information to be loaded of the subprogram set to be loaded fed back by the edge server and loading the subprogram set to be loaded based on the information to be loaded.
Optionally, the system further comprises an edge server, wherein the edge server comprises an information determining module to be loaded; the information to be loaded determining module is used for acquiring first historical behavior data of the target user based on the login information; if the first historical behavior data is acquired, determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the historical behavior data; and if the first historical behavior data is not acquired, determining a reference user based on the login information, acquiring second historical behavior data of the reference user, and determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the second historical behavior data.
The program set loading system can execute the program set loading method provided by any embodiment of the invention, and has the corresponding functional modules and beneficial effects of executing the program set loading method.
It should be noted that, each unit and module included in the program set loading system are only divided according to the functional logic, but not limited to the above division, so long as the corresponding functions can be implemented; in addition, the specific names of the functional units are also only for distinguishing from each other, and are not used to limit the protection scope of the embodiments of the present invention.
Example five
Fig. 5 is a schematic structural diagram of an electronic device according to a fifth embodiment of the present invention. Fig. 5 shows a block diagram of an exemplary electronic device 50 suitable for use in implementing the embodiments of the present invention. The electronic device 50 shown in fig. 5 is merely an example and should not be construed as limiting the functionality and scope of use of embodiments of the present invention.
As shown in fig. 5, the electronic device 50 is embodied in the form of a general purpose computing device. Components of electronic device 50 may include, but are not limited to: one or more processors or processing units 501, a system memory 502, and a bus 503 that connects the various system components (including the system memory 502 and processing units 501).
Bus 503 represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processor, or a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, micro channel architecture (MAC) bus, enhanced ISA bus, video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
Electronic device 50 typically includes a variety of computer system readable media. Such media can be any available media that is accessible by electronic device 50 and includes both volatile and nonvolatile media, removable and non-removable media.
The system memory 502 may include computer system readable media in the form of volatile memory, such as Random Access Memory (RAM) 504 and/or cache memory 505. Electronic device 50 may further include other removable/non-removable, volatile/nonvolatile computer system storage media. By way of example only, storage system 506 may be used to read from or write to non-removable, nonvolatile magnetic media (not shown in FIG. 5, commonly referred to as a "hard disk drive"). Although not shown in fig. 5, a magnetic disk drive for reading from and writing to a removable non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive for reading from or writing to a removable non-volatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In such cases, each drive may be coupled to bus 503 through one or more data medium interfaces. Memory 502 may include at least one program product having a set (e.g., at least one) of program modules configured to carry out the functions of embodiments of the invention.
A program/utility 508 having a set (at least one) of program modules 507 may be stored, for example, in memory 502, such program modules 507 including, but not limited to, an operating system, one or more application programs, other program modules, and program data, each or some combination of which may include an implementation of a network environment. Program modules 507 typically perform the functions and/or methods of the described embodiments of the invention.
The electronic device 50 may also communicate with one or more external devices 509 (e.g., keyboard, pointing device, display 510, etc.), one or more devices that enable a user to interact with the electronic device 50, and/or any device (e.g., network card, modem, etc.) that enables the electronic device 50 to communicate with one or more other computing devices. Such communication may occur through an input/output (I/O) interface 511. Also, the electronic device 50 may communicate with one or more networks such as a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network, such as the Internet, through a network adapter 512. As shown, the network adapter 512 communicates with other modules of the electronic device 50 over the bus 503. It should be appreciated that although not shown in fig. 5, other hardware and/or software modules may be used in connection with electronic device 50, including, but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data backup storage systems, and the like.
The processing unit 501 executes various functional applications and data processing by running programs stored in the system memory 502, for example, implements the program set loading method provided by the embodiment of the present invention.
Example six
A sixth embodiment of the present invention also provides a storage medium containing computer-executable instructions, which when executed by a computer processor, are for performing a program set loading method, the method comprising:
the method comprises the steps that a client loads a native code library of a target item in the starting process of the target item;
when the loading of the native code library of the target item is completed, the client loads a pre-built program loading hook file;
the client loads a target plug-in sub-program set corresponding to the target item in an engine plug-in library based on the program loading hook file;
the client initiates the target item based on the target plug-in sub-program set.
The computer storage media of embodiments of the invention may take the form of any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. The computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a combination of any of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination of the foregoing. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for embodiments of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, smalltalk, C ++ and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider).
Note that the above is only a preferred embodiment of the present invention and the technical principle applied. It will be understood by those skilled in the art that the present invention is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the invention. Therefore, while the invention has been described in connection with the above embodiments, the invention is not limited to the embodiments, but may be embodied in many other equivalent forms without departing from the spirit or scope of the invention, which is set forth in the following claims.
Claims (9)
1. A program set loading method, comprising:
the method comprises the steps that a client loads a native code library of a target item in the starting process of the target item;
when the loading of the native code library of the target item is completed, the client loads a pre-built program loading hook file;
the client loads a target plug-in sub-program set corresponding to the target item in an engine plug-in library based on the program loading hook file;
the client starts the target item based on the target plug-in sub-program set;
Receiving login information input by a target user on a login interface of the client, and sending the login information and current behavior data of the target user to an edge server by the client;
the edge server obtains first historical behavior data of the target user based on the login information;
if the first historical behavior data is acquired, determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the historical behavior data;
and if the edge server does not acquire the first historical behavior data, determining a reference user based on the login information, acquiring second historical behavior data of the reference user, and determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the second historical behavior data.
2. The method of claim 1, further comprising, after said loading said target plug-in sub-program set:
the client loads a project sub program set in a project engineering program set based on the program loading hook file;
The client initiates the target item based on the target plug-in sub-program set, including:
the client initiates the target project based on the target plug-in set and the project promoter set.
3. The method according to claim 2, wherein the project start sub-program set comprises a basic sub-program set for starting the target project, or wherein the project start sub-program set comprises a common sub-program set and a basic sub-program set for starting the target project, wherein the common sub-program set comprises a sub-program set in which a calling frequency of the project program set reaches a preset frequency threshold and/or in which a number of terminals of the sub-program set reaches a preset number threshold.
4. The method as recited in claim 2, further comprising:
the client stores an item start subroutine set in a first storage space of a target terminal for running the target item;
the client loads a project sub program set in a project engineering program set based on the program loading hook file, and the method comprises the following steps:
the client loads a project sub-program set in a project engineering program set from the first storage space based on the program loading hook file.
5. The method of claim 1, further comprising, after the client initiates the target item based on the target plug-in sub-program set:
the client displays a login interface of the target item, receives login information input by a target user on the login interface, and operates the target item based on the login information.
6. The method of claim 5, wherein the client running the target item based on the login information comprises:
the client sends the login information and the current behavior data of the target user to an edge server based on the program loading hook file, so that the edge server determines information to be loaded of a subprogram set to be loaded corresponding to the target user based on the login information and the current behavior data;
the client receives information to be loaded of a subprogram set to be loaded fed back by the edge server, and loads the subprogram set to be loaded based on the information to be loaded;
the client runs the target item based on the subprogram set to be loaded.
7. A program set loading system comprising a client, wherein the client comprises:
The system comprises a native code library loading module, a target project loading module and a target project loading module, wherein the native code library loading module is used for loading a native code library of the target project in the starting process of the target project;
the hook file loading module is used for loading a pre-built program loading hook file when the loading of the original code library of the target item is completed;
the subprogram set loading module is used for loading a target plug-in subprogram set corresponding to the target item in an engine plug-in library based on the program loading hook file;
the target item starting module: for launching the target item based on the target plug-in subroutine set;
the client further comprises:
the login information receiving module is used for receiving login information input by a target user on a login interface of the client;
the login information receiving module further comprises:
the information sending unit is used for sending the login information and the current behavior data of the target user to an edge server;
the system further includes an edge server, the edge server comprising:
the information to be loaded determining module is used for acquiring first historical behavior data of the target user based on the login information; if the first historical behavior data is acquired, determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the historical behavior data; and if the first historical behavior data is not acquired, determining a reference user based on the login information, acquiring second historical behavior data of the reference user, and determining information to be loaded of a subprogram set to be loaded corresponding to the target user based on the current behavior data and the second historical behavior data.
8. An electronic device, the electronic device comprising:
one or more processors;
storage means for storing one or more programs,
when executed by the one or more processors, causes the one or more processors to implement the set loading method of any of claims 1-6.
9. A computer readable storage medium having stored thereon a computer program which when executed by a processor implements the program set loading method of any of claims 1-6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265738.7A CN113986388B (en) | 2021-10-28 | 2021-10-28 | Program set loading method, system, electronic device and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265738.7A CN113986388B (en) | 2021-10-28 | 2021-10-28 | Program set loading method, system, electronic device and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986388A CN113986388A (en) | 2022-01-28 |
CN113986388B true CN113986388B (en) | 2024-03-29 |
Family
ID=79743736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111265738.7A Active CN113986388B (en) | 2021-10-28 | 2021-10-28 | Program set loading method, system, electronic device and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986388B (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066295A (en) * | 2017-03-30 | 2017-08-18 | 青岛海信电器股份有限公司 | A kind of method and apparatus for the plug-in unit that terminal network application is loaded based on browser |
CN107870787A (en) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | Application plug loading method and system |
WO2019205191A1 (en) * | 2018-04-25 | 2019-10-31 | 网宿科技股份有限公司 | Webpage loading method, webpage loading system, and server |
CN110688168A (en) * | 2019-08-15 | 2020-01-14 | 中国平安财产保险股份有限公司 | Method, device and equipment for improving starting speed of application program and storage medium |
US10817311B1 (en) * | 2019-08-14 | 2020-10-27 | International Business Machines Corporation | Applying machine learning in storage system code load problem analysis |
CN112988284A (en) * | 2021-05-13 | 2021-06-18 | 太平金融科技服务(上海)有限公司 | Application program starting method and device, computer equipment and storage medium |
CN113220314A (en) * | 2021-05-31 | 2021-08-06 | 北京奇艺世纪科技有限公司 | APP resource loading and APK generation method, device, equipment and medium |
-
2021
- 2021-10-28 CN CN202111265738.7A patent/CN113986388B/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870787A (en) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | Application plug loading method and system |
CN107066295A (en) * | 2017-03-30 | 2017-08-18 | 青岛海信电器股份有限公司 | A kind of method and apparatus for the plug-in unit that terminal network application is loaded based on browser |
WO2019205191A1 (en) * | 2018-04-25 | 2019-10-31 | 网宿科技股份有限公司 | Webpage loading method, webpage loading system, and server |
US10817311B1 (en) * | 2019-08-14 | 2020-10-27 | International Business Machines Corporation | Applying machine learning in storage system code load problem analysis |
CN110688168A (en) * | 2019-08-15 | 2020-01-14 | 中国平安财产保险股份有限公司 | Method, device and equipment for improving starting speed of application program and storage medium |
CN112988284A (en) * | 2021-05-13 | 2021-06-18 | 太平金融科技服务(上海)有限公司 | Application program starting method and device, computer equipment and storage medium |
CN113220314A (en) * | 2021-05-31 | 2021-08-06 | 北京奇艺世纪科技有限公司 | APP resource loading and APK generation method, device, equipment and medium |
Also Published As
Publication number | Publication date |
---|---|
CN113986388A (en) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083399B (en) | Applet running method, computer device and storage medium | |
CN107526623B (en) | Data processing method and device | |
CN110955640A (en) | Cross-system data file processing method, device, server and storage medium | |
CN109218393B (en) | Push implementation method, device, equipment and computer storage medium | |
CN110688111A (en) | Configuration method, device, server and storage medium of business process | |
CN113986402A (en) | Function calling method and device, electronic equipment and storage medium | |
US10318343B2 (en) | Migration methods and apparatuses for migrating virtual machine including locally stored and shared data | |
CN111580883B (en) | Application program starting method, device, computer system and medium | |
CN113986388B (en) | Program set loading method, system, electronic device and storage medium | |
CN113590225B (en) | Mapping detection method and device, electronic equipment and storage medium | |
CN113590221B (en) | Method and device for detecting number of shader variants, electronic equipment and storage medium | |
CN112506592B (en) | Page loading time length determining method, device, equipment and storage medium | |
CN110262856B (en) | Application program data acquisition method, device, terminal and storage medium | |
CN113986385A (en) | Item font library loading method and device, electronic equipment and storage medium | |
CN113590226B (en) | Method and device for starting engine editor, electronic equipment and storage medium | |
CN113760631A (en) | Page loading duration determination method, device, equipment and storage medium | |
CN113407331A (en) | Task processing method and device and storage medium | |
CN112068814A (en) | Method, device, system and medium for generating executable file | |
CN112929675B (en) | Image resource compression method and device and electronic equipment | |
CN114911541B (en) | Processing method and device of configuration information, electronic equipment and storage medium | |
CN114035825A (en) | Method, device, equipment and medium for updating control style | |
CN113986138A (en) | Resource deleting method and device, electronic equipment and storage medium | |
CN111273956B (en) | Program module loading method, device, equipment and storage medium | |
CN113986382A (en) | Project starting method and device, electronic equipment and storage medium | |
CN113590223A (en) | Starting method and device of engine editor, electronic equipment and storage medium |
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 |