Method and apparatus for managing behavior of application, device, and medium
By extracting code links from application log data and utilizing databases and machine learning models, the system automatically analyzes and generates natural language descriptions, solving the problems of low efficiency and poor accuracy in application behavior management in existing technologies, and achieving more efficient and accurate behavior management.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- BEIJING ZITIAO NETWORK TECH CO LTD
- Filing Date
- 2024-12-11
- Publication Date
- 2026-06-18
Smart Images

Figure CN2024138602_18062026_PF_FP_ABST
Abstract
Description
Methods, apparatus, devices, and media for managing the behavior of applications. Technical Field
[0001] Implementations of this disclosure generally relate to application management, and in particular to methods, apparatus, devices, and computer-readable storage media for managing the behavior of applications. Background Technology
[0002] Applications can implement multiple functions, and as these functions become more complex, it becomes necessary to check whether the various behaviors during application runtime meet expectations. Application developers and / or operators can determine application behavior through manual analysis of the application's code and / or runtime logs. However, manual analysis involves a significant workload and may result in inaccurate identification of potentially risky behaviors due to misjudgments or omissions. Therefore, a more efficient and accurate method for managing application behavior is desired. Summary of the Invention
[0003] In a first aspect of this disclosure, a method for managing the behavior of an application is provided. In this method, during the operation of the application, in response to determining the behavior of the application, a set of links associated with the behavior is extracted from the application's log data, wherein links in the set of links point to code segments in the application's code associated with the behavior. Based on a database associated with the application, a set of textual interpretations of the set of links is determined. Based on the set of textual interpretations, a textual description describing the behavior is determined, the textual description being represented in natural language.
[0004] In a second aspect of this disclosure, an apparatus for managing the behavior of an application is provided. The apparatus includes: an extraction module configured to, during the operation of the application, in response to determining the behavior of the application, extract from log data of the application a set of links associated with the behavior, wherein links in the set of links point to code segments in the application's code associated with the behavior; an interpretation determination module configured to determine a set of text interpretations of the set of links based on a database associated with the application; and a description determination module configured to determine a text description of the behavior based on the set of text interpretations, the text description being expressed in natural language.
[0005] In a third aspect of this disclosure, an electronic device is provided. The electronic device includes: at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to a first aspect of this disclosure when executed by the at least one processing unit.
[0006] In a fourth aspect of this disclosure, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, causes the processor to implement the method according to a first aspect of this disclosure.
[0007] In a fifth aspect of this disclosure, a computer program product is provided, comprising a computer program that, when executed by a processor, implements the method according to a first aspect of this disclosure.
[0008] It should be understood that the content described in this content section is not intended to limit the key or essential features of the implementation of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0009] In the following detailed description, the above and other features, advantages, and aspects of the various implementations of this disclosure will become more apparent, taken in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals denote the same or similar elements, wherein:
[0010] Figure 1 shows a block diagram of an application environment according to one implementation of the present disclosure;
[0011] Figure 2 shows a block diagram illustrating the behavior of an application for managing some implementations according to this disclosure;
[0012] Figure 3 shows a block diagram of determining the link based on key features according to some implementations of this disclosure;
[0013] Figure 4 shows a block diagram illustrating the use of machine learning models to determine the text interpretation of a link according to some implementations of this disclosure;
[0014] Figure 5 shows a block diagram illustrating the structure of prompt words according to some implementations of this disclosure;
[0015] Figure 6 shows a flowchart of a method for managing the behavior of an application according to some implementations of this disclosure;
[0016] Figure 7 shows a block diagram of an apparatus for managing the behavior of an application according to some implementations of this disclosure; and
[0017] Figure 8 shows a block diagram of a device capable of implementing various implementations of the present disclosure. Detailed Implementation
[0018] Implementations of this disclosure will now be described in more detail with reference to the accompanying drawings. While some implementations of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the implementations set forth herein. Rather, these implementations are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and implementations of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0019] In the description of the implementation methods disclosed herein, the term "comprising" and similar terms should be understood as open inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one implementation" or "the implementation" should be understood as "at least one implementation". The term "some implementations" should be understood as "at least some implementations". Other explicit and implicit definitions may also be included below. As used herein, the term "model" can represent the relationships between various data. For example, the aforementioned relationships can be obtained based on various currently known and / or future-developed technical solutions.
[0020] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and related provisions.
[0021] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure through appropriate means in accordance with relevant laws and regulations, and user authorization should be obtained.
[0022] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.
[0023] As an optional but non-restrictive implementation, in response to a user's active request, a prompt message can be sent to the user, for example, via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose whether to "agree" or "disagree" to provide personal information to the electronic device.
[0024] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0025] The term "in response to" as used herein refers to a state in which a corresponding event occurs or a condition is satisfied. It will be understood that the timing of subsequent actions performed in response to such event or condition is not necessarily strongly correlated with the time when the event occurs or the condition is met. For example, in some cases, subsequent actions may be performed immediately upon the occurrence of the event or the fulfillment of the condition; while in others, they may be performed some time after the occurrence of the event or the fulfillment of the condition.
[0026] Example Environment
[0027] Applications can implement multiple functions. As the functions of applications become more complex, it is necessary to check whether various behaviors during application operation meet expectations. Referring to Figure 1, which describes the environment in which the application is executed, Figure 1 shows a block diagram 100 of an application environment according to one implementation of this disclosure. As shown in Figure 1, the example environment may include a terminal device 110. In this example environment, the terminal device 110 may run an application 120 that supports user interface interaction. Application 120 can be any suitable type of application for user interface interaction, examples of which may include, but are not limited to, media applications or other suitable applications. User 140 can interact with application 120 via terminal device 110 and / or its attached devices. In the environment of Figure 1, if application 120 is active, terminal device 110 can present an interface 150 for supporting user interface interaction through application 120.
[0028] In some embodiments, terminal device 110 communicates with server 130 to provide services to application 120. Terminal device 110 can be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, terminal device 110 can also support any type of user-facing interface (such as "wearable" circuitry).
[0029] Server 130 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks, and big data and artificial intelligence platforms. Server 130 may include, for example, computing systems / servers such as mainframes, edge computing nodes, computing devices in a cloud environment, etc. Server 130 can provide backend services for applications 120 that support content presentation in terminal device 110.
[0030] A communication connection can be established between server 130 and terminal device 110. This communication connection can be established via wired or wireless means. The communication connection may include, but is not limited to, Bluetooth, mobile network, Universal Serial Bus, and Wi-Fi connections, and the embodiments of this disclosure are not limited in this respect. In the embodiments of this disclosure, server 130 and terminal device 110 can achieve signaling interaction through their communication connection. It should be understood that the structure and function of various elements in the environment are described for illustrative purposes only and do not imply any limitation on the scope of this disclosure.
[0031] In the context of this disclosure, application 120 can perform various functions, such as, but not limited to, video applications, short video applications, social networking applications, music applications, media sharing applications, communication applications, and so on. With the increasing number of applications and their growing complexity, data security issues are receiving increasing attention. Application developers and / or operators can determine whether the application's behavior meets security requirements by manually analyzing the application's code and / or runtime logs. However, manual analysis involves a significant workload and may fail to accurately identify potentially risky behaviors due to misjudgments or omissions. This method is inefficient, inaccurate, and struggles to handle large-scale applications and complex behavioral patterns. Furthermore, manual analysis is susceptible to subjective factors, leading to inconsistencies in the analysis results.
[0032] While some automated analysis tools have been developed, and although they can improve analysis efficiency to some extent, they typically only analyze specific types of behavior, lacking versatility. For complex application behaviors, they fail to accurately extract key information, leading to inaccurate interpretations. Furthermore, they lack the ability to understand context, making it difficult to generate comprehensive and accurate behavioral descriptions. Therefore, there is a need for a more efficient and accurate way to manage application behavior.
[0033] Summary of Management Application Behavior
[0034] To at least partially address the shortcomings of the prior art, a method for managing application behavior is proposed according to one implementation of this disclosure. Referring to Figure 2, which illustrates a block diagram 200 for managing application behavior according to some implementations of this disclosure, a summary of one implementation of this disclosure is provided. As shown in Figure 2, during the operation of application 120, in response to determining application behavior 210, a set of code execution links associated with behavior 210 is extracted from the log data 220 of application 120. Code execution links can be simply referred to as links; for example, a set of links includes link 222, etc. Link 222 in a set of links may point to one or more code segments in the code of application 120 that are associated with the behavior. Here, behavior may represent one or more actions performed by the application. For example, one or more code segments of the application may perform a certain action. In the context of this disclosure, a set of "XX" may include one or more "XX" segments; for example, a set of links may include one or more links.
[0035] The application may have an associated database 230, which may include various functionalities related to the application's code. Database 230 may be defined by the application's developers and may store various knowledge defined within the application. Based on the database 230 associated with the application 120, a set of textual explanations (e.g., including textual explanation 240, etc.) for a set of links can be determined. Specifically, a link may correspond to a textual explanation describing the corresponding function of that link. Further, based on a set of textual explanations, a textual description 250 for describing behavior can be determined. Here, the textual description 250 is expressed in natural language. Specifically, the textual description 250 may include various aspects, such as the scenario and / or triggering reason related to the behavior, etc.
[0036] In applications involving large amounts of code and complex functionality, a vast number of behaviors will occur, making it difficult to determine the specific content of each behavior through manual analysis. Using the implementation method disclosed herein, the specific content of each behavior in the application can be automatically analyzed based on a database 230, thereby significantly reducing the workload of manual analysis and improving the efficiency and accuracy of application management. Specifically, machine learning models can be used to perform the management process; for example, language models can be used to understand and interpret one or more key links, thereby achieving automated interpretation of the application's key behaviors.
[0037] Detailed process of managing application behavior
[0038] Having described an overview of some implementations according to this disclosure, further details regarding methods for managing application behavior will be described below. According to some implementations of this disclosure, during the extraction of a set of links, a call stack associated with a behavior can be obtained from log data. The call stack includes multiple links used to execute the behavior. Furthermore, a set of links can be determined from the call stack based on predetermined key features. See Figure 3 for further details, which shows a block diagram 300 of determining links based on key features according to some implementations of this disclosure. As shown in Figure 3, the call stack 310 can be reported by the application and may include multiple links, such as links 222, 311, 312, 313, 314, etc.
[0039] The call stack can be traversed in a top-down direction (330). This allows for prioritizing the traversal of the most recent log data, thus checking whether recent behavior matches expectations. Alternatively and / or additionally, the call stack can be traversed in the opposite direction. According to some implementations of this disclosure, the call stack can be represented in various formats and point to code segments in the application associated with the behavior. For example, a call stack could be represented as: com.***.os01.***.control01.onClick, and associated with an event associated with clicking the control control01; another example could be represented as: com.***.os01.***.control02.onClick, and associated with an event associated with clicking the control control02, and so on.
[0040] According to some implementations of this disclosure, key features may include multiple types, such as at least one of the following: user interaction 321, page feature 322, component lifecycle 323, application lifecycle 324, or callback 325. See Table 1 for further details on key features.
[0041] Table 1 Examples of Key Features
[0042] According to some implementations of this disclosure, a set of key links can be extracted from multiple links in the call stack based on key features. In the context of this disclosure, for ease of description, the extracted key links can be referred to as keyframes. In determining a set of links from the call stack, key features can be used to perform text filtering on multiple links in the call stack to identify the set of links. Specifically, keywords corresponding to the key features can be determined separately, and then keyframes can be extracted through text filtering. For example, keywords corresponding to user interactions may include onClick, onDraw, etc.; and keywords corresponding to component lifecycles and application lifecycles may include onCreate, onResume, etc. Keywords can be searched in each link of the call stack, and links containing the keywords can be extracted.
[0043] Alternatively and / or additionally, in determining a set of links from the call stack, a set of links can be determined based on the distances between multiple links in the call stack and key features. Specifically, the text distances between links and keyword features can be determined using a predefined text processing algorithm, thereby extracting keyframes.
[0044] It should be understood that there can be a many-to-many relationship between links and key features. For example, a link may include multiple keywords corresponding to different key features; alternatively and / or additionally, multiple links may include the same keyword. Using some implementations of this disclosure, multiple keyframes to be analyzed can be accurately extracted by traversal, avoiding omissions.
[0045] According to some implementations of this disclosure, the database may include a mapping between links and text interpretations. See Table 2 for further details, which shows examples of such mappings.
[0046] Table 2 Examples of mapping relationships
[0047] As shown in Table 2, strings represent strings in a link, and text explanations include the corresponding text explanations for that link. It should be understood that different applications can have their own databases, and these databases can be defined by the application developers. Alternatively and / or additionally, different applications can share the same database, thereby allowing for more general management of the different behaviors of different applications.
[0048] According to some implementations of this disclosure, in determining a set of text interpretations for a set of links, for each link in the set of links, the text interpretation associated with that link can be determined based on a mapping relationship. Specifically, various strings in the database can be searched within the links, and if a particular string is detected, a corresponding text interpretation can be provided. It should be understood that a link may include one or more strings; for example, a link may include "inbox" and "click," in which case the text interpretation may include, for example, "inbox" or "click." It should be understood that the text interpretation may only include a discrete set of descriptive words related to the behavior, and these descriptive words are merely intermediate data. Since the mapping relationship includes the functional descriptions corresponding to each string in the link, in this way, the corresponding text interpretations can be extracted from each keyframe and used as the basis for generating text descriptions.
[0049] According to some implementations of this disclosure, in determining the text interpretation associated with a link, at least one string can be determined based on the delimiters in the link. Furthermore, at least one string can be matched in the mapping relationship to determine the text interpretation. For example, an example link can be represented as: com.***.os01.***.inbox.onClick. In this case, the delimiter "dot" can be used to divide the link into multiple strings: com, ***, os01, ***, inbox, onClick. Based on the mapping relationship shown in Table 2, it can be determined that the link includes the string "inbox," thereby determining that the text interpretation includes: inbox.
[0050] According to some implementations of this disclosure, in the process of determining a string, the string can be split into multiple substrings. For example, the string "onClick" can be split into the substrings "on" and "click", thereby determining that the link further includes "click", and thus determining that the text interpretation includes: inbox, click. As another example, the string "ProfileTab***" can be split into: "profile", "tab", and "***". Specifically, the splitting can be performed according to the capitalization of the characters in the string, or the capitalization can be ignored. Alternatively and / or additionally, partial matching can be performed; for example, assuming the mapping relationship includes a long string (including string 1 and string 2), matching string 1 and / or string 2 can be assigned in the link. In this way, it is convenient to process the link in a more refined manner, thereby improving the accuracy of text interpretation.
[0051] According to some implementations of this disclosure, text interpretations can be determined in various ways. For example, text interpretations can be determined by text analysis or by calling a machine learning model. In determining a set of text interpretations for a set of links, prompt words can be identified. These prompt words can instruct the machine learning model to determine a set of text interpretations for a set of links based on mapping relationships. Furthermore, the machine learning model's response to the prompt words can be received. See Figure 4 for further details, which shows a block diagram 400 of determining text interpretations for links using a machine learning model according to some implementations of this disclosure. As shown in Figure 4, prompt words 410 can be identified, which can, based on a set of links 410 and a database 230, call a machine learning model 420 to output a corresponding set of text interpretations. Prompt words 410 can have different structures; see Table 3 for examples of prompt words.
[0052] Table 3 Examples of prompt words
[0053] As shown in Table 3, part 1 can specify the task to be performed by the machine learning model, part 2 can specify relevant examples for performing the task, and part 3 can specify one or more keyframes to be processed. The prompt word can be input into the machine learning model, which will then invoke the mapping relationships in database 230 to output text explanations for each keyword. Utilizing some implementation methods of this disclosure, the powerful processing capabilities of the machine learning model can be leveraged to analyze each string in the keyframe, thereby providing corresponding text explanations.
[0054] According to some implementations of this disclosure, a machine learning model can be used to process a set of text interpretations to determine the corresponding text description. In this case, the prompt words further instruct the machine learning model to determine the text description used to describe the behavior based on the set of text interpretations. Specifically, Table 4 shows examples of prompt words used to determine the text description.
[0055] Table 4 Examples of prompt words
[0056] As shown in Table 4, part 1 can specify the task to be performed by the machine learning model, part 2 can specify relevant examples for performing the task, and part 3 can specify a set of text interpretations to be processed. The prompt word can be input into the machine learning model so that it can output the corresponding text description. Using some implementations of this disclosure, the powerful processing capabilities of the machine learning model can be invoked to obtain text descriptions of behaviors expressed in natural language based on each text interpretation.
[0057] According to some implementations of this disclosure, the text description may include at least one of the following associated with the behavior: a scenario, indicating the initiator of the triggering behavior; or a triggering reason, indicating at least one of the following: interactive behavior, changes in the page cycle or application cycle, or page changes. In this case, the prompt word further instructs the machine learning model to determine the scenario or triggering reason.
[0058] Specifically, the scenario can represent the specific page (e.g., Fragment), action (Activity), business function, business scenario, or function involved in the behavior, etc. The triggering reason can represent the specific reason in the application that leads to the behavior, such as user interaction, changes in page or application lifecycles, page changes, etc. The prompt words can be modified so that the machine learning model can return richer information. Using some implementations of this disclosure, the powerful processing capabilities of machine learning models can be leveraged to determine richer information about the application's behavior.
[0059] According to some implementations of this disclosure, the prompt words may include more complex structures. See Figure 5 for further details, which shows a block diagram 500 of the structure of a prompt word according to some implementations of this disclosure. As shown in Figure 5, the prompt word 410 may include: a task description 511, a step 512, an example 523, and input data 514. Specifically, the task description 511 may specify a task to be performed by a machine learning model, the step 512 may specify one or more steps required to perform the specified task, the example 523 may include one or more examples related to the task description 511 (e.g., including input data and output data), and the input data 514 may include data to be processed and input into the machine learning model.
[0060] According to some implementations of this disclosure, prompt words can be generated, and in step 512, a machine learning model is specified to perform the following two steps respectively: determining a set of text interpretations based on the call stack and the database, and determining a text description of the behavior based on the set of text interpretations.
[0061] Table 5 Examples of prompt words
[0062] As shown in Table 5, part 1 can specify the task to be performed by the machine learning model, part 2 can specify multiple steps (step 1 and step 2) to perform the task, part 3 can specify relevant examples to perform the task, and part 4 can specify multiple keyframes to be processed. The prompt word can be input into the machine learning model, at which point the machine learning model outputs the corresponding text description. Using some implementation methods of this disclosure, the powerful processing capabilities of the machine learning model can be invoked to obtain a text description of the behavior in natural language based on various text interpretations.
[0063] For example, an example of output data could include:
[0064] Scenario: Information page, push component;
[0065] Triggering reason: Tab click.
[0066] Alternatively and / or additionally, another example of the output data may include:
[0067] Scenario: Application retrieves login data;
[0068] Triggering reason: The user clicks on the ** page.
[0069] According to some implementations of this disclosure, the methods described above can be executed on server 130 and / or any other computing device as shown in Figure 1. Using the implementations of this disclosure, the specific content of various behaviors of the application can be automatically analyzed based on database 230, thereby greatly reducing the workload of manual analysis and improving the efficiency and accuracy of application management. Specifically, some implementations of this disclosure can improve analysis efficiency. Compared with traditional manual analysis methods, the technical solution of this disclosure can greatly improve analysis efficiency by automatically extracting keyframes and using machine learning models to provide interpretations.
[0070] Alternatively and / or additionally, some implementations of this disclosure can improve the accuracy of the analysis. Manual analysis is easily influenced by subjective factors, leading to inaccurate results. The technical solution of this disclosure, based on call stacks and powerful machine learning models, can improve the accuracy and consistency of the analysis. Furthermore, the technical solution of this disclosure can adapt to complex behavioral patterns. For complex application behaviors, traditional methods struggle to accurately extract and interpret key information. The technical solution of this disclosure can better adapt to complex behavioral patterns, providing a more comprehensive and accurate description of behavior. Furthermore, the technical solution of this disclosure can improve versatility, thus being applicable to various types of applications and behaviors.
[0071] Example process
[0072] Figure 6 illustrates a flowchart of a method 600 for managing application behavior according to some implementations of this disclosure. At block 610, during application runtime, in response to determining application behavior, a set of links associated with the behavior is extracted from the application's log data, where each link points to a code segment in the application's code that is associated with the behavior. At block 620, a set of textual interpretations of the set of links is determined based on a database associated with the application. At block 630, based on the set of textual interpretations, a textual description describing the behavior is determined, the textual description being expressed in natural language.
[0073] According to some implementations of this disclosure, extracting a set of links includes: obtaining a call stack associated with a behavior from log data, the call stack including multiple links for executing the behavior; and determining a set of links from the call stack based on predetermined key features.
[0074] According to some implementations of this disclosure, determining a set of links from the call stack includes at least one of the following: using key features to perform text filtering on multiple links in the call stack to determine a set of links; or determining a set of links based on the distance between multiple links in the call stack and key features.
[0075] According to some implementations of this disclosure, the database includes a mapping relationship between links and text interpretations, and determining a set of text interpretations for a set of links includes: for a link in a set of links, determining the text interpretation associated with the link based on the mapping relationship.
[0076] According to some implementations of this disclosure, determining the text interpretation associated with a link includes: determining at least one string based on delimiters in the link; and matching at least one string in a mapping relationship to determine the text interpretation.
[0077] According to some implementations of this disclosure, determining a set of text interpretations for a set of links includes: determining a prompt word, which instructs a machine learning model to determine a set of text interpretations for a set of links based on a mapping relationship; and receiving a response from the machine learning model to the prompt word.
[0078] According to some implementations of this disclosure, the prompt words further instruct the machine learning model to determine a textual description for describing the behavior based on a set of textual interpretations.
[0079] According to some implementations of this disclosure, the text description includes at least one of the following associated with the behavior: scenario, indicating the initiator of the triggering behavior; triggering reason, indicating at least one of the following: interactive behavior, page cycle or application cycle change, page change, and the prompt word further instructs the machine learning model to determine the scenario or triggering reason.
[0080] According to some implementations of this disclosure, key features include at least one of the following: user interaction, page features, component lifecycle, application lifecycle, or callback behavior.
[0081] Example devices and equipment
[0082] Figure 7 shows a block diagram of an apparatus 700 for managing application behavior according to some implementations of the present disclosure. The apparatus includes: an extraction module 710 configured to, during application execution, extract a set of links associated with the behavior from the application's log data in response to determining the application's behavior, wherein the links in the set of links point to code segments in the application's code associated with the behavior; an interpretation determination module 720 configured to determine a set of text interpretations of the set of links based on a database associated with the application; and a description determination module 730 configured to determine a text description of the behavior based on the set of text interpretations, wherein the text description is expressed in natural language.
[0083] According to some implementations of this disclosure, the extraction module is further configured to: obtain a call stack associated with a behavior from log data, the call stack including multiple links for performing the behavior; and determine a set of links from the call stack based on predetermined key features.
[0084] According to some implementations of this disclosure, the extraction module is further configured to: perform text filtering on multiple links in the call stack using key features to determine a set of links; or determine a set of links based on the distance between multiple links in the call stack and the key features.
[0085] According to some implementations of this disclosure, the database includes a mapping relationship between links and text interpretations, and an interpretation determination module configured to include: determining, based on the mapping relationship, the text interpretation associated with a link in a set of links.
[0086] According to some implementations of this disclosure, the interpretation determination module is further configured to: determine at least one string based on a delimiter in the link; and match at least one string in the mapping relationship to determine the text interpretation.
[0087] According to some implementations of this disclosure, the interpretation determination module is further configured to: determine a prompt word that instructs a machine learning model to determine a set of text interpretations of a set of links based on a mapping relationship; and receive a response from the machine learning model to the prompt word.
[0088] According to some implementations of this disclosure, the prompt words further instruct the machine learning model to determine a textual description for describing the behavior based on a set of textual interpretations.
[0089] According to some implementations of this disclosure, the text description includes at least one of the following associated with the behavior: scenario, indicating the initiator of the triggering behavior; triggering reason, indicating at least one of the following: interactive behavior, page cycle or application cycle change, page change, and the prompt word further instructs the machine learning model to determine the scenario or triggering reason.
[0090] According to some implementations of this disclosure, key features include at least one of the following: user interaction, page features, component lifecycle, application lifecycle, or callback behavior.
[0091] Figure 8 shows a block diagram of a device 800 capable of implementing various implementations of the present disclosure. It should be understood that the computing device 800 shown in Figure 8 is merely exemplary and should not constitute any limitation on the functionality and scope of the implementations described herein. The computing device 800 shown in Figure 8 can be used to implement the methods described above.
[0092] As shown in Figure 8, the computing device 800 is in the form of a general-purpose computing device. Components of the computing device 800 may include, but are not limited to, one or more processors or processing units 810, memory 820, storage devices 830, one or more communication units 840, one or more input devices 850, and one or more output devices 860. The processing unit 810 may be a physical or virtual processor and is capable of performing various processes according to programs stored in memory 820. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of the computing device 800.
[0093] Computing device 800 typically includes multiple computer storage media. Such media can be any available media accessible to computing device 800, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 820 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. Storage device 830 can be removable or non-removable media and can include machine-readable media, such as flash drives, disks, or any other media that can be used to store information and / or data (e.g., training data for training) and can be accessed within computing device 800.
[0094] The computing device 800 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in FIG8, disk drives for reading from or writing to removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable, non-volatile optical disks may be provided. In these cases, each drive may be connected to a bus (not shown) via one or more data media interfaces. The memory 820 may include a computer program product 825 having one or more program modules configured to perform various methods or actions of various implementations of the present disclosure.
[0095] The communication unit 840 enables communication with other computing devices via a communication medium. Additionally, the components of the computing device 800 can function as a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, the computing device 800 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or another network node.
[0096] Input device 850 can be one or more input devices, such as a mouse, keyboard, trackball, etc. Output device 860 can be one or more output devices, such as a monitor, speaker, printer, etc. Computing device 800 can also communicate as needed with one or more external devices (not shown) via communication unit 840. These external devices, such as storage devices, display devices, etc., can communicate with one or more devices that enable user interaction with computing device 800, or with any device (e.g., network card, modem, etc.) that enables computing device 800 to communicate with one or more other computing devices. Such communication can be performed via input / output (I / O) interfaces (not shown).
[0097] According to an implementation of this disclosure, a computer-readable storage medium is provided, on which computer-executable instructions are stored, wherein the computer-executable instructions are executed by a processor to implement the method described above. According to an implementation of this disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, which are executed by a processor to implement the method described above. According to an implementation of this disclosure, a computer program product is provided, on which a computer program is stored, which, when executed by a processor, implements the method described above.
[0098] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatuses, devices, and computer program products implemented according to this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0099] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0100] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0101] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0102] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.
Claims
1. A method for managing the behavior of an application, comprising: During the operation of the application, in response to determining the behavior of the application, a set of links associated with the behavior is extracted from the application's log data, wherein the links in the set of links point to code segments in the application's code that are associated with the behavior; Based on the database associated with the application, a set of text interpretations for the set of links are determined; as well as Based on the set of text interpretations, a text description is determined to describe the behavior, the text description being represented in natural language.
2. The method according to claim 1, wherein extracting the set of links comprises: Obtain the call stack associated with the behavior from the log data, the call stack including multiple links for executing the behavior; as well as Based on predetermined key features, the set of links is determined from the call stack.
3. The method of claim 1, wherein determining the set of links from the call stack comprises at least one of the following: Using the aforementioned key features, text filtering is performed on the multiple links in the call stack to determine the set of links; or The set of links is determined based on the distance between the multiple links in the call stack and the key feature.
4. The method according to claim 1, wherein the database includes a mapping relationship between links and text interpretations, and determining the set of text interpretations for the set of links includes: For each link in the set of links, the text interpretation associated with that link is determined based on the mapping relationship.
5. The method of claim 4, wherein determining the text interpretation associated with the link comprises: Based on the delimiters in the link, at least one string is determined; as well as Match the at least one string in the mapping relationship to determine the text interpretation.
6. The method of claim 4, wherein determining the set of text interpretations for the set of links comprises: Determine prompt words, which instruct a machine learning model to determine the set of text interpretations for the set of links based on the mapping relationship; as well as Receive the machine learning model's response to the prompt word.
7. The method of claim 6, wherein the prompt word further instructs the machine learning model to determine, based on the set of text interpretations, the text description used to describe the behavior.
8. The method of claim 6, wherein the text description includes at least one of the following associated with the behavior: a scenario, indicating the initiator that triggers the behavior; a triggering reason, indicating at least one of the following: interactive behavior, changes in page cycle or application cycle, changes in the page, and The prompt further instructs the machine learning model to determine the scenario or triggering cause.
9. The method according to claim 3, wherein the key features include at least one of the following: user interaction, page features, component lifecycle, application lifecycle, or callback behavior.
10. An apparatus for managing the behavior of an application, comprising: An extraction module is configured to, during the operation of the application, in response to determining the behavior of the application, extract a set of links associated with the behavior from the application's log data, wherein the links in the set of links point to code segments in the application's code that are associated with the behavior; An interpretation determination module is configured to determine a set of text interpretations for the set of links based on a database associated with the application. as well as A description determination module is configured to determine a text description for describing the behavior based on the set of text interpretations, the text description being expressed in natural language.
11. An electronic device, comprising: At least one processing unit; as well as At least one memory, coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, which, when executed by the at least one processing unit, cause the electronic device to perform the method according to any one of claims 1 to 9.
12. A computer-readable storage medium having stored thereon computer instructions that, when executed by a processor, cause the processor to perform the method according to any one of claims 1 to 9.
13. A computer instruction product comprising computer instructions, wherein the computer instructions, when executed by a processor, implement the method according to any one of claims 1 to 9.