CN109213611B - Cross-process communication method, device, terminal and storage medium - Google Patents

Cross-process communication method, device, terminal and storage medium Download PDF

Info

Publication number
CN109213611B
CN109213611B CN201810866502.0A CN201810866502A CN109213611B CN 109213611 B CN109213611 B CN 109213611B CN 201810866502 A CN201810866502 A CN 201810866502A CN 109213611 B CN109213611 B CN 109213611B
Authority
CN
China
Prior art keywords
service
target
memory area
service request
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810866502.0A
Other languages
Chinese (zh)
Other versions
CN109213611A (en
Inventor
王映理
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai suixun Electronic Technology Co.,Ltd.
Original Assignee
Tianjin ByteDance Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin ByteDance Technology Co Ltd filed Critical Tianjin ByteDance Technology Co Ltd
Priority to CN201810866502.0A priority Critical patent/CN109213611B/en
Publication of CN109213611A publication Critical patent/CN109213611A/en
Application granted granted Critical
Publication of CN109213611B publication Critical patent/CN109213611B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Abstract

The application provides a cross-process communication method, a device, a terminal and a storage medium, wherein the method comprises the following steps: the client process acquires service data corresponding to each server process in the current terminal; the client process determines the current target service; the client process determines a current target server process and a target memory area according to the current target service and the service name corresponding to each server process; and the client process sends a service request to the target memory area so that the target server process obtains the service request from the target memory area. The method realizes cross-process communication between the client process and the server process, is simple in realization mode, does not need developers to define a communication protocol in advance, enables the processes to establish the shared memory access through the protocol to enable other processes to access data, does not need to store the communication protocol in each process of communication, reduces the working difficulty of the developers, and reduces the size and the complexity of an installation package corresponding to each process.

Description

Cross-process communication method, device, terminal and storage medium
Technical Field
The present application relates to the field of computer technologies, and in particular, to a cross-process communication method, an apparatus, a terminal, and a storage medium.
Background
In order to realize parallel operation of programs, the existing operating system has independent processes due to factors such as safety consideration, application management and the like, and cannot access data in the processes mutually. When the processes need to access data of each other, cross-process data calling needs to be carried out in a cross-process communication mode.
In the related art, when a process a needs to access data of a process B, developers corresponding to the process a and the process B need to define a communication protocol between the process a and the process B in advance, and store the communication protocol in the process a and the process B. Then, the process B may create a shared memory according to the communication protocol, and then the process a may access the data of the process B by binding the shared memory.
The cross-process communication mode not only realizes complex process, but also increases the working difficulty of developers and the size and complexity of the installation package corresponding to each process because developers corresponding to each process needing to communicate with each other define the communication protocol in advance and store the communication protocol in each process.
Disclosure of Invention
The embodiment of the application provides a cross-process communication method, a cross-process communication device, a cross-process communication terminal and a storage medium, which are used for solving the technical problems that in the related technology, the implementation process of the cross-process communication method is complex, and because developers corresponding to processes needing to communicate with each other define a communication protocol in advance and store the communication protocol in each process, the working difficulty of the developers is increased, and the size and the complexity of an installation package corresponding to each process are also increased.
An embodiment of one aspect of the present application provides a cross-process communication method, including: the method comprises the steps that a client process obtains service data corresponding to each server process in a current terminal, wherein the service data comprise service names and memory area identifications corresponding to the service names; the client process determines the current target service; the client process determines the current target server process and the target memory area according to the current target service and the service name corresponding to each server process; and the client process sends a service request to the target memory area so that the target server process obtains the service request from the target memory area.
According to the cross-process communication method provided by the embodiment of the application, the service data corresponding to each server process in the current terminal is obtained through the client process, then the current target server process and the target memory area are determined according to the current target service and the service name corresponding to each server process, and the service request is sent to the target memory area, so that the target server process obtains the service request from the target memory area, cross-process communication between the client process and the server process is achieved, the implementation mode is simple, a communication protocol is not required to be defined in advance by a developer, the process establishes the shared memory access through the protocol to enable other processes to access data, the communication protocol is not required to be stored in each communication process, the work difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
In another aspect, an embodiment of the present application provides a cross-process communication method, including: the server process acquires a service request to be processed from a corresponding target memory area; the server process analyzes the service request to determine a method identifier and parameters corresponding to the service request; and the server process calls and runs the method corresponding to the method identifier according to the parameters.
According to the cross-process communication method provided by the embodiment of the application, the service request to be processed is obtained from the corresponding target memory area through the server process, then the service request is analyzed to determine the method identifier and the parameter corresponding to the service request, and then the method corresponding to the method identifier is called and operated according to the parameter, so that cross-process communication between the client process and the server process is realized, the realization mode is simple, a communication protocol is not required to be defined in advance by a developer, so that the process can access data through establishing the shared memory access through the protocol to enable other processes to access the data, the communication protocol is not required to be stored in each process of communication, the working difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
In another aspect of the present application, an embodiment of a cross-process communication device is provided, including: the first obtaining module is used for obtaining service data corresponding to each server process in the current terminal, wherein the service data comprises a service name and a memory area identifier corresponding to the service name; the first determining module is used for determining the current target service; the second determining module is used for determining the current target server process and the target memory area according to the current target service and the service name corresponding to each server process; a first sending module, configured to send a service request to the target memory area, so that the target server process obtains the service request from the target memory area.
According to the cross-process communication device provided by the embodiment of the application, the service data corresponding to each server process in the current terminal is obtained, then the current target server process and the target memory area are determined according to the current target service and the service name corresponding to each server process, and the service request is sent to the target memory area, so that the target server process obtains the service request from the target memory area, the cross-process communication between the client process and the server process is realized, the realization mode is simple, a communication protocol is not required to be defined by a developer in advance, the process establishes the shared memory access through the protocol to enable other processes to access data, the communication protocol is not required to be stored in each communication process, the working difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
In another aspect of the present application, an embodiment of a cross-process communication device is provided, including: the second acquisition module is used for acquiring the service request to be processed from the corresponding target memory area; the analysis module is used for analyzing the service request so as to determine a method identifier and parameters corresponding to the service request; and the second processing module is used for calling and operating the method corresponding to the method identifier according to the parameters.
According to the cross-process communication device provided by the embodiment of the application, the service request to be processed is obtained from the corresponding target memory area, then the service request is analyzed to determine the method identifier and the parameter corresponding to the service request, and then the method corresponding to the method identifier is called and operated according to the parameter, so that cross-process communication between the client process and the server process is realized, the realization method is simple, a communication protocol is not required to be defined in advance by a developer, so that the process establishes the shared memory access through the protocol to enable other processes to access data, the communication protocol is not required to be stored in each process of communication, the working difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
In another embodiment of the present application, a terminal is provided, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the processor implements the cross-process communication method described in the first embodiment and/or the cross-process communication method described in the second embodiment.
The terminal provided by the embodiment of the application realizes cross-process communication between the client process and the server process, is simple in implementation mode, and does not need developers to define a communication protocol in advance, so that the processes create the shared memory access through the protocol to enable other processes to access data, and the communication protocol does not need to be stored in each process of communication, thereby reducing the working difficulty of the developers, and reducing the size and complexity of an installation package corresponding to each process.
In yet another embodiment of the present application, a computer-readable storage medium is provided, on which a computer program is stored, which when executed by a processor implements the cross-process communication method described in the first embodiment and/or the cross-process communication method described in the second embodiment.
The computer-readable storage medium provided by the embodiment of the application realizes cross-process communication between a client process and a server process, is simple in implementation mode, and does not need a developer to define a communication protocol in advance, so that the processes create the shared memory access through the protocol to enable other processes to access data, and the communication protocol does not need to be stored in each process of communication, thereby reducing the working difficulty of the developer, and reducing the size and complexity of an installation package corresponding to each process.
Additional aspects and advantages of the present application will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the present application.
Drawings
The foregoing and/or additional aspects and advantages of the present application will become apparent and readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
fig. 1 is a schematic flowchart of a cross-process communication method according to an embodiment of the present application;
fig. 2 is a schematic flowchart of a cross-process communication method according to another embodiment of the present application;
FIG. 3 is a flowchart illustrating a cross-process communication method according to another embodiment of the present application;
fig. 4 is a schematic structural diagram of a cross-process communication device according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a cross-process communication device according to another embodiment of the present application;
fig. 6 is a schematic structural diagram of a cross-process communication device according to an embodiment of the present application;
fig. 7 is a schematic structural diagram of a cross-process communication device according to another embodiment of the present application;
fig. 8 is a schematic structural diagram of a terminal according to an embodiment of the present application;
fig. 9 is a schematic structural diagram of a terminal according to another embodiment of the present application.
Detailed Description
Reference will now be made in detail to embodiments of the present application, examples of which are illustrated in the accompanying drawings, wherein like or similar reference numerals refer to the same or similar elements or elements having the same or similar function throughout. The embodiments described below with reference to the drawings are exemplary and intended to be used for explaining the present application and should not be construed as limiting the present application.
The method can realize cross-process communication between a client process and a server process, is simple in implementation mode, does not need the developer to define the communication protocol in advance, enables the processes to establish the shared memory access through the protocol to enable other processes to access data, does not need to store the communication protocol in each communication process, reduces the work difficulty of the developer, and reduces the size and the complexity of the installation package corresponding to each process.
A cross-process communication method, an apparatus, a terminal, and a storage medium according to embodiments of the present application are described below with reference to the accompanying drawings.
First, referring to fig. 1 and fig. 2, a cross-process communication method executed by a client process side is specifically described.
Fig. 1 is a flowchart illustrating a cross-process communication method according to an embodiment of the present application.
As shown in fig. 1, the cross-process communication method of the present application may include the following steps:
step 101, a client process acquires service data corresponding to each server process in a current terminal, wherein the service data includes a service name and a memory area identifier corresponding to the service name.
Specifically, the cross-process communication method provided by the embodiment of the present application may be executed by the client process provided by the embodiment of the present application. Wherein the client process can run in the terminal. The terminal can be any hardware device installed with an operating system, such as a smart phone, a tablet computer, and the like.
The client process may be a service that needs to apply another process in the terminal, that is, any process that needs to access data of another process to implement a corresponding function. The server process may be a process capable of providing a service for the client process through the communication interface, and may be any other process except the client process in the current terminal.
For example, assuming that the current terminal includes 4 processes, the processes 1, 2, and 3 may provide services for the process 4 through the communication interface, the process 4 is a client process, the processes 1, 2, and 3 are server processes, and the process 4 may respectively access the data of the processes 1, 2, and 3, to respectively apply the services of the processes 1, 2, and 3, so as to implement corresponding functions.
In the embodiment of the present application, the service name is used to uniquely identify a service that a certain server process can provide, and may be set as needed. And the memory area corresponding to the service name is used for storing the data corresponding to the service name in the server process. And the memory area identifier is used for uniquely identifying the memory area corresponding to the service name and can be set as required.
It should be noted that, in the embodiment of the present application, different service names correspond to different memory areas and memory area identifiers, and one server process may correspond to one or more services, and correspondingly, one server process may correspond to one service name and one memory area identifier, or correspond to multiple service names and multiple memory area identifiers.
In the embodiment of the present application, in order to enable the client process to obtain service data corresponding to each server process in the current terminal, a preset storage location may be determined in the terminal, and each server process may store the corresponding service data in the preset storage location, so that the client process may obtain the service data corresponding to each server process in the current terminal from the preset storage location. That is, step 101 may be specifically implemented by:
and the client process acquires service data corresponding to each server process in the current terminal from a preset storage position of the terminal.
The preset storage location may be determined as needed, for example, a storage location accessible to each process in the terminal, or any process in the terminal that may communicate with a client process or a server process, for example, a system process in the terminal. In this embodiment of the application, the preset storage location may store and manage service data corresponding to each server process.
During specific implementation, each server process can create a memory area corresponding to the service name in the current terminal according to the corresponding service name, and store the created memory area identifier and the corresponding service name into a preset storage position in the terminal, so that the client process can acquire the service name corresponding to each server process and the memory area identifier corresponding to the service name from the preset storage position.
The corresponding service data are stored in the preset storage position through each server process, and then the client process acquires the service data corresponding to each server process from the preset storage position, so that the transmission of the service data corresponding to each server process between the client process and each server process is realized.
At step 102, the client process determines the current target service.
And 103, determining the current target server process and the target memory area by the client process according to the current target service and the service name corresponding to each server process.
The target service is a service required by a client process; the target server process is a server process which can provide required service for the client process; and the target memory area is a memory area corresponding to the target service name and can be used for storing various data corresponding to the target service name.
Specifically, after the client process determines the current target service and the service data corresponding to each server process, it can be determined that the server process that can currently provide the target service is the target server process, and the corresponding memory area is the target memory area.
In an exemplary embodiment, a similarity threshold may be preset, after the client process determines the current target service and the service data corresponding to each server process, the client process may compare the service name corresponding to the current target service with the service name corresponding to each server process, so that the server process corresponding to the service name with the highest similarity, whose similarity with the service name of the target service is greater than the preset similarity threshold, is determined as the server process that can currently provide the target service, i.e., the target server process, and the corresponding memory area is the target service area.
And 104, the client process sends a service request to the target memory area so that the target server process obtains the service request from the target memory area.
Specifically, the client process may analyze the target service to generate a service request, so that after determining the current target server process and the target memory area, the client process may send the service request to the target memory area, so that the target server process obtains the service request from the target memory area, and provides the client process with the required service according to the service request.
The service request may include a service name of the target service, so that after the client process sends the service request to the target memory area, the target server process may obtain the service request from the target memory area and provide the corresponding service for the client process according to the service name in the service request.
In a possible implementation form, multiple method blocks in the target server process can provide the current target service for the client process, and in this embodiment, the client process can also request to access a specific method in the target server process to implement the required service.
That is, the service request may include a method identifier and a parameter corresponding to the target service, so that after the client process sends the service request to the target memory area, the target server process may obtain the service request from the target memory area, and provide the corresponding service for the client process according to the method identifier and the parameter in the service request.
The method identifier is used to uniquely identify a method corresponding to a service required by the client process, or a method corresponding to a certain service that can be provided by a certain server process, and may be set as needed.
According to the cross-process communication method provided by the embodiment of the application, the service data corresponding to each server process in the current terminal is obtained through the client process, then the current target server process and the target memory area are determined according to the current target service and the service name corresponding to each server process, and the service request is sent to the target memory area, so that the target server process obtains the service request from the target memory area, cross-process communication between the client process and the server process is achieved, the implementation mode is simple, a communication protocol is not required to be defined in advance by a developer, the process establishes the shared memory access through the protocol to enable other processes to access data, the communication protocol is not required to be stored in each communication process, the work difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
Through the analysis, the client process obtains the service data corresponding to each server process in the current terminal, and after determining the current target service, the client process can determine the current target server process and the target memory area according to the current target service and the service name corresponding to each server process, so as to send a service request to the target memory area, and enable the target server process to obtain the service request from the target memory area. In practical applications, the client process may send the service request to the target memory area directly, or may send the service request to the target memory area through the proxy class, and the cross-process communication method of the present application is further described below with reference to fig. 2 for the above situation.
Fig. 2 is a flowchart illustrating a cross-process communication method according to another embodiment of the present application.
As shown in fig. 2, the cross-process communication method according to the embodiment of the present application may include the following steps:
step 201, the client process obtains service data corresponding to each server process in the current terminal from a preset storage location of the terminal.
The service data includes a service name and a memory area identifier corresponding to the service name.
At step 202, the client process determines the current target service.
In step 203, the client process determines the current target server process and the target memory area according to the current target service and the service name corresponding to each server process.
The detailed implementation process and principle of the steps 201-203 may refer to the detailed description of the above embodiments, and are not described herein again.
Step 204, the client process creates a target proxy class according to the current target service.
It should be noted that, the step 204 may be executed after the step 203, may be executed before the step 203, and may also be executed simultaneously with the step 203, which is not limited herein.
In step 205, the client process sends a service request to the target memory area through the target proxy class.
It can be understood that, after determining the current target server process and the target memory area according to the current target service and the service name corresponding to each server process, the client process may directly send a service request to the target memory area. In this case, the client process is required to analyze the service required by itself to generate a service request, increasing the operations performed by the client process. Therefore, in this embodiment, in order to reduce operations executed by the client process, a target proxy class may be created according to the current target service, so that the service request is sent to the target memory area through the target proxy class.
Specifically, the client process may determine a method identifier and parameters corresponding to the target service according to the current target service, so as to create the target agent class according to the determined method identifier and parameters. Then, the client process can generate a service request according to the method identifier and the parameter corresponding to the target service by using the created target agent class, and send the service request to the target memory area, so that the server process obtains the service request from the target memory area.
It should be noted that the target agent class may be a dynamic agent class or a static agent class, which is not limited in this application. In the embodiment of the application, in order to simplify the programming work and improve the expandability of the system, a dynamic proxy class may be created, and then a service request may be sent to the target memory area through the dynamic proxy class.
By using the intermediate layer of the target agent class, the service request is indirectly sent to the target memory area, the client process can be well hidden and protected, and the programming flexibility is improved.
In addition, since the method identifier and the parameter corresponding to the target service cannot be directly transmitted through the network, in the embodiment of the present application, the method identifier and the parameter corresponding to the target service may be serialized to generate a service request, and then the service request generated after the serialization is sent to the target memory area.
That is, before step 205, the method may further include:
and the client process carries out serialization processing on the method identifier and the parameter corresponding to the target service by using the target agent class to generate a service request.
The serialization process refers to a process of converting an object into a byte sequence.
Specifically, the client process may first create an object output stream by using the target agent class, and then write the method identifier and the parameter corresponding to the target service by using the writeObject () method of the object output stream, thereby implementing the serialization processing of the method identifier and the parameter corresponding to the target service.
The method identification and the parameters corresponding to the target service are serialized through the client process by using the target proxy class to generate a service request, and the service request is sent to the target memory area through the target proxy class, so that the client process can acquire the service request to be processed from the target memory area, and the transmission of the method identification and the parameters corresponding to the target service between the client process and the server process is realized.
The cross-process communication method provided by the embodiment of the application realizes cross-process communication between the client process and the server process, is simple in implementation mode, does not need developers to define a communication protocol in advance, enables the processes to establish the shared memory access through the protocol to enable other processes to access data, does not need to store the communication protocol in each communication process, reduces the working difficulty of the developers, reduces the size and complexity of an installation package corresponding to each process, sends a service request to a target memory area by using a target agent class, reduces the operation executed by the client process, well hides and protects the client process, and improves the programming flexibility.
The cross-process communication method executed by the server process side is specifically described below with reference to fig. 3.
As shown in fig. 3, the cross-process communication method of the present application may include the following steps:
step 301, the server process obtains a service request to be processed from the corresponding target memory area.
Specifically, the cross-process communication method provided by the embodiment of the present application may be executed by a server process provided by the embodiment of the present application. Wherein, the server process can run in the terminal. The terminal can be any hardware device installed with an operating system, such as a smart phone, a tablet computer, and the like.
Specifically, after the client process obtains service data corresponding to each server process in the current terminal and determines the current target service, the client process can determine the current target server process and the target memory area according to the current target service and the service name corresponding to each server process so as to send a service request to the target memory area, so that the server process can obtain the service request to be processed from the corresponding target memory area.
It can be understood that the service data corresponding to each server process in the current terminal, which is obtained by the client process, may be obtained from a preset storage location, and correspondingly, the server process may further store the corresponding service data in the preset storage location in the terminal, so that the client process in the terminal obtains the service data corresponding to each server process from the preset storage location.
That is, before step 301, the method may further include:
the server process creates a memory area corresponding to the service name in the current terminal according to the corresponding service name;
and the server process stores the created memory area identification and the corresponding service name into a preset storage position in the terminal so that the client process in the terminal can acquire the service name and the memory area identification.
The preset storage location may be determined as needed, for example, a storage location accessible to each process in the terminal, or any process in the terminal that may communicate with a client process or a server process, for example, a system process in the terminal. In the embodiment of the application, the preset storage position may store and manage service data corresponding to each server process.
The corresponding service data is stored in the preset storage position through each server process, and then the client process acquires the service data corresponding to each server process from the preset storage position, so that the transmission of the service data corresponding to each server process between the client process and each server process is realized.
Step 302, the server process parses the service request to determine a method identifier and parameters corresponding to the service request.
And step 303, the server process calls and runs the method corresponding to the method identifier according to the parameters.
Specifically, after the server process obtains the service request to be processed from the corresponding target memory area, the server process may analyze the service request to determine a method identifier and a parameter corresponding to the service request, so as to call and run a method corresponding to the method identifier according to the parameter.
Furthermore, after the server process calls and runs the method corresponding to the method identifier, the running result can be sent to the target memory area, so that the client process can obtain the running result from the target memory area, and the service required by the client process is realized by accessing the data of the server process.
For example, in the current terminal, the QQ music process is a client process, the QQ process and the QQ game process are server processes, the QQ process may obtain information of the user, including name, avatar, and the like, and the QQ game process may obtain game data of the user. Then, a getAccount communication interface may be defined first, the communication interface may implement returning information of an account, implement the communication interface in a QQ process, and then send the service name of the service and the memory area identifier a corresponding to the service name to a preset storage location c. Similarly, the service name corresponding to the QQ game process and the memory area identifier corresponding to the service name may be sent to the preset storage location c. When the qq music process needs to acquire the information of the user, the service name of each server process and the memory area identifier corresponding to the service name can be acquired from a preset storage position c. After the memory areas corresponding to the QQ process and the memory area identifier A are respectively determined as the target server process and the target memory area in the QQ music process according to the required service, the acquired service name of each server process and the memory area identifier corresponding to the service name, the service request can be sent to the target memory area A, and therefore the QQ process can acquire information such as the name and the head portrait of the user by calling getAccount. After the QQ process acquires the information such as the name, the head portrait and the like of the user, the information such as the name, the head portrait and the like of the user can be sent to the target memory area, so that the QQ music process can acquire the information such as the name, the head portrait and the like of the user from the target memory area, and the service required by the QQ music process can be realized by accessing the data of the QQ process.
In specific implementation, the server process may call and run a method corresponding to the method identifier in a reflection call mode according to the parameter.
The method corresponding to the method identification is called and operated in a reflection calling mode, the method corresponding to the method identification is dynamically and flexibly executed, and the flexibility of the program is improved.
It should be noted that, because the service request to be processed, which is obtained by the server process from the corresponding target memory area, may be generated by performing serialization processing on the method identifier and the parameter corresponding to the target service, in this embodiment of the present application, the server process may also perform deserialization processing on the obtained service request to determine the method identifier and the parameter corresponding to the service request, and then call and run the method corresponding to the method identifier according to the parameter.
The deserialization process refers to a process of restoring a byte sequence to an object.
Specifically, the server process may create an object input stream, and then read the service request by using a readObject () method of the object input stream, thereby implementing deserialization processing on the service request to determine a method identifier and a parameter corresponding to the service request.
According to the cross-process communication method provided by the embodiment of the application, the service request to be processed is obtained from the corresponding target memory area through the server process, then the service request is analyzed to determine the method identifier and the parameter corresponding to the service request, and then the method corresponding to the method identifier is called and operated according to the parameter, so that cross-process communication between the client process and the server process is realized, the realization mode is simple, a communication protocol is not required to be defined in advance by a developer, so that the process can access data through establishing the shared memory access through the protocol to enable other processes to access the data, the communication protocol is not required to be stored in each process of communication, the working difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
The cross-process communication apparatus according to the embodiment of the present application is described below with reference to the drawings.
Fig. 4 is a schematic structural diagram of a cross-process communication device according to an embodiment of the present application.
As shown in fig. 4, the cross-process communication device includes: a first obtaining module 41, a first determining module 42, a second determining module 43 and a first sending module 44.
The first obtaining module 41 is configured to obtain service data corresponding to each server process in the current terminal, where the service data includes a service name and a memory area identifier corresponding to the service name;
a first determining module 42, configured to determine a current target service;
a second determining module 43, configured to determine a current target service-side process and a target memory area according to the current target service and the service name corresponding to each service-side process;
the first sending module 44 is configured to send a service request to the target memory area, so that the target server process obtains the service request from the target memory area.
Specifically, the cross-process communication device may be configured in a terminal, and configured to execute the cross-process communication method described in fig. 1 or 2. The terminal may be any hardware device installed with an operating system, such as a smart phone, a tablet computer, and the like.
As an optional implementation form, the first obtaining module 41 is specifically configured to:
and acquiring service data corresponding to each server process in the current terminal from a preset storage position of the terminal.
It should be noted that the foregoing explanation of the cross-process communication method embodiment shown in fig. 1 is also applicable to the cross-process communication apparatus of the embodiment, and the implementation principle is similar, and is not repeated here.
According to the cross-process communication device provided by the embodiment of the application, the service data corresponding to each server process in the current terminal is obtained, then the current target server process and the target memory area are determined according to the current target service and the service name corresponding to each server process, and the service request is sent to the target memory area, so that the target server process obtains the service request from the target memory area, the cross-process communication between the client process and the server process is realized, the realization mode is simple, a communication protocol is not required to be defined by a developer in advance, the process establishes the shared memory access through the protocol to enable other processes to access data, the communication protocol is not required to be stored in each communication process, the working difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
Fig. 5 is a schematic structural diagram of a cross-process communication device according to another embodiment of the present application.
As shown in fig. 5, based on the method shown in fig. 4, the cross-process communication apparatus may further include:
a first creating module 51, configured to create a target proxy class according to a current target service;
accordingly, the first sending module 44 is specifically configured to:
and sending a service request to the target memory area through the target agent class.
In one possible implementation form, the cross-process communication device may further include:
the first processing module 52 is configured to perform serialization processing on the method identifier and the parameter corresponding to the target service by using the target agent class, and generate a service request.
It should be noted that the foregoing explanation of the cross-process communication method embodiment shown in fig. 2 is also applicable to the cross-process communication apparatus of the embodiment, and the implementation principle is similar, and is not repeated here.
The cross-process communication device provided by the embodiment of the application realizes cross-process communication with a server process, is simple in implementation mode, does not need developers to define a communication protocol in advance, enables the processes to establish the shared memory access through the protocol to enable other processes to access data, does not need to store the communication protocol in each process of communication, reduces the working difficulty of the developers, reduces the size and complexity of an installation package corresponding to each process, sends a service request to a target memory area by utilizing a target agent class, simplifies the operation executed by the client process, well hides and protects the client process, and improves the programming flexibility.
In an exemplary embodiment, a cross-process communication device is also provided.
Fig. 6 is a schematic structural diagram of a cross-process communication device according to another embodiment of the present application.
Referring to fig. 6, the cross-process communication apparatus of the present application includes: a second obtaining module 61, an analyzing module 62 and a second processing module 63.
The second obtaining module 61 is configured to obtain a service request to be processed from a corresponding target memory area;
the analysis module 62 is configured to analyze the service request to determine a method identifier and a parameter corresponding to the service request;
and the second processing module 63 is configured to call and run a method corresponding to the method identifier according to the parameter.
Specifically, the cross-process communication apparatus may be configured in a terminal, and configured to execute the cross-process communication method described in fig. 3. The terminal may be any hardware device installed with an operating system, such as a smart phone, a tablet computer, and the like.
As an optional implementation form, the second processing module 63 is specifically configured to:
and calling and running the method corresponding to the method identifier in a reflection calling mode according to the parameters.
It should be noted that the foregoing explanation of the cross-process communication method embodiment shown in fig. 3 is also applicable to the cross-process communication apparatus of the embodiment, and the implementation principle is similar, and is not repeated here.
According to the cross-process communication device provided by the embodiment of the application, the service request to be processed is obtained from the corresponding target memory area, then the service request is analyzed to determine the method identifier and the parameter corresponding to the service request, and then the method corresponding to the method identifier is called and operated according to the parameter, so that cross-process communication between the client process and the server process is realized, the realization method is simple, a communication protocol is not required to be defined in advance by a developer, so that the process establishes the shared memory access through the protocol to enable other processes to access data, the communication protocol is not required to be stored in each process of communication, the working difficulty of the developer is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
Fig. 7 is a schematic structural diagram of a cross-process communication device according to another embodiment of the present application.
As shown in fig. 7, based on the illustration in fig. 6, the cross-process communication apparatus of the present application may further include: a second creating module 71 and a second sending module 72.
The second creating module 71 is configured to create, according to the corresponding service name, a memory area corresponding to the service name in the terminal where the terminal is currently located;
a second sending module 72, configured to send the created memory area identifier and the corresponding service name to a preset storage location, so that a client process in the terminal obtains the service name and the memory area identifier.
It should be noted that the foregoing explanation of the cross-process communication method embodiment shown in fig. 3 is also applicable to the cross-process communication apparatus of the embodiment, and the implementation principle is similar, and is not repeated here.
According to the cross-process communication device, the service request to be processed is obtained from the corresponding target memory area, then the service request is analyzed, the method identification and the parameter corresponding to the service request are determined, then the method corresponding to the method identification is called and operated according to the parameter, cross-process communication between the client process and the server process is achieved, the implementation mode is simple, developers do not need to define a communication protocol in advance, the processes can access data through the shared memory access created by the protocol, the communication protocol does not need to be stored in each process of communication, the work difficulty of the developers is reduced, and the size and the complexity of an installation package corresponding to each process are reduced.
In order to implement the above embodiments, the present application also provides a terminal.
Fig. 8 is a schematic structural diagram of a terminal according to an embodiment of the present application. The terminal shown in fig. 8 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present application.
As shown in fig. 8, the terminal 200 includes: the memory 210, the processor 220, and a computer program stored in the memory 210 and executable on the processor 220, when the processor 220 executes the program, the cross-process communication method executed by the client process side and/or the cross-process communication method executed by the server process side are/is implemented.
In an alternative implementation form, as shown in fig. 9, the terminal 200 may further include: a memory 210 and a processor 220, a bus 230 connecting different components (including the memory 210 and the processor 220), wherein the memory 210 stores a computer program, and when the processor 220 executes the program, the cross-process communication method according to the embodiment of the present application is implemented.
Bus 230 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures include, but are not limited to, Industry Standard Architecture (ISA) bus, micro-channel architecture (MAC) bus, enhanced ISA bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
Terminal 200 typically includes a variety of computer readable media. Such media can be any available media that is accessible by terminal 200 and includes both volatile and nonvolatile media, removable and non-removable media.
Memory 210 may also include computer system readable media in the form of volatile memory, such as Random Access Memory (RAM)240 and/or cache memory 250. The terminal 200 may further include other removable/non-removable, volatile/nonvolatile computer system storage media. By way of example only, storage system 260 may be used to read from and write to non-removable, nonvolatile magnetic media (not shown in FIG. 9, and commonly referred to as a "hard drive"). Although not shown in FIG. 9, a magnetic disk drive for reading from and writing to a removable, nonvolatile magnetic disk (e.g., a "floppy disk") and an optical disk drive for reading from or writing to a removable, nonvolatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to bus 230 by one or more data media interfaces. Memory 210 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the application.
A program/utility 280 having a set (at least one) of program modules 270, including but not limited to an operating system, one or more application programs, other program modules, and program data, each of which or some combination thereof may comprise an implementation of a network environment, may be stored in, for example, the memory 210. The program modules 270 generally perform the functions and/or methodologies of the embodiments described herein.
The terminal 200 may also communicate with one or more external devices 290 (e.g., keyboard, pointing device, display 291, etc.), with one or more devices that enable a user to interact with the terminal 200, and/or with any devices (e.g., network card, modem, etc.) that enable the terminal 200 to communicate with one or more other computing devices. Such communication may occur via input/output (I/O) interfaces 292. Also, the terminal 200 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN) and/or a public network such as the Internet) via the network adapter 293. As shown, the network adapter 293 communicates with the other modules of the terminal 200 via the bus 230. It should be appreciated that although not shown in the figures, other hardware and/or software modules may be used in conjunction with the terminal 200, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, among others.
It should be noted that the foregoing explanation of the cross-process communication method embodiment shown in fig. 1 to fig. 3 is also applicable to the terminal of the embodiment, and is not repeated here.
The terminal provided by the embodiment of the application realizes cross-process communication between the client process and the server process, is simple in implementation mode, and does not need developers to define a communication protocol in advance, so that the processes create the shared memory access through the protocol to enable other processes to access data, and the communication protocol does not need to be stored in each process of communication, thereby reducing the working difficulty of the developers, and reducing the size and complexity of an installation package corresponding to each process.
To implement the above embodiments, the present application also provides a computer-readable storage medium.
The computer readable storage medium stores thereon a computer program, which when executed by a processor, implements the aforementioned cross-process communication method executed by the client process side and/or the cross-process communication method executed by the server process side.
In an alternative implementation, the embodiments may be implemented in any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present application may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
To achieve the above embodiments, the present application further provides a computer program, which when the instructions in the computer program product are executed by a processor, executes the cross-process communication method executed by the client process side and/or the cross-process communication method executed by the server process side.
In the description herein, reference to the description of the term "one embodiment," "some embodiments," "an example," "a specific example," or "some examples," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the application.
Furthermore, the terms "first", "second" and "first" are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature.
Any process or method descriptions in flow charts or otherwise described herein may be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps of the process, and the scope of the preferred embodiments of the present application includes other implementations in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present application.
It should be understood that portions of the present application may be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, the various steps or methods may be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, any one or combination of the following techniques, which are known in the art, may be used: a discrete logic circuit having a logic gate circuit for implementing a logic function on a data signal, an application specific integrated circuit having an appropriate combinational logic gate circuit, a Programmable Gate Array (PGA), a Field Programmable Gate Array (FPGA), or the like.
It will be understood by those skilled in the art that all or part of the steps carried by the method for implementing the above embodiments may be implemented by hardware related to instructions of a program, which may be stored in a computer readable storage medium, and when the program is executed, the program includes one or a combination of the steps of the method embodiments.
The storage medium mentioned above may be a read-only memory, a magnetic or optical disk, etc. Although embodiments of the present application have been shown and described above, it is understood that the above embodiments are exemplary and should not be construed as limiting the present application, and that variations, modifications, substitutions and alterations may be made to the above embodiments by those of ordinary skill in the art within the scope of the present application.

Claims (16)

1. A cross-process communication method is characterized by comprising the following steps:
the method comprises the steps that a client process obtains service data corresponding to each server process in a current terminal, wherein the service data comprise service names and memory area identifications corresponding to the service names;
the client process determines the current target service;
the client process determines the current target server process and the target memory area according to the current target service and the service name corresponding to each server process;
the client process sends a service request to the target memory area so that the target server process obtains the service request from the target memory area;
the client process analyzes the target service to generate a service request, and after the current target server process and the target memory area are determined, the client process sends the service request to the target memory area so that the target server process obtains the service request from the target memory area.
2. The method of claim 1, wherein the step of the client process obtaining the service data corresponding to each server process in the current terminal comprises:
and the client process acquires service data corresponding to each server process in the current terminal from a preset storage position of the terminal.
3. The method of claim 1, wherein after the client process obtains the service data corresponding to each server process in the current terminal, the method further comprises:
the client process creates a target agent class according to the current target service;
the client process sends a service request to the target memory area, and the service request comprises the following steps:
and the client process sends a service request to the target memory area through the target agent class.
4. The method as claimed in claim 3, wherein before the client process sends the service request to the target memory area through the target proxy class, the method further comprises:
and the client process carries out serialization processing on the method identifier and the parameter corresponding to the target service by using the target agent class to generate the service request.
5. A cross-process communication method is characterized by comprising the following steps:
the method comprises the steps that a server process obtains a service request to be processed from a corresponding target memory area, wherein the corresponding target memory area is determined by a client process according to current target service and service names corresponding to the server processes, and the service request to be processed is generated by analyzing the target service by the client process;
the server process analyzes the service request to determine a method identifier and parameters corresponding to the service request;
the server process calls and runs the method corresponding to the method identifier according to the parameters;
after the server process calls and runs the method corresponding to the method identifier, the running result is sent to the target memory area, so that the client process can obtain the running result from the target memory area.
6. The method as claimed in claim 5, wherein before the server process obtains the pending service request from the corresponding target memory area, the method further comprises:
the server process creates a memory area corresponding to the service name in the current terminal according to the corresponding service name;
and the server process stores the created memory area identification and the corresponding service name into a preset storage position in the terminal so that a client process in the terminal can acquire the service name and the memory area identification.
7. The method according to claim 5 or 6, wherein the server process calls and runs the method corresponding to the method identifier according to the parameter, and the method comprises the following steps:
and the server process calls and runs the method corresponding to the method identifier in a reflection calling mode according to the parameters.
8. A cross-process communication device, comprising:
the first obtaining module is used for obtaining service data corresponding to each server process in the current terminal, wherein the service data comprises a service name and a memory area identifier corresponding to the service name;
the first determining module is used for determining the current target service;
the second determining module is used for determining the current target server process and the target memory area according to the current target service and the service name corresponding to each server process;
a first sending module, configured to send a service request to the target memory area, so that the target server process obtains the service request from the target memory area;
the first sending module is specifically configured to analyze the target service to generate a service request, and send the service request to the target memory area after determining the current target server-side process and the target memory area, so that the target server-side process obtains the service request from the target memory area.
9. The apparatus of claim 8, wherein the first obtaining module is specifically configured to:
and acquiring service data corresponding to each server process in the current terminal from a preset storage position of the terminal.
10. The apparatus of claim 8, further comprising:
the first establishing module is used for establishing a target agent class according to the current target service;
the first sending module is specifically configured to:
and sending a service request to the target memory area through the target agent class.
11. The apparatus of claim 10, further comprising:
and the first processing module is used for utilizing the target agent class to carry out serialization processing on the method identifier and the parameter corresponding to the target service so as to generate the service request.
12. A cross-process communication device, comprising:
a second obtaining module, configured to obtain a service request to be processed from a corresponding target memory area, where the corresponding target memory area is determined by a client process according to a current target service and a service name corresponding to each server process, and the service request to be processed is generated by analyzing the target service by the client process;
the analysis module is used for analyzing the service request so as to determine a method identifier and parameters corresponding to the service request;
the second processing module is used for calling and operating the method corresponding to the method identifier according to the parameter;
after the method corresponding to the method identifier is called and operated, the second processing module is further configured to send an operation result to the target memory area, so that the client process obtains the operation result from the target memory area.
13. The apparatus of claim 12, further comprising:
the second establishing module is used for establishing a memory area corresponding to the service name in the current terminal according to the corresponding service name;
and the second sending module is used for storing the created memory area identifier and the corresponding service name into a preset storage position in the terminal so that a client process in the terminal can acquire the service name and the memory area identifier.
14. The apparatus according to claim 12 or 13, wherein the second processing module is specifically configured to:
and calling and running the method corresponding to the method identifier in a reflection calling mode according to the parameters.
15. A terminal comprising a memory, a processor and a computer program stored on the memory and operable on the processor, wherein the processor executes the program to implement a cross-process communication method according to any of claims 1 to 4 and/or a cross-process communication method according to any of claims 5 to 7.
16. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out a cross-process communication method according to any one of claims 1 to 4 and/or a cross-process communication method according to any one of claims 5 to 7.
CN201810866502.0A 2018-08-01 2018-08-01 Cross-process communication method, device, terminal and storage medium Active CN109213611B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810866502.0A CN109213611B (en) 2018-08-01 2018-08-01 Cross-process communication method, device, terminal and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810866502.0A CN109213611B (en) 2018-08-01 2018-08-01 Cross-process communication method, device, terminal and storage medium

Publications (2)

Publication Number Publication Date
CN109213611A CN109213611A (en) 2019-01-15
CN109213611B true CN109213611B (en) 2021-07-02

Family

ID=64988420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810866502.0A Active CN109213611B (en) 2018-08-01 2018-08-01 Cross-process communication method, device, terminal and storage medium

Country Status (1)

Country Link
CN (1) CN109213611B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976922B (en) * 2019-03-04 2021-02-02 上海连尚网络科技有限公司 Discovery method, device and computer storage medium between small program platforms
CN111338828B (en) * 2020-03-24 2022-04-08 广州方硅信息技术有限公司 Terminal equipment and application program interface calling control method thereof
CN112363676A (en) * 2020-11-18 2021-02-12 无锡江南计算技术研究所 Control method and system based on low access delay distributed storage system
CN113760578B (en) * 2021-08-28 2022-04-19 特斯联科技集团有限公司 Method, device, equipment and computer program for cross-process rapid transmission of big data

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448018A (en) * 2008-12-26 2009-06-03 中兴通讯股份有限公司 Interprocess communication method and device thereof
CN102055602B (en) * 2009-10-28 2013-07-10 中国移动通信集团湖南有限公司 Method, device and system for acquiring execution result
CN102103526A (en) * 2011-02-14 2011-06-22 博视联(苏州)信息科技有限公司 Method and system for performing inter-process communication between server and client by service management
JP6238610B2 (en) * 2013-07-18 2017-11-29 キヤノン株式会社 Information processing terminal, control method, and program
CN106598696B (en) * 2016-11-08 2020-07-28 北京华为数字技术有限公司 Method and device for data interaction between virtual machines
CN107450998B (en) * 2017-07-31 2020-06-02 北京三快在线科技有限公司 Method, device, medium and electronic equipment for synchronizing information among multiple applications in real time

Also Published As

Publication number Publication date
CN109213611A (en) 2019-01-15

Similar Documents

Publication Publication Date Title
CN109213611B (en) Cross-process communication method, device, terminal and storage medium
CN109032706B (en) Intelligent contract execution method, device, equipment and storage medium
US20020052977A1 (en) Method and apparatus for adapting and hosting legacy user interface controls
CN110083399B (en) Applet running method, computer device and storage medium
CN109218393B (en) Push implementation method, device, equipment and computer storage medium
CN111737022A (en) Interface calling method, system, equipment and medium based on micro-service
CN113934464A (en) Method and device for starting android application in Linux system and electronic equipment
CN107045475B (en) Test method and device
CN109669787B (en) Data transmission method and device, storage medium and electronic equipment
CN109101228B (en) Application program execution method and device
CN109218356B (en) Method and apparatus for managing stateful applications on a server
WO2022062634A1 (en) Method, apparatus, device, and storage medium for integrating map service in service
CN113986995A (en) Request distribution method and device, storage medium and electronic equipment
CN114077367A (en) Method and device for realizing shortcut of android application in Linux system
CN110515749B (en) Method, device, server and storage medium for queue scheduling of information transmission
CN112925796A (en) Write consistency control method, device, equipment and storage medium
CN109144864B (en) Method and device for testing window
CN109672722B (en) Data deployment method and device, computer storage medium and electronic equipment
CN112231290A (en) Method, device and equipment for processing local log and storage medium
CN112667228A (en) Application program construction method and device and computer equipment
CN113438419B (en) Camera starting method and device and electronic equipment
CN110310139B (en) Data delivery method and data delivery engine device
CN109376023B (en) Method and equipment for generating calling information and issuing return code group
CN110602162B (en) Terminal evidence obtaining method, device, equipment and storage medium
CN112506592A (en) Method, device, equipment and storage medium for determining page loading duration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210714

Address after: 200433 no.465 Guohe Road, Yangpu District, Shanghai

Patentee after: Shanghai suixun Electronic Technology Co.,Ltd.

Address before: 300000 Tianjin Binhai New Area Binhai Science Park, No. 39, High-tech Six Road, 9-3-401

Patentee before: TIANJIN BYTEDANCE TECHNOLOGY Co.,Ltd.