[go: up one dir, main page]

CN114840214B - Program compilation and startup method, device and storage medium - Google Patents

Program compilation and startup method, device and storage medium

Info

Publication number
CN114840214B
CN114840214B CN202210483490.XA CN202210483490A CN114840214B CN 114840214 B CN114840214 B CN 114840214B CN 202210483490 A CN202210483490 A CN 202210483490A CN 114840214 B CN114840214 B CN 114840214B
Authority
CN
China
Prior art keywords
program
file
compiled
started
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210483490.XA
Other languages
Chinese (zh)
Other versions
CN114840214A (en
Inventor
闫小永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd, Alibaba Cloud Computing Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210483490.XA priority Critical patent/CN114840214B/en
Publication of CN114840214A publication Critical patent/CN114840214A/en
Priority to PCT/CN2023/091969 priority patent/WO2023213263A1/en
Application granted granted Critical
Publication of CN114840214B publication Critical patent/CN114840214B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Abstract

The embodiment of the application provides a program compiling and starting method, equipment and a storage medium. In the embodiment of the application, aiming at the to-be-compiled program in the separation mode, in the compiling process of the to-be-compiled program, the identification of the separation component on which the to-be-compiled program depends can be written into the dynamic information segment of the image file, so that the image file of the to-be-compiled program is obtained. The separate components to be compiled program dependent have separate image files. Therefore, independent compiling of the to-be-compiled program and the dependent separation component can be realized, an independent image file is obtained, and separation of the to-be-compiled program and the dependent separation component is realized. Particularly, when the to-be-compiled program is compiled, the identification of the separation component on which the to-be-compiled program depends is written into the dynamic information segment of the image file, and the separation component is not required to be compiled in the compiling process of the to-be-compiled program, so that the compiling data volume of the to-be-compiled program can be reduced, and the compiling efficiency of the to-be-compiled program can be improved.

Description

Program compiling and starting method, device and storage medium
Technical Field
The present application relates to the field of internet of things, and in particular, to a program compiling and starting method, device and storage medium.
Background
With the continuous development of the internet of things technology, functions on internet of things (Internet of Things, ioT) devices are more and more, so that an internet of things application system becomes more and more complex, dependent components are more and more abundant, an internet of things software package is larger and larger, and further, the compiling time of the internet of things software package is long.
Disclosure of Invention
Aspects of the present application provide a program compiling and starting method, apparatus and storage medium for improving the compiling efficiency of a program.
The embodiment of the application provides a program compiling method, which comprises the following steps:
Acquiring a configuration file of a program to be compiled;
Acquiring compiling mode information of the to-be-compiled program from the configuration file of the to-be-compiled program;
Under the condition that the compiling mode information of the to-be-compiled program is a separation mode, compiling the to-be-compiled program;
And writing the identification of the separation component on which the program to be compiled depends into the dynamic information segment of the image file in the compiling process of the program to be compiled so as to obtain the image file of the program to be compiled, wherein the separation component is provided with an independent image file.
The embodiment of the application also provides a program starting method, which comprises the following steps:
Acquiring an image file of a program to be started into a memory;
analyzing the image file of the program to be started to obtain an information segment contained in the image file of the program to be started, wherein the information segment comprises a dynamic information segment;
determining a separation component on which the program to be started depends from the dynamic information segment;
Obtaining an image file of the separation assembly to the memory;
and starting the program to be started according to the image file of the program to be started and the image file of the separation component.
The embodiment of the application also provides a computing device, which comprises a memory and a processor, wherein the memory is used for storing a computer program;
The processor is coupled to the memory for executing the computer program for performing the steps of the program compiling method and/or the program starting method described above.
Embodiments of the present application also provide a computer-readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of the program compiling method and/or the program starting method described above.
In the embodiment of the application, aiming at the to-be-compiled program in the separation mode, in the compiling process of the to-be-compiled program, the identification of the separation component on which the to-be-compiled program depends can be written into the dynamic information segment of the image file, so that the image file of the to-be-compiled program is obtained. The separate components to be compiled program dependent have separate image files. Therefore, independent compiling of the to-be-compiled program and the dependent separation component can be realized, an independent image file is obtained, and separation of the to-be-compiled program and the dependent separation component is realized. Particularly, when the to-be-compiled program is compiled, the identification of the separation component on which the to-be-compiled program depends is written into the dynamic information segment of the image file, and the separation component is not required to be compiled in the compiling process of the to-be-compiled program, so that the compiling data volume of the to-be-compiled program can be reduced, and the compiling efficiency of the to-be-compiled program can be improved. When the subsequent program to be compiled is upgraded, the program to be compiled and the components on which the program to be compiled depend can be independently upgraded without upgrading the whole file package, so that finer granularity upgrade can be realized. For example, if the object to be upgraded is a separate component on which the program to be compiled depends, the separate component can be upgraded alone, and if the object to be upgraded is another module of the program to be compiled, the other module can be upgraded alone without upgrading the separate component, thereby realizing finer granularity upgrade.
Drawings
The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this specification, illustrate embodiments of the application and together with the description serve to explain the application and do not constitute a limitation on the application. In the drawings:
FIG. 1 is a block diagram of an embedded operating system according to an embodiment of the present application;
fig. 2 is a flowchart of a program compiling method according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a dependency relationship between an application and a component according to an embodiment of the present application;
FIG. 4 is a flowchart of a program starting method according to an embodiment of the present application;
FIG. 5 is a functional schematic of a dynamic engine according to an embodiment of the present application;
fig. 6 is a schematic structural diagram of a computing device according to an embodiment of the present application.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the technical solutions of the present application will be clearly and completely described below with reference to specific embodiments of the present application and corresponding drawings. It will be apparent that the described embodiments are only some, but not all, embodiments of the application. All other embodiments, which can be made by those skilled in the art based on the embodiments of the application without making any inventive effort, are intended to be within the scope of the application.
The embedded operation system is designed facing to the specific hardware system and user requirement of the embedded system, is an important component of the embedded system and is a key for realizing the functions of the embedded system. As shown in FIG. 1, embedded operating systems may be divided into kernels, components, and application layers, among others. The kernel is used for managing processes, memory, device drivers, files, network systems and the like of the embedded system, and can provide a part of software for an application program (APP) to safely access to computer hardware, wherein the access is limited, and the kernel determines the time and duration of an application program to operate on a part of hardware.
Components refer to the underlying framework provided for applications to implement various functions. The application program can select the needed components to realize the functions of the application program. In this embodiment, the components provided by the embedded operating system include, but are not limited to, a storage component, an audio component, a network component, a communication component, an OTA upgrade component, and the like. Alternatively, the application may be configured with yaml configurations to select the desired components.
With the continuous development of the internet of things technology, functions on the internet of things (IoT) equipment are more and more, so that an internet of things application system becomes more and more complex, dependent components are more and more abundant, an internet of things software package is larger and larger, the compiling time of the internet of things software package is longer, the program burning time is increased, and the program development efficiency is affected. On the other hand, for carrying out OTA upgrading on the IoT device, the required flow is large, the upgrading time is also increased, and the OTA upgrading efficiency is affected.
Aiming at the technical problems, the embodiment of the application provides a solution, and the basic idea is that aiming at a separation mode to-be-compiled program, in the compiling process of the to-be-compiled program, the identification of a separation component on which the to-be-compiled program depends can be written into a dynamic information segment of an image file, so that the image file of the to-be-compiled program is obtained. The separate components to be compiled program dependent have separate image files. Therefore, independent compiling of the to-be-compiled program and the dependent separation component can be realized, an independent image file is obtained, and separation of the to-be-compiled program and the dependent separation component is realized. Particularly, when the to-be-compiled program is compiled, the identification of the separation component on which the to-be-compiled program depends is written into the dynamic information segment of the image file, and the separation component is not required to be compiled in the compiling process of the to-be-compiled program, so that the compiling data volume of the to-be-compiled program can be reduced, and the compiling efficiency of the to-be-compiled program can be improved. When the subsequent program to be compiled is upgraded, the program to be compiled and the components on which the program to be compiled depend can be independently upgraded without upgrading the whole file package, so that finer granularity upgrade can be realized. For example, if the object to be upgraded is a separate component on which the program to be compiled depends, the separate component can be upgraded alone, and if the object to be upgraded is another module of the program to be compiled, the other module can be upgraded alone without upgrading the separate component, thereby realizing finer granularity upgrade.
The following describes in detail the technical solutions provided by the embodiments of the present application with reference to the accompanying drawings.
It should be noted that like reference numerals refer to like objects in the following figures and embodiments, and thus once an object is defined in one figure or embodiment, no further discussion thereof is required in the subsequent figures and embodiments.
Fig. 2 is a flowchart of a program compiling method according to an embodiment of the present application. As shown in fig. 2, the program compiling method mainly includes:
201. and acquiring a configuration file of the program to be compiled.
202. And acquiring the compiling mode information of the to-be-compiled program from the configuration file of the to-be-compiled program.
203. And compiling the to-be-compiled program under the condition that the compiling mode information of the to-be-compiled program is in a separation mode.
204, Writing the identification of the separation component on which the program to be compiled depends into the dynamic information segment of the image file in the compiling process of the program to be compiled so as to obtain the image file of the program to be compiled, wherein the separation component is provided with an independent image file.
In this embodiment, the program to be compiled may be an application program to be compiled or a program of a component to be compiled. For embedded operating systems, the program to be compiled may be an embedded application or a component of an embedded operating system. In this embodiment, for the program to be compiled, a configuration file of the program to be compiled may be set. The configuration file may be yaml files. The configuration file is used for storing configuration information of a program to be compiled. In this embodiment, the compiling mode information of the program to be compiled may be configured in the configuration file.
In this embodiment, the compiling mode information of the to-be-compiled program is mainly used to reflect whether the to-be-compiled program is in a separate mode or an integrated mode. The separation mode refers to that the program to be compiled and the dependent component can be compiled independently or separately to obtain an independent image file. The integration mode refers to that the program to be compiled and the dependent components are integrated and compiled to obtain an integrated image file.
In some embodiments, the program to be compiled is an application program to be compiled. Accordingly, for the application program of the split mode, the compiling mode information of the application program may be set to the split mode in the configuration file of the application program. For example, the compiling mode information of the application may be set to "SEPARATE APP:1" in the configuration file of the application, that is, the compiling mode information item "SEPARATE APP" may be added to the application, and the "SEPARATE APP" may be set to 1 for the application in the split mode, that is, the compiling mode information of the application may be set to the split mode.
For a component, the compilation mode information of the component may be increased. For example, a type (type) item may be added to a configuration file of a component, the type being used to represent compilation mode information of the component. For example, the type may be set to "dynamic" (i.e., the compilation mode information of the architecture component is set to a split mode). The assembly is a separation assembly. Or the type may be set to "static", i.e., the compilation mode information of the architecture component is set to an integration mode. The component is an integrated component.
In the embodiment of the present application, as shown in fig. 3, an application program in a split mode may rely on a split component, or may rely on an integrated component, that is, the application program in the split mode may call a function in the split component, or may call a function in the integrated component. For components in split mode, the split components may be relied upon, or the integrated components may be relied upon, i.e., the split components may call functions of other split components and integrated components. Thus, in this embodiment, in addition to setting the configuration file of the program to be compiled, the configuration file of the component on which the program to be compiled depends may be set. For the configuration file of the component on which the compiler depends, the compiling mode information of the component can be added, and whether the component is a separate component is specified by the compiling mode information of the configuration component. The arrangement of the compiling mode information of the component can be referred to in the above-mentioned related description, and will not be repeated here.
After the configuration file of the program to be compiled and the configuration file of the component on which the program to be compiled depends, the program to be compiled may be compiled based on the configuration file of the program to be compiled and the configuration file of the component on which the program to be compiled depends. Specifically, in step 201, a configuration file of a program to be compiled may be acquired. The program to be compiled may be an application program to be compiled or a program of a component to be compiled.
Further, in step 202, compiling mode information of the to-be-compiled program may be obtained from the configuration file of the to-be-compiled program. The compiling mode information is used for indicating whether the program to be compiled is in a split mode or an integrated mode. For example, for the application program, if the "SEPARATE APP" item in the configuration file of the application program is 1, the application program is determined to be in the split mode. For another example, for a component, if the "type" item in the configuration file of the component is "dynamic", the component is determined to be in a split mode, and so on.
Further, in the case where the compiling mode information of the program to be compiled is the split mode, in step 203, the program to be compiled may be compiled separately. Since the components to be compiled are dependent on may be separate components or may be integrated components. In step 204, in the case that there is a separate component for the component that depends on the to-be-compiled program, in the process of compiling the to-be-compiled program, the identifier of the separate component that depends on the to-be-compiled program may be written into the dynamic information segment of the image file, so as to obtain the image file of the to-be-compiled program. There is a separate image file for the separate component that is to be compiled for the dependency. The dynamic information segment of the image file may be a DT-NEEDED segment, and an identifier (such as a name) of a separate component on which the to-be-compiled program depends may be written into the segment.
The image file of the separate component on which the program to be compiled depends may be obtained by compiling the separate component independently in real time during the compiling process of the program to be compiled, or may be an image file obtained by compiling the separate component in advance, etc. The image file of any separated component and the image file of the program to be compiled are two independent image files. Therefore, independent image files can be obtained by independently compiling the to-be-compiled program and the dependent separation components, and particularly when the to-be-compiled program is compiled, the identification of the to-be-compiled program dependent separation components is written into the dynamic information section of the image files, and the separation components are not required to be compiled in the compiling process of the to-be-compiled program, so that the compiling data volume of the to-be-compiled program can be reduced, and the compiling efficiency of the to-be-compiled program can be improved. When the subsequent program to be compiled is upgraded, the program to be compiled and the components on which the program to be compiled depend can be independently upgraded without upgrading the whole file package, so that finer granularity upgrade can be realized. For example, if the object to be upgraded is a separate component on which the program to be compiled depends, the separate component can be upgraded alone, and if the object to be upgraded is another module of the program to be compiled, the other module can be upgraded alone without upgrading the separate component, thereby realizing finer granularity upgrade.
Optionally, in the compiling process of the to-be-compiled program, aiming at the target component on which the to-be-compiled program depends, compiling mode information of the target component can be obtained from a configuration file of the target component, and if the compiling mode information of the target component is a separation mode, determining that the target component is a separation component.
In the compiling process of the to-be-compiled program, when compiling to the target component on which the to-be-compiled program depends, the configuration file of the target component can be obtained, the compiling mode information of the target component is obtained from the configuration file of the target component, and if the compiling mode information of the target component is a separation mode, the target component is determined to be the separation component. Further, the separate components may be compiled separately to obtain an image file of the separate components. Further, after the compiling of the separation component is completed, the compiling of the program to be compiled can be continued until the compiling of the program to be compiled is completed, and an image file of the program to be compiled is obtained.
In the embodiment of the application. The image file of the program to be compiled and the image file of the separation component are relocatable files. Accordingly, step 203 may be implemented by compiling the program to be compiled into an assembly language, further, translating the assembly language into a target machine language, writing each segment included in the target machine language into a segment position corresponding to the relocatable file, and then writing the name, the relative address, and the size of each segment included in the target machine language into a segment table header of the relocatable file, thereby obtaining the relocatable file of the program to be compiled.
In other embodiments, the image of the program to be compiled and the image of the separate component are executable files. Accordingly, step 203 may be implemented to compile the to-be-compiled program into a relocatable file, wherein, for the description of compiling the to-be-compiled program into the relocatable file, reference may be made to the relevant content of the above embodiment, which is not described herein. Further, the relocatable file may be linked to obtain pieces of information for the executable file. Further, the relocation from the relative address to the absolute address can be performed on the information segment of the executable file, so as to obtain the executable file of the program to be compiled. The information segments of the executable file include, but are not limited to, code segments, data segments, debug segments, symtab segments, etc. The code segment is used for storing instructions for storing executable files, and the data segment stores initialized global and static variables. section symtab stores function and local variable information. The debug segment is used to store a debug symbol table, and the like. The data segment may include a BSS segment. The BSS segment stores global and static variables that are not initialized or initialized to 0, etc. Of course, the information segments of the executable file may also include the dynamic information segments described above, and so on.
In the embodiment of the application, for each information segment of the executable file, some information segments are valid, and some information segments are invalid. In the embodiment of the application, the valid segment refers to an information segment which has an effect on the execution or the starting of the to-be-compiled program, and correspondingly, the invalid segment refers to an information segment which has no effect on the execution or the starting of the to-be-compiled program. For example, debug segments store debug symbol tables that are active during the debugging phase of the program to be compiled. Therefore, in the embodiment of the application, when the relative address is relocated from the relative address to the absolute address of each information segment of the to-be-compiled program, the invalid segment and the valid segment in the relocatable file can be identified according to the set invalid segment identification, and then, the relative address to the absolute address of the valid segment can be relocated according to the relative address distribution condition of the invalid segment and the valid segment in the relocatable file, so that the absolute address of the valid segment is continuous. That is, according to the relative address distribution condition of the effective segments in the relocatable file, the effective segments with continuous relative addresses or adjacent effective segments are relocated to continuous absolute addresses, and the relative addresses of the ineffective segments are located to the absolute addresses of all the effective segments, so that the memory address interval is not caused when the ineffective segments are deleted. Further, invalid segments in the relocatable file can be deleted to obtain an executable file of the program to be compiled, which is helpful for reducing the size of the executable file of the program to be compiled. Therefore, when the program to be compiled is subsequently burnt or started, the memory occupation of the executable file can be reduced.
Specifically, an identification of an invalid segment, such as a segment name of the invalid segment, or the like, may be set in the link script. Thus, when the link script links the relocatable file, the invalid segment and the valid segment in the relocatable file can be identified according to the set invalid segment identification. For embodiments for relocating invalid segments and valid segments in a relocatable file, reference is made to the above related content, and no further description is given here.
In the actual development process, in order to improve the development efficiency and reduce the development cost, some ready dependencies may be invoked when developing the program to be compiled. Because dependencies are not specifically developed for the program to be compiled, there may be some functions and modules that are not needed by the program to be compiled, which results in some functions that are not actually used in the program to be compiled or there may be multiple interfaces to the outside, not all of which are needed.
In the process of compiling a program to be compiled into a relocatable file, a section (section) is compiled as a compiling unit. In the embodiment of the application, in order to reduce the size of an executable file of a program to be compiled, when the program to be compiled is compiled, functions and data can be respectively created into independent sections (sections). Specifically, ffunction-sections and fdata-sections can be used as compiling units for compiling a program to be compiled to obtain a relocatable file, and further, when the relocatable file is linked, gc-sections can be used for linking the relocatable file by using functions and data as linking units to delete useless functions and useless data in the relocatable file to obtain an information segment of the executable file. Further, the information segment of the executable file can be relocated from a relative address to an absolute address, and the executable file of the program to be compiled is obtained. When the relocatable file is linked, useless functions and useless data in the relocatable file are deleted, so that the size of the executable file can be reduced, and further, the memory occupation of the executable file can be reduced when the executable file of a program is subsequently burnt or to be compiled.
The compiling process of the to-be-compiled program may be a program that has been updated or programmed into an internet of things (IoT) device, or may be a program that has not been installed or programmed. Whether the program to be upgraded or not installed or burnt, after the image file of the program to be compiled and the image file of the separate component on which the program to be compiled depends are obtained, the program to be compiled may be burnt into the IoT device and started or run in the IoT device. Correspondingly, the embodiment of the application also provides a program starting method.
Fig. 4 is a flowchart of a program starting method according to an embodiment of the present application. As shown in fig. 4, the program starting method may include:
401. And obtaining the mirror image file of the program to be started to the memory.
402. Analyzing the image file of the program to be started to obtain the information segment contained in the image file of the program to be started.
403. And determining a separation component on which the program to be started depends from the dynamic information segment contained in the image file of the program to be started.
404. And obtaining the mirror image file of the separation component to the memory.
405. And starting the program to be started according to the image file of the program to be started and the image file of the separation component.
The program starting method provided by the embodiment of the application can be suitable for physical network equipment or other computing equipment. In this embodiment, the image file of the program to be started may be an image file compiled by the above-mentioned program compiling method. The program to be started can be an application program or a program of a component on which the program to be started depends. When the program to be started is started, in step 401, an image file of the program to be started may be obtained into the memory. The memory refers to the memory of a device that performs the program initiation method, such as the memory of an IoT device. Further, in step 402, the image file of the program to be started may be parsed to obtain the information segment included in the image file of the program to be started. For the description of the information segment included in the image file, reference may be made to the related content of the information segment of the executable file, which is not described herein. The image file contains an information segment including a dynamic information segment for storing an identification of a separate component, such as a name of the separate component, on which the program to be started depends. Further, according to the segment names of the information segments contained in the image file of the program to be started, the dynamic information segments contained in the image file of the program to be started are identified. Such as section DT-NEEDED.
Optionally, after obtaining the information segment included in the image file of the program to be started, the memory occupied by the image file of the program to be started can be released, so that the memory occupied in the program starting process is reduced.
Further, in step 403, a separate component on which the program to be started depends may be determined from the dynamic information segment contained in the image file of the program to be started. Specifically, the identification of the separation component on which the program to be started depends can be obtained from the dynamic information segment contained in the image file of the program to be started, and the separation component on which the program to be started depends is determined according to the identification of the separation component.
Further, in step 404, the image file of the separate component may be obtained into the memory, and then, in step 405, the program to be started may be started according to the image file of the program to be started and the image file of the separate component.
In this embodiment, the image file of the program to be started and the image file of the separation component are independent image files, so that when the program to be started or the separation component is upgraded, the program to be started or the separation component can be upgraded independently without upgrading the binary package of the whole program to be started. Therefore, the transmission of data volume in the OTA upgrading process can be reduced, and the OTA upgrading efficiency can be improved.
In some embodiments, the image file of the split component is a relocatable file. The method comprises the steps of starting a program to be started, obtaining an image file of the program to be started, obtaining a relocatable file of the separating component, analyzing the relocatable file of the separating component to obtain information segments contained in the relocatable file of the separating component when the program to be started is started according to the image file of the program to be started and the image file of the separating component, linking the information segments contained in the relocatable file of the separating component to obtain information segments of an executable file of the separating component, redirecting the information segments of the executable file of the separating component to obtain an executable file of the separating component, and starting the program to be started according to the image file of the program to be started and the executable file of the separating component.
Of course, the image file of the program to be started may also be a relocatable file. Correspondingly, when the program to be started is started according to the image file of the program to be started and the executable file of the separation component, the information segments contained in the relocatable file of the program to be started can be linked to obtain the information segments of the executable file of the program to be started, then the information segments of the executable file of the program to be started are redirected to obtain the executable file of the program to be started, and then the program to be started can be started according to the executable file of the program to be started and the executable file of the separation component. Specifically, an executable file of the program to be started and an executable file of the separate component may be executed, thereby starting the program to be started.
For descriptions of the executable file and the information segment of the relocatable file, reference may be made to the relevant content of the above embodiment, and the description thereof will not be repeated here. In the embodiment of the application, for each information segment of the executable file, some information segments are valid, and some information segments are invalid. For descriptions of valid information segments and invalid information segments, reference may be made to the relevant content of the above embodiments, and the description thereof will be omitted. In the embodiment of the application, when the relative address is relocated to the absolute address of each information segment of the program to be started, the invalid segment and the valid segment in the relocatable file can be identified according to the set invalid segment identification, then, the relative address is relocated to the absolute address of the valid segment according to the relative address distribution condition of the invalid segment and the valid segment in the relocatable file, so that the absolute address of the valid segment is continuous, and furthermore, the invalid segment in the relocatable file can be deleted to obtain the executable file of the program to be started, thereby being beneficial to reducing the size of the executable file of the program to be started. In this way, memory footprint of the executable file may be reduced.
In the actual development process, in order to improve the development efficiency and reduce the development cost, some ready dependencies may be invoked when the program is to be started. Because dependencies are not specifically developed for the program to be started, there may be some functions and modules that are not needed by the program to be compiled, which results in some functions that may not be actually used in the program to be started or there may be multiple interfaces to the outside, not all of which are needed. Accordingly, in the process of compiling the program to be compiled into the relocatable file, ffunction-sections and fdata-sections can be used as compiling units respectively for functions and data, and the program to be started is compiled to obtain the relocatable file of the program to be started. Accordingly, in this embodiment, when the relocatable file of the program to be started is linked, the gc-section may be used to link the relocatable file with the function and the data as the link unit, so as to delete the useless function and the useless data in the relocatable file, and obtain the information segment of the executable file. Further, the information segment of the executable file can be relocated from a relative address to an absolute address, and the executable file of the program to be compiled is obtained. When the relocatable file is linked, useless functions and useless data in the relocatable file are deleted, so that the size of the executable file can be reduced, and the memory occupation of the executable file can be further reduced.
Of course, in some embodiments, the image of the program to be started and the image of the separate component on which it depends may also be executable files. In this case step 405 may be implemented as executing the program to be started and the executable file of the separate component on which the program to be started depends, thereby starting the program to be started.
It should be noted that, the starting process of the program to be started may be completed by a command line compiling system of the embedded operating system. The compiling system may comprise a dynamic engine (dm-engine) for command lines. As shown in FIG. 5, the loading, parsing, redirecting and executing of the program to be started (e.g., application in split mode) and the loading, parsing, redirecting and function symbol searching of the split components can be accomplished by the dynamic engine.
It should be noted that, the execution subjects of each step of the method provided in the above embodiment may be the same device, or the method may also be executed by different devices. For example, the execution body of steps 401 and 402 may be device A, and for example, the execution body of step 401 may be device A, the execution body of step 402 may be device B, and so on.
In addition, in some of the flows described in the above embodiments and the drawings, a plurality of operations appearing in a specific order are included, but it should be clearly understood that the operations may be performed out of the order in which they appear herein or performed in parallel, the sequence numbers of the operations, such as 401, 402, etc., are merely used to distinguish between the various operations, and the sequence numbers themselves do not represent any order of execution. In addition, the flows may include more or fewer operations, and the operations may be performed sequentially or in parallel.
Accordingly, embodiments of the present application also provide a computer-readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform the steps in the program compiling and/or program launch method described above.
Fig. 6 is a schematic structural diagram of a computing device according to an embodiment of the present application. As shown in fig. 6, the computing device may include a memory 60a and a processor 60b. Wherein the memory 60a is for storing a computer program.
The processor 60b is coupled to the memory 60a and is configured to execute a computer program for obtaining a configuration file of the program to be compiled, obtaining compiling mode information of the program to be compiled from the configuration file of the program to be compiled, compiling the program to be compiled if the compiling mode information of the program to be compiled is a separate mode, and writing an identifier of a separate component on which the program to be compiled depends into a dynamic information section of the image file during compiling of the program to be compiled to obtain the image file of the program to be compiled, wherein the separate component has an independent image file.
Optionally, the program to be compiled is an embedded application or a component of an embedded operating system.
Optionally, the processor 60b is further configured to obtain, for a target component on which the to-be-compiled program depends, compiling mode information of the target component from a configuration file of the target component during compiling of the to-be-compiled program, and determine that the target component is a separate component if the compiling mode information of the target component is a separate mode.
Optionally, the processor 60b is further configured to compile the split component to obtain an image file of the split component when compiling the split component.
In the embodiment of the application, the image file of the program to be compiled is a relocatable file or an executable file. Optionally, the processor 60b is specifically configured to compile the program to be compiled into a relocatable file when compiling the program to be compiled, or compile the program to be compiled into a relocatable file, link the relocatable file to obtain an information segment of the executable file, and relocate the information segment of the executable file from a relative address to an absolute address to obtain the executable file of the program to be compiled.
Further, the processor 60b is specifically configured to identify an invalid segment and an effective segment in the relocatable file according to a set invalid segment identifier when relocating the relative address to the absolute address of each information segment of the program to be compiled, relocate the relative address to the absolute address of the effective segment according to the relative address distribution condition of the invalid segment and the effective segment in the relocatable file, so that the absolute address of the effective segment is continuous, and delete the invalid segment in the relocatable file.
Optionally, the processor 60b is specifically configured to compile the program to be compiled into the relocatable file by using ffunction-sections and fdata-sections as compiling units with functions and data, respectively. Accordingly, the processor 60b is specifically configured to use gc-section to link the relocatable file by using the function and the data as the link unit, so as to delete the useless function and the useless data in the relocatable file, and obtain the information segment of the executable file.
The computing device for compiling the program to be compiled may be any device having a computing function. Such as a single server or a cloud-enabled server array, or a Virtual Machine (VM) running in a cloud-enabled server array. In addition, the computing device may also refer to other computing devices having corresponding service capabilities, such as a terminal device (running a service program) such as a computer, and the like.
The computing device provided in this embodiment may write, in the compiling process of the to-be-compiled program, the identifier of the separate component on which the to-be-compiled program depends into the dynamic information segment of the image file, so as to obtain the image file of the to-be-compiled program. Therefore, independent image files can be obtained by independently compiling the to-be-compiled program and the dependent separation components, and particularly when the to-be-compiled program is compiled, the identification of the to-be-compiled program dependent separation components is written into the dynamic information section of the image files, and the separation components are not required to be compiled in the compiling process of the to-be-compiled program, so that the compiling data volume of the to-be-compiled program can be reduced, and the compiling efficiency of the to-be-compiled program can be improved. When the subsequent program to be compiled is upgraded, the program to be compiled and the components on which the program to be compiled depend can be independently upgraded without upgrading the whole file package, so that finer granularity upgrade can be realized. For example, if the object to be upgraded is a separate component on which the program to be compiled depends, the separate component can be upgraded alone, and if the object to be upgraded is another module of the program to be compiled, the other module can be upgraded alone without upgrading the separate component, thereby realizing finer granularity upgrade.
In some embodiments of the present application, the processor 60b is further configured to obtain an image file of the program to be started from the memory 60a1 of the computing device, parse the image file of the program to be started to obtain an information segment included in the image file of the program to be started, where the information segment includes a dynamic information segment, determine a separation component on which the program to be started depends from the dynamic information segment, obtain the image file of the separation component from the memory 60a1, and then start the program to be started according to the image file of the program to be started and the image file of the separation component.
In some embodiments, the image file of the split component is a relocatable file, and the processor 60b is specifically configured to parse the relocatable file of the split component to obtain information segments contained in the relocatable file of the split component, link the information segments contained in the relocatable file of the split component to obtain information segments of the executable file of the split component, redirect the information segments of the executable file of the split component to obtain the executable file of the split component, and start the program to be started according to the image file of the program to be started and the executable file of the split component.
Optionally, the image file of the program to be started is a relocatable file. Correspondingly, the processor 60b is further configured to link information segments included in the relocatable file of the program to be started to obtain information segments of the executable file of the program to be started, redirect the information segments of the executable file of the program to be started to obtain the executable file of the program to be started, and start the program to be started according to the executable file of the program to be started and the executable file of the separation component.
In some embodiments, the relocatable file of the program to be started is compiled using ffunction-sections and fdata-sections. Accordingly, the processor 60b is specifically configured to link the relocatable file by using the gc-section with the function and the data as the link units when linking the information segment included in the relocatable file of the program to be started, so as to delete the useless function and the useless data in the relocatable file, so as to obtain the information segment of the executable file.
In some embodiments, the processor 60b is specifically configured to identify an invalid segment and a valid segment in the relocatable file according to a set invalid segment identifier when redirecting an information segment of an executable file of a program to be started, relocate a relative address to an absolute address of the valid segment according to a relative address distribution condition of the invalid segment and the valid segment in the relocatable file, so that the absolute address of the valid segment is continuous, and delete the invalid segment in the relocatable file.
The device for starting the program to be started may be any computing device, such as a device with an embedded operating system installed. For example, the computing device for starting the program to be started may be a terminal device such as an internet of things device, a computer, a mobile phone, and the like.
In some alternative embodiments, as shown in FIG. 6, the computing device may further include optional components such as a communication component 60c, a power supply component 60d, a display component 60e, and an audio component 60 f. Only a portion of the components are schematically shown in fig. 6, which does not mean that the computing device must contain all of the components shown in fig. 6, nor that the computing device can only include the components shown in fig. 6.
In an embodiment of the present application, the memory is used to store a computer program and may be configured to store various other data to support operations on the device on which it resides. Wherein the processor may execute a computer program stored in the memory to implement the corresponding control logic. The memory may be implemented by any type of volatile or nonvolatile memory device or combination thereof, such as Static Random Access Memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic or optical disk.
In an embodiment of the present application, the processor may be any hardware processing device that may execute the above-described method logic. Alternatively, the processor may be a central processing unit (Central Processing Unit, CPU), a graphics processor (Graphics Processing Unit, GPU) or a micro-control unit (Microcontroller Unit, MCU), a Field-Programmable gate array (Field-Programmable GATE ARRAY, FPGA), a Programmable array Logic device (Programmable Array Logic, PAL), a general-purpose array Logic device (GENERAL ARRAY Logic, GAL), a complex Programmable Logic device (Complex Programmable Logic Device, CPLD), or the like, or an advanced Reduced Instruction Set (RISC) processor (ADVANCED RISC MACHINES, ARM) or a System On Chip (SOC), or the like, but is not limited thereto.
In an embodiment of the application, the communication component is configured to facilitate wired or wireless communication between the device in which it is located and other devices. The device in which the communication component is located may access a wireless network based on a communication standard, such as WiFi,2G or 3G,4G,5G or a combination thereof. In one exemplary embodiment, the communication component receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, the communication component may also be implemented based on Near Field Communication (NFC) technology, radio Frequency Identification (RFID) technology, infrared data association (IrDA) technology, ultra Wideband (UWB) technology, bluetooth (BT) technology, or other technologies.
In an embodiment of the present application, the display assembly may include a Liquid Crystal Display (LCD) and a Touch Panel (TP). If the display assembly includes a touch panel, the display assembly may be implemented as a touch screen to receive input signals from a user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensor may sense not only the boundary of a touch or slide action, but also the duration and pressure associated with the touch or slide operation.
In an embodiment of the application, the power supply assembly is configured to provide power to the various components of the device in which it is located. The power components may include a power management system, one or more power sources, and other components associated with generating, managing, and distributing power for the devices in which the power components are located.
In embodiments of the application, the audio component may be configured to output and/or input audio signals. For example, the audio component includes a Microphone (MIC) configured to receive external audio signals when the device in which the audio component is located is in an operational mode, such as a call mode, a recording mode, and a speech recognition mode. The received audio signal may be further stored in a memory or transmitted via a communication component. In some embodiments, the audio assembly further comprises a speaker for outputting audio signals. For example, for a device with language interaction functionality, voice interaction with a user, etc., may be accomplished through an audio component.
It should be noted that, the descriptions of "first" and "second" herein are used to distinguish different messages, devices, modules, etc., and do not represent a sequence, and are not limited to the "first" and the "second" being different types.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
The storage medium of the computer is a readable storage medium, which may also be referred to as a readable medium. Readable storage media, including both permanent and non-permanent, removable and non-removable media, may be implemented in any method or technology for information storage. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises an element.
The foregoing is merely exemplary of the present application and is not intended to limit the present application. Various modifications and variations of the present application will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, etc. which come within the spirit and principles of the application are to be included in the scope of the claims of the present application.

Claims (14)

1. A program compiling method, comprising:
Acquiring a configuration file of a program to be compiled;
Acquiring compiling mode information of the to-be-compiled program from the configuration file of the to-be-compiled program;
Compiling the to-be-compiled program under the condition that the compiling mode information of the to-be-compiled program is a separation mode, wherein the separation mode refers to that the to-be-compiled program and the dependent components are compiled separately;
And writing the identification of the separation component on which the program to be compiled depends into the dynamic information segment of the image file in the compiling process of the program to be compiled so as to obtain the image file of the program to be compiled, wherein the separation component and the program to be compiled are respectively provided with independent image files.
2. The method as recited in claim 1, further comprising:
In the compiling process of the to-be-compiled program, aiming at a target component on which the to-be-compiled program depends, acquiring compiling mode information of the target component from a configuration file of the target component;
And if the compiling mode information of the target component is a separation mode, determining that the target component is a separation component.
3. The method as recited in claim 1, further comprising:
and compiling the separation assembly when compiling to the separation assembly to obtain an image file of the separation assembly.
4. The method of claim 1, wherein the image file of the program to be compiled is a relocatable file or an executable file, and wherein compiling the program to be compiled comprises:
Compiling the program to be compiled into a relocatable file;
Or alternatively
The method comprises the steps of compiling a program to be compiled into a relocatable file, linking the relocatable file to obtain an information segment of an executable file, and relocating the relative address to the absolute address of the information segment of the executable file to obtain the executable file of the program to be compiled.
5. The method of claim 4, wherein the repositioning of the relative address to the absolute address of each piece of information of the program to be compiled comprises:
identifying an invalid segment and an effective segment in the relocatable file according to the set invalid segment identification;
repositioning the relative address to the absolute address of the effective segment according to the relative address distribution condition of the effective segment and the ineffective segment in the relocatable file so as to ensure that the absolute address of the effective segment is continuous;
and deleting the invalid segment in the relocatable file.
6. The method of claim 4, wherein compiling the program to be compiled into a relocatable file comprises:
Using ffunction-sections and fdata-sections to compile the program to be compiled by using functions and data as compiling units respectively so as to obtain the relocatable file;
the linking the relocatable file includes:
And using the gc-section to link the relocatable file by taking the function and the data as a link unit so as to delete useless functions and useless data in the relocatable file and obtain an information segment of the executable file.
7. The method of any of claims 1-6, wherein the program to be compiled is an embedded application or a component of an embedded operating system.
8. A program starting method, characterized by comprising:
acquiring an image file of a program to be started into a memory, wherein the compiling mode of the program to be started is a separation mode;
analyzing the image file of the program to be started to obtain an information segment contained in the image file of the program to be started, wherein the information segment comprises a dynamic information segment;
Determining a separation component on which the program to be started depends from the dynamic information segment, wherein the separation component and the program to be started are respectively provided with independent image files, and the image files of the separation component and the image files of the program to be started are respectively compiled independently;
Obtaining an image file of the separation assembly to the memory;
and starting the program to be started according to the image file of the program to be started and the image file of the separation component.
9. The method of claim 8, wherein the image file of the separate component is a relocatable file, and the starting the program to be started according to the image file of the program to be started and the image file of the separate component includes:
analyzing the relocatable file of the separation assembly to obtain an information segment contained in the relocatable file of the separation assembly;
Linking information segments contained in the relocatable file of the separation component to obtain information segments of the executable file of the separation component;
redirecting the information segment of the executable file of the separation component to obtain the executable file of the separation component;
and starting the program to be started according to the image file of the program to be started and the executable file of the separation component.
10. The method of claim 9, wherein the image file of the program to be started is a relocatable file, and the starting the program to be started according to the image file of the program to be started and the executable file of the separation component includes:
Linking information segments contained in the relocatable file of the program to be started to obtain information segments of the executable file of the program to be started;
Redirecting the information segment of the executable file of the program to be started to obtain the executable file of the program to be started;
and starting the program to be started according to the executable file of the program to be started and the executable file of the separation component.
11. The method of claim 10, wherein the relocatable file of the program to be started is compiled using ffunction-sections and fdata-sections;
the linking the information segment contained in the relocatable file of the program to be started comprises the following steps:
And using the gc-section to link the relocatable file by using the function and the data as a link unit so as to delete useless functions and useless data in the relocatable file, thereby obtaining the information segment of the executable file.
12. The method of claim 10, wherein redirecting the information segment of the executable file of the program to be started comprises:
identifying an invalid segment and an effective segment in the relocatable file according to the set invalid segment identification;
repositioning the relative address to the absolute address of the effective segment according to the relative address distribution condition of the effective segment and the ineffective segment in the relocatable file so as to ensure that the absolute address of the effective segment is continuous;
and deleting the invalid segment in the relocatable file.
13. The computing device is characterized by comprising a memory and a processor, wherein the memory is used for storing a computer program;
the processor is coupled to the memory for executing the computer program for performing the steps in the method of any of claims 1-12.
14. A computer-readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform the steps in the method of any of claims 1-12.
CN202210483490.XA 2022-05-05 2022-05-05 Program compilation and startup method, device and storage medium Active CN114840214B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210483490.XA CN114840214B (en) 2022-05-05 2022-05-05 Program compilation and startup method, device and storage medium
PCT/CN2023/091969 WO2023213263A1 (en) 2022-05-05 2023-05-04 Program compiling method, program starting method, and device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210483490.XA CN114840214B (en) 2022-05-05 2022-05-05 Program compilation and startup method, device and storage medium

Publications (2)

Publication Number Publication Date
CN114840214A CN114840214A (en) 2022-08-02
CN114840214B true CN114840214B (en) 2025-09-26

Family

ID=82566909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210483490.XA Active CN114840214B (en) 2022-05-05 2022-05-05 Program compilation and startup method, device and storage medium

Country Status (2)

Country Link
CN (1) CN114840214B (en)
WO (1) WO2023213263A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840214B (en) * 2022-05-05 2025-09-26 阿里云计算有限公司 Program compilation and startup method, device and storage medium
CN119271220A (en) * 2023-07-06 2025-01-07 华为技术有限公司 Application installation package generation method, application installation method and related equipment
CN117435258B (en) * 2023-12-18 2024-03-08 美智纵横科技有限责任公司 System loading method and device, storage medium, computer program product and chip

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697131A (en) * 2009-11-04 2010-04-21 中兴通讯股份有限公司 Method and device for dynamically loading relocatable file
CN107451474A (en) * 2016-05-31 2017-12-08 百度在线网络技术(北京)有限公司 Software vulnerability restorative procedure and device for terminal
CN111399840A (en) * 2020-03-04 2020-07-10 腾讯音乐娱乐科技(深圳)有限公司 Module development method and device
CN112306540A (en) * 2020-11-05 2021-02-02 重庆科技学院 Multi-project independent compiling method, system, terminal and medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4086791B2 (en) * 2004-01-28 2008-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション Compiler program, dynamic compiler program, reproduction compiler program, reproduction compiler, compilation method, and recording medium
CN101706725B (en) * 2009-11-20 2014-03-19 中兴通讯股份有限公司 Method and system for loading and debugging relocatable program
CN103744709B (en) * 2014-01-23 2017-02-15 华为技术有限公司 patch loading method and device
US20180275976A1 (en) * 2017-03-22 2018-09-27 Qualcomm Innovation Center, Inc. Link time optimization in presence of a linker script using path based rules
CN109542443A (en) * 2017-07-27 2019-03-29 阿里巴巴集团控股有限公司 Compilation Method and device, terminal, the data processing method of application program
CN113826098A (en) * 2019-06-19 2021-12-21 华为技术有限公司 Apparatus and method for kernel runtime randomization
CN111552479A (en) * 2020-05-06 2020-08-18 湖南国科微电子股份有限公司 Mirror image file compiling method and device and electronic equipment
CN112650501B (en) * 2020-12-31 2023-07-07 重庆芯讯通无线科技有限公司 Compiling, terminal equipment and compiling linking and loading method of client application program of terminal equipment
CN114840214B (en) * 2022-05-05 2025-09-26 阿里云计算有限公司 Program compilation and startup method, device and storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697131A (en) * 2009-11-04 2010-04-21 中兴通讯股份有限公司 Method and device for dynamically loading relocatable file
CN107451474A (en) * 2016-05-31 2017-12-08 百度在线网络技术(北京)有限公司 Software vulnerability restorative procedure and device for terminal
CN111399840A (en) * 2020-03-04 2020-07-10 腾讯音乐娱乐科技(深圳)有限公司 Module development method and device
CN112306540A (en) * 2020-11-05 2021-02-02 重庆科技学院 Multi-project independent compiling method, system, terminal and medium

Also Published As

Publication number Publication date
CN114840214A (en) 2022-08-02
WO2023213263A1 (en) 2023-11-09

Similar Documents

Publication Publication Date Title
CN114840214B (en) Program compilation and startup method, device and storage medium
CN115328454B (en) Program compilation and program loading methods
US20260024160A1 (en) Optimizing compilation of shaders
CN112948026B (en) Hotspot code processing method, device, server, electronic device and storage medium
CN105975311B (en) Application starting method and device
CN103106132A (en) Kernel function calling stack analyzing and debugging method in case of Linux system breakdown
CN105138382A (en) Method and terminal for upgrading Android system
CN114996134B (en) Containerized deployment method, electronic device, and storage medium
CN112346761B (en) Front-end resource online method, device, system and storage medium
CN110502215A (en) A kind of construction method, equipment and the storage medium of micro services program
CN110399384B (en) UDF adaptation method, data processing method, equipment and storage medium
CN108647032A (en) Using loading method and device, computer installation and computer readable storage medium
CN110020370A (en) The method, apparatus of animation and the frame of animation script are realized in client application
CN107402792B (en) Application software installation package integration method, device, device and storage medium
CN112099880A (en) Scenario-driven application reduction method and system
CN116991449B (en) Method, device and storage medium for upgrading kernel subsystem thermally
CN110990001A (en) IVR process execution method and device
US20100299661A1 (en) Load-Time Code Optimization In a Computing Environment
CN116643778B (en) Application program optimization method and electronic equipment
WO2019157891A1 (en) Application installation method and application installer generating method
CN115495139A (en) Intermediate layer version management method and device and readable storage medium
CN102629259A (en) Read-only file system setting up method in embedded system, device and embedded system
CN107784204B (en) Application shelling method and device
CN113377677B (en) Unit testing method and device
CN111382076A (en) Application program testing method and device, electronic equipment and computer 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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220825

Address after: No.12 Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: Room 554, 5 / F, building 3, 969 Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province, 310023

Applicant before: Alibaba (China) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant