WO2023065740A1 - 窗口显示方法、装置、设备和存储介质 - Google Patents

窗口显示方法、装置、设备和存储介质 Download PDF

Info

Publication number
WO2023065740A1
WO2023065740A1 PCT/CN2022/106580 CN2022106580W WO2023065740A1 WO 2023065740 A1 WO2023065740 A1 WO 2023065740A1 CN 2022106580 W CN2022106580 W CN 2022106580W WO 2023065740 A1 WO2023065740 A1 WO 2023065740A1
Authority
WO
WIPO (PCT)
Prior art keywords
window
app
display layer
virtual display
rendering component
Prior art date
Application number
PCT/CN2022/106580
Other languages
English (en)
French (fr)
Inventor
李京
Original Assignee
北京字节跳动网络技术有限公司
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 北京字节跳动网络技术有限公司 filed Critical 北京字节跳动网络技术有限公司
Publication of WO2023065740A1 publication Critical patent/WO2023065740A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Definitions

  • the present disclosure relates to the field of computer technology, and in particular to a window display method, device, equipment, storage medium, computer program product and computer program.
  • the application program APP running the Android system can be supported on the Linux system.
  • the window manager of the Linux system will directly display the contents of the window of the Android APP.
  • the window manager of the Linux system displays the window of the Android APP, it directly receives the window rendered by the Android side for display. If there are multiple Android windows, such as superimposed display, etc., the window manager of the Linux system needs to re-render and display multiple Android windows. The operation is more complicated.
  • the present disclosure provides a window display method, device, device, storage medium, computer program product and computer program, which are used to solve the defect of cumbersome operation when a Linux system displays multiple Android windows in the prior art.
  • the present disclosure provides a window display method.
  • the window display method is applied to an electronic device, and the electronic device includes: a first operating system and a second operating system deployed in the first operating system in a containerized manner, the first operating system includes a window manager, and the second operating system
  • the operating system includes a first application program APP and an interface rendering component; the method includes:
  • the interface rendering component determines a first virtual display layer corresponding to the first APP
  • the interface rendering component renders at least one first window of the first APP on the first virtual display layer to obtain the rendered at least one first window;
  • the interface rendering component sends the rendered at least one first window to the window manager, and the window manager displays the first window.
  • the interface rendering component determines the first virtual display layer corresponding to the first APP, including:
  • the interface rendering component determines the first virtual display layer corresponding to the first APP according to the target correspondence and the allocation rule of the virtual display layer; the target correspondence includes: the correspondence between at least one APP and at least one virtual display layer relation.
  • the method further includes:
  • first virtual display layer corresponding to the first APP does not exist, create the first virtual display layer, and establish a correspondence between the first APP and the first virtual display layer.
  • the second operating system further includes a second APP
  • the method further includes:
  • the interface rendering component is on the first virtual display layer Rendering at least one second window of the second APP and at least one first window of the first APP to obtain a rendered first target window;
  • the interface rendering component sends the rendered first target window to the window manager, and the window manager displays the first target window.
  • the method further includes:
  • a window display method after creating the second virtual display layer, it further includes:
  • the interface rendering component renders at least one second window of the second APP and at least one first window of the first APP on the second virtual display layer to obtain a rendered second target window;
  • the interface rendering component sends the rendered second target window to the window manager, and the window manager displays the second target window.
  • the interface rendering component determines the first virtual display layer corresponding to the first APP, it further includes:
  • the interface rendering component receives the start request of the first APP; or,
  • the interface rendering component receives at least one update indication of the first window sent by the first APP.
  • the second operating system further includes a proxy service component; the interface rendering component sends the rendered at least one first window to the window manager, including:
  • the interface rendering component sends the rendered at least one first window to the window manager through the proxy service component.
  • the present disclosure also provides a window display device.
  • the electronic device includes: a first operating system and a second operating system deployed in the first operating system in a containerized manner, the first operating system includes a window manager, and the second operating system includes a second operating system
  • the window display device includes:
  • a processing module configured to determine a first virtual display layer corresponding to the first APP
  • the processing module is further configured to render at least one first window of the first APP on the first virtual display layer to obtain the rendered at least one first window;
  • a sending module configured to send the rendered at least one first window to the window manager, and the window manager displays the first window.
  • the present disclosure also provides an electronic device, including a memory, a processor, and a computer program stored on the memory and operable on the processor.
  • the processor executes the program, it implements any of the window display methods described above. A step of.
  • the present disclosure also provides a non-transitory computer-readable storage medium on which a computer program is stored, and the computer program is executed by a processor to implement the steps of any one of the window display methods described above.
  • the present disclosure also provides a computer program product, the computer program product includes a computer program stored on a non-transitory computer-readable storage medium, the computer program includes program instructions, and when the program instructions are executed by a computer, the computer program is The processor executes to implement the steps of any one of the window display methods described above.
  • the present disclosure also provides a computer program, which is executed by a processor to implement the steps of any one of the window display methods described above.
  • the first virtual display layer corresponding to the first APP is determined through the interface rendering component, and then the interface rendering component is on the first virtual display layer Render at least one first window of the first APP.
  • the first virtual display layer determined by the interface rendering component can perform one or more first windows of the first APP.
  • the window of the first APP is rendered by the rendering method of the second operating system. At this time, there is no need for the first operating system to render the window, and there is no need for multiple interactions between the first operating system and the second operating system to display information on the window.
  • the interface rendering component sends the rendered at least one first window to the window manager of the first operating system, and the window manager displays the first window.
  • the windows of the second operating system can be displayed relatively quickly in the first operating system, thereby improving window rendering and display efficiency.
  • Fig. 1 is one of the schematic flow charts of the window display method provided by the embodiment of the present disclosure
  • Fig. 2 is one of the interactive flow diagrams of the window display method provided by the embodiment of the present disclosure
  • Fig. 3 is the second schematic flow diagram of the window display method provided by the embodiment of the present disclosure.
  • Fig. 4 is the second schematic diagram of the interaction process of the window display method provided by the embodiment of the present disclosure.
  • Fig. 5 is the third schematic flow diagram of the window display method provided by the embodiment of the present disclosure.
  • Fig. 6 is the third schematic diagram of the interaction process of the window display method provided by the embodiment of the present disclosure.
  • FIG. 7 is the fourth schematic diagram of the interaction process of the window display method provided by the embodiment of the present disclosure.
  • Fig. 8 is the fifth schematic diagram of the interaction process of the window display method provided by the embodiment of the present disclosure.
  • FIG. 9 is a schematic structural diagram of a window display device provided by an embodiment of the present disclosure.
  • Fig. 10 is a schematic structural diagram of an electronic device provided by an embodiment of the present disclosure.
  • the window task of the application displays the application as a container of the application with a specific width and height.
  • Each application can create one or more window tasks for displaying different content.
  • the window in the embodiment of the present disclosure refers to the window task.
  • the second operating system runs on the first operating system in a containerized manner.
  • containerization refers to LXC, LXD, Docker, etc. based on the characteristics of the Linux kernel, which make full use of the characteristics of cgroups and Namespace, isolate processes and resources, and make the second operating system efficient and lightweight accomplish.
  • both the first operating system and the second operating system are operating systems based on Linux Kernel, and the two may be the same, for example, the first operating system and the second operating system are both It is a Linux OS distribution (such as Ubuntu) or both are Android; the two can also be different, for example, one of the first operating system and the second operating system is a Linux OS distribution, and the other is Android (Android).
  • Linux OS distribution such as Ubuntu
  • Android Android
  • the communication and notification between the first operating system and the second operating system can be through network socket Socket, message queue MQ, FIFOs (named pipes), shared memory Such as inter-process communication IPC implementation or broadcast notification Broadcast at the system level.
  • Android has multiple derivative versions, and Android (Android) referred to in this disclosure covers Android OS issued by Google, AOSP and various derivative systems based on AOSP, such as MIUI, EMUI, One UI, etc. .
  • Linux operating system also known as GNU/Linux system, such as Ubuntu, Debian, RedHat, etc. It should be noted that Linux is not limited to running on a physical machine, but can also be an operating system hosted on other operating systems, such as WSL in Windows systems
  • the electronic devices in the embodiments of the present disclosure include, for example, terminal devices such as mobile phones, tablet computers, notebook computers, and computers.
  • the implementation process and principles of the embodiments of the present disclosure will be described below by taking the first operating system as Linux OS and the second operating system as Android as an example, which is only illustrative and does not specifically limit the present disclosure.
  • the window manager of the Linux system will directly display the contents of the window of the Android APP.
  • the window manager of the Linux system displays the window of the Android APP, it directly receives the window rendered by the Android side for display. If there are multiple Android windows, such as superimposed display, etc., the window manager of the Linux system needs to re-render and display multiple Android windows. The operation is more complicated.
  • the virtual display layer corresponding to the Android APP is first determined by the interface rendering component of the Android system, and then one or more windows of the Android APP are displayed on the virtual display layer. rendering. Finally, the rendered first window is sent to the Linux system for display.
  • Fig. 1 is one of the schematic flowcharts of the window display method provided by the present disclosure.
  • Fig. 2 is one of the schematic diagrams of the interaction process of the window display method provided by the embodiment of the present disclosure.
  • the window display method of the embodiment of the present disclosure is applied to an electronic device.
  • the electronic device includes: a first operating system and a second operating system deployed in the first operating system in a containerized manner.
  • the first operating system includes a window manager.
  • the second operating system includes a first application program APP and an interface rendering component.
  • the window display methods include:
  • Step 101 the interface rendering component determines a first virtual display layer corresponding to a first APP.
  • the interface rendering component may be a SurfaceFlinger component, and its main function is to receive graphic display data from multiple sources, synthesize and render them.
  • the above-mentioned first APP is a target APP included in the second operating system and needs to be displayed on the first operating system.
  • the first virtual display layer is a virtual display layer existing in the second operating system.
  • the first virtual display layer can be the virtual display layer newly created by the interface rendering component, or the first virtual display layer created by the previous program.
  • the interface rendering component establishes the created first virtual display layer and the first virtual display layer. A corresponding relationship between APPs. At this time, the first virtual display layer may receive the graphic display data of the first APP, and synthesize and render it.
  • the SurfaceFlinger component of the Android system first creates the first virtual display layer corresponding to the shopping APP, and establishes the shopping APP and the first virtual display layer. corresponding relationship.
  • the SurfaceFlinger component of the Android system can directly establish a corresponding relationship between the shopping APP and the created first virtual display layer.
  • Step 102 The interface rendering component renders at least one first window of the first APP on the first virtual display layer to obtain the rendered at least one first window.
  • the above-mentioned first window may be a window generated after the first APP is started or updated, or may be a window related to the first APP popped up by the first system.
  • the interface rendering component may render a first window of the first APP on the first virtual display layer to obtain a rendered first window.
  • the interface rendering component may also render and synthesize multiple first windows of the first APP on the first virtual display layer to obtain one or more first windows after rendering.
  • the SurfaceFlinger component of the Android system renders the online store on the first virtual display layer corresponding to the shopping APP. window.
  • the SurfaceFlinger component of the Android system is displayed on the first APP that has a corresponding relationship with the shopping APP.
  • the first window after rendering on the virtual display layer and superimposing the synthetic online store window and the communication window.
  • Step 103 the interface rendering component sends the rendered at least one first window to the window manager, and the window manager displays the first window.
  • the interface rendering component when the interface rendering component renders on the first virtual display layer and obtains the rendered first window on the first virtual display layer, the interface rendering component sends the rendered first window on the first virtual display layer to To the window manager of the first system, the window manager displays the first window.
  • the window manager does not need to render the first window, and after receiving the rendered first window, provides services such as window frame for the first window to display the first window.
  • the online store window of a certain shopping APP of the Android system is displayed on the Linux system.
  • the SurfaceFlinger component sends the rendered online store window on the first virtual display layer to the window manager of the Linux system. After receiving the rendered online store window, the window manager of the Linux system displays the online store window.
  • the superimposed window of the online store window and the communication window of a certain shopping APP of the Android system is displayed.
  • the SurfaceFlinger component of the Android system sends the superimposed windows of the rendered online store window and the communication window on the first virtual display layer to the window manager of the Linux system.
  • the window manager of the Linux system displays the overlay window.
  • the interface rendering component determines the first virtual display layer corresponding to the first APP, and then the interface rendering component renders at least one first window of the first APP on the first virtual display layer.
  • the first virtual display layer determined by the interface rendering component can perform one or more first windows of the first APP.
  • the window of the first APP is rendered by the rendering method of the second operating system. At this time, there is no need for the first operating system to render the window, and there is no need for multiple interactions between the first operating system and the second operating system to display information on the window.
  • the interface rendering component sends the rendered at least one first window to the window manager of the first operating system, and the window manager displays the first window.
  • the windows of the second operating system can be displayed relatively quickly in the first operating system, thereby improving window rendering and display efficiency.
  • the interface rendering component determines the first virtual display layer corresponding to the first APP, which can be specifically implemented through the following steps:
  • the interface rendering component determines the first virtual display layer corresponding to the first APP according to the target correspondence and the allocation rule of the virtual display layer.
  • the target correspondence includes: the correspondence between at least one APP and at least one virtual display layer.
  • the target correspondence may include a correspondence between an APP and a virtual display layer, or may include a correspondence between an APP and multiple virtual display layers, or may include a correspondence between multiple APPs and a virtual display layer, or It may include correspondences between multiple APPs and multiple virtual display layers.
  • the distribution rules of the virtual display layer can be set as required.
  • the allocation rule of the virtual display layer can assign a virtual display layer to each independent APP; it can also assign a virtual display layer to the same type of APP; it can also assign a virtual display layer to every n APPs according to the startup sequence , n is an integer greater than 0.
  • the first virtual display layer corresponding to the first APP is determined in combination with the target correspondence and the assigned rule of the virtual display layer, which may be to determine the correspondence between the created first virtual display layer and the first APP , may also be to create a first virtual display layer and establish a corresponding relationship between the first virtual display layer and the first APP.
  • the interface rendering component determines that the virtual display layer corresponding to the shopping APP is the created first virtual display layer belonging to the shopping category.
  • Another example is to display the chat window of the social APP of the Android system on the Linux system. If the target correspondence is the corresponding relationship between the social APP and the first virtual display layer, the allocation rule of the virtual display layer is to allocate a virtual display layer for every two APPs. , then the interface rendering component may determine the last created first virtual display layer corresponding to the social APP.
  • the method of the embodiment of the present disclosure determines the first virtual display layer corresponding to the first APP according to the target correspondence and the preset virtual display layer allocation rules, so that the windows of the first APP can be rendered to multiple virtual display layers correspondingly , and multiple APP windows can also be rendered and synthesized in one virtual display layer, so that the flexibility of multiple window display can be improved, and multiple windows can be quickly displayed.
  • the rational allocation of virtual display layers can reduce the number of virtual display layers created and improve the system operating speed.
  • a first virtual display layer is created, and a corresponding relationship between the first APP and the first virtual display layer is established.
  • the above-mentioned first virtual display layer is created by an interface rendering component, and the interface rendering component establishes a corresponding relationship between the first APP and the first virtual display layer. If there is no first virtual display layer corresponding to the first APP, it means that there is no first virtual display layer corresponding to the first APP in the second operating system. At this time, it is necessary to create a first virtual display layer and establish a corresponding relationship between the first virtual display layer and the first APP.
  • the interface rendering component searches for the first virtual display layer corresponding to the shopping APP. If not, the interface rendering component creates a new first virtual display layer, and establishes the corresponding relationship between the shopping APP and the first virtual display layer.
  • a new first virtual display layer can be created, so as to ensure that the window of the first APP can be on the first virtual display layer Rendering, compositing.
  • the second operating system further includes a second APP, as shown in FIG. 3 and FIG. 4 , which show the flow and interaction flow of the window display method when the second APP is started, and the second APP is received in step 104.
  • a second APP as shown in FIG. 3 and FIG. 4 , which show the flow and interaction flow of the window display method when the second APP is started, and the second APP is received in step 104.
  • Step 105 If there is already a second virtual display layer corresponding to the second APP, and the second virtual display layer is the first virtual display layer, the interface rendering component renders at least one first virtual display layer of the second APP on the first virtual display layer. rendering the second window and at least one first window of the first APP to obtain a rendered first target window;
  • Step 106 the interface rendering component sends the rendered first target window to the window manager, and the window manager displays the first target window.
  • the second APP may be an application program different from the first APP on the second operating system.
  • the first target window is a window obtained by synthesizing and rendering at least one second window and at least one first window, that is to say, the first target window is a window rendered and synthesized by two different APP windows.
  • the interface rendering component determines the second virtual display layer as the first virtual display layer according to the allocation rule of the virtual display layer.
  • the created first virtual display layer is the first virtual display layer.
  • the second APP is a shopping APP, and the allocation rule of the virtual display layer is to assign the same virtual display layer to every two APPs, then the second virtual display layer corresponding to the shopping APP is the created first virtual display layer.
  • the first virtual display layer of a shopping APP has been created, which is the first virtual display layer, and the allocation rule of the virtual display layer is to allocate one for every two APPs. Virtual display layer.
  • the second virtual display layer corresponding to the social APP is the first virtual display layer.
  • the SurfaceFlinger component of the Android system can synthesize and render the windows of the shopping APP and the social APP on the existing first virtual display layer to obtain the rendered first target window. Then, the SurfaceFlinger component sends the rendered first target window to the window manager of the Linux system, and the window manager displays the first target window.
  • the interface rendering component can synthesize and render the windows of the second APP and the first APP on the created first virtual display layer to obtain the rendered first target window, which can facilitate , Quickly realize the window fusion of multiple APPs.
  • a second virtual display layer is created, and a correspondence relationship between the second APP and the second virtual display layer is established.
  • the interface rendering component searches for the second virtual display layer corresponding to the second APP, and if there is no second virtual display layer corresponding to the second APP in the second operating system, the interface rendering component creates a new second virtual display layer. display layer, and establish a corresponding relationship between the second APP and the second virtual display layer.
  • the SurfaceFlinger component searches and determines that there is no second virtual display layer corresponding to the shopping APP in the Android system, and then the SurfaceFlinger component creates a new second virtual display layer , and establish a corresponding relationship between the second virtual display layer and the shopping APP.
  • a new virtual display layer can be created so that the virtual display layer can be displayed on the virtual display layer. Perform operations such as rendering on the second and subsequent APPs.
  • the interface rendering component renders at least one second window of the second APP and at least one first window of the first APP on the second virtual display layer to obtain a rendered second target window;
  • the interface rendering component sends the rendered second target window to the window manager, and the window manager displays the second target window.
  • the interface rendering component can display one or more second windows of the second APP and one or more windows of the first APP on the second virtual display layer.
  • Multiple first windows are rendered and synthesized to obtain a rendered second target window.
  • the second target window can be obtained by rendering and combining a first window and a second window; it can also be obtained by rendering and combining a first window and multiple second windows; or it can be obtained by rendering and combining multiple first windows.
  • a window and a second window are rendered and synthesized; multiple first windows and multiple second windows may also be rendered and synthesized.
  • the SurfaceFlinger component determines that there is no second virtual display layer corresponding to the shopping APP in the Android system, and the SurfaceFlinger component creates a new second virtual display layer, and A correspondence relationship between the second virtual display layer and the shopping APP is established. At the same time, the corresponding relationship between the second virtual display layer and the previous shopping APP is established. Then, the SurfaceFlinger component synthesizes and renders the window of the current shopping APP and the window of the previous shopping APP on the newly created second virtual display layer to obtain a second target window.
  • the windows of two different APPs can be synthesized and rendered on the newly created second virtual display layer, which can improve the efficiency of graphics rendering and improve the response speed.
  • the flow of the window display method before step 101 is shown.
  • the following operations may be performed:
  • Step 100 the interface rendering component receives a start request of the first APP; or, the interface rendering component receives an update instruction of at least one first window sent by the first APP.
  • the first APP may be any Android application program.
  • the start request of the first APP is sent to the interface rendering component by the first system.
  • the user clicks a certain shopping APP icon of the Android system on the desktop of the Linux system, and the desktop of the Linux system sends the startup request of the shopping APP to the application manager of the Linux system, and the application manager sends the startup request of the shopping APP to the Android system.
  • the server agent component of the server sends the start request to the process management service (Activity Manager Service, AMS) component of Android, and the AMS component sends the start request to the shopping APP of the Android system.
  • the shopping APP sends the startup request to the SurfaceFlinger component. After receiving the activation request of the shopping APP, the SurfaceFlinger component determines the first virtual display layer corresponding to the shopping APP.
  • the user updates a certain shopping APP of the Android system on the desktop of the Linux system
  • the desktop sends the update request of the shopping APP to the application manager of the Linux system
  • the application manager sends the update request of the shopping APP to the server of the Android system
  • Agent component the server agent component sends the update request to the process management service (Activity Manager Service, AMS) component of Android
  • the AMS component sends the update request to the shopping APP of the Android system.
  • the shopping app sends the update request to the SurfaceFlinger component. After receiving the update request from the shopping APP, the SurfaceFlinger component determines the first virtual display layer corresponding to the shopping APP.
  • the interface rendering component performs an operation of determining the first virtual display layer corresponding to the first APP after receiving the start request or the update request of the first APP. At this time, the interface rendering component can perform the operation of determining the first virtual display layer according to the requirements of the first APP, so as to facilitate the management of the operation of determining the first virtual display layer.
  • the second operating system further includes a proxy service component, and the interface rendering component sends the rendered at least one first window to the window manager in the following manner: the interface rendering component sends the rendered first window to the window manager through the proxy service component. At least one first window is sent to the window manager.
  • the proxy service component is used to proxy the display task of the application program of the second operating system, and the proxy service component of the second operating system communicates with the window manager of the first operating system.
  • the interface rendering component of the Android system receives a request to start a shopping APP sent by the application manager of the Linux system
  • the interface rendering component creates a proxy service component.
  • the proxy service component requests the interface rendering component to create the first virtual display layer, and then the interface rendering component creates a new first virtual display layer.
  • the proxy service component establishes a communication connection with the window manager.
  • the interface rendering component forms the window of the shopping APP after rendering on the first virtual display layer
  • the interface rendering component sends the window of the shopping APP after rendering to the window manager through the proxy service component, and the window manager displays the window of the shopping APP .
  • the window manager of the first operating system decouples the display task from the interface rendering component.
  • the first operating system destroys the display task of the first APP, it can prevent the interface rendering component from being accidentally killed, ensure the normal operation of the interface rendering component, and improve the stability of the second operating system.
  • the window display method of this embodiment includes the following steps:
  • Step 1 Start application 1.
  • Step 2 Start application 1.
  • the application manager communicates with the process management service component of the Android system, and requests to start the application 1 .
  • Step 3 Start application 1.
  • the process management service component of the Android system communicates with the application 1, and requests to start the application 1.
  • Step 4. Apply for video memory.
  • Application 1 applies for video memory from the interface rendering component.
  • Step 5 judging whether to create a new virtual display layer.
  • the interface rendering component judges whether to create a new virtual display layer and window proxy 1 (proxy service component) according to preset distribution rules.
  • Step 6 The interface rendering component creates window proxy 1.
  • Step 7 Apply for a virtual display layer.
  • Window agent 1 applies for a virtual display layer from the interface rendering component, and the virtual display layer will be managed in the interface rendering component.
  • Step 8 The interface rendering component creates a new virtual display layer 1 (the first virtual display layer).
  • Step 9 Return the successful creation result to the interface rendering component.
  • Step 10 the interface rendering component establishes the corresponding relationship between the application 1 and the virtual display layer 1, that is, the display content of the application 1 will be displayed in the virtual display layer 1.
  • Step 11 the interface rendering component sends the information that the virtual display layer 1 is successfully created to the window proxy 1 .
  • Step 12 establishing a communication connection.
  • the window agent 1 establishes a communication connection with the window manager of the Linux system, that is, creates a window in the Linux system.
  • Step 13 the application 1 updates the displayed content.
  • Step 14 Rendering.
  • the interface rendering component renders the content of the application 1 onto the virtual display layer 1 .
  • Step 15 update the displayed content.
  • the virtual display layer 1 pushes the display content to the window proxy 1.
  • Step 16 update the displayed content.
  • Window proxy 1 pushes content to the window manager.
  • Step 18 start application 2.
  • the application manager communicates with the process management service component of the Android system, and requests to start the application 2 .
  • Step 19 start application 2.
  • the process management service component communicates with the application 2, and requests to start the application 2.
  • Step 20 apply for video memory.
  • Application 2 applies for video memory from the interface rendering component.
  • Step 21 the interface rendering component judges whether to create a new window proxy service and a new virtual display layer according to the preset distribution rules.
  • Step 22 establishing a corresponding relationship between the application 2 and the virtual display layer 1.
  • the interface rendering component finds the created virtual display layer 1 and window agent 1, and creates a corresponding relationship between application 2 and virtual display layer 1, that is, the display content of application 1 and application 2 will be displayed in virtual display layer 1.
  • Step 23 the application 2 updates the displayed content.
  • Step 24 Rendering.
  • the interface rendering component renders the content of application 1 and application 2 on the virtual display layer 1 .
  • Step 25 update the displayed content.
  • the virtual display layer 1 pushes the display content to the window proxy 1 to update the display content.
  • Step 26 update the displayed content.
  • Window proxy 1 pushes the content to the window manager to update the display content.
  • the interface rendering component determines the first virtual display layer corresponding to the first APP, and then the interface rendering component renders at least one first window of the first APP on the first virtual display layer .
  • the first virtual display layer determined by the interface rendering component can perform one or more first windows of the first APP.
  • the window of the first APP is rendered by the rendering method of the second operating system. At this time, there is no need for the first operating system to render the window, and there is no need for multiple interactions between the first operating system and the second operating system to display information on the window.
  • the interface rendering component sends the rendered at least one first window to the window manager of the first operating system, and the window manager displays the first window.
  • the windows of the second operating system can be displayed relatively quickly in the first operating system, thereby improving window rendering and display efficiency.
  • the window display device provided by the present disclosure is described below, and the window display device described below and the window display method described above can be referred to in correspondence.
  • FIG. 9 is a schematic structural diagram of an embodiment of a window display device provided by the present disclosure.
  • the window display device provided in this embodiment is applied to electronic equipment, and the electronic equipment includes: a first operating system and a second operating system deployed in the first operating system in a containerized manner, and the first operating system includes window management
  • the second operating system includes a first application program APP and an interface rendering component.
  • the window display device provided in this embodiment includes:
  • an interface rendering component 210 configured to determine a first virtual display layer corresponding to the first APP
  • the interface rendering component 210 is further configured to render at least one first window of the first APP on the first virtual display layer to obtain at least one first window after rendering;
  • the sending module 220 is configured to send the rendered at least one first window to the window manager, and the window manager displays the first window.
  • the interface rendering component 210 is specifically configured to: determine the first virtual display layer corresponding to the first APP according to the target correspondence and the allocation rule of the virtual display layer; the target correspondence includes: at least one The corresponding relationship between APP and at least one virtual display layer.
  • the interface rendering component 210 is further configured to: if the first virtual display layer corresponding to the first APP does not exist, create the first virtual display layer and establish the first APP Corresponding relationship with the first virtual display layer.
  • the second operating system further includes a second APP, and after receiving the startup request of the second APP, the interface rendering component 210 is further configured to:
  • the interface rendering component is on the first virtual display layer
  • the at least one second window of the second APP and the at least one first window of the first APP are rendered to obtain a rendered first target window.
  • the interface rendering component is further configured to send the rendered first target window to the window manager, and the window manager displays the first target window.
  • the interface rendering component 210 is further configured to: if there is no second virtual display layer corresponding to the second APP, create the second virtual display layer, and establish the connection between the second APP and the second virtual display layer. Describe the corresponding relationship of the second virtual display layer.
  • the interface rendering component 210 is further configured to: the interface rendering component renders at least one second window of the second APP on the second virtual display layer and at least one first window of the first APP is rendered to obtain a rendered second target window; the interface rendering component is further configured to send the rendered second target window to the window manager, The window manager displays the second target window.
  • the interface rendering component 210 is further configured to receive a start request of the first APP; or, the interface rendering component 210 is further configured to receive at least one of the first windows sent by the first APP. Update instructions.
  • the interface rendering component 210 is further configured to send the rendered at least one first window to the window manager through the proxy service component.
  • the device in the embodiment of the present disclosure is used to execute the method in any one of the foregoing method embodiments, and its implementation principle and technical effect are similar, so details will not be repeated this time.
  • FIG. 10 illustrates a schematic diagram of the physical structure of an electronic device.
  • the electronic device may include: a processor (processor) 810, a communication interface (Communications Interface) 820, a memory (memory) 830 and a communication bus 840, Wherein, the processor 810 , the communication interface 820 , and the memory 830 communicate with each other through the communication bus 840 .
  • processor processor
  • Communication interface Communication interface
  • memory memory
  • FIG. 10 illustrates a schematic diagram of the physical structure of an electronic device.
  • the electronic device may include: a processor (processor) 810, a communication interface (Communications Interface) 820, a memory (memory) 830 and a communication bus 840, Wherein, the processor 810 , the communication interface 820 , and the memory 830 communicate with each other through the communication bus 840 .
  • memory memory
  • the processor 810 may invoke logic instructions in the memory 830 to execute a window display method, the method comprising: the interface rendering component determines a first virtual display layer corresponding to the first APP; Render at least one first window of the first APP on the first virtual display layer to obtain the rendered at least one first window; the interface rendering component sends the rendered at least one first window to the rendered at least one first window
  • the window manager displays the first window.
  • the above logic instructions in the memory 830 may be implemented in the form of software functional units and when sold or used as an independent product, may be stored in a computer-readable storage medium.
  • the technical solution of the present disclosure is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in various embodiments of the present disclosure.
  • the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disc, etc., which can store program codes. .
  • the present disclosure also provides a computer program product
  • the computer program product includes a computer program stored on a non-transitory computer-readable storage medium
  • the computer program includes program instructions, and when the program instructions are executed by a computer
  • the computer can execute the window display method provided by the above methods, the method includes: the interface rendering component determines the first virtual display layer corresponding to the first APP; Rendering the at least one first window of the first APP on the virtual display layer to obtain the rendered at least one first window; the interface rendering component sends the rendered at least one first window to the window manager, the window manager displays the first window.
  • the present disclosure also provides a non-transitory computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the above window display methods provided above are implemented, the method comprising: the interface The rendering component determines a first virtual display layer corresponding to the first APP; the interface rendering component renders at least one first window of the first APP on the first virtual display layer to obtain a rendered at least one first window; the interface rendering component sends the rendered at least one first window to the window manager, and the window manager displays the first window.
  • the present disclosure also provides a computer program, which implements the window display methods provided above when the computer program is executed by a processor.
  • the method includes: the interface rendering component determining the first APP corresponding to the first APP. A virtual display layer; the interface rendering component renders at least one first window of the first APP on the first virtual display layer to obtain at least one rendered first window; the interface rendering component renders the at least one first window The rendered at least one first window is sent to the window manager, and the window manager displays the first window.
  • the device embodiments described above are only illustrative, and the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in One place, or it can be distributed to multiple network elements. Part or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. It can be understood and implemented by those skilled in the art without any creative effort.
  • each implementation can be implemented by means of software plus a necessary general hardware platform, and of course also by hardware.
  • the essence of the above technical solution or the part that contributes to the prior art can be embodied in the form of software products, and the computer software products can be stored in computer-readable storage media, such as ROM/RAM, magnetic discs, optical discs, etc., including several instructions to make a computer device (which may be a personal computer, server, or network device, etc.) execute the methods described in various embodiments or some parts of the embodiments.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

本公开提供一种窗口显示方法、装置、设备、存储介质、计算机程序产品及计算机程序。该方法应用于电子设备,电子设备包括:第一操作系统和以容器化方式部署在第一操作系统中的第二操作系统,第一操作系统包括窗口管理器,第二操作系统包括第一应用程序APP、界面渲染组件;该方法包括:界面渲染组件确定与第一APP对应的第一虚拟显示层;界面渲染组件在第一虚拟显示层上对第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;界面渲染组件将渲染后的至少一个第一窗口发送给窗口管理器,窗口管理器显示第一窗口。本公开实施例的方法使第二操作系统的窗口可以较为快速的在第一操作系统中显示,从而可以提高窗口渲染及显示效率。

Description

窗口显示方法、装置、设备和存储介质
相关申请的交叉引用
本公开要求于2021年10月21日提交的申请号为2021112284593、名称为“窗口显示方法、装置、设备和存储介质”的中国专利申请的优先权,此申请的内容通过引用并入本文。
技术领域
本公开涉及计算机技术领域,尤其涉及一种窗口显示方法、装置、设备、存储介质、计算机程序产品及计算机程序。
背景技术
随着计算机技术的发展,为了扩展Linux系统下的应用程序(Application,简称APP),丰富应用环境,Linux系统上可支持运行安卓Android系统的应用程序APP。
目前,在Linux系统下运行安卓APP时,Linux系统的窗口管理器会直接显示安卓APP的窗口的内容。Linux系统的窗口管理器在显示安卓APP的窗口时,直接接收安卓端渲染好的窗口进行显示。若存在多个安卓窗口时,例如有叠加显示等情况,需要Linux系统的窗口管理器对多个安卓窗口重新进行渲染显示,Linux系统需要与安卓端交互获取窗口显示的信息,并进行渲染显示,操作较为繁琐。
发明内容
本公开提供一种窗口显示方法、装置、设备、存储介质、计算机程序产品及计算机程序,用以解决现有技术中Linux系统显示多各安卓窗口时,操作繁琐的缺陷。
本公开提供一种窗口显示方法。该窗口显示方法应用于电子设备,所述电子设备包括:第一操作系统和以容器化方式部署在第一操作系统中的第二操作系统,所述第一操作系统包括窗口管理器,第二操作系统包括第一应用程序APP、界面渲染组件;所述方法包括:
所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层;
所述界面渲染组件在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;
所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
根据本公开提供的一种窗口显示方法,所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层,包括:
所述界面渲染组件根据目标对应关系以及虚拟显示层的分配规则,确定与所述第一APP对应的第一虚拟显示层;所述目标对应关系包括:至少一个APP与至少一个虚拟显示层的对应关系。
根据本公开提供的一种窗口显示方法,所述方法还包括:
若不存在与所述第一APP对应的所述第一虚拟显示层,则创建所述第一虚拟显示层,并建立所述第一APP与所述第一虚拟显示层的对应关系。
根据本公开提供的一种窗口显示方法,所述第二操作系统还包括第二APP,在接收到第二 APP的启动请求后,所述方法还包括:
若已存在与所述第二APP对应的第二虚拟显示层,且所述第二虚拟显示层为所述第一虚拟显示层,则所述界面渲染组件在所述第一虚拟显示层上对所述第二APP的至少一个第二窗口以及所述第一APP的至少一个第一窗口进行渲染,得到渲染后的第一目标窗口;
所述界面渲染组件将所述渲染后的第一目标窗口发送给所述窗口管理器,所述窗口管理器显示所述第一目标窗口。
根据本公开提供的一种窗口显示方法,所述方法还包括:
若不存在与所述第二APP对应的第二虚拟显示层,则创建所述第二虚拟显示层,并建立所述第二APP与所述第二虚拟显示层的对应关系。
根据本公开提供的一种窗口显示方法,创建所述第二虚拟显示层之后,还包括:
所述界面渲染组件在所述第二虚拟显示层上对所述第二APP的至少一个第二窗口以及所述第一APP的至少一个第一窗口进行渲染,得到渲染后的第二目标窗口;
所述界面渲染组件将所述渲染后的第二目标窗口发送给所述窗口管理器,所述窗口管理器显示所述第二目标窗口。
根据本公开提供的一种窗口显示方法,所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层之前,还包括:
所述界面渲染组件接收所述第一APP的启动请求;或,
所述界面渲染组件接收所述第一APP发送的至少一个所述第一窗口的更新指示。
根据本公开提供的一种窗口显示方法,所述第二操作系统还包括代理服务组件;所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,包括:
所述界面渲染组件通过所述代理服务组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器。
本公开还提供一种窗口显示装置。应用于电子设备,所述电子设备包括:第一操作系统和以容器化方式部署在第一操作系统中的第二操作系统,所述第一操作系统包括窗口管理器,第二操作系统包括第一应用程序APP、界面渲染组件;所述窗口显示装置包括:
处理模块,所述处理模块用于确定与所述第一APP对应的第一虚拟显示层;
所述处理模块还用于,在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;
发送模块,用于将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述窗口显示方法的步骤。
本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行以实现如上述任一种所述窗口显示方法的步骤。
本公开还提供一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,该计算机程序被处理器执行以实现如上述任一种所述窗口显示方法的步骤。
本公开还提供一种计算机程序,该计算机程序被处理器执行以实现如上述任一种所述窗口显示方法的步骤。
本公开提供的窗口显示方法、装置、设备、存储介质、计算机程序产品及计算机程序,通过 界面渲染组件确定与第一APP对应的第一虚拟显示层,然后界面渲染组件在第一虚拟显示层上对第一APP的至少一个第一窗口进行渲染。当第二操作系统的第一APP的一个或多个窗口,需要在第一操作系统中显示时,可以由界面渲染组件所确定的第一虚拟显示层进行第一APP的一个或多个第一窗口的渲染。通过第二操作系统的渲染方法对第一APP的窗口进行渲染,此时,无需第一操作系统进行窗口的渲染,也无需第一操作系统与第二操作系统之间多次交互窗口显示信息,渲染完成后,界面渲染组件将渲染后的至少一个第一窗口发送给第一操作系统的窗口管理器,由窗口管理器显示第一窗口。在此过程中,第二操作系统的窗口可以较为快速的在第一操作系统中显示,从而可以提高窗口渲染及显示效率。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的窗口显示方法的流程示意图之一;
图2是本公开实施例提供的窗口显示方法的交互流程示意图之一;
图3是本公开实施例提供的窗口显示方法的流程示意图之二;
图4是本公开实施例提供的窗口显示方法的交互流程示意图之二;
图5是本公开实施例提供的窗口显示方法的流程示意图之三;
图6是本公开实施例提供的窗口显示方法的交互流程示意图之三;
图7为本公开实施例提供的窗口显示方法的交互流程示意图之四;
图8是本公开实施例提供的窗口显示方法的交互流程示意图之五;
图9是本公开实施例提供的窗口显示装置的结构示意图;
图10是本公开实施例提供的电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开中的附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
首先,对本公开实施例涉及的部分词汇和应用场景进行介绍。
应用程序的窗口任务,即Task,作为一个特定宽度和高度的、应用程序的容器,显示该应用程序。每个应用程序可以创建一个或者多个窗口任务,用于显示不同的内容。本公开实施例中的窗口即指窗口任务。
在本公开的实施例中,第二操作系统以容器化的方式运行在第一操作系统中。如本领域技术人员所知,容器化即以Linux内核特性为基础实现的LXC、LXD、Docker等,其充分利用了cgroups和Namespace特性,隔离进程和资源,使得第二操作系统高效、轻量的实现。
在本公开的实施例中,尽管没有明确描述的,第一操作系统和第二操作系统均为基于Linux Kernel的操作系统,二者可以是相同的,例如第一操作系统和第二操作系统均为Linux OS发行版(如Ubuntu)或均为Android;二者也可以是不同的,例如第一操作系统和第二操作系统中一者 为Linux OS发行版,一者为Android(安卓)。
在本公开的实施例中,尽管没有明确描述的,第一操作系统与第二操作系统之间的通讯、通知等可以通过网络套接字Socket、消息队列MQ、FIFOs(命名管道)、共享内存等进程间通讯IPC实现或通过系统层面的广播通知Broadcast等实现。
如本领域技术人员所知,Android具有多个衍生版,本公开中所称的Android(安卓)涵盖Google发行的Android OS以及AOSP和基于AOSP的各种衍生系统,如MIUI、EMUI、One UI等。
如本领域技术人员所知,Linux操作系统,又称GNU/Linux系统,如Ubuntu、Debian、RedHat等。需要说明的是,Linux并不限定是运行在物理机上的,也可以是托管在其它操作系统上的操作系统,例如Windows系统中的WSL
如本领域技术人员所知,还存在多种其它的基于Linux Kernel的操作系统,如Tizen等,同样适用于本公开的技术方案。
本公开实施例中的电子设备例如包括:手机、平板电脑、笔记本电脑、计算机等终端设备。
为了说明的方便,以下以第一操作系统为Linux OS、第二操作系统为Android为例说明本公开实施例的实现过程和原理,这仅是示意性的,并不对本公开构成特别限定。
针对上述场景,在Linux系统下运行安卓APP时,Linux系统的窗口管理器会直接显示安卓APP的窗口的内容。Linux系统的窗口管理器在显示安卓APP的窗口时,直接接收安卓端渲染好的窗口进行显示。若存在多个安卓窗口时,例如有叠加显示等情况,需要Linux系统的窗口管理器对多个安卓窗口重新进行渲染显示,Linux系统需要与安卓端交互获取窗口显示的信息,并进行渲染显示,操作较为繁琐。
本公开实施例的窗口显示方法的技术构思如下:
安卓APP的一个或多个窗口在Linux系统上显示时,首先由安卓系统的界面渲染组件确定与该安卓APP对应的虚拟显示层,然后在该虚拟显示层上进行安卓APP的一个或多个窗口的渲染。最后将渲染后的第一窗口发送给Linux系统显示。
下面结合图1-图10以具体的实施例对本公开的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本公开提供的窗口显示方法的流程示意图之一。图2是本公开实施例提供的窗口显示方法的交互流程示意图之一。如图1和图2所示,本公开实施例的窗口显示方法应用于电子设备。该电子设备包括:第一操作系统和以容器化方式部署在第一操作系统中的第二操作系统。第一操作系统包括窗口管理器。第二操作系统包括第一应用程序APP、界面渲染组件。该窗口显示方法包括:
步骤101、界面渲染组件确定与第一APP对应的第一虚拟显示层。
具体的,对于安卓系统来说,界面渲染组件可以为SurfaceFlinger组件,其主要作用为接收多个来源的图形显示数据,将它们合成、渲染。上述第一APP为第二操作系统所包括的、需要在第一操作系统显示的目标APP。第一虚拟显示层是存在于第二操作系统的虚拟显示层。该第一虚拟显示层,可以是界面渲染组件当前新创建的虚拟显示层,也可以是在先程序已创建的第一虚拟显示层,界面渲染组件建立该已创建的第一虚拟显示层与第一APP的对应关系。此时,第一虚拟显示层可以接收到第一APP的图形显示数据,并对其进行合成、渲染。
例如,当安卓系统的某购物APP(第一APP)在Linux系统上显示时,安卓系统的SurfaceFlinger组件先创建与购物APP对应的第一虚拟显示层,并建立该购物APP与第一虚拟显示层的对应关 系。
又例如,当安卓系统的购物APP在Linux系统上显示时,安卓系统的SurfaceFlinger组件可以直接建立购物APP与已创建的第一虚拟显示层的对应关系。
步骤102、界面渲染组件在第一虚拟显示层上对第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口。
具体的,上述第一窗口可以为第一APP启动或更新后产生的窗口,也可以为第一系统弹出的与第一APP有关的窗口。
界面渲染组件可以在第一虚拟显示层上对第一APP的一个第一窗口进行渲染,得到渲染后的一个第一窗口。界面渲染组件也可以在第一虚拟显示层上对第一APP的多个第一窗口进行渲染、合成,得到渲染后的一个或多个第一窗口。
例如,当安卓系统的某购物APP(第一APP)的一个网店窗口在Linux系统上显示时,安卓系统的SurfaceFlinger组件在与该购物APP具有对应关系的第一虚拟显示层上渲染该网店窗口。
又例如,当安卓系统的某购物APP(第一APP)的网店窗口和通讯窗口两个窗口叠加的在Linux系统上显示时,安卓系统的SurfaceFlinger组件在与该购物APP具有对应关系的第一虚拟显示层上渲染、合成网店窗口和通讯窗口叠加后的第一窗口。
步骤103、界面渲染组件将渲染后的至少一个第一窗口发送给窗口管理器,窗口管理器显示第一窗口。
具体的,当界面渲染组件在第一虚拟显示层上进行渲染,获得第一虚拟显示层上渲染后的第一窗口后,界面渲染组件将第一虚拟显示层上的渲染后的第一窗口发送给第一系统的窗口管理器,窗口管理器显示第一窗口。在此过程中,窗口管理器,无需对第一窗口进行渲染等处理,接收到渲染后的第一窗口后,为第一窗口提供窗口边框等服务,显示第一窗口。
例如,在Linux系统上显示安卓系统的某购物APP的网店窗口,当安卓系统的该购物APP(第一APP)的一个网店窗口在对应的第一虚拟显示层上渲染完成后,安卓系统的SurfaceFlinger组件将第一虚拟显示层上、渲染后的网店窗口发送给Linux系统的窗口管理器。Linux系统的窗口管理器接收到渲染后的网店窗口后,显示该网店窗口。
又例如,在Linux系统上显示安卓系统的某购物APP的网店窗口和通讯窗口的叠加窗口,当安卓系统的该购物APP(第一APP)的网店窗口和通讯窗口的叠加窗口在对应的第一虚拟显示层上渲染完成后,安卓系统的SurfaceFlinger组件将第一虚拟显示层上、渲染后的网店窗口和通讯窗口的叠加窗口发送给Linux系统的窗口管理器。Linux系统的窗口管理器接收到渲染后的叠加窗口后,显示该叠加窗口。
本公开实施例的窗口显示方法,通过界面渲染组件确定与第一APP对应的第一虚拟显示层,然后界面渲染组件在第一虚拟显示层上对第一APP的至少一个第一窗口进行渲染。当第二操作系统的第一APP的一个或多个窗口,需要在第一操作系统中显示时,可以由界面渲染组件所确定的第一虚拟显示层进行第一APP的一个或多个第一窗口的渲染。通过第二操作系统的渲染方法对第一APP的窗口进行渲染,此时,无需第一操作系统进行窗口的渲染,也无需第一操作系统与第二操作系统之间多次交互窗口显示信息,渲染完成后,界面渲染组件将渲染后的至少一个第一窗口发送给第一操作系统的窗口管理器,由窗口管理器显示第一窗口。在此过程中,第二操作系统的窗口可以较为快速的在第一操作系统中显示,从而可以提高窗口渲染及显示效率。
在一实施例中,步骤101中界面渲染组件确定与第一APP对应的第一虚拟显示层,具体可以通过如下步骤实现:
界面渲染组件根据目标对应关系以及虚拟显示层的分配规则,确定与第一APP对应的第一虚拟显示层。目标对应关系包括:至少一个APP与至少一个虚拟显示层的对应关系。
具体的,目标对应关系可以包括一个APP与一个虚拟显示层的对应关系,也可以包括一个APP与多个虚拟显示层的对应关系,也可以包括多个APP与一个虚拟显示层的对应关系,也可以包括多个APP与多个虚拟显示层的对应关系。
虚拟显示层的分配规则可以根据需要进行设置。例如,虚拟显示层的分配规则可以为每个独立的APP分配一个虚拟显示层;也可以为同类型的APP分配一个虚拟显示层;也可以为根据启动顺序,每n个APP分配一个虚拟显示层,n为大于0的整数。
在实际应用中,结合目标对应关系和设定的虚拟显示层的分配规则,确定与第一APP对应的第一虚拟显示层,可以是确定已创建的第一虚拟显示层与第一APP对应关系,也可以是新建第一虚拟显示层并建立第一虚拟显示层与第一APP的对应关系。
例如,在Linux系统上显示安卓系统的某购物APP的网店窗口,如果目标对应关系为该购物APP与已创建的第一虚拟显示层的对应关系,虚拟显示层的分配规则为同类型APP分配一个虚拟显示层,那么界面渲染组件确定对应该购物APP的虚拟显示层为已创建的属于购物类别的第一虚拟显示层。
又例如,在Linux系统上显示安卓系统的社交APP的聊天窗口,如果目标对应关系为社交APP与第一虚拟显示层的对应关系,虚拟显示层的分配规则为每两个APP分配一个虚拟显示层,那么界面渲染组件可以确定与社交APP对应的、已创建的上一个第一虚拟显示层。
本公开实施例的方法,根据目标对应关系和预设的虚拟显示层的分配规则来确定第一APP对应的第一虚拟显示层,从而可以将第一APP的窗口对应渲染到多个虚拟显示层,也可以在一个虚拟显示层渲染、合成多个APP的窗口,从而可以提高多个窗口显示的灵活性,便于快速的显示多个窗口。并且,合理的分配虚拟显示层,可以减少虚拟显示层的创建数量,提高系统运行速度。
在一实施例中,若不存在与第一APP对应的第一虚拟显示层,则创建第一虚拟显示层,并建立第一APP与第一虚拟显示层的对应关系。
具体的,上述第一虚拟显示层由界面渲染组件创建,并由界面渲染组件建立第一APP与第一虚拟显示层的对应关系。若不存在与第一APP对应的第一虚拟显示层,是指在第二操作系统中不存在与第一APP具有对应关系的第一虚拟显示层。此时,需要创建第一虚拟显示层,并建立该第一虚拟显示层与第一APP的对应关系。
例如,在Linux系统上显示安卓系统的某购物APP的网店窗口,界面渲染组件查找与该购物APP有对应关系的第一虚拟显示层。若没有,则界面渲染组件创建新的第一虚拟显示层,并建立该购物APP与第一虚拟显示层的对应关系。
在上述实施例中,当第二系统不存在与第一APP对应的第一虚拟显示层时,可以新建一第一虚拟显示层,从而可以确保第一APP的窗口能够在第一虚拟显示层上渲染、合成。
在一实施例中,第二操作系统还包括第二APP,如图3和图4所示,示出了第二APP启动时的窗口显示方法的流程和交互流程,在步骤104接收到第二APP的启动请求后,可以进行如下操作:
步骤105、若已存在与第二APP对应的第二虚拟显示层,且第二虚拟显示层为第一虚拟显示层,则界面渲染组件在第一虚拟显示层上对第二APP的至少一个第二窗口以及第一APP的至少一个第一窗口进行渲染,得到渲染后的第一目标窗口;
步骤106、界面渲染组件将渲染后的第一目标窗口发送给窗口管理器,窗口管理器显示第一 目标窗口。
具体的,第二APP可以为第二操作系统上的、不同于第一APP的应用程序。第一目标窗口为至少一个第二窗口和至少一个第一窗口合成、渲染后所得到的窗口,也就是说第一目标窗口为两个不同的APP的窗口渲染、合成的窗口。
界面渲染组件根据虚拟显示层的分配规则,确定第二虚拟显示层为第一虚拟显示层。例如,已创建的第一虚拟显示层为第一个虚拟显示层。第二APP为某购物APP,虚拟显示层的分配规则为每两个APP分配同一虚拟显示层,那么该购物APP对应的第二虚拟显示层为已创建的第一虚拟显示层。
例如,在Linux系统上显示安卓系统社交APP的聊天窗口时,某购物APP的第一虚拟显示层已创建,其为第一个虚拟显示层,虚拟显示层的分配规则为每两个APP分配一个虚拟显示层。此时,社交APP对应的第二虚拟显示层为第一虚拟显示层。安卓系统的SurfaceFlinger组件可以在已存在的第一虚拟显示层上对购物APP和社交APP的窗口进行合成、渲染,得到渲染后的第一目标窗口。然后,SurfaceFlinger组件将渲染后的第一目标窗口发送给Linux系统的窗口管理器,窗口管理器显示第一目标窗口。
在上述实施例中,界面渲染组件可以在已创建的第一虚拟显示层上,对第二APP和第一APP两者的窗口进行合成、渲染,得到渲染后的第一目标窗口,从而可以方便、快速的实现多个APP的窗口融合。
在一实施例中,若不存在与第二APP对应的第二虚拟显示层,则创建第二虚拟显示层,并建立第二APP与第二虚拟显示层的对应关系。
具体的,界面渲染组件查找第二APP对应的第二虚拟显示层,若第二操作系统中不存在与第二APP具有对应关系的第二虚拟显示层,则界面渲染组件创建新的第二虚拟显示层,并建立第二APP与第二虚拟显示层的对应关系。
例如,在Linux系统上显示安卓系统的某购物APP的购物网页,SurfaceFlinger组件查找,确定安卓系统中不存在与该购物APP对应的第二虚拟显示层,则SurfaceFlinger组件创建新的第二虚拟显示层,并建立第二虚拟显示层与购物APP的对应关系。
在上述实施例中,当显示多个APP的窗口时,第二个及后续的APP显示时,若不存在与其对应的虚拟显示层,可以新建一虚拟显示层,以便于能够在虚拟显示层上对第二个及后续的APP进行渲染等操作。
进一步的,创建第二虚拟显示层之后,还可以执行如下操作:
界面渲染组件在第二虚拟显示层上对第二APP的至少一个第二窗口以及第一APP的至少一个第一窗口进行渲染,得到渲染后的第二目标窗口;
界面渲染组件将渲染后的第二目标窗口发送给窗口管理器,窗口管理器显示第二目标窗口。
具体的,界面渲染组件在创建与第二APP对应的第二虚拟显示层之后,可以在该第二虚拟显示层上,对第二APP的一个或多个第二窗口以及第一APP的一个或多个第一窗口进行渲染、合成,得到渲染后的第二目标窗口。在实际应用中,第二目标窗口可以是一个第一窗口和一个第二窗口渲染、合成得到;也可以是一个第一窗口和多个第二窗口渲染、合成得到;也可以是多个第一窗口和一个第二窗口渲染、合成得到;也可以是多个第一窗口和多个第二窗口渲染、合成得到。
例如,在Linux系统上显示安卓系统的某购物APP的购物网页,SurfaceFlinger组件确定安卓系统中不存在与该购物APP对应的第二虚拟显示层,则SurfaceFlinger组件创建新的第二虚拟显示层,并建立第二虚拟显示层与该购物APP的对应关系。与此同时,建立第二虚拟显示层与在 先一购物APP的对应关系。然后,SurfaceFlinger组件在新建的第二虚拟显示层上,对当前购物APP的窗口和在先购物APP的窗口进行合成、渲染,得到的第二目标窗口。
在上述实施例中,可以在新建的第二虚拟显示层上对两个不同的APP的窗口进行合成、渲染,可以提高图形渲染的效率,提高响应速度。
在一实施例中,如图5和图6所示,示出了步骤101之前窗口显示方法的流程。界面渲染组件确定与第一APP对应的第一虚拟显示层之前,可以执行如下操作:
步骤100、界面渲染组件接收第一APP的启动请求;或,界面渲染组件接收第一APP发送的至少一个第一窗口的更新指示。
具体的,第一APP可以为任意的安卓应用程序。第一APP的启动请求由第一系统发送给界面渲染组件。
例如,用户点击Linux系统桌面的安卓系统的某购物APP图标,Linux系统桌面将该购物APP的启动请求发送给Linux系统的应用管理器,该应用管理器将该购物APP的启动请求发送给安卓系统的服务端代理组件,服务端代理组件将启动请求发送给安卓的进程管理服务(Activity Manager Service,AMS)组件,AMS组件将启动请求发送给安卓系统的购物APP。购物APP将启动请求发送给SurfaceFlinger组件。SurfaceFlinger组件接收到购物APP的启动请求后,确定与购物APP对应的第一虚拟显示层。
又例如,用户更新Linux系统桌面的安卓系统的某购物APP,桌面将该购物APP的更新请求发送给Linux系统的应用管理器,该应用管理器将购物APP的更新请求发送给安卓系统的服务端代理组件,服务端代理组件将更新请求发送给安卓的进程管理服务(Activity Manager Service,AMS)组件,AMS组件将更新请求发送给安卓系统的购物APP。购物APP将更新请求发送给SurfaceFlinger组件。SurfaceFlinger组件接收到购物APP的更新请求后,确定与购物APP对应的第一虚拟显示层。
在上述实施例中,界面渲染组件在接收到第一APP的启动请求或更新请求后,执行确定与第一APP对应的第一虚拟显示层的操作。此时,界面渲染组件可以根据第一APP的需求执行确定第一虚拟显示层的操作,便于对确定第一虚拟显示层的操作进行管理。
在一实施例中,第二操作系统还包括代理服务组件,界面渲染组件将渲染后的至少一个第一窗口发送给窗口管理器可以通过如下方式实现:界面渲染组件通过代理服务组件将渲染后的至少一个第一窗口发送给窗口管理器。
具体的,代理服务组件用于代理第二操作系统的应用程序的显示任务,并且第二操作系统的代理服务组件与第一操作系统的窗口管理器之间通信连接。
例如,如图7所示,安卓系统的界面渲染组件接收到Linux系统的应用管理器发送的某购物APP的启动请求后,界面渲染组件创建一代理服务组件。代理服务组件请求界面渲染组件创建第一虚拟显示层,然后界面渲染组件新建第一虚拟显示层,代理服务组件接收第一虚拟显示层创建成功的信息后,创建与窗口管理器的通信连接。当界面渲染组件在第一虚拟显示层上形成渲染后的购物APP的窗口后,界面渲染组件通过代理服务组件将渲染后的购物APP的窗口发送给窗口管理器,窗口管理器显示购物APP的窗口。
在上述实施例中,第一操作系统的窗口管理器与第二操作系统的应用程序之间存在一个代理服务组件,解除了显示任务与界面渲染组件之间的耦合。当第一操作系统销毁第一APP的显示任务时,可以避免界面渲染组件被误杀,确保界面渲染组件的正常运行,提高第二操作系统的稳定性。
示例性的,如图8所示,本实施例的窗口显示方法包括如下步骤:
步骤1、启动应用1。用户点击Linux系统桌面中安卓的应用1的图标,桌面与Linux系统的应用管理器通信,请求启动应用1。
步骤2、启动应用1。应用管理器与安卓系统的进程管理服务组件通信,请求启动应用1。
步骤3、启动应用1。安卓系统的进程管理服务组件与应用1通信,请求启动应用1。
步骤4、申请显存。应用1向界面渲染组件申请显存。
步骤5、判断是否新建虚拟显示层。界面渲染组件根据预设的分配规则判断是否创建一个新的虚拟显示层和窗口代理1(代理服务组件)。
步骤6、界面渲染组件创建窗口代理1。
步骤7、申请虚拟显示层。窗口代理1向界面渲染组件申请一个虚拟显示层,虚拟显示层将在界面渲染组件中进行管理。
步骤8、界面渲染组件新建一虚拟显示层1(第一虚拟显示层)。
步骤9、返回创建成功的结果给界面渲染组件。
步骤10、界面渲染组件建立应用1与虚拟显示层1对应关系,也就是应用1的显示内容将在虚拟显示层1中显示。
步骤11、界面渲染组件将虚拟显示层1创建成功的信息发送给窗口代理1。
步骤12、建立通信连接。窗口代理1与Linux系统的窗口管理器建立通信连接,也就是Linux系统中创建一个窗口。
步骤13、应用1更新显示内容。
步骤14、渲染。界面渲染组件将应用1的内容渲染到虚拟显示层1上。
步骤15、更新显示内容。虚拟显示层1将显示内容推送到窗口代理1。
步骤16、更新显示内容。窗口代理1将内容推送给窗口管理器。
步骤17、启动应用2。用户点击Linux系统桌面中安卓的应用2的图标,桌面与Linux系统的应用管理器通信,请求启动应用2。
步骤18、启动应用2。应用管理器与安卓系统的进程管理服务组件通信,请求启动应用2。
步骤19、启动应用2。进程管理服务组件与应用2通信,请求启动应用2。
步骤20、申请显存。应用2向界面渲染组件申请显存。
步骤21、界面渲染组件根据预设的分配规则判断是否创建一个新的窗口代理服务和新的虚拟显示层。
步骤22、建立应用2与虚拟显示层1的对应关系。界面渲染组件查找到已创建虚拟显示层1和窗口代理1,将应用2与虚拟显示层1创建对应关系,也就是应用1和应用2的显示内容将在虚拟显示层1中显示。
步骤23、应用2更新显示内容。
步骤24、渲染。界面渲染组件将应用1和应用2的内容渲染到虚拟显示层1上。
步骤25、更新显示内容。虚拟显示层1将显示内容推送到窗口代理1,更新显示内容。
步骤26、更新显示内容。窗口代理1将内容推送给窗口管理器更新显示内容。
本公开实施例提供的窗口显示方法,通过界面渲染组件确定与第一APP对应的第一虚拟显示层,然后界面渲染组件在第一虚拟显示层上对第一APP的至少一个第一窗口进行渲染。当第二操作系统的第一APP的一个或多个窗口,需要在第一操作系统中显示时,可以由界面渲染组件所确定的第一虚拟显示层进行第一APP的一个或多个第一窗口的渲染。通过第二操作系统的渲染方法 对第一APP的窗口进行渲染,此时,无需第一操作系统进行窗口的渲染,也无需第一操作系统与第二操作系统之间多次交互窗口显示信息,渲染完成后,界面渲染组件将渲染后的至少一个第一窗口发送给第一操作系统的窗口管理器,由窗口管理器显示第一窗口。在此过程中,第二操作系统的窗口可以较为快速的在第一操作系统中显示,从而可以提高窗口渲染及显示效率。
下面对本公开提供的窗口显示装置进行描述,下文描述的窗口显示装置与上文描述的窗口显示方法可相互对应参照。
图9是本公开提供的窗口显示装置一实施例的结构示意图。本实施例提供的窗口显示装置应用于电子设备,所述电子设备包括:第一操作系统和以容器化方式部署在第一操作系统中的第二操作系统,所述第一操作系统包括窗口管理器,第二操作系统包括第一应用程序APP、界面渲染组件。如图9所示,本实施例提供的窗口显示装置,包括:
界面渲染组件210,所述界面渲染组件用于确定与所述第一APP对应的第一虚拟显示层;
所述界面渲染组件210还用于在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;
发送模块220,用于将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
可选地,所述界面渲染组件210具体用于:根据目标对应关系以及虚拟显示层的分配规则,确定与所述第一APP对应的第一虚拟显示层;所述目标对应关系包括:至少一个APP与至少一个虚拟显示层的对应关系。
可选地,所述界面渲染组件210还用于:若不存在与所述第一APP对应的所述第一虚拟显示层,则创建所述第一虚拟显示层,并建立所述第一APP与所述第一虚拟显示层的对应关系。
可选地,所述第二操作系统还包括第二APP,在接收到第二APP的启动请求后,所述界面渲染组件210还用于:
若已存在与所述第二APP对应的第二虚拟显示层,且所述第二虚拟显示层为所述第一虚拟显示层,则所述界面渲染组件在所述第一虚拟显示层上对所述第二APP的至少一个第二窗口以及所述第一APP的至少一个第一窗口进行渲染,得到渲染后的第一目标窗口。
所述界面渲染组件还用于将所述渲染后的第一目标窗口发送给所述窗口管理器,所述窗口管理器显示所述第一目标窗口。
可选地,所述界面渲染组件210还用于:若不存在与所述第二APP对应的第二虚拟显示层,则创建所述第二虚拟显示层,并建立所述第二APP与所述第二虚拟显示层的对应关系。
可选地,创建所述第二虚拟显示层之后,所述界面渲染组件210还用于:所述界面渲染组件在所述第二虚拟显示层上对所述第二APP的至少一个第二窗口以及所述第一APP的至少一个第一窗口进行渲染,得到渲染后的第二目标窗口;所述界面渲染组件还用于将所述渲染后的第二目标窗口发送给所述窗口管理器,所述窗口管理器显示所述第二目标窗口。
可选地,所述界面渲染组件210还用于接收所述第一APP的启动请求;或,所述界面渲染组件210还用于接收所述第一APP发送的至少一个所述第一窗口的更新指示。
可选地,所述界面渲染组件210还用于通过所述代理服务组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器。
本公开实施例的装置,其用于执行前述任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
举个例子如下:
图10示例了一种电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行窗口显示方法,该方法包括:所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层;所述界面渲染组件在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本公开还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的窗口显示方法,该方法包括:所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层;所述界面渲染组件在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
又一方面,本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各提供的窗口显示方法,该方法包括:所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层;所述界面渲染组件在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
又一方面,本公开还提供一种计算机程序,该计算机程序被处理器执行时实现上述各提供的窗口显示方法,该方法包括:所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层;所述界面渲染组件在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所 述的方法。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。

Claims (13)

  1. 一种窗口显示方法,其中,所述窗口显示方法应用于电子设备,所述电子设备包括:第一操作系统和以容器化方式部署在第一操作系统中的第二操作系统,所述第一操作系统包括窗口管理器,第二操作系统包括第一应用程序APP、界面渲染组件;所述方法包括:
    所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层;
    所述界面渲染组件在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;
    所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
  2. 根据权利要求1所述的方法,其中,所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层,包括:
    所述界面渲染组件根据目标对应关系以及虚拟显示层的分配规则,确定与所述第一APP对应的第一虚拟显示层;所述目标对应关系包括:至少一个APP与至少一个虚拟显示层的对应关系。
  3. 根据权利要求2所述的方法,其中,所述方法还包括:
    若不存在与所述第一APP对应的所述第一虚拟显示层,则创建所述第一虚拟显示层,并建立所述第一APP与所述第一虚拟显示层的对应关系。
  4. 根据权利要求1至3中任一项所述的方法,其中,所述第二操作系统还包括第二APP,在接收到第二APP的启动请求后,所述方法还包括:
    若已存在与所述第二APP对应的第二虚拟显示层,且所述第二虚拟显示层为所述第一虚拟显示层,则所述界面渲染组件在所述第一虚拟显示层上对所述第二APP的至少一个第二窗口以及所述第一APP的至少一个第一窗口进行渲染,得到渲染后的第一目标窗口;
    所述界面渲染组件将所述渲染后的第一目标窗口发送给所述窗口管理器,所述窗口管理器显示所述第一目标窗口。
  5. 根据权利要求4所述的方法,其中,所述方法还包括:
    若不存在与所述第二APP对应的第二虚拟显示层,则创建所述第二虚拟显示层,并建立所述第二APP与所述第二虚拟显示层的对应关系。
  6. 根据权利要求5所述的方法,其中,创建所述第二虚拟显示层之后,还包括:
    所述界面渲染组件在所述第二虚拟显示层上对所述第二APP的至少一个第二窗口以及所述第一APP的至少一个第一窗口进行渲染,得到渲染后的第二目标窗口;
    所述界面渲染组件将所述渲染后的第二目标窗口发送给所述窗口管理器,所述窗口管理器显示所述第二目标窗口。
  7. 根据权利要求1至3中任一项所述的方法,其中,所述界面渲染组件确定与所述第一APP对应的第一虚拟显示层之前,还包括:
    所述界面渲染组件接收所述第一APP的启动请求;或,
    所述界面渲染组件接收所述第一APP发送的至少一个所述第一窗口的更新指示。
  8. 根据权利要求7所述的方法,其中,所述第二操作系统还包括代理服务组件;所述界面渲染组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器,包括:
    所述界面渲染组件通过所述代理服务组件将所述渲染后的至少一个第一窗口发送给所述窗口管理器。
  9. 一种窗口显示装置,其中,所述窗口显示装置应用于电子设备,所述电子设备包括:第一操作系统和以容器化方式部署在第一操作系统中的第二操作系统,所述第一操作系统包括窗口管理器,第二操作系统包括第一应用程序APP、界面渲染组件;所述窗口显示装置包括:
    界面渲染组件,所述界面渲染组件用于确定与所述第一APP对应的第一虚拟显示层;
    所述界面渲染组件还用于在所述第一虚拟显示层上对所述第一APP的至少一个第一窗口进行渲染,得到渲染后的至少一个第一窗口;
    发送模块,用于将所述渲染后的至少一个第一窗口发送给所述窗口管理器,所述窗口管理器显示所述第一窗口。
  10. 一种电子设备,其中,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至8中任一项所述窗口显示方法的步骤。
  11. 一种非暂态计算机可读存储介质,其中,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述窗口显示方法的步骤。
  12. 一种计算机程序产品,其中,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,所述计算机程序被处理器执行以实现如权利要求1至8中任一项所述窗口显示方法的步骤。
  13. 一种计算机程序,其中,所述计算机程序被处理器执行以实现如权利要求1至8中任一项所述窗口显示方法的步骤。
PCT/CN2022/106580 2021-10-21 2022-07-19 窗口显示方法、装置、设备和存储介质 WO2023065740A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111228459.3A CN114168239B (zh) 2021-10-21 2021-10-21 窗口显示方法、装置、设备和存储介质
CN202111228459.3 2021-10-21

Publications (1)

Publication Number Publication Date
WO2023065740A1 true WO2023065740A1 (zh) 2023-04-27

Family

ID=80477129

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/106580 WO2023065740A1 (zh) 2021-10-21 2022-07-19 窗口显示方法、装置、设备和存储介质

Country Status (2)

Country Link
CN (1) CN114168239B (zh)
WO (1) WO2023065740A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234657A (zh) * 2023-11-16 2023-12-15 北京麟卓信息科技有限公司 一种基于虚拟子图层的多窗口渲染优化方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168239B (zh) * 2021-10-21 2024-04-30 北京字节跳动网络技术有限公司 窗口显示方法、装置、设备和存储介质
CN116627579B (zh) * 2023-07-24 2023-10-31 麒麟软件有限公司 一种在Linux上缩放安卓应用窗口的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015196756A1 (zh) * 2014-06-25 2015-12-30 中兴通讯股份有限公司 一种运行应用程序的方法及设备
CN109949201A (zh) * 2019-01-29 2019-06-28 福建多多云科技有限公司 一种Linux容器的图像渲染加速方法
CN113110910A (zh) * 2021-04-20 2021-07-13 上海卓易科技股份有限公司 一种安卓容器实现的方法、系统及设备
CN113157362A (zh) * 2021-04-27 2021-07-23 麒麟软件有限公司 一种应用于Linux上Android多窗口显示方法
CN114168240A (zh) * 2021-10-21 2022-03-11 北京鲸鲮信息系统技术有限公司 窗口显示方法、装置、设备和存储介质
CN114168239A (zh) * 2021-10-21 2022-03-11 北京鲸鲮信息系统技术有限公司 窗口显示方法、装置、设备和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819705B2 (en) * 2010-10-01 2014-08-26 Z124 User interaction support across cross-environment applications
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
CN105912249A (zh) * 2015-12-15 2016-08-31 乐视网信息技术(北京)股份有限公司 一种实现视频推荐的方法及装置
GB2558879A (en) * 2017-01-04 2018-07-25 Cisco Tech Inc Method and apparatus for container-based virtualisation
CN106844066B (zh) * 2017-01-22 2022-09-27 腾讯科技(深圳)有限公司 一种应用运行方法、装置及系统
US10699003B2 (en) * 2017-01-23 2020-06-30 Hysolate Ltd. Virtual air-gapped endpoint, and methods thereof
US10459609B2 (en) * 2018-04-03 2019-10-29 Palantir Technologies Inc. Multi-stage data page rendering
CN108694073B (zh) * 2018-05-11 2023-01-17 腾讯科技(深圳)有限公司 虚拟场景的控制方法、装置、设备及存储介质
CN111061540B (zh) * 2019-11-27 2023-05-23 北京计算机技术及应用研究所 一种基于容器技术的应用虚拟化方法及系统
CN113032095A (zh) * 2021-03-15 2021-06-25 深圳市瑞驰信息技术有限公司 一种在arm架构上实现安卓容器运算的系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015196756A1 (zh) * 2014-06-25 2015-12-30 中兴通讯股份有限公司 一种运行应用程序的方法及设备
CN109949201A (zh) * 2019-01-29 2019-06-28 福建多多云科技有限公司 一种Linux容器的图像渲染加速方法
CN113110910A (zh) * 2021-04-20 2021-07-13 上海卓易科技股份有限公司 一种安卓容器实现的方法、系统及设备
CN113157362A (zh) * 2021-04-27 2021-07-23 麒麟软件有限公司 一种应用于Linux上Android多窗口显示方法
CN114168240A (zh) * 2021-10-21 2022-03-11 北京鲸鲮信息系统技术有限公司 窗口显示方法、装置、设备和存储介质
CN114168239A (zh) * 2021-10-21 2022-03-11 北京鲸鲮信息系统技术有限公司 窗口显示方法、装置、设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234657A (zh) * 2023-11-16 2023-12-15 北京麟卓信息科技有限公司 一种基于虚拟子图层的多窗口渲染优化方法
CN117234657B (zh) * 2023-11-16 2024-01-19 北京麟卓信息科技有限公司 一种基于虚拟子图层的多窗口渲染优化方法

Also Published As

Publication number Publication date
CN114168239A (zh) 2022-03-11
CN114168239B (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
WO2023065740A1 (zh) 窗口显示方法、装置、设备和存储介质
US11164280B2 (en) Graphics layer processing in a multiple operating systems framework
CN110032413B (zh) 一种桌面虚拟化方法、相关设备及计算机存储介质
CN104536802B (zh) 一种实现应用调用的方法及虚拟机
US10977062B2 (en) System for starting virtual machine using mirror image file stored in units of a distributed block storage system mapped to units of a logical volume
US9348623B2 (en) Management of inter-dependent configurations of virtual machines in a cloud
US8266618B2 (en) Graphics hardware resource usage in a fully virtualized computing environment
US8924564B2 (en) Migration of client-side virtual machine system resources
US20220086202A1 (en) Virtual computing system providing local screen sharing from hosted collaboration applications and related methods
US9135052B2 (en) Distributed multiple monitor display split using multiple client devices in a virtualization system
US20160364200A1 (en) Remote desktop exporting
US20190220307A1 (en) Client live migration for a virtual machine
US8978051B2 (en) Method and apparatus for displaying application image
US9225799B1 (en) Client-side rendering for virtual mobile infrastructure
US20140130042A1 (en) Mechanism for Single Virtual Machine Monitor Display Split Using Multiple Client Devices in a Virtualization System
WO2021121407A1 (zh) 一种虚拟机的容量更改方法及装置
US10318343B2 (en) Migration methods and apparatuses for migrating virtual machine including locally stored and shared data
CN113407086A (zh) 对象拖拽方法、设备和存储介质
CN111654525A (zh) 混合云管理方法、装置、设备及介质
US11071151B2 (en) Methods and apparatuses for connecting a wireless access point through an application in a user equipment
CN110795182A (zh) 云主机创建方法和系统
CN113612643B (zh) 云手机的网络配置方法、装置、设备以及存储介质
US11196799B2 (en) Redirection of USB devices from hardware isolated virtual desktop infrastructure clients
CN113918056A (zh) 一种调整应用窗口的方法和装置
US20240020080A1 (en) Handling local application events while working on remote desktops

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22882362

Country of ref document: EP

Kind code of ref document: A1