A data processing method, apparatus, electronic device, and storage medium

By setting up plug-ins in the compiler to generate application executable files with statistical buried points, and determining useless functions based on the call situation on the user device, the optimization problem of application executable files storage space and network traffic is solved, and the accuracy of useless functions is improved.

CN114968205BActive Publication Date: 2025-06-13BEIJING 58 INFORMATION TTECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210542026.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-18
Publication Date
2025-06-13
Estimated Expiration
2042-05-18

AI Technical Summary

Technical Problem

The prior art is difficult to effectively optimize the storage space occupied by the executable files of the application, resulting in users facing bottlenecks in storage space and network traffic when installing and running applications.

Method used

By setting up plug-ins in the compiler and setting statistical buried points in the intermediate code of the application, an executable file with statistical buried points is generated. When running the executable file on the user device, detect the function call and report the function name to the background device to determine the useless function.

Benefits of technology

It realizes determining useless functions in the application based on actual call situations, avoiding misjudging useful functions as useless, thereby improving the accuracy of useless functions and optimizing storage space and network traffic.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114968205B_ABST
    Figure CN114968205B_ABST
Patent Text Reader

Abstract

The present invention provides a data processing method, apparatus, electronic device and storage medium. This application supports collecting the function names of the functions actually called in the executable file of the application program to the background device during the process of a large number of users using the executable file of the application program. The functions actually called can be regarded as useful functions rather than useless functions. After a large number of users have used the executable file of the application program for a long time, the function names not collected to the background device can be regarded as the function names of the functions that are basically not called by a large number of users during the process of using the executable file of the application program for a long time. That is to say, they are the function names of the functions that are basically not used. Thus, the function names not collected to the background device can be regarded as the function names of useless functions. It can be seen that this application can avoid determining the useful functions in the executable file of the application program as useless functions, thereby improving the accuracy of the determined useless functions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular, to a data processing method, apparatus, electronic device, and storage medium. Background Art

[0002] The storage space occupied by the executable file of an application is an important factor affecting whether a large number of users will install the executable file of the application on their mobile phones.

[0003] The larger the storage space occupied by the executable file of the application, the more network traffic is consumed for the mobile phone to download the executable file of the application, and the larger the storage space occupied by the executable file of the application.

[0004] Thus, the storage space occupied by the executable file of the application is an important factor affecting user growth and user retention. It can be seen that optimizing the storage space occupied by the executable file of the application is a necessary task. Summary of the Invention

[0005] This application discloses a data processing method, apparatus, electronic device, and storage medium.

[0006] In a first aspect, this application discloses a data processing method applied to a background device, and the method includes:

[0007] Obtain the source code of the application;

[0008] Use a compiler to generate a first intermediate code of the application according to the source code of the application;

[0009] Use a plugin previously set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application to obtain a second intermediate code of the application;

[0010] Generate an executable file of the application according to the second intermediate code of the application; statistical breakpoints are respectively provided in the binary files of each function in the executable file of the application;

[0011] During the process of running the executable file of the application on the user device, based on the statistical code points respectively set in the binary files of each function in the executable file of the application, detect whether the binary files of their respective corresponding functions are called; in the case where the binary files of at least one function in the executable file of the application are called, report the function names of the at least one function to the background device, so that the background device can obtain the function names of each function in the source code of the application, and count the function names of at least one function reported by at least one user device, and determine the useless functions in the application according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device.

[0012] In an alternative implementation, the method further includes:

[0013] Use the plug-in previously set in the compiler to count the function names of each function in the source code of the application;

[0014] Store the function names of each function in the source code of the application and / or send the function names of each function in the source code of the application to the outside.

[0015] In a second aspect, the present application discloses a data processing method applied to a user device, and the method includes:

[0016] During the process of running the executable file of the application on the user device, based on the statistical code points respectively set in the binary files of each function in the executable file of the application, detect whether the binary files of their respective corresponding functions are called;

[0017] In the case where the binary files of at least one function in the executable file of the application are called, report the function names of the at least one function to the background device;

[0018] So that the background device can obtain the function names of each function in the source code of the application, and count the function names of at least one function reported by at least one user device, and determine the useless functions in the application according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device; the executable file of the application is generated according to the second intermediate code of the application, and the second intermediate code of the application is obtained by using the plug-in previously set in the compiler to respectively set statistical code points in each function in the first intermediate code of the application, and the first intermediate code of the application is generated by using the compiler according to the source code of the application.

[0019] In an optional implementation, reporting the function names of the at least one function to the background device includes:

[0020] For each function name among the function names of the at least one function, determine whether the function name has been reported to the background device due to the binary file of the function corresponding to the function name being called during the historical process; in the case where the function name has not been reported to the background device due to the binary file of the function corresponding to the function name being called during the historical process, store the function name in a preset log file.

[0021] Report the function names recorded in the preset log file to the background device.

[0022] In a third aspect, the present application discloses a data processing method, which is applied to a background device, and the method includes:

[0023] Obtain the function names of each function in the source code of the application program, and count the function names of at least one function reported by at least one user device.

[0024] Among them, the function names of at least one function are reported to the background device when, during the process of the user device running the executable file of the application program, the user device detects that at least one binary file of the function in the executable file of the application program is called based on the statistical buried points respectively set in the binary files of each function in the executable file of the application program; the executable file of the application program is generated according to the second intermediate code of the application program, and the second intermediate code of the application program is obtained after statistical buried points are respectively set in each function in the first intermediate code of the application program using a plugin previously set in the compiler, and the first intermediate code of the application program is generated by the compiler according to the source code of the application program.

[0025] Determine the useless functions in the application program according to the function names of each function in the source code of the application program and the counted function names of at least one function reported by at least one user device.

[0026] In an optional implementation, the function names of each function in the source code of the application program are statistically obtained in advance in the scenario of compiling the source code of the application program using a compiler with a plugin previously set in the compiler.

[0027] In an optional implementation, the method further includes:

[0028] Output the function names of the useless functions in the application program.

[0029] In an alternative implementation, the method further includes:

[0030] Obtain the source code of the application;

[0031] Delete the code of the useless functions in the application from the source code of the application according to the function names of the useless functions in the application, to obtain the remaining source code of the application.

[0032] In an alternative implementation, the method further includes:

[0033] Use a compiler to generate third intermediate code of the application according to the remaining source code of the application;

[0034] Use a plugin pre-set in the compiler to respectively set statistical breakpoints in each function in the third intermediate code of the application, to obtain fourth intermediate code of the application;

[0035] Generate an executable file of a new version of the application according to the fourth intermediate code of the application; statistical breakpoints are respectively provided in the binary files of each function in the executable file of the new version of the application.

[0036] In an alternative implementation, the step of using a compiler to generate third intermediate code of the application according to the remaining source code of the application includes:

[0037] Search for a code segment including the function name in the remaining source code of the application;

[0038] Display the code segment including the function name;

[0039] Receive a modification operation on the code segment including the function name, to obtain the modified source code of the application;

[0040] Generate third intermediate code of the application according to the modified source code of the application.

[0041] Fourthly, the present application discloses a data processing device, which is applied to a background device, and the device includes:

[0042] A first acquisition module, configured to obtain the source code of an application;

[0043] A first generation module, configured to use a compiler to generate first intermediate code of the application according to the source code of the application;

[0044] A first setting module, configured to respectively set statistical breakpoints in each function of the first intermediate code of the application by using a plugin pre-set in the compiler, so as to obtain the second intermediate code of the application;

[0045] A second generation module, configured to generate an executable file of the application according to the second intermediate code of the application; each function binary file in the executable file of the application respectively has the statistical breakpoint;

[0046] So that during the process of the user device running the executable file of the application, based on the statistical breakpoints respectively set in the binary files of each function in the executable file of the application, it is respectively detected whether the binary files of the corresponding functions are called; when at least one function binary file in the executable file of the application is called, the function name of the at least one function is reported to the background device, so that the background device can obtain the function names of each function in the source code of the application, and count the function names of at least one function reported by at least one user device, and determine the useless functions in the application according to the function names of each function in the source code of the application and the counted function names of at least one function reported by at least one user device.

[0047] In an optional implementation manner, the device further includes:

[0048] A statistics module, configured to use a plugin pre-set in the compiler to count the function names of each function in the source code of the application;

[0049] A storage module, configured to store the function names of each function in the source code of the application and / or send the function names of each function in the source code of the application to the outside.

[0050] In a fifth aspect, the present application discloses a data processing device, which is applied to a user device, and the device includes:

[0051] A detection module, configured to respectively detect whether the binary files of the corresponding functions are called based on the statistical breakpoints respectively set in the binary files of each function in the executable file of the application during the process of the user device running the executable file of the application;

[0052] A reporting module, configured to report the function name of the at least one function to the background device when at least one function binary file in the executable file of the application is called;

[0053] to enable the background device to obtain the function names of each function in the source code of the application, and to count the function names of at least one function reported by at least one user device, and to determine the useless functions in the application according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device; the executable file of the application is generated according to the second intermediate code of the application, and the second intermediate code of the application is obtained by respectively setting statistical breakpoints in each function of the first intermediate code of the application using a plugin preset in the compiler, and the first intermediate code of the application is generated by the compiler according to the source code of the application.

[0054] In an alternative implementation, the reporting module includes:

[0055] a determination unit, configured to determine, for each function name in the function names of the at least one function, whether the function name has been reported to the background device due to the binary file of the function corresponding to the function name being called in the historical process; a storage unit, configured to store the function name in a preset log file when the function name has not been reported to the background device due to the binary file of the function corresponding to the function name being called in the historical process;

[0056] a reporting unit, configured to report the function names recorded in the preset log file to the background device.

[0057] In a sixth aspect, the present application discloses a data processing device, which is applied to a background device, and the device includes:

[0058] a second obtaining module, configured to obtain the function names of each function in the source code of the application, and to count the function names of at least one function reported by at least one user device;

[0059] wherein, the function names of at least one function are reported to the background device when the user device runs the executable file of the application and the user device detects that the binary file of at least one function in the executable file of the application is called based on the statistical breakpoints respectively set in the binary files of each function in the executable file of the application; the executable file of the application is generated according to the second intermediate code of the application, and the second intermediate code of the application is obtained by respectively setting statistical breakpoints in each function of the first intermediate code of the application using a plugin preset in the compiler, and the first intermediate code of the application is generated by the compiler according to the source code of the application;

[0060] A determination module, configured to determine unused functions in the application program according to function names of respective functions in the source code of the application program and function names of at least one function reported by at least one user device.

[0061] In an optional implementation manner, function names of respective functions in the source code of the application program are statistically obtained by using a plug-in previously set in a compiler in a scenario of compiling the source code of the application program by using the compiler.

[0062] In an optional implementation manner, the apparatus further includes:

[0063] An output module, configured to output function names of unused functions in the application program.

[0064] In an optional implementation manner, the apparatus further includes:

[0065] A third acquisition module, configured to acquire the source code of the application program;

[0066] A deletion module, configured to delete codes of unused functions in the application program from the source code of the application program according to function names of unused functions in the application program, so as to obtain remaining source code of the application program.

[0067] In an optional implementation manner, the apparatus further includes:

[0068] A third generation module, configured to generate third intermediate code of the application program by using a compiler according to the remaining source code of the application program;

[0069] A second setting module, configured to respectively set statistical breakpoints in respective functions in the third intermediate code of the application program by using a plug-in previously set in the compiler, so as to obtain fourth intermediate code of the application program;

[0070] A fourth generation module, configured to generate a new version of an executable file of the application program according to the fourth intermediate code of the application program; statistical breakpoints are respectively included in binary files of respective functions in the new version of the executable file of the application program.

[0071] In an optional implementation manner, the third generation module includes:

[0072] A search unit, configured to search for a code segment including the function name in the remaining source code of the application program;

[0073] A display unit, configured to display the code segment including the function name;

[0074] A receiving unit, configured to receive a modification operation on a code segment including the function name, and obtain the modified source code of the application program;

[0075] A generating unit, configured to generate a third intermediate code of the application program according to the modified source code of the application program.

[0076] In a seventh aspect, the present application discloses an electronic device, including: a processor; a memory for storing processor-executable instructions; wherein, the processor is configured to execute the method according to any of the above aspects.

[0077] In an eighth aspect, the present application discloses a non-transitory computer-readable storage medium, when the instructions in the storage medium are executed by a processor of an electronic device, enabling the electronic device to execute the method according to any of the above aspects.

[0078] In a ninth aspect, the present application discloses a computer program product, when the instructions in the computer program product are executed by a processor of an electronic device, enabling the electronic device to execute the method according to any of the above aspects.

[0079] The technical solution provided by the present application may include the following beneficial effects:

[0080] In the present application, a background device obtains the source code of an application program, uses a compiler to generate a first intermediate code of the application program according to the source code of the application program, uses a plugin pre-set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application program, obtains a second intermediate code of the application program, generates an executable file of the application program according to the second intermediate code of the application program, and each function binary file in the executable file of the application program respectively has a statistical breakpoint. In this way, during the process of the user device running the executable file of the application program, based on the statistical breakpoints respectively set in each function binary file in the executable file of the application program, it is respectively detected whether the binary files of the respective corresponding functions are called. When at least one function binary file in the executable file of the application program is called, the function names of at least one function are reported to the background device. Then the background device obtains the function names of each function in the source code of the application program, and counts the function names of at least one function reported by at least one user device, and determines the useless functions in the application program according to the function names of each function in the source code of the application program and the counted function names of at least one function reported by at least one user device.

[0081] In this application, during the process of a large number of users using the executable file of an application, the function names of the functions actually called in the executable file of the application are collected to a background device. The functions actually called can be regarded as useful functions rather than useless functions. After a large number of users have used the executable file of the application for a long time, the function names not collected to the background device can be regarded as the function names of the functions that are basically not called by the large number of users during the long-term use of the executable file of the application, that is, the function names of the functions that are basically not used. Thus, the function names not collected to the background device can be regarded as the function names of useless functions.

[0082] It can be seen that this application determines the useful functions in the executable file of the application by collecting the function names actually called during the process of a large number of users using the executable file of the application. Furthermore, based on the useful functions in the executable file of the application and all the functions in the executable file of the application, the useless functions in the executable file of the application can be determined, avoiding misidentifying the useful functions in the executable file of the application as useless functions, thereby improving the accuracy of the determined useless functions.

[0083] In addition, this application uses a plug-in pre-set in the compiler to set statistical breakpoints in each function of the first intermediate code of the application, rather than setting statistical breakpoints in the source code of the application. The intermediate codes corresponding to the source codes of different types of computer programming languages often have unity in code logic. Thus, the solution of this application can be adapted to multiple computer programming languages, such as C language, C++ language, and Swift language, etc., with higher applicability. And this solution does not intrude on the source code of the application, avoiding increasing the cost of later maintaining the source code of the application.

[0084] Secondly, the setting of statistical breakpoints is automatically set using a plug-in pre-set in the compiler, without the need for manual setting, which plays a role of "once and for all" and can reduce labor costs. BRIEF DESCRIPTION OF THE DRAWINGS

[0085] Figure 1 is a flowchart of the steps of a data processing method of this application.

[0086] Figure 2 is a flowchart of the steps of a data processing method of this application.

[0087] Figure 3 is a flowchart of the steps of a data processing method of this application.

[0088] Figure 4 is a block diagram of the structure of a data processing device of this application.

[0089] Figure 5 It is a structural block diagram of a data processing device according to the present application.

[0090] Figure 6 It is a structural block diagram of a data processing device according to the present application.

[0091] Figure 7 It is a block diagram of an electronic device according to the present application.

[0092] Figure 8 It is a block diagram of an electronic device according to the present application. Detailed implementation manners

[0093] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, rather than all of the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0094] Currently, there are many methods to optimize the storage space occupied by the executable file of an application program, such as including picture resource deduplication, picture size compression, resource dynamic distribution, compilation and link optimization, and useless code deletion, etc.

[0095] Among them, the amount of code in the source code of the application program before compiling the executable file of the application program is an important factor affecting the storage space occupied by the executable file of the application program.

[0096] With the iteration of the business, the amount of code in the source code of the application program will be more and more. When the business goes offline, if the code of the offline business (the code of the offline business is useless code) in the source code of the application program cannot be deleted in time, it will cause the storage space occupied by the executable file of the application program obtained by compiling the source code of the application program to be larger and larger.

[0097] Therefore, timely deleting the useless code in the source code of the application program can bring considerable benefits to the optimization of the storage space occupied by the executable file of the application program.

[0098] In one way, the function names of all functions in the source code of the application program can be counted, and the function names of the functions that may be called are detected in the source code of the application program. Then, among the function names of all functions in the source code of the application program, the function names other than the function names of the functions that may have been called are determined. The functions corresponding to the determined function names are the useless functions in the source code of the application program. Then, the code of the useless functions can be deleted in the source code of the application program to obtain the remaining source code of the application program, so as to realize the optimization and simplification of the source code of the application program.

[0099] Among them, in the above method, when detecting the function names of functions that may be called in the source code of the application, it can be detected through the reflection mechanism or the runtime mechanism. For example, in the source code of the application, detect the call statements for calling functions, and in the call statements, detect whether there is a function name. If there is a function name in the call statement, use the function name existing in the call statement as the function name of the function that may be called. Or, if the function name of a certain function in the application does not exist in all call statements, it is determined that the function is not a function that may be called, that is, the function may be a useless function.

[0100] After that, the remaining source code of the application can be compiled to obtain the executable file of the application, and then the executable file of the application can be released externally so that a large number of users can install the executable file of the application on their respective terminals for use by the users.

[0101] However, after the application is released externally, a large number of users have reported that the executable file of the application crashes during operation.

[0102] The inventor analyzed the log information when the executable file of the application reported by a large number of users crashed during operation and found that: many crashes were due to "needing to call a function but unable to call the function that needs to be called", and "needing to call a function but unable to call the function that needs to be called" was because "the required call function does not exist in the executable file of the application".

[0103] The inventor analyzed the reason for "the required call function does not exist in the executable file of the application" and found that: the function that needs to be called was previously deleted from the source code of the application as a useless function.

[0104] In view of this situation, after the inventor statistically analyzed the current situation of the results of determining useless functions in the source code of a large number of applications using the above method, it was found that:

[0105] The results of determining useless functions in the source code of the application using the above method are inaccurate. For example, functions that are not useless functions in the application are determined to be useless functions, resulting in inaccurate results.

[0106] Thus, there is a requirement to improve the accuracy of the results of determining useless functions in the source code of the application.

[0107] In order to improve the accuracy of the results of determining useless functions in the source code of the application, it is possible to avoid determining functions that are not useless functions in the application as useless functions.

[0108] In order to avoid determining a function that is not a useless function in an application as a useless function, the inventor analyzed the reason for "determining a function that is not a useless function in an application as a useless function in the scenario of determining useless functions in the source code of a large number of applications in the above manner":

[0109] The inventor found that in the above manner, call statements identical to the calling function are detected in the source code of the application, and whether there is a function name is detected in the call statements. In the case where there is a function name in the call statement, the function name existing in the call statement is used as the function name of the function that may be called. Or, if the function name of a certain function in the application does not exist in all call statements, it is determined that the function is not a function that may be called, that is, the function may be a useless function.

[0110] Since the above manner may "determine a useful function (a function that may be called) in the application as a useless function", the inventor believes that the key point of the analysis of the reason for "determining a function that is not a useless function in the application as a useless function in the scenario of determining useless functions in the source code of a large number of applications in the above manner" should be the branch of "if the function name of a certain function in the application does not exist in all call statements, it is determined that the function is not a function that may be called, that is, the function may be a useless function" in the above manner.

[0111] In the branch of "if the function name of a certain function in the application does not exist in all call statements, it is determined that the function is not a function that may be called, that is, the function may be a useless function", for some functions, although there is no call statement including the function name of the function in the source code of the application, the inventor found that in fact the function needs to be called in the source code of the application.

[0112] For example, the inventor found that the function name of the function includes multiple characters. In the source code of the application, there is a call statement that does not include the function name of the function, but the call statement includes two statements. One statement includes each single character of the multiple characters (each single character is independent and does not form the function name of the function), and this one statement is used to splice the single characters into a string (the spliced string is the same as the function name of the function), and the other statement is used to call the function with the spliced string. In this way, neither of the two statements in the call statement includes the function name of the function, but in fact the function needs to be called.

[0113] Therefore, for this reason, the inventor believes that the idea of the above manner cannot avoid determining a function that is not a useless function in the application as a useless function.

[0114] Therefore, in order to avoid determining a function that is not actually a useless function in an application as a useless function, the inventor abandoned the idea of the above method and came up with a way to determine whether a function is a useless function based on whether the function is actually called during the process of users using the executable file of the application. For example, if a function is actually called, it is determined that the function is not a useless function.

[0115] Specifically, referring to Figure 1 , a flowchart of the steps of a data processing method according to the present application is shown. This method is applied to a background device, and the background device may include a background server for developing an application, etc. The method may specifically include the following steps:

[0116] In step S101, obtain the source code of the application.

[0117] The source code of the application may be written by developers, etc., and the source code of the application includes the code of multiple functions, etc.

[0118] In step S102, use a compiler to generate the first intermediate code of the application according to the source code of the application.

[0119] In the present application, during the compilation of the source code of the application, sometimes the intermediate code of the application is first obtained, and then the intermediate code is continuously processed to obtain the executable file of the application.

[0120] The present application does not limit the manner of using a compiler to generate the first intermediate code of the application according to the source code of the application.

[0121] Among them, the plug-in may be a Pass plug-in based on LLVM, etc.

[0122] In the present application, a compiler is a program that translates "one language (usually a high-level language)" into "another language (usually a low-level language)". The main workflow of the compiler is: source code → preprocessor → compiler → object code → linker → executables.

[0123] The compiler includes LLVM (Low Level Virtual Machine), etc., and can be a front-end compiler for C language / C++ language / Objective-C (an object-oriented programming language that extends C) based on LLVM. For example, the front-end Clang, etc.

[0124] The front - end Clang is a front - end compiler for C / C++ / Objective - C (an object - oriented programming language that extends C) based on LLVM (Low Level Virtual Machine).

[0125] The compiler can also include Xcode, etc. Xcode is an integrated development tool (IDE, Integrated Development Environment) running on the operating system Mac OS X and developed by Apple Inc. Xcode is the fastest way to develop macOS and iOS applications. Xcode has a unified user interface design, and coding, testing, and debugging are all completed within a simple window.

[0126] In step S103, statistical code injection points are respectively set in each function of the first intermediate code of the application using a plugin pre - set in the compiler, obtaining the second intermediate code of the application.

[0127] Among them, the statistical code injection points are pre - configured in the plugin, or the plugin is implemented with a retrieval function for obtaining statistical code injection points. In this way, the plugin can obtain the statistical code injection points based on the retrieval function (the statistical code injection points can be located in the storage space of the background device or in other devices, etc.).

[0128] In step S104, an executable file of the application is generated according to the second intermediate code of the application. The binary files of each function in the executable file of the application respectively have statistical code injection points.

[0129] In this application, the background device obtains the source code of the application program, uses a compiler to generate the first intermediate code of the application program according to the source code of the application program, uses a plug-in pre-set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application program to obtain the second intermediate code of the application program, generates an executable file of the application program according to the second intermediate code of the application program, and each function binary file in the executable file of the application program respectively has statistical breakpoints. In this way, during the process of the user device running the executable file of the application program, based on the statistical breakpoints respectively set in each function binary file in the executable file of the application program, it is respectively detected whether the binary file of the corresponding function is called. When the binary file of at least one function in the executable file of the application program is called, the function names of at least one function are reported to the background device. Then the background device obtains the function names of each function in the source code of the application program, and counts the function names of at least one function reported by at least one user device, and determines the useless functions in the application program according to the function names of each function in the source code of the application program and the function names of at least one function reported by at least one user device counted.

[0130] In this application, it is supported to collect the function names of the functions actually called in the executable file of the application program to the background device during the process of the majority of users using the executable file of the application program. The functions actually called can be regarded as useful functions rather than useless functions. After the majority of users have used the executable file of the application program for a long time, the function names not collected to the background device can be regarded as the function names of the functions that the majority of users basically will not call during the long-term use of the executable file of the application program, that is, the function names of the functions that will basically not be used. In this way, the function names not collected to the background device can be regarded as the function names of useless functions.

[0131] It can be seen that this application determines the useful functions in the executable file of the application program by collecting the function names actually called during the process of the majority of users using the executable file of the application program, and then determines the useless functions in the executable file of the application program according to the useful functions in the executable file of the application program and all the functions in the executable file of the application program, avoiding determining the useful functions in the executable file of the application program as useless functions, thereby improving the accuracy of the determined useless functions.

[0132] In addition, in this application, statistical data points are set separately in each function of the first intermediate code of the application program using a plugin pre-set in the compiler, rather than setting statistical data points in the source code of the application program. The intermediate codes corresponding to the source codes of different types of computer programming languages often have unity in code logic. Thus, the solution of this application can be adapted to multiple computer programming languages, such as C language, C++ language, and Swift language, etc., with higher applicability. Moreover, this solution does not intrude on the source code of the application program, avoiding increasing the cost of later maintaining the source code of the application program.

[0133] Secondly, setting statistical data points is automatically set using a plugin pre-set in the compiler, without the need for manual setting, which plays a role of "once and for all" and can reduce labor costs.

[0134] Among them, in order for the background device to be able to obtain the function names of each function in the source code of the application program later, in this application, in the scenario of compiling the source code of the application program using the compiler, a plugin pre-set in the compiler can be used to count the function names of each function in the source code of the application program, and store the function names of each function in the source code of the application program and / or send the function names of each function in the source code of the application program to the outside (so that the outside stores the function names of each function in the source code of the application program). Thus, later the background device can directly obtain (obtain the ones stored in the background device in advance or obtain from the outside the ones sent to the outside in advance, etc.) the function names of each function in the source code of the application program.

[0135] In this way, counting the function names of each function in the source code of the application program can be done without manual participation, thereby reducing labor costs.

[0136] Furthermore, after obtaining the executable file of the application program, the executable file of the application program can be released outward so that the general public can install the executable file of the application program on their own user devices and use the executable file of the application program on their own user devices.

[0137] User devices can include terminals such as mobile phones, tablet computers, laptop computers, and desktop computers.

[0138] During the process of the user devices of the general public running the executable file of the application program, it can detect which functions in the executable file of the application program are called, and report the function names of the called functions to the background device, so that the background device can determine the useless functions in the application program based on the function names of the called functions reported by the user devices of the general public and the function names of each function in the source code of the application program.

[0139] Specifically, refer to Figure 2, showing a flowchart of steps of a data processing method according to the present application. This method is applied to a user device, and specifically may include the following steps:

[0140] In step S201, during the process of the user device running the executable file of the application, based on the statistical breakpoints respectively set in the binary files of each function in the executable file of the application, it is respectively detected whether the binary files of their corresponding functions are called.

[0141] The executable file of the application is generated according to the second intermediate code of the application. The second intermediate code of the application is obtained by respectively setting statistical breakpoints in each function of the first intermediate code of the application using a plugin previously set in the compiler. The first intermediate code of the application is generated by the compiler according to the source code of the application.

[0142] In step S202, when the binary file of at least one function in the executable file of the application is called, the function names of at least one function are reported to the background device.

[0143] The logic of reporting data to the background device can be previously set in the source code of the application. After compiling the source code of the application to obtain the executable file of the application, the executable file of the application has the ability to report data to the background device.

[0144] In the present application, the background device obtains the source code of the application, uses the compiler to generate the first intermediate code of the application according to the source code of the application, uses a plugin previously set in the compiler to respectively set statistical breakpoints in each function of the first intermediate code of the application to obtain the second intermediate code of the application, and generates the executable file of the application according to the second intermediate code of the application. The binary files of each function in the executable file of the application respectively have statistical breakpoints. Thus, during the process of the user device running the executable file of the application, based on the statistical breakpoints respectively set in the binary files of each function in the executable file of the application, it is respectively detected whether the binary files of their corresponding functions are called. When the binary file of at least one function in the executable file of the application is called, the function names of at least one function are reported to the background device. Then the background device obtains the function names of each function in the source code of the application, and counts the function names of at least one function reported by at least one user device, and determines the useless functions in the application according to the function names of each function in the source code of the application and the counted function names of at least one function reported by at least one user device.

[0145] In the present application, during the process of a large number of users using the executable file of an application, the function names of the functions actually called in the executable file of the application are collected to a background device. The functions actually called can be regarded as useful functions rather than useless functions. After a large number of users have used the executable file of the application for a long time, the function names not collected to the background device can be regarded as the function names of the functions that are basically not called during the process of a large number of users using the executable file of the application for a long time, that is, the function names of the functions that are basically not used. Thus, the function names not collected to the background device can be regarded as the function names of useless functions.

[0146] It can be seen that the present application determines the useful functions in the executable file of the application by collecting the function names of the functions actually called during the process of a large number of users using the executable file of the application, and then determines the useless functions in the executable file of the application based on the useful functions in the executable file of the application and all the functions in the executable file of the application, avoiding determining the useful functions in the executable file of the application as useless functions, thereby improving the accuracy of the determined useless functions.

[0147] In addition, in the present application, a plug-in set in the compiler in advance is used to set statistical breakpoints in each function of the first intermediate code of the application, rather than setting statistical breakpoints in the source code of the application. The intermediate codes corresponding to the source codes of different types of computer programming languages often have unity in code logic. Thus, the solution of the present application can be adapted to a variety of computer programming languages, such as C language, C++ language, and swift language, etc., with higher applicability. And this solution does not invade the source code of the application, avoiding increasing the cost of later maintaining the source code of the application.

[0148] Secondly, setting statistical breakpoints is automatically set using a plug-in set in the compiler in advance, without the need for manual setting, which plays a role of "once and for all" and can reduce labor costs.

[0149] In an embodiment of the present application, for any user terminal and for any binary file of a function in the executable file of the application, if each time the binary file of the function in the executable file of the application installed on the user terminal is called, the function name of the function is reported to the background device once, then the background device will receive the same function name multiple times. However, in fact, no matter how many times the binary file of the function in the executable file of the application installed on the user terminal is called, it is only necessary to report the function name of the function to the background device once, otherwise it will waste the network resources between the user device and the background device.

[0150] Thus, in order to save network resources between the user device and the background device, for any one of the function names in the function names of at least one function, it is determined whether the function name has been reported to the background device due to the binary file of the function corresponding to the function name being called during the historical process. In the case where the function name has not been reported to the background device due to the binary file of the function corresponding to the function name being called during the historical process, the function name is stored in a preset log file, and then the function names recorded in the preset log file can be reported to the background device, where the function names recorded in the preset log file can be reported to the background device regularly, or, in the case where the number of function names recorded in the preset log file exceeds a preset number, the function names recorded in the preset log file are reported to the background device again.

[0151] The preset number can include 5, 10, 15, or 20, etc., and can be determined according to actual situations specifically, and this application does not limit this.

[0152] In this way, it is possible to avoid reporting the same function name to the background device multiple times, thereby saving network resources between the user device and the background device.

[0153] After that, the background device can determine the useless functions in the application program according to the function names of the functions called reported by the user devices of a large number of users and the function names of each function in the source code of the application program.

[0154] Specifically, referring to Figure 3 , a step flowchart of a data processing method of this application is shown. This method is applied to the background device, and this method can specifically include the following steps:

[0155] In step S301, obtain the function names of each function in the source code of the application program, and count the function names of at least one function reported by at least one user device.

[0156] The function names of at least one function reported by at least one user device can be the function names of all functions reported by at least one user device respectively within a period of time. The period of time can include 1 day, 2 days, 7 days, 14 days, or 30 days, etc., and can be determined according to actual situations specifically, and this application does not limit this.

[0157] Among them, the function names of at least one function are reported to the background device when, during the process of the user device running the executable file of the application program, the user device detects that at least one binary file of the function in the executable file of the application program is called based on the statistical code points respectively set in the binary files of each function in the executable file of the application program.

[0158] The executable file of the application is generated based on the second intermediate code of the application. The second intermediate code of the application is obtained by respectively setting statistical code points in each function of the first intermediate code of the application using a plugin pre-set in the compiler. The first intermediate code of the application is generated by the compiler according to the source code of the application.

[0159] Among them, the function names of each function in the source code of the application are statistically obtained using a plugin pre-set in the compiler in the scenario of compiling the source code of the application by the compiler, and stored and / or sent to the outside (so that the outside stores the function names of each function in the source code of the application). In this way, when obtaining the function names of each function in the source code of the application, the background device can directly obtain (obtain the function names of each function in the source code of the application stored in the background device in advance or obtained from the outside by obtaining those sent to the outside in advance, etc.). In this way, obtaining the function names of each function in the source code of the application can be without manual participation, thereby reducing labor costs.

[0160] In step S302, useless functions in the application are determined according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device.

[0161] Among them, the function names other than the function names of at least one function can be determined from the function names of each function in the source code of the application, and the determined function names can be used as the function names of the useless functions. In this way, the functions corresponding to the determined function names can be used as the useless functions.

[0162] In the present application, a background device obtains the source code of an application program, uses a compiler to generate first intermediate code of the application program according to the source code of the application program, uses a plugin pre-set in the compiler to respectively set statistical code points in each function in the first intermediate code of the application program to obtain second intermediate code of the application program, generates an executable file of the application program according to the second intermediate code of the application program, and statistical code points are respectively provided in the binary files of each function in the executable file of the application program. Thus, during the process of the user device running the executable file of the application program, based on the statistical code points respectively provided in the binary files of each function in the executable file of the application program, it is respectively detected whether the binary files of the respective corresponding functions are called, and in the case where the binary files of at least one function in the executable file of the application program are called, the function names of at least one function are reported to the background device. Then the background device obtains the function names of each function in the source code of the application program, and counts the function names of at least one function reported by at least one user device, and determines the useless functions in the application program according to the function names of each function in the source code of the application program and the function names of at least one function counted from the at least one user device reported.

[0163] In the present application, it is supported to collect the function names of the functions actually called in the executable file of the application program during the process of a large number of users using the executable file of the application program. The functions actually called can be regarded as useful functions rather than useless functions. After a large number of users have used the executable file of the application program for a long time, the function names not collected by the background device can be regarded as the function names of the functions that are basically not called during the process of a large number of users using the executable file of the application program for a long time, that is, the function names of the functions that are basically not used. Thus, the function names not collected by the background device can be regarded as the function names of useless functions.

[0164] It can be seen that the present application determines the useful functions in the executable file of the application program by collecting the function names actually called during the process of a large number of users using the executable file of the application program, and then determines the useless functions in the executable file of the application program according to the useful functions in the executable file of the application program and all the functions in the executable file of the application program, avoiding determining the useful functions in the executable file of the application program as useless functions, thereby improving the accuracy of the determined useless functions.

[0165] In addition, in this application, statistical code points are set separately in each function of the first intermediate code of the application using a plugin pre-set in the compiler, rather than setting statistical code points in the source code of the application. The intermediate codes corresponding to the source codes of different types of computer programming languages often have unity in code logic. Thus, the solution of this application can be adapted to multiple computer programming languages, such as C language, C++ language, and Swift language, etc., with higher applicability. Moreover, this solution does not intrude into the source code of the application, avoiding increasing the cost of later maintaining the source code of the application.

[0166] Secondly, the setting of statistical code points is automatically set using a plugin pre-set in the compiler, without the need for manual setting, which plays a role of "once and for all" and can reduce labor costs.

[0167] In another embodiment of the application, when the useless functions in the application are obtained, the function names of the useless functions in the application can be output.

[0168] For example, in an embodiment of this application, a prompt message can be displayed on the screen of the background device. The prompt message includes the function names of the useless functions in the application, and the prompt message is used to indicate that the functions corresponding to the function names of the useless functions in the application are useless functions.

[0169] Or, in an embodiment of this application, the prompt message can be played using the speaker of the background device. The prompt message includes the function names of the useless functions in the application, and the prompt message is used to indicate that the functions corresponding to the function names of the useless functions in the application are useless functions.

[0170] After the developer perceives the prompt message, the developer can know which functions in the application are useless functions. The developer can modify the source code of the application. For example, the code of the useless functions can be deleted from the source code of the application to achieve the purpose of streamlining the source code of the application, and further, the occupied space of the executable file of the application generated according to the streamlined source code can be reduced.

[0171] Or, in an embodiment of this application, the function names of the useless functions in the application can also be recorded in a preset file in the background device for the developer to view the function names of the useless functions in the application in the preset file when needed later.

[0172] Or, in an embodiment of this application, the function names of the useless functions in the application can also be sent to the relevant developers by any available means such as email, text message, or PUSH message for the developers to view the function names of the useless functions in the application, etc.

[0173] Further, in another embodiment of the present application, the useless functions in the application program are functions that are very likely to no longer be used in the application program. Thus, the code of the useless functions often does not need to exist in the source code of the application program either.

[0174] Thus, in order to streamline the source code of the application program, the source code of the application program can be obtained, and according to the function names of the useless functions in the application program, the code of the useless functions in the application program can be deleted from the source code of the application program to obtain the remaining source code of the application program.

[0175] It is not necessary to manually modify the source code of the application program to achieve streamlining of the source code of the application program, which improves the degree of automation and reduces the labor cost.

[0176] Further, before deleting the code of the useless functions in the application program from the source code of the application program, a deletion prompt message can be output to prompt whether it is necessary to delete the code of the useless functions in the application program from the source code of the application program. If a confirmation operation input by the developer for the deletion prompt message is received, then the code of the useless functions in the application program is deleted from the source code of the application program.

[0177] Further, after obtaining the remaining source code of the application program, the remaining source code of the application program can be automatically compiled to obtain a new executable file of the application program. Thus, it is not necessary to manually compile the remaining source code of the application program, which improves the degree of automation and reduces the labor cost.

[0178] Specifically, a compiler can be used to generate the third intermediate code of the application program according to the remaining source code of the application program. Then, a plug-in previously set in the compiler is used to respectively set statistical breakpoints in each function in the third intermediate code of the application program to obtain the fourth intermediate code of the application program. Then, a new version of the executable file of the application program is generated according to the fourth intermediate code of the application program. Statistical breakpoints are respectively provided in the binary files of each function in the new version of the executable file of the application program.

[0179] Further, before compiling the remaining source code of the application program, a compilation prompt message can be output to prompt whether it is necessary to compile the remaining source code of the application program. If a confirmation operation input by the developer for the compilation prompt message is received, then the compilation of the remaining source code of the application program is started. For example, the step of using a compiler to generate the third intermediate code of the application program according to the remaining source code of the application program is started again.

[0180] Among them, when using a compiler to generate the third intermediate code of an application according to the remaining source code of the application, it is possible to search for the code segment including the function name in the remaining source code of the application, and display the code segment including the function name. Developers can view the displayed code segment including the function name and modify the code segment including the function name (for example, delete the function name in the code segment including the function name or replace the function name with other content, etc.) so that the function name no longer exists in the code segment including the function name. From the perspective of the background device, it is possible to receive the modification operation on the code segment including the function name, obtain the modified source code of the application, and then generate the third intermediate code of the application according to the modified source code of the application.

[0181] Among them, the possible functions of the code segment including the function name include: calling the function corresponding to the function name.

[0182] Among them, when displaying the code segment including the function name, in the displayed source code of the application, jump to the code segment of the function name, and set the display mode of the code segment of the function name to be different from the display mode of other codes in the source code of the application, such as highlighting or making the code segment of the function name protrude.

[0183] It should be noted that for the method embodiments, for the sake of simple description, they are all expressed as a series of action combinations. However, those skilled in the art should know that the present application is not limited by the described action sequence, because according to the present application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all optional embodiments, and the actions involved are not necessarily essential to the present application.

[0184] Refer to Figure 4 , which shows a structural block diagram of a data processing device of the present application, applied to a background device. The device includes:

[0185] A first acquisition module 11, configured to acquire the source code of an application;

[0186] A first generation module 12, configured to use a compiler to generate the first intermediate code of the application according to the source code of the application;

[0187] A first setting module 13, configured to use a plug-in pre-set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application to obtain the second intermediate code of the application;

[0188] A second generation module 14, configured to generate an executable file of the application according to second intermediate code of the application; each function binary file in the executable file of the application has the statistical data embedding respectively;

[0189] So that during the process of the user device running the executable file of the application, based on the statistical data embedding respectively set in each function binary file in the executable file of the application, it is respectively detected whether the binary file of the corresponding function is called; in the case where the binary file of at least one function in the executable file of the application is called, the function name of the at least one function is reported to the background device, and further the background device obtains the function names of each function in the source code of the application, and counts the function names of at least one function reported by at least one user device, and determines the useless functions in the application according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device counted.

[0190] In an alternative implementation, the device further includes:

[0191] A statistics module, configured to use a plugin pre-set in the compiler to count the function names of each function in the source code of the application;

[0192] A storage module, configured to store the function names of each function in the source code of the application and / or send the function names of each function in the source code of the application to the outside.

[0193] In this application, the background device obtains the source code of the application program, uses a compiler to generate the first intermediate code of the application program according to the source code of the application program, uses a plugin pre-set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application program to obtain the second intermediate code of the application program, generates an executable file of the application program according to the second intermediate code of the application program, and each function binary file in the executable file of the application program respectively has statistical breakpoints. In this way, during the process of the user device running the executable file of the application program, based on the statistical breakpoints respectively set in each function binary file in the executable file of the application program, it is respectively detected whether the binary files of their corresponding functions are called. When at least one function binary file in the executable file of the application program is called, the function names of at least one function are reported to the background device. Then the background device obtains the function names of each function in the source code of the application program, and counts the function names of at least one function reported by at least one user device, and determines the useless functions in the application program according to the function names of each function in the source code of the application program and the function names of at least one function reported by at least one user device counted.

[0194] In this application, it is supported to collect the function names of the functions actually called in the executable file of the application program to the background device during the process of the majority of users using the executable file of the application program. The functions actually called can be regarded as useful functions rather than useless functions. After the majority of users have used the executable file of the application program for a long time, the function names not collected to the background device can be regarded as the function names of the functions that the majority of users basically will not call during the process of using the executable file of the application program for a long time, that is, the function names of the functions that will basically not be used. In this way, the function names not collected to the background device can be regarded as the function names of useless functions.

[0195] It can be seen that this application determines the useful functions in the executable file of the application program by collecting the function names actually called during the process of the majority of users using the executable file of the application program, and then determines the useless functions in the executable file of the application program according to the useful functions in the executable file of the application program and all the functions in the executable file of the application program, avoiding determining the useful functions in the executable file of the application program as useless functions, thereby improving the accuracy of the determined useless functions.

[0196] In addition, in this application, statistical data points are set separately in each function of the first intermediate code of the application program using a plugin pre-set in the compiler, rather than setting statistical data points in the source code of the application program. The intermediate codes corresponding to the source codes of different types of computer programming languages often have unity in code logic. Thus, the solution of this application can be adapted to multiple computer programming languages, such as C language, C++ language, and Swift language, etc., with higher applicability. Moreover, this solution does not invade the source code of the application program, avoiding increasing the cost of maintaining the source code of the application program in the later stage.

[0197] Secondly, the setting of statistical data points is automatically set using a plugin pre-set in the compiler, without the need for manual setting, which plays a role of "once and for all" and can reduce labor costs.

[0198] Refer to Figure 5 , which shows a structural block diagram of a data processing device of this application, applied to a user device. The device includes:

[0199] A detection module 21, configured to, during the process of the user device running the executable file of the application program, respectively detect whether the binary files of the respective corresponding functions are called based on the statistical data points set separately in the binary files of each function in the executable file of the application program;

[0200] A reporting module 22, configured to, in the case where the binary file of at least one function in the executable file of the application program is called, report the function name of the at least one function to a background device;

[0201] So that the background device can obtain the function names of each function in the source code of the application program, and count the function names of at least one function reported by at least one user device, and determine the useless functions in the application program according to the function names of each function in the source code of the application program and the counted function names of at least one function reported by at least one user device; the executable file of the application program is generated according to the second intermediate code of the application program, the second intermediate code of the application program is obtained after setting statistical data points separately in each function of the first intermediate code of the application program using a plugin pre-set in the compiler, and the first intermediate code of the application program is generated by the compiler according to the source code of the application program.

[0202] In an optional implementation manner, the reporting module includes:

[0203] A determination unit configured to determine, for each function name in the function names of the at least one function, whether the function name has been reported to the background device during the historical process due to the binary file of the function corresponding to the function name being called; a storage unit configured to store the function name in a preset log file when the function name has not been reported to the background device during the historical process due to the binary file of the function corresponding to the function name being called;

[0204] A reporting unit configured to report the function names recorded in the preset log file to the background device.

[0205] In the present application, the background device obtains the source code of the application program, uses a compiler to generate the first intermediate code of the application program according to the source code of the application program, uses a plugin pre-set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application program to obtain the second intermediate code of the application program, generates an executable file of the application program according to the second intermediate code of the application program, and statistical breakpoints are respectively provided in the binary files of each function in the executable file of the application program. Thus, during the process of the user device running the executable file of the application program, based on the statistical breakpoints respectively provided in the binary files of each function in the executable file of the application program, it is respectively detected whether the binary file of the corresponding function is called. When the binary file of at least one function in the executable file of the application program is called, the function names of the at least one function are reported to the background device. Then the background device obtains the function names of each function in the source code of the application program, and counts the function names of the at least one function reported by at least one user device, and determines the useless functions in the application program according to the function names of each function in the source code of the application program and the counted function names of the at least one function reported by at least one user device.

[0206] In the present application, it is supported to collect the function names of the functions actually called in the executable file of the application program to the background device during the process of the general users using the executable file of the application program. The functions actually called can be regarded as useful functions rather than useless functions. After the general users have used the executable file of the application program for a long time, the function names not collected to the background device can be regarded as the function names of the functions that the general users will basically not call during the process of using the executable file of the application program for a long time, that is, the function names of the functions that will basically not be used. Thus, the function names not collected to the background device can be regarded as the function names of the useless functions.

[0207] It can be seen that the present application determines the useful functions in the executable file of the application program by collecting the function names actually called during the process of the executable file of the application program used by a large number of users, and then determines the useless functions in the executable file of the application program according to the useful functions in the executable file of the application program and all the functions in the executable file of the application program, avoiding determining the useful functions in the executable file of the application program as useless functions, thereby improving the accuracy of the determined useless functions.

[0208] In addition, the present application sets statistical breakpoints in each function of the first intermediate code of the application program using a plugin pre-set in the compiler, rather than setting statistical breakpoints in the source code of the application program. The intermediate codes corresponding to the source codes of different types of computer programming languages often have unity in code logic. Thus, the solution of the present application can be adapted to a variety of computer programming languages, such as C language, C++ language, and swift language, etc., with higher applicability. And this solution does not invade the source code of the application program, avoiding increasing the cost of maintaining the source code of the application program in the later stage.

[0209] Secondly, setting statistical breakpoints is automatically set using a plugin pre-set in the compiler, without the need for manual setting, which plays a role of "once and for all" and can reduce labor costs.

[0210] Refer to Figure 6 , which shows a structural block diagram of a data processing device of the present application, applied to a background device. The device includes:

[0211] A second acquisition module 31, configured to acquire the function names of each function in the source code of the application program, and to count the function names of at least one function reported by at least one user device;

[0212] Among them, the function names of at least one function are reported to the background device when, during the process of the user device running the executable file of the application program, the user device detects that the binary file of at least one function in the executable file of the application program is called based on the statistical breakpoints respectively set in the binary files of each function in the executable file of the application program; the executable file of the application program is generated according to the second intermediate code of the application program, and the second intermediate code of the application program is obtained after setting statistical breakpoints in each function of the first intermediate code of the application program using a plugin pre-set in the compiler, and the first intermediate code of the application program is generated by the compiler according to the source code of the application program;

[0213] A determination module 32, configured to determine unused functions in the application program according to function names of respective functions in the source code of the application program and function names of at least one function reported by at least one user device.

[0214] In an optional implementation manner, function names of respective functions in the source code of the application program are statistically obtained in advance in a scenario where the source code of the application program is compiled using a compiler, by using a plug-in set in the compiler in advance.

[0215] In an optional implementation manner, the apparatus further includes:

[0216] An output module, configured to output function names of unused functions in the application program.

[0217] In an optional implementation manner, the apparatus further includes:

[0218] A third acquisition module, configured to acquire the source code of the application program;

[0219] A deletion module, configured to delete code of unused functions in the application program from the source code of the application program according to function names of unused functions in the application program, so as to obtain remaining source code of the application program.

[0220] In an optional implementation manner, the apparatus further includes:

[0221] A third generation module, configured to generate third intermediate code of the application program using a compiler according to the remaining source code of the application program;

[0222] A second setting module, configured to respectively set statistical breakpoints in respective functions in the third intermediate code of the application program using a plug-in set in the compiler in advance, so as to obtain fourth intermediate code of the application program;

[0223] A fourth generation module, configured to generate a new version of an executable file of the application program according to the fourth intermediate code of the application program; binary files of respective functions in the new version of the executable file of the application program respectively have the statistical breakpoints.

[0224] In an optional implementation manner, the third generation module includes:

[0225] A search unit, configured to search for a code segment including the function name in the remaining source code of the application program;

[0226] A display unit, configured to display the code segment including the function name;

[0227] A receiving unit, configured to receive a modification operation on a code segment including the function name, so as to obtain the modified source code of the application program;

[0228] A generating unit, configured to generate a third intermediate code of the application program according to the modified source code of the application program.

[0229] In the present application, a background device obtains the source code of an application program, uses a compiler to generate a first intermediate code of the application program according to the source code of the application program, uses a plug-in pre-set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application program, so as to obtain a second intermediate code of the application program, generates an executable file of the application program according to the second intermediate code of the application program, and statistical breakpoints are respectively provided in the binary files of each function in the executable file of the application program. In this way, during the process of the user device running the executable file of the application program, based on the statistical breakpoints respectively provided in the binary files of each function in the executable file of the application program, it is respectively detected whether the binary files of the corresponding functions are called, and in the case that the binary files of at least one function in the executable file of the application program are called, the function names of at least one function are reported to the background device. Then the background device obtains the function names of each function in the source code of the application program, and counts the function names of at least one function reported by at least one user device, and determines the useless functions in the application program according to the function names of each function in the source code of the application program and the function names of at least one function counted from the at least one user device reported.

[0230] In the present application, it is supported to collect the function names of the functions actually called in the executable file of the application program to the background device during the process of a large number of users using the executable file of the application program. The functions actually called can be regarded as useful functions rather than useless functions. After a large number of users have used the executable file of the application program for a long time, the function names not collected to the background device can be regarded as the function names of the functions that are basically not called during the process of a large number of users using the executable file of the application program for a long time, that is, the function names of the functions that are basically not used. In this way, the function names not collected to the background device can be regarded as the function names of useless functions.

[0231] It can be seen that the present application determines the useful functions in the executable file of the application program by collecting the function names actually called during the process of a large number of users using the executable file of the application program, and then determines the useless functions in the executable file of the application program according to the useful functions in the executable file of the application program and all the functions in the executable file of the application program, avoiding determining the useful functions in the executable file of the application program as useless functions, thereby improving the accuracy of the determined useless functions.

[0232] In addition, in this application, statistical code embedding is respectively set in each function of the first intermediate code of the application program by using a plug-in pre-set in the compiler, rather than setting statistical code embedding in the source code of the application program. The intermediate codes corresponding to the source codes of different types of computer programming languages often have unity in code logic. Thus, the solution of this application can be adapted to multiple computer programming languages, such as C language, C++ language, and Swift language, etc., with higher applicability. Moreover, this solution does not intrude on the source code of the application program, avoiding increasing the cost of maintaining the source code of the application program in the later stage.

[0233] Secondly, the setting of statistical code embedding is automatically set by using a plug-in pre-set in the compiler, without the need for manual setting, which plays a role of "once and for all" and can reduce labor costs.

[0234] For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple. For related parts, refer to the partial description of the method embodiment.

[0235] Optionally, an embodiment of the present invention further provides an electronic device, including: a processor, a memory, and a computer program stored on the memory and executable on the processor. When the computer program is executed by the processor, it implements each process of the above method embodiment and can achieve the same technical effect. To avoid repetition, it will not be elaborated here.

[0236] An embodiment of the present invention further provides a computer-readable storage medium. A computer program is stored on the computer-readable storage medium. When the computer program is executed by the processor, it implements each process of the above method embodiment and can achieve the same technical effect. To avoid repetition, it will not be elaborated here. Among them, the computer-readable storage medium, such as a Read-Only Memory (ROM for short), a Random Access Memory (RAM for short), a magnetic disk, or an optical disc, etc.

[0237] Figure 7 is a block diagram of an electronic device 800 shown in this application. For example, the electronic device 800 can be a mobile phone, a computer, a digital broadcast terminal, a messaging device, a game console, a tablet device, a medical device, a fitness device, a personal digital assistant, etc.

[0238] Refer to Figure 7 , the electronic device 800 may include one or more of the following components: a processing component 802, a memory 804, a power component 806, a multimedia component 808, an audio component 810, an input / output (I / O) interface 812, a sensor component 814, and a communication component 816.

[0239] The processing component 802 generally controls the overall operation of the electronic device 800, such as operations associated with display, telephone calls, data communication, camera operations, and recording operations. The processing component 802 may include one or more processors 820 to execute instructions to complete all or part of the steps of the above methods. In addition, the processing component 802 may include one or more modules to facilitate the interaction between the processing component 802 and other components. For example, the processing component 802 may include a multimedia module to facilitate the interaction between the multimedia component 808 and the processing component 802.

[0240] The memory 804 is configured to store various types of data to support the operation of the device 800. Examples of such data include instructions for any application or method operating on the electronic device 800, contact data, phone book data, messages, images, videos, etc. The memory 804 may be implemented by any type of volatile or non-volatile storage device or a 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 disk, or optical disk.

[0241] The power component 806 provides power to various components of the electronic device 800. The power component 806 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power for the electronic device 800.

[0242] The multimedia component 808 includes a screen that provides an output interface between the electronic device 800 and the user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors may not only sense the boundaries of touch or swipe actions, but also detect the duration and pressure associated with the touch or swipe operations. In some embodiments, the multimedia component 808 includes a front camera and / or a rear camera. When the device 800 is in an operation mode, such as a shooting mode or a video mode, the front camera and / or the rear camera may receive external multimedia data. Each of the front camera and the rear camera may be a fixed optical lens system or have a focal length and optical zoom capabilities.

[0243] The audio component 810 is configured to output and / or input audio signals. For example, the audio component 810 includes a microphone (MIC) that is configured to receive external audio signals when the electronic device 800 is in an operating mode, such as a call mode, a recording mode, and a voice recognition mode. The received audio signal can be further stored in the memory 804 or transmitted via the communication component 816. In some embodiments, the audio component 810 further includes a speaker for outputting audio signals.

[0244] The I / O interface 812 provides an interface between the processing component 802 and a peripheral interface module, which may be a keyboard, a click wheel, buttons, etc. These buttons may include, but are not limited to: a home button, a volume button, a power button, and a lock button.

[0245] The sensor component 814 includes one or more sensors for providing an assessment of various aspects of the state of the electronic device 800. For example, the sensor component 814 can detect the open / closed state of the device 800, the relative positioning of components, such as the display and keypad of the electronic device 800. The sensor component 814 can also detect a change in the position of the electronic device 800 or a component of the electronic device 800, the presence or absence of user contact with the electronic device 800, the orientation or acceleration / deceleration of the electronic device 800, and the temperature change of the electronic device 800. The sensor component 814 can include a proximity sensor configured to detect the presence of nearby objects without any physical contact. The sensor component 814 can also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, the sensor component 814 can further include an acceleration sensor, a gyro sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.

[0246] The communication component 816 is configured to facilitate communication between the electronic device 800 and other devices in a wired or wireless manner. The electronic device 800 can access a wireless network based on communication standards, such as WiFi, a carrier network (such as 2G, 3G, 4G, or 5G), or a combination thereof. In an exemplary embodiment, the communication component 816 receives a broadcast signal or broadcast operation information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 816 further includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.

[0247] In an exemplary embodiment, the electronic device 800 may be implemented by one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components for performing the above method.

[0248] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 804 including instructions, and the above instructions can be executed by a processor 820 of the electronic device 800 to complete the above method. For example, the non-transitory computer-readable storage medium may be a ROM, a random access memory (RAM), a CD-ROM, magnetic tape, floppy disk, and optical data storage device, etc.

[0249] Figure 8 FIG. 7 is a block diagram of an electronic device 1900 shown in the present application. For example, the electronic device 1900 may be provided as a server.

[0250] Referring to Figure 8 FIG. 12, the electronic device 1900 includes a processing component 1922, which further includes one or more processors, and memory resources represented by a memory 1932 for storing instructions executable by the processing component 1922, such as application programs. The application programs stored in the memory 1932 may include one or more modules each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute instructions to perform the above method.

[0251] The electronic device 1900 may further include a power component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input / output (I / O) interface 1958. The electronic device 1900 may operate based on an operating system stored in the memory 1932, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, or the like.

[0252] It should be noted that in this document, the term "comprising", "including" or any other variant thereof is intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus including a series of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising a..." does not exclude the presence of additional identical elements in the process, method, article, or apparatus including the element.

[0253] Through the description of the above embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation. Based on such an understanding, the technical solution of the present invention, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions for causing a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in various embodiments of the present invention.

[0254] The embodiments of the present invention have been described above with reference to the accompanying drawings. However, the present invention is not limited to the above specific embodiments. The above specific embodiments are merely illustrative and not restrictive. Under the inspiration of the present invention, those of ordinary skill in the art can also make many forms without departing from the purpose of the present invention and the scope protected by the claims, and all of them belong to the protection scope of the present invention.

[0255] Those of ordinary skill in the art can realize that the units and algorithm steps of each example described in combination with the embodiments disclosed in the embodiments of the present invention can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present invention.

[0256] Those skilled in the art can clearly understand that for the convenience and simplicity of description, the specific working processes of the systems, devices, and units described above can refer to the corresponding processes in the foregoing method embodiments and will not be elaborated herein.

[0257] In the embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed mutual coupling or direct coupling or communication connection can be through some interfaces. The indirect coupling or communication connection of the devices or units can be in an electrical, mechanical, or other form.

[0258] The unit described as a separation component may or may not be physically separated. The component shown as a unit may or may not be a physical unit, that is, it may be located in one place or distributed across multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0259] In addition, each functional unit in various embodiments of the present invention may be integrated into a processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.

[0260] If the described function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or a part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present invention. The aforementioned storage medium includes: various media such as USB flash drives, mobile hard disks, ROM, RAM, magnetic disks, or optical discs that can store program codes.

[0261] As described above, it is only the specific implementation manner of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present invention can easily think of changes or substitutions, which should all be covered by the protection scope of the present invention. Therefore, the protection scope of the present invention should be subject to the protection scope of the claims.

Claims

1. A data processing method, characterized in that, applied to a background device, the method comprising: obtaining the source code of an application; using a compiler to generate first intermediate code of the application according to the source code of the application; using a plugin pre-set in the compiler to respectively set statistical breakpoints in each function in the first intermediate code of the application to obtain second intermediate code of the application; generating an executable file of the application according to the second intermediate code of the application; statistical breakpoints are respectively provided in the binary files of each function in the executable file of the application; so that during the process of the user device running the executable file of the application, based on the statistical breakpoints respectively provided in the binary files of each function in the executable file of the application, respectively detecting whether the binary files of their corresponding functions are called; in the case where the binary files of at least one function in the executable file of the application are called, reporting the function names of the at least one function to the background device, so that the background device obtains the function names of each function in the source code of the application, and counting the function names of at least one function reported by at least one user device, and determining unused functions in the application according to the function names of each function in the source code of the application and the counted function names of at least one function reported by at least one user device; in the case where the binary files of at least one function in the executable file of the application are called and the function names of the at least one function are not reported to the background device, storing the function names of the at least one function in a preset log file and regularly reporting the function names recorded in the preset log file to the background device; or when the number of function names recorded in the preset log file exceeds a preset number, reporting the function names recorded in the preset log file to the background device.

2. The method according to claim 1, characterized in that, the method further comprises: using a plugin pre-set in the compiler to count the function names of each function in the source code of the application; storing the function names of each function in the source code of the application and / or sending the function names of each function in the source code of the application to the outside.

3. A data processing method, characterized in that, applied to a user device, the method comprising: during the process of the user device running the executable file of the application, based on the statistical breakpoints respectively provided in the binary files of each function in the executable file of the application, respectively detecting whether the binary files of their corresponding functions are called; in the case where the binary files of at least one function in the executable file of the application are called, reporting the function names of the at least one function to the background device; So that the background device can obtain the function names of each function in the source code of the application program, and count the function names of at least one function reported by at least one user device, and determine the useless functions in the application program according to the function names of each function in the source code of the application program and the function names of at least one function reported by at least one user device; the executable file of the application program is generated according to the second intermediate code of the application program, and the second intermediate code of the application program is obtained by respectively setting statistical breakpoints in each function of the first intermediate code of the application program using a plugin previously set in the compiler, and the first intermediate code of the application program is generated by the compiler according to the source code of the application program; Wherein, reporting the function names of the at least one function to the background device includes: For each function name among the function names of the at least one function, determine whether the function name has been reported to the background device due to the binary file of the function corresponding to the function name being called in the historical process; in the case that the function name has not been reported to the background device due to the binary file of the function corresponding to the function name being called in the historical process, store the function name in a preset log file; Regularly report the function names recorded in the preset log file to the background device; or, in the case that the number of function names recorded in the preset log file exceeds a preset number, report the function names recorded in the preset log file to the background device.

4. A data processing method Characterized in that Applied to a background device, the method includes: Obtain the function names of each function in the source code of the application program, and count the function names of at least one function reported by at least one user device; Among them, the function name of at least one function is reported to the background device when, during the process of the user device running the executable file of the application, the statistical buried points respectively set in the binary files of each function in the executable file of the application detect that the binary file of at least one function in the executable file of the application is called; among them, when the binary file of at least one function in the executable file of the application is called and the function name of at least one function is not reported to the background device, the function name of at least one function is stored in a preset log file, and the function names recorded in the preset log file are reported to the background device regularly; or when the number of function names recorded in the preset log file exceeds a preset number, the function names recorded in the preset log file are reported to the background device; the executable file of the application is generated according to the second intermediate code of the application, the second intermediate code of the application is obtained by respectively setting statistical buried points in each function of the first intermediate code of the application using a plugin preset in the compiler, and the first intermediate code of the application is generated by the compiler according to the source code of the application; Determine the useless functions in the application according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device statistically.

5. The method according to claim 4, wherein, The function names of each function in the source code of the application are statistically obtained in advance in the scenario of compiling the source code of the application using a compiler using a plugin preset in the compiler.

6. The method according to claim 4, wherein, The method further includes: Output the function names of the useless functions in the application.

7. The method according to claim 4, wherein, The method further includes: Obtain the source code of the application; According to the function names of the useless functions in the application, delete the code of the useless functions in the source code of the application to obtain the remaining source code of the application.

8. The method according to claim 7, wherein, The method further includes: Use the compiler to generate the third intermediate code of the application according to the remaining source code of the application; Use a plugin preset in the compiler to respectively set statistical buried points in each function of the third intermediate code of the application to obtain the fourth intermediate code of the application; Generate a new version of the executable file of the application according to the fourth intermediate code of the application; each binary file of each function in the new version of the executable file of the application has the statistical buried points.

9. The method according to claim 8, wherein, The step of using the compiler to generate the third intermediate code of the application according to the remaining source code of the application includes: Search for a code segment including the function name in the remaining source code of the application; Display the code segment including the function name; Receive a modification operation on the code segment including the function name to obtain the modified source code of the application; Generate the third intermediate code of the application according to the modified source code of the application.

10. A data processing device, Characterized in that, Applied to a background device, the device includes: A first acquisition module for acquiring the source code of an application; A first generation module for generating the first intermediate code of the application according to the source code of the application by using a compiler; A first setting module for respectively setting statistical breakpoints in each function in the first intermediate code of the application by using a plug-in previously set in the compiler to obtain the second intermediate code of the application; A second generation module for generating an executable file of the application according to the second intermediate code of the application; each function binary file in the executable file of the application has the statistical breakpoints; So that during the process of the user device running the executable file of the application, based on the statistical breakpoints respectively set in each function binary file in the executable file of the application, respectively detect whether the binary file of each corresponding function is called; in the case that the binary file of at least one function in the executable file of the application is called, report the function name of the at least one function to the background device, so that the background device obtains the function names of each function in the source code of the application, and, count the function names of at least one function reported by at least one user device, and determine the useless functions in the application according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device counted; in the case that the binary file of at least one function in the executable file of the application is called and the function name of the at least one function is not reported to the background device, store the function name of the at least one function in a preset log file and regularly report the function names recorded in the preset log file to the background device; or, when the number of function names recorded in the preset log file exceeds a preset number, report the function names recorded in the preset log file to the background device.

11. The device according to claim 10, Characterized in that, The device further includes: A statistics module for counting the function names of each function in the source code of the application by using a plug-in previously set in the compiler; A storage module for storing the function names of each function in the source code of the application and / or sending the function names of each function in the source code of the application to the outside.

12. A data processing device, Characterized in that, Applied to a user device, the device includes: A detection module, configured to respectively detect whether the binary files of respective functions are called based on the statistical data points respectively set in the binary files of respective functions in the executable file of the application program during the process of the user equipment running the executable file of the application program; A reporting module, configured to report the function names of the at least one function to a background device when the binary files of at least one function in the executable file of the application program are called; so that the background device can obtain the function names of respective functions in the source code of the application program, and count the function names of at least one function reported by at least one user equipment, and determine the useless functions in the application program according to the function names of respective functions in the source code of the application program and the function names of at least one function reported by at least one user equipment; the executable file of the application program is generated according to the second intermediate code of the application program, the second intermediate code of the application program is obtained after statistical data points are respectively set in respective functions in the first intermediate code of the application program by using a plugin pre-set in a compiler, and the first intermediate code of the application program is generated by the compiler according to the source code of the application program; The reporting module includes: A determination unit, configured to determine, for each function name in the function names of the at least one function, whether the function name has been reported to the background device due to the call of the binary file of the function corresponding to the function name in a historical process; a storage unit, configured to store the function name in a preset log file when the function name has not been reported to the background device due to the call of the binary file of the function corresponding to the function name in a historical process; A reporting unit, configured to regularly report the function names recorded in the preset log file to the background device; or, report the function names recorded in the preset log file to the background device when the number of the function names recorded in the preset log file exceeds a preset number.

13. A data processing device, characterized in that, applied to a background device, the device includes: A second acquisition module, configured to acquire the function names of respective functions in the source code of the application program, and count the function names of at least one function reported by at least one user equipment; Among them, the function name of at least one function is reported to the background device when, during the process of the user device running the executable file of the application, the statistical buried points respectively set in the binary files of each function in the executable file of the application detect that the binary file of at least one function in the executable file of the application is called; among them, when the binary file of at least one function in the executable file of the application is called and the function name of at least one function is not reported to the background device, the function name of at least one function is stored in a preset log file, and the function names recorded in the preset log file are reported to the background device regularly; or, when the number of function names recorded in the preset log file exceeds a preset number, the function names recorded in the preset log file are reported to the background device; the executable file of the application is generated according to the second intermediate code of the application, the second intermediate code of the application is obtained by respectively setting statistical buried points in each function in the first intermediate code of the application using a plugin preset in the compiler, and the first intermediate code of the application is generated by the compiler according to the source code of the application; A determination module, configured to determine unused functions in the application according to the function names of each function in the source code of the application and the function names of at least one function reported by at least one user device.

14. The apparatus according to claim 13, wherein, the function names of each function in the source code of the application are statistically obtained in advance in a scenario where the compiler compiles the source code of the application using a plugin preset in the compiler.

15. The apparatus according to claim 13, wherein, the apparatus further includes: an output module, configured to output the function names of the unused functions in the application.

16. The apparatus according to claim 13, wherein, the apparatus further includes: a third acquisition module, configured to acquire the source code of the application; a deletion module, configured to delete the code of the unused functions in the application from the source code of the application according to the function names of the unused functions in the application, to obtain the remaining source code of the application.

17. The apparatus according to claim 16, wherein, the apparatus further includes: a third generation module, configured to generate the third intermediate code of the application using a compiler according to the remaining source code of the application; a second setting module, configured to respectively set statistical buried points in each function in the third intermediate code of the application using a plugin preset in the compiler, to obtain the fourth intermediate code of the application; a fourth generation module, configured to generate a new version of the executable file of the application according to the fourth intermediate code of the application; each binary file of each function in the new version of the executable file of the application respectively has the statistical buried points.

18. The device according to claim 17, wherein, the third generation module includes: a search unit configured to search for a code segment including the function name in the remaining source code of the application program; a display unit configured to display the code segment including the function name; a receiving unit configured to receive a modification operation on the code segment including the function name to obtain the modified source code of the application program; a generation unit configured to generate the third intermediate code of the application program according to the modified source code of the application program.

19. An electronic device, wherein, it includes: a processor, a memory, and a computer program stored on the memory and executable on the processor, and when the computer program is executed by the processor, the steps of the data processing method according to any one of claims 1 to 9 are implemented.

20. A computer-readable storage medium, wherein, a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the steps of the data processing method according to any one of claims 1 to 9 are implemented.

Citation Information

Patent Citations

  • Program compiling method and device, electronic equipment and storage medium

    CN111767058A