WO2019007216A1 - 一种图层处理方法及装置 - Google Patents

一种图层处理方法及装置 Download PDF

Info

Publication number
WO2019007216A1
WO2019007216A1 PCT/CN2018/092625 CN2018092625W WO2019007216A1 WO 2019007216 A1 WO2019007216 A1 WO 2019007216A1 CN 2018092625 W CN2018092625 W CN 2018092625W WO 2019007216 A1 WO2019007216 A1 WO 2019007216A1
Authority
WO
WIPO (PCT)
Prior art keywords
layer object
client
graphics
server
server layer
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.)
Ceased
Application number
PCT/CN2018/092625
Other languages
English (en)
French (fr)
Inventor
金德才
金卓军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of WO2019007216A1 publication Critical patent/WO2019007216A1/zh
Priority to US16/714,074 priority Critical patent/US11164280B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Definitions

  • the present application relates to the field of computer technologies, and in particular, to a layer processing method and apparatus.
  • the cloud operating system also known as cloud OS, is an operating system supported by cloud computing and cloud storage technologies.
  • the cloud operating system will be widely used in the future because it can integrate massive computing power and provide powerful resource allocation capabilities.
  • Cloud operating systems can be used for both traditional desktop systems (such as PCs) and mobile devices.
  • Applications or services based on cloud operating systems, as well as applications or services based on traditional operating systems, will operate within the framework of the cloud operating system, which requires the cloud operating system framework to integrate applications or services based on different operating systems.
  • the embodiment of the present application discloses a layer processing method and device.
  • a layer processing method including:
  • the graphics synthesizer obtains a first graphics composition request, where the first graphics composition request corresponds to a second server layer object in the second subsystem;
  • the graphics synthesizer And acquiring, by the graphics synthesizer, the first server layer object in the first subsystem associated with the second server layer object according to the second server layer object corresponding to the first graphics composition request Wherein the first server layer object and the second server layer object are created for a child layer object of the first application;
  • the graphics synthesizer acquires a cache corresponding to the second server layer object, and based on the first server layer object and uses a sublayer object corresponding to the first application stored in the cache
  • the graphical interface content data is responsive to the first graphical composition request.
  • the acquiring the first server layer object associated with the second server layer object includes: the graphics synthesizer according to the second layer object corresponding to the second server layer object The name of the first server layer object that corresponds to the same sublayer object name.
  • the first graphics composition request is generated by the second client after the rendering of the graphical interface of the first application is completed based on the second client layer object, the second client layer object and the Corresponding to the second server layer object; wherein the second client is the client of the first application in the second subsystem.
  • the method further includes: the graphics synthesizer acquiring a second graphics composition request, the second graphics synthesis request corresponding to the first server layer object; the graphics synthesizer according to the first server a sub-layer object corresponding to the layer object, acquiring first application graphical interface window state data corresponding to the sub-layer object; the graphics synthesizer is based on the first server layer object, and according to the first Applying graphical interface window state data in response to the second graphics composition request.
  • the second graphics composition request is generated by the first client updating the window state of the graphical interface of the first application based on the first client layer object, the first client layer The object corresponds to the first server layer object; wherein the first client is a client of the first application in the first subsystem.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • a layer processing method including:
  • the first client instructs the graphics synthesizer to create a first server layer object for the sub-layer object of the first application, and sends a notification to the second client, where the first client is the first application a client in the first subsystem, the second client being a client of the first application in the second subsystem;
  • the second client instructs the graphics synthesizer to create a second server layer object for the sub-layer object of the first application according to the notification, and establish the second server layer object and the server layer The relationship between the first server layer objects is described.
  • establishing an association relationship between the second server layer object and the first server layer object including: a name of a sub-layer object corresponding to the second server layer object, The name of the sub-layer object corresponding to the first server layer object is set to be the same.
  • the method further includes: the first client obtaining a name of the sub-layer object corresponding to the first server layer object, and carrying the name in the notification.
  • the first client obtains the name of the sub-layer object corresponding to the first server layer object, including: the first client receiving the graphics synthesizer after the creation is completed.
  • the name of the sub-layer object returned after the server layer object; or, the first client obtains the name of the sub-layer object through a registered callback function, and the callback function is used in the graphic
  • the synthesizer creates the first server layer object
  • the name of the sub-layer object corresponding to the first server layer object is notified to the first client.
  • the first client instructs the graphics synthesizer to create the first server layer object, including: the first client is a first application function module by calling a first library function module for creating a layer object
  • the interface creates a first client layer object, and the first library function module is called to notify the graphics synthesizer to create the first server layer object.
  • the second client instructing the graphics synthesizer to create a second server layer object, including: the second client is configured to create a layer according to the notification a second library function module of the object, the second client layer object is created for the graphic interface, and the second library function module is called to notify the graphic synthesizer to create the second server layer object.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • a layer processing method including:
  • the graphics synthesizer creates a first server layer object for the sub-layer object of the first application according to the indication of the first client; wherein the first client is the client of the first application in the first subsystem end;
  • the graphics synthesizer creates a second server layer object for the sub-layer object of the first application according to the indication of the second client; wherein the indication is that the second client is according to the first client Sending a notification sent by the terminal to the graphics synthesizer; wherein the second client is a client of the first application in the second subsystem;
  • the graphics synthesizer establishes an association relationship between the second server layer object and the first server layer object.
  • the graphics synthesizer establishes an association relationship between the second server layer object and the first server layer object, including: the graphics synthesizer uses the second server layer
  • the name of the sub-layer object corresponding to the object is set to be the same as the name of the sub-layer object corresponding to the first server layer object.
  • the method further includes: obtaining, by the graphics synthesizer, a name of the sub-layer object corresponding to the first server layer object from the second client; where the name of the sub-layer object is The first client is carried in the notification and sent to the second client.
  • the first subsystem is a Host subsystem
  • the second subsystem is a Guest subsystem.
  • a graphics synthesizer In a fourth aspect, a graphics synthesizer is provided, the graphics synthesizer sharing a graphics synthesizer used by a first subsystem and a second subsystem in an operating system, the graphics synthesizer comprising:
  • a request obtaining module configured to acquire a first graphics composition request, where the first graphics composition request corresponds to a second server layer object in the second subsystem
  • An association object obtaining module configured to acquire, according to the second server layer object corresponding to the first graphics composition request, a first server diagram in the first subsystem associated with the second server layer object a layer object; wherein the first server layer object and the second server layer object are created for a child layer object of the first application;
  • a compositing module configured to acquire a cache corresponding to the second server layer object, based on the first server layer object and using a sublayer object corresponding to the first application stored in the cache
  • the graphical interface content data is responsive to the first graphical composition request.
  • the associated object obtaining module is specifically configured to: acquire, according to a name of the sub-layer object corresponding to the second server layer object, a first server layer object corresponding to the same sub-layer object name .
  • the first graphics composition request is generated by the second client after the rendering of the graphical interface of the first application is completed based on the second client layer object, the second client layer object and the Corresponding to the second server layer object; wherein the second client is the client of the first application in the second subsystem.
  • the request obtaining module is further configured to: acquire a second graphics composition request, where the second graphics composition request corresponds to the first server layer object; and the synthesizing module is further configured to: according to the a sub-layer object corresponding to the first server layer object, acquiring first application graphical interface window state data corresponding to the sub-layer object; based on the first server layer object, and according to the first application Graphical interface window status data responsive to the second graphical composition request.
  • the second graphics composition request is generated by the first client updating the window state of the graphical interface of the first application based on the first client layer object, the first client layer The object corresponds to the first server layer object; wherein the first client is a client of the first application in the first subsystem.
  • an apparatus comprising:
  • a first client configured to instruct the graphics synthesizer to create a first server layer object for the sub-layer object of the first application, and send a notification to the second client, where the first client is the a client applied to the first subsystem, the second client being a client of the first application in the second subsystem;
  • a second client configured to, according to the notification, instruct the graphics synthesizer to create a second server layer object for the sub-layer object of the first application, and establish the second server layer object and The association relationship between the first server layer objects.
  • the second client is specifically configured to: set a name of the sub-layer object corresponding to the second server layer object to a sub-layer corresponding to the first server layer object
  • the names of the objects are the same.
  • the first client is further configured to: obtain a name of the sub-layer object corresponding to the first server layer object, and carry the name in the notification.
  • the first client is specifically configured to obtain a name of the sub-layer object corresponding to the first server layer object, and includes: receiving, by the graphics synthesizer, the first server-side diagram after the creation is completed.
  • the name of the sub-layer object returned after the layer object; or the name of the sub-layer object is obtained by a registered callback function for creating the first service in the graphics synthesizer
  • the name of the sub-layer object corresponding to the first server layer object is notified to the first client.
  • the first client is specifically configured to: create a first client layer object for the graphical interface of the first application by calling a first library function module for creating a layer object, where the first library function module After being called, the graphics synthesizer is notified to create the first server layer object.
  • the second client is specifically configured to: create, according to the notification, a second client layer object for the graphical interface by calling a second library function module for creating a layer object, After the second library function module is called, the graphics synthesizer is notified to create the second server layer object.
  • a graphics synthesizer In a sixth aspect, a graphics synthesizer is provided, the graphics synthesizer sharing a graphics synthesizer used by a first subsystem and a second subsystem in an operating system, the graphics synthesizer comprising:
  • a first layer object creation module configured to create a first server layer object for the child layer object of the first application according to the indication of the first client; and, according to the indication of the second client, for the first application Sublayer object creates a second server layer object, the indication being sent by the second client to the graphics synthesizer according to a notification sent by the first client; wherein the first client The end is the client of the first application in the first subsystem, and the second client is the client of the first application in the second subsystem;
  • an association module configured to establish an association relationship between the second server layer object and the first server layer object.
  • the association module is specifically configured to: set a name of the sub-layer object corresponding to the second server layer object to a sub-layer object corresponding to the first server layer object
  • the names are the same.
  • the association module is further configured to: obtain, by the second client, a name of a sub-layer object corresponding to the first server layer object, where the name of the sub-layer object is The first client is carried in the notification and sent to the second client.
  • a seventh aspect there is provided one or more computer readable medium having stored thereon instructions that, when executed by one or more processors, cause the communication device to perform any of the first aspects described above The method described.
  • one or more computer readable medium having stored thereon instructions that, when executed by one or more processors, cause the communication device to perform any of the above second aspects The method described.
  • a ninth aspect there is provided one or more computer readable medium having stored thereon instructions that, when executed by one or more processors, cause the communication device to perform any of the above third aspects The method described.
  • a tenth aspect an apparatus comprising: one or more processors; and one or more computer readable media having instructions stored thereon, the instructions being processed by the one or more When executed, the apparatus is caused to perform the method of any of the above first aspects.
  • an apparatus comprising: one or more processors; and one or more computer readable media having instructions stored thereon, the instructions being by the one or more
  • the processor when executed, causes the apparatus to perform the method of any of the above second aspects.
  • a twelfth aspect an apparatus comprising: one or more processors; and one or more computer readable media having instructions stored thereon, the instructions being by the one or more The processor, when executed, causes the apparatus to perform the method of any of the above third aspects.
  • the graphics synthesizer obtains the first graphics composition request, and since the first graphics synthesis request corresponds to the second server layer object in the second subsystem, the graphics synthesizer may And acquiring, by the second server layer object corresponding to the first graphics composition request, a first server layer object in the first subsystem associated with the second server layer object; the graphics synthesizer Obtaining a cache corresponding to the second server layer object, and responding to the first graphics composition request according to the graphic interface content data corresponding to the sub-layer object stored in the cache.
  • the graphics synthesizer responds to the first graphics composition request in the above manner, thereby
  • the graphics interface content data corresponding to the sub-layer object of the first application is used for graphics synthesis, and the integration of applications or services based on different operating systems at the graphics synthesis level is realized within an operating system framework.
  • FIG. 1 exemplarily shows a schematic diagram of a system architecture used in an embodiment of the present application
  • FIG. 2 exemplarily shows a Z-order sequence diagram of a layer object in the embodiment of the present application
  • FIG. 3 is a schematic diagram showing a process of creating a layer object provided by an embodiment of the present application.
  • FIG. 4 exemplarily shows a schematic diagram of a layer object created by an embodiment of the present application
  • FIG. 5 exemplarily shows a schematic flowchart of a graphics synthesis provided by an embodiment of the present application
  • FIG. 6 exemplarily shows a schematic flowchart of a graphics synthesis provided by another embodiment of the present application.
  • FIG. 7 exemplarily shows a process in which Host_client_appA and Guest_client_appA create an object related to graphics synthesis in the embodiment of the present application
  • FIG. 8 is a schematic structural diagram of a graphics synthesizer provided by an embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of a graphics synthesizer provided by another embodiment of the present application.
  • FIG. 10 exemplarily shows a schematic structural diagram of a communication apparatus provided by an embodiment of the present application.
  • references to "an embodiment”, “an embodiment”, “an illustrative embodiment” or the like in the specification are intended to mean that the described embodiments may include specific features, structures, or characteristics, but each embodiment may or may not necessarily include a particular Feature, structure or characteristic. Moreover, such phrases are not necessarily referring to the same embodiments. Further, it is to be understood that the specific features, structures, or characteristics may be combined with other embodiments, whether explicitly described or not, in conjunction with the embodiments. In addition, it should be understood that items included in the list in the form of "at least one of A, B, and C” may represent (A); (B); (C); (A and B); (A and C) ; (B and C); or (A, B and C). Similarly, items listed in the form of "at least one of A, B or C” may represent (A); (B); (C); (A and B); (A and C); (B and C) or (A, B and C).
  • the disclosed embodiments can be implemented in hardware, firmware, software, or any combination thereof.
  • the disclosed embodiments can also be implemented as instructions carried or stored by one or more transitory or non-transitory machine readable (eg, computer readable) storage media, which can be read by one or more processors And execution.
  • a machine-readable storage medium may be embodied in any storage device, mechanism or other physical structure for storing or transmitting information in a machine readable form (eg, a volatile or nonvolatile memory, media disk or other medium). ).
  • the embodiment of the present application provides a graphical synthesis layer for different operating systems within an operating system framework. Convergence and unified processing to provide users with a seamless dual system user experience.
  • the embodiment of the present application is applicable to a scenario in which a first subsystem and a second subsystem are included in an operating system framework, and the first subsystem and the second subsystem share a graphics synthesizer of the first subsystem.
  • the first subsystem may be a primary system or a host subsystem
  • the second subsystem may be a secondary system or a guest subsystem.
  • the first subsystem may be a cloud operating system
  • the second subsystem may be a traditional operating system.
  • the first subsystem may be YunOS and the second subsystem may be Android.
  • FIG. 1 exemplarily shows a schematic diagram of an operating system framework including multiple subsystems used in the embodiment of the present application. Taking YunOS as the first subsystem and Android as the second subsystem, Figure 1 shows the dual system compatibility architecture within the operating system framework.
  • the operating system framework includes the Host subsystem and the Guest subsystem.
  • YunOS is the Host subsystem
  • Android is the Guest subsystem
  • the two subsystems are isolated by the container technology.
  • the Hardware Abstraction Layer (HAL) in the framework provides interfaces and driver services for graphical display and other aspects.
  • Glibc in the Host subsystem is the lowest application programming interface (API) in Linux.
  • Libhybris is a compatibility layer that enables Glibc-based operating systems to reuse existing Android driver services.
  • the Gralloc module is located in the hardware abstraction layer and encapsulates all access operations to the framebuffer.
  • Compositor is the graphics synthesizer of the Host subsystem, which is used by the Host subsystem and the Guest subsystem.
  • An application can contain one or more graphical interfaces (or windows), and a graphical interface can correspond to at least one layer object, called a surface. Each graphical interface has its position, size, and content to display on the screen.
  • a layer object corresponding to a graphical interface can be understood as a container corresponding to the graphical interface for storing control information of the graphical interface (such as the size, location, etc. of the graphical interface on the screen) and/or The data of the graphical interface (that is, the content that the graphical interface needs to display).
  • a layer object can be created by an application in a client in a compositor.
  • Z-order There may be overlap between multiple layer objects, and the layer relationship between layer objects can be described by Z-order.
  • Z-order There is a Z axis in the vertical direction of the screen plane, and all the layer objects determine the front and back order according to the coordinates on the Z axis, that is, describe the upper and lower coverage relationship between the respective layer objects. This order on the Z axis can be called Z-order.
  • FIG. 2 exemplarily shows the order of a plurality of layer objects on the Z axis.
  • the screen includes surface0, surface1, and surface2 in order from top to bottom when displayed on the screen.
  • Surface0 partially covers surface1
  • surface1 partially covers surface2.
  • the Z-order of surface0, surface1, and surface2 are represented as: 1, 2, and 3, respectively.
  • a layer object corresponds to a layer object on the Z axis, called layer.
  • a layer object provides operation of control information for a layer object corresponding to the layer, and processing of the content of the surface.
  • the compositor is mainly used to manage the graphics synthesis process, that is, to control the fusion of different layer objects, for example, to calculate the overlapping regions of two layer objects, and the layer objects ( Surface)
  • the content that needs to be displayed can be done in the layer.
  • a graphical layer interface for some applications is created with a main layer object (ie, a main surface) and a sub-layer object (ie, a subsurface).
  • a main layer object ie, a main surface
  • a sub-layer object ie, a subsurface
  • the corresponding graphical interface window state data is saved in the first subsystem
  • the corresponding graphical interface content data is saved in the second subsystem.
  • window state data can be generated or updated when a window state update event occurs.
  • the window status update event may include, but is not limited to, an event generated based on window movement, an event generated based on window scaling, and an event generated based on window rotation.
  • the window status data may include, but is not limited to, data for describing a window position and/or direction.
  • a first server layer object is created in the first subsystem for a graphical interface of the application (more specifically, for a subsurface of the graphical interface) for the graphical interface ( More specifically, for the subsurface of the graphical interface, a second server layer object and a corresponding cache (the cache is used to store the content data of the graphical interface) are created in the second subsystem, and the first server is established.
  • the association between the layer object and the second server layer object is associated with the child surface.
  • the client in the second subsystem determines, according to the association relationship, the corresponding first server layer object in the first subsystem, And performing graphics synthesis based on the graphic interface content data in the cache corresponding to the child surface by the first server layer object. Further, when the window state of the graphical interface of the application changes, the client of the application in the first subsystem performs graphics synthesis based on the graphical interface window state data corresponding to the subsurface of the first server layer object. .
  • the graphics synthesis event related to the second subsystem occurs by the association relationship between the server layer objects in different subsystems
  • the first in the first subsystem occurs.
  • the server layer object can be synthesized based on the cache corresponding to the second server layer object in the second subsystem, and the fusion of different subsystems at the graphics synthesis level is realized.
  • the layer creation process of the embodiment of the present application is described below with reference to FIG. 3 and FIG. 4 , and the graphics synthesis process provided by the embodiment of the present application is described with reference to FIG. 5 and FIG. 6 .
  • two clients may be created for the second subsystem-based application: one is the application
  • the client in the first subsystem is referred to as a first client in the embodiment of the present application
  • the other is a client in the second subsystem, which is referred to as a second client in the embodiment of the present application.
  • the two clients of the application may correspond to two different processes of the application in the operating system, and each process has its own memory area.
  • the above application client can be created when the application starts.
  • the client in the first subsystem and the client in the second subsystem respectively create a server layer object and establish a mutual association relationship.
  • FIG. 3 exemplarily shows a process of creating a layer object provided by an embodiment of the present application.
  • This process can be executed when the application is launched, or when a new graphical interface (window) is opened, or otherwise.
  • the following process is described by taking a first application as an example, wherein a client in the first subsystem (such as a primary system) is called a first client, and the application is in a second subsystem (such as a secondary system).
  • the client is called the second client.
  • the first client can create a sub-layer object (hereinafter referred to as a subsurface).
  • the process can include:
  • the first client instructs the graphics synthesizer to create a first server layer object for the graphical interface of the first application.
  • the first client may create a first client layer object for the graphical interface of the first application by calling a first library function module for creating a layer object, and the first library function module is notified after being called
  • the graphics synthesizer creates a first server layer object corresponding to the first client layer object.
  • the first library function module may be a function library in the first subsystem, and may include a plurality of functions including functions for creating a layer object. This library provides function interfaces (such as the Application Programming Interface (API)) to the application layer.
  • API Application Programming Interface
  • the first client can call the corresponding function to create a layer object based on the interface of the function used to create the layer object.
  • the first client may create the first server layer object based on the child surface of the first application, such that the first server layer object corresponds to the child surface or is associated with the child surface.
  • the name of the child surface of the first application may be included in the first server layer object, so that the first server layer object is associated with the child surface.
  • the first client sends a notification to the second client.
  • the notification is used to indicate that a second server layer object is created for the graphical interface of the first application.
  • the first client may send a notification message to the second client by using an Inter-Process Communication (IPC) protocol.
  • the notification message may include a name of the subsurface, where the subsurface is a subsurface corresponding to the first server layer object.
  • the first client may obtain the name of the subsurface corresponding to the first server layer object in the following manner:
  • Method 1 The first client receives the name of the subsurface corresponding to the first server layer object returned by the graphics synthesizer after the creation of the first server layer object is completed;
  • the first client may pre-register the callback function, and after the graphics synthesizer creates the first server layer object, the callback function may notify the name of the subsurface corresponding to the first server layer object to The first client.
  • S303 The second client, according to the notification, instruct the graphics synthesizer to create a second server layer object for the graphical interface of the first application, and establish the second server layer object and the first server diagram The relationship between layer objects.
  • the second client may, according to the name of the sub-surface notified by the first client, instruct the graphics synthesizer to create a second server layer object for the graphical interface of the first application based on the sub-surface, so that the created The second server layer object corresponds to or is associated with the child surface.
  • the second client may create a second client layer object for the graphical interface of the first application by calling a second library function module for creating the layer object, and the second library function module is notified after being called
  • the graphics synthesizer creates a second server layer object corresponding to the second client layer object.
  • the second library function module may be a function library in the second subsystem, and may include a plurality of functions including functions for creating a layer object.
  • the function library can provide a function interface (such as an application programming interface (API)) to the application layer.
  • API application programming interface
  • the second client can call the corresponding function to create a layer object based on the interface of the function for creating the layer object.
  • the graphics synthesizer can establish an association relationship between the first server layer object and the second server layer object in multiple manners.
  • the name of the layer object corresponding to the second server layer object ie, the name of the subsurface
  • the name is the same, such that the first server graphic object and the second server graphic object correspond to a subsurface of the same name, that is, associated with the same subsurface.
  • the identifier of the first server layer object and the identifier of the second server layer object are stored in the form of an identifier pair.
  • the second client may also create a cache for the graphical interface of the first application, the cache corresponding to the subsurface of the graphical interface of the first application. Since the child surface corresponds to the second server layer object and/or the second client layer object, the cache also corresponds to the second server layer object and/or the second client layer object.
  • the content data of the graphic interface can be obtained through the cache, and the content data can refer to the data after the graphic interface rendering process.
  • the cache is used to store content data corresponding to the content data update event of the graphical interface.
  • the event may include a graphical interface rendering event, such as may be generated after rendering the graphical interface is complete.
  • FIG. 4 exemplarily shows a layer object created for a graphical interface of the first application.
  • the first client layer object and the first server layer object are layer objects created by the first client in the first subsystem, the second client layer object and the first
  • the second server layer object is a layer object created by the second application of the first application in the second subsystem.
  • the first client layer object is first created, and the first client layer object is created as a parent object - the first server layer object; in the second subsystem First, create a second client layer object, and create a child object with the second client layer object as the parent object - the second server layer object.
  • the specific creation process can be referred to the foregoing embodiment.
  • the first server layer object and the second server layer object are associated with each other and are associated with a subsurface of the graphical interface of the first application.
  • the second client layer object corresponds to a cache for storing graphical interface content data of the first application.
  • the first application based on the second subsystem may be configured to respond to a user operation during operation, update a graphical interface of the application according to a user operation, or refresh the graphical interface of the application according to a set period.
  • Graphical interface updates can include two aspects:
  • the content of the graphical interface is updated, and the process is the graphics rendering process.
  • the graphics rendering process is completed (that is, after the graphical interface content data is obtained)
  • the graphics synthesizer performs graphics synthesis.
  • FIG. 5 exemplarily shows a schematic flowchart of a graphics synthesis provided by an embodiment of the present application.
  • the process describes that the graphics synthesizer performs graphics synthesis after the rendering of the graphical interface of the first application is completed.
  • the second client in the second subsystem renders the corresponding graphical interface based on the second client layer object, and the rendered graphical interface content data is stored in the first application in the second subsystem.
  • the child surface corresponds to the cache.
  • the graphics synthesizer acquires a first graphics composition request, where the first graphics composition request corresponds to the second server layer object.
  • This step can be implemented based on an asynchronous event mechanism or based on a synchronous event mechanism.
  • the second client In the case of adopting the asynchronous event mechanism, the second client generates a first graphics composition request (or event) based on the second server layer object to complete the graphical interface rendering, and stores the request in the event queue, the graphics synthesizer Acquiring a first graphical composition request from the event queue based on the asynchronous event mechanism.
  • the synchronous event mechanism after the second client completes the graphical interface rendering based on the second server layer object, a request is sent to the graphics synthesizer to request the graphics synthesizer to immediately respond to the request for graphics synthesis.
  • the second client may invoke the second client layer object, and then the second client layer object invokes the second server layer object for graphics rendering.
  • the graphics synthesizer acquires the first server layer object associated with the second server layer object according to the second server layer object corresponding to the request.
  • the name of the subsurface corresponding to the first server layer object is the same as the name of the subsurface corresponding to the second server layer object, and correspondingly, the graphics synthesizer may be according to the second server diagram.
  • the name of the subsurface corresponding to the layer object, and the first server layer object corresponding to the same subsurface name is obtained.
  • the graphics synthesizer obtains a cache corresponding to the second server layer object, and based on the first server layer object acquired in S502, and uses the graphic interface content corresponding to the sub-layer object of the first application stored in the cache. Data in response to the first graphical composition request.
  • the graphics synthesizer may obtain, according to the first server layer object, a cache corresponding to the second server layer object associated with the first server layer object, where the second server layer is stored in the cache. Graphical interface content data of the subsurface corresponding to the object.
  • the graphics synthesizer responds to the first graphics composition request based on the acquired first server layer object and according to the graphical interface content data stored in the cache.
  • the window state data of the corresponding subsurface ie, the subsurface corresponding to the first server layer object
  • the Z-order of each layer object may be further controlled. Perform graphic synthesis.
  • FIG. 6 exemplarily shows a schematic flowchart of a graphics synthesis provided by another embodiment of the present application.
  • the flow describes that the graphics synthesizer performs graphics synthesis after the window state of the graphical interface of the first application changes.
  • the first application updates the window state of the graphical interface in the first client in the first subsystem. After the window status update is complete, the following process can be triggered:
  • the graphics synthesizer acquires a second graphics composition request, and the second graphics composition request is generated according to a graphical interface window state update event of the first application.
  • This step can be implemented based on an asynchronous event mechanism or based on a synchronous event mechanism.
  • the first client In the case of adopting the asynchronous event mechanism, the first client generates a second graphics composition request (or event) after completing the window state update of the graphical interface based on the first server layer object, and stores the request in the event queue.
  • the graphics synthesizer responds by acquiring a second graphics composition request from the event queue based on the asynchronous event mechanism.
  • the first client after the first client completes the window state update of the graphical interface based on the first server layer object, the first client sends a request to the graphics synthesizer to request the graphics synthesizer to immediately respond to the request for graphics synthesis.
  • the first client may invoke the first client layer object, and then the first client layer object invokes the first server layer object to perform window state update.
  • the graphics synthesizer responds to the second graphics composition request according to the first server layer object.
  • the graphics synthesizer may obtain the subsurface corresponding to the first server layer object according to the first server layer object, and respond to the second graphics composition request based on the window state data of the graphical interface corresponding to the subsurface.
  • the framework of the operating system used by the smartphone includes a Host subsystem (corresponding to the cloud operating system) and a Guest subsystem (corresponding to the Android system), and the two subsystems share a Compositor server.
  • Application A is installed on the smartphone, and application A is an application widget widget (Widget) application based on the Andorid system.
  • the Host subsystem creates a client (client) in the Host subsystem for the application A according to the startup event of the application A.
  • client is called Host_client_appA
  • Host_client_appA creates the application.
  • the child surface of program A the name of the child surface is "N”.
  • the Guest subsystem creates a client (client) for the application A in the Guest subsystem according to the startup event of the application A.
  • the client is referred to as Guest_client_appA.
  • Host_client_appA and Guest_client_appA can communicate based on the IPC mechanism.
  • FIG. 7 exemplarily shows a process in which Host_client_appA and Guest_client_appA create an object related to graphics synthesis.
  • Host_client_appA calls the graphical user interface library module (libgui module) in the Host subsystem to create a surface object of the client in the Host subsystem for the application A, where the surface object is referred to as Host Client Surface.
  • the HC_surface object corresponds to the subsurface of application A and is created for the subsurface of application A.
  • the libgui module encapsulates a native layer related function for the surface object, which can be used to create a surface object.
  • the libgui module is called, the compositor server is notified to create the surface object of the server in the Host subsystem for the application A.
  • the surface object is called Host Server Surface, which is referred to as HS_surface object, HS_surface object and application A.
  • the subsurface corresponds to the subsurface created by application A.
  • the callback function registered by Host_client_appA notifies Host_client_appA of the subsurface name "N" corresponding to HS_surface.
  • Host_client_appA sends a request to Guest_client_appA, which carries the subsurface name "N" corresponding to the HS_surface object, to request to create a corresponding surface object in the Guest subsystem for application A.
  • Guest_client_appA calls the function library module in the Guest subsystem to create a layer object for the application A, according to the subsurface name "N" corresponding to the HS_surface object in the request message.
  • Application A creates the surface object of the client in the Guest subsystem.
  • the surface object is called Guest Client Surface, which is referred to as the GC_surface object.
  • the GC_surface object corresponds to the subsurface of the application A, and is created for the subsurface of the application A. .
  • the compositor server is notified to create a server surface object in the guest subsystem for the application A according to the subsurface name corresponding to the GC_surface object, where the surface object is called a Guest Client Surface.
  • the subsurface name corresponding to the GS_surface object is “N”.
  • Guest_client_appA also creates a buffer corresponding to the child surface, and the buffer is used to store the graphical interface content data of the application A. Since the GC_surface object and the GS_surface object are created based on the subsurface, the buffer also corresponds to the GC_surface object and the GS_surface object.
  • Guest_client_appA performs graphical interface rendering, and the rendered graphical interface content data is stored in the buffer corresponding to the GC_surface object in the application subsystem in the Guest subsystem.
  • Guest_client_appA obtains the GS_surface object through the GC_surface object, and sends a first graphics composition request to the compositor based on the GS_surface object and using the IPC communication mechanism; compositor Obtain the associated HS_surface object according to the GS_surface object, and based on the HS_surface object, use the graphical interface content data in the buffer corresponding to the GS_surface object and the graphical interface window state data of the corresponding subsurface saved in the Host subsystem, and combine Z-order And other information for graphic synthesis.
  • Host_client_appA informs the compositor through the IPC communication mechanism to perform graphic synthesis for the graphical interface after the location update.
  • the compositeor obtains the graphical interface window state data corresponding to the corresponding subsurface based on the HS_surface object, and Combine information such as Z-order for graphic synthesis.
  • the graphics synthesizer obtains the first graphics composition request, and since the first graphics synthesis request corresponds to the second server layer object in the second subsystem, the graphics synthesizer may And acquiring, by the second server layer object corresponding to the first graphics composition request, a first server layer object in the first subsystem associated with the second server layer object; the graphics synthesizer Obtaining a cache corresponding to the second server layer object, and responding to the first graphics composition request according to the graphic interface content data corresponding to the sub-layer object stored in the cache.
  • the graphics synthesizer responds to the first graphics composition request in the above manner, thereby
  • the graphics interface content data corresponding to the sub-layer object of the first application is used for graphics synthesis, and the integration of applications or services based on different operating systems at the graphics synthesis level is realized within an operating system framework.
  • the embodiment of the present application further provides an apparatus capable of implementing the method described in the foregoing embodiment.
  • FIG. 8 is a schematic structural diagram of a graphics synthesizer provided by an embodiment of the present application.
  • the graphics synthesizer is a graphics synthesizer shared by a first subsystem and a second subsystem in an operating system.
  • the graphics synthesizer includes: a request acquisition module 801, an association object acquisition module 802, and a synthesis module 803, wherein:
  • the request obtaining module 801 is configured to obtain a first graphics composition request, where the first graphics composition request corresponds to a second server layer object in the second subsystem;
  • the association object obtaining module 502 is configured to acquire, according to the second server layer object corresponding to the first graphics composition request, the first server diagram in the first subsystem associated with the second server layer object. a layer object; wherein the first server layer object and the second server layer object are created for a child layer object of the first application;
  • the synthesizing module 803 is configured to acquire a cache corresponding to the second server layer object, and use the first server layer object based on the first server layer object and use the sublayer object corresponding to the first application stored in the cache.
  • the graphical interface content data is responsive to the first graphical composition request.
  • the association object obtaining module 802 is specifically configured to: acquire, according to a name of the sub-layer object corresponding to the second server layer object, a first server layer object corresponding to the same sub-layer object name.
  • the first graphics composition request is generated by the second client after the rendering of the graphical interface of the first application is completed based on the second client layer object, the second client layer object and the Corresponding to the second server layer object; wherein the second client is the client of the first application in the second subsystem.
  • the request obtaining module 801 is further configured to: acquire a second graphics composition request, where the second graphics composition request corresponds to the first server layer object; and the synthesizing module is further configured to: according to the a sub-layer object corresponding to the server layer object, acquiring first application graphical interface window state data corresponding to the sub-layer object; based on the first server layer object, and according to the first application graphic Interface window status data responsive to the second graphical composition request.
  • the second graphics composition request is generated by the first client updating the window state of the graphical interface of the first application based on the first client layer object, the first client layer The object corresponds to the first server layer object; wherein the first client is a client of the first application in the first subsystem.
  • the embodiment of the present application further provides one or more computer readable media having instructions stored thereon, when the instructions are executed by one or more processors, causing the communication device to perform the foregoing The graphical interface processing method described in the embodiment.
  • the embodiment of the present application further provides an apparatus capable of implementing the method described in the foregoing embodiment.
  • the embodiment of the present application further provides an apparatus capable of implementing the method described in the foregoing embodiment.
  • FIG. 9 is a schematic structural diagram of a graphics synthesizer provided by an embodiment of the present application.
  • the graphics synthesizer is a graphics synthesizer shared by a first subsystem and a second subsystem in an operating system.
  • the graphics synthesizer includes: a first layer object creation module 901, an association module 902, wherein:
  • the first layer object creation module 901 is configured to create a first server layer object for the child layer object of the first application according to the indication of the first client; and, according to the indication of the second client, for the first application Sublayer object creates a second server layer object, the indication being sent by the second client to the graphics synthesizer according to a notification sent by the first client; wherein the first client The end is the client of the first application in the first subsystem, and the second client is the client of the first application in the second subsystem;
  • the association module 902 is configured to establish an association relationship between the second server layer object and the first server layer object.
  • the association module 902 is specifically configured to: set a name of the sub-layer object corresponding to the second server layer object to be the same as a name of the sub-layer object corresponding to the first server layer object.
  • the association module 902 is further configured to: obtain, from the second client, a name of the sub-layer object corresponding to the first server layer object, where the name of the sub-layer object is the The first client is carried in the notification and sent to the second client.
  • the embodiment of the present application further provides one or more computer readable media having instructions stored thereon, when the instructions are executed by one or more processors, causing the communication device to perform the foregoing The graphical interface processing method described in the embodiment.
  • the embodiment of the present application further provides an apparatus, where the apparatus includes a first client and a second client.
  • the functions of the first client and the second client may be as described in the foregoing embodiments, and are not repeated here.
  • the embodiment of the present application further provides one or more computer readable media having instructions stored thereon, when the instructions are executed by one or more processors, causing the communication device to perform the foregoing The graphical interface processing method described in the embodiment.
  • the embodiment of the present application further provides an apparatus 1000, which can implement the process on the server side in the foregoing embodiment.
  • FIG. 10 exemplarily illustrates an example apparatus 1000 that may include one or more processors 1002 coupled to at least one processor 1002, non-volatile memory (non-), in accordance with various embodiments.
  • a volatile memory (NMV)/memory 1004 is coupled to system control logic 1001, and network interface 1006 is coupled to system control logic 1001.
  • NMV non-volatile memory
  • Processor 1002 can include one or more single core processors or multi-core processors.
  • Processor 1002 can include any general purpose processor or combination of special purpose processors (eg, image processors, application processor baseband processors, etc.).
  • System control logic 1001 in one embodiment may include any suitable interface controller to provide any suitable interface to at least one of processors 1002 and/or to any suitable communication in communication with system control logic 1001. Any suitable interface to the device or component.
  • System control logic 1001 in one embodiment may include one or more memory controllers to provide an interface to system memory 1003.
  • System memory 1003 is used to load and store data and/or instructions.
  • corresponding device 1000 in one embodiment, system memory 1003 can include any suitable volatile memory.
  • NVM/memory 1004 can include one or more tangible, non-transitory computer readable media for storing data and/or instructions.
  • NVM/memory 1004 can include any suitable non-volatile storage device, such as one or more hard disk devices (HDDs), one or more compact disks (CDs), and/or one or more Digital versatile disk (DVD).
  • HDDs hard disk devices
  • CDs compact disks
  • DVD Digital versatile disk
  • the NVM/memory 1004 can include storage resources that are physically part of the device that the system is installed on or can be accessed, but is not necessarily part of the device.
  • NVM/memory 1004 can be accessed by the network via network interface 1006.
  • System memory 1003 and NVM/memory 1004 can each include a copy of a temporary or persistent instruction 1010.
  • the instructions 1010 can include instructions that, when executed by at least one of the processors 1002, cause the device 1000 to implement one or a combination of the methods described in Figures 4-6.
  • instructions 1010 or hardware, firmware, and/or software components may additionally/alternatively be placed in system control logic 1001, network interface 1006, and/or processor 1002.
  • Network interface 1006 can include a receiver to provide device 1000 with a wireless interface to communicate with one or more networks and/or any suitable device.
  • Network interface 1006 can include any suitable hardware and/or firmware.
  • Network interface 1006 can include multiple antennas to provide a multiple input multiple output wireless interface.
  • network interface 1006 can include a network adapter, a wireless network adapter, a telephone modem, and/or a wireless modem.
  • At least one of the processors 1002 may be packaged with logic for one or more controllers of system control logic. In one embodiment, at least one of the processors may be packaged with logic for one or more controllers of system control logic to form a system level package. In one embodiment, at least one of the processors can be integrated on the same die as the logic of one or more controllers for system control logic. In one embodiment, at least one of the processors can be integrated on the same die as the logic of one or more controllers for system control logic to form a system chip.
  • Apparatus 1000 can further include an input/output device 1005.
  • the input/output device 1005 can include a user interface intended to enable a user to interact with the device 1000, can include a peripheral component interface designed to enable peripheral components to interact with the system, and/or can include sensors for determining environmental conditions And/or location information about the device 1000.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种图层处理方法及装置。本申请中,图形合成器获取第一图形合成请求,所述第一图形合成请求对应于第二子系统中的第二服务端图层对象,根据所述第一图形合成请求所对应的第二服务端图层对象,获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象,其中,所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创建的;图形合成器获取所述第二服务端图层对象所对应的缓存,并根据所述缓存中存储的与所述子图层对象对应的图形界面内容数据,响应第一图形合成请求。采用本申请可针对在一种操作系统框架内,基于不同操作系统的应用或服务如何在图形合成层面融合。

Description

一种图层处理方法及装置
本申请要求2017年07月07日递交的申请号为201710551288.5、发明名称为“一种图层处理方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种图层处理方法及装置。
背景技术
云操作系统又称云OS,是以云计算、云存储技术作为支撑的操作系统。云操作系统因其能够整合海量的计算能力并能够提供强大的资源调配能力,未来将得到更广泛的应用。
云操作系统既可以用于传统的桌面系统设备(如PC)又适用于移动设备。基于云操作系统的应用或服务,以及基于传统操作系统的应用或服务,将会在云操作系统框架内运行,这就要求云操作系统框架能够将基于不同操作系统的应用或服务进行融合。
目前,针对在一种操作系统框架内,基于不同操作系统的应用或服务如何在图形合成层面融合,目前尚未有相应的解决方案。
发明内容
本申请实施例公开了一种图层处理方法及装置。
第一方面,提供一种图层处理方法,包括:
图形合成器获取第一图形合成请求,所述第一图形合成请求对应于第二子系统中的第二服务端图层对象;
所述图形合成器根据所述第一图形合成请求所对应的第二服务端图层对象,获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象;其中,所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创建的;
所述图形合成器获取所述第二服务端图层对象所对应的缓存,基于所述第一服务端图层对象并使用所述缓存中存储的与所述第一应用的子图层对象对应的图形界面内容数据,响应所述第一图形合成请求。
可选地,所述获取所述第二服务端图层对象所关联的第一服务端图层对象,包括:所述图形合成器根据所述第二服务端图层对象对应的子图层对象的名称,获取对应于相 同子图层对象名称的第一服务端图层对象。
可选地,所述第一图形合成请求由第二客户端基于第二客户端图层对象对所述第一应用的图形界面渲染完成后生成,所述第二客户端图层对象与所述第二服务端图层对象对应;其中,所述第二客户端为所述第一应用在第二子系统中的客户端。
可选地,还包括:所述图形合成器获取第二图形合成请求,所述第二图形合成请求对应于所述第一服务端图层对象;所述图形合成器根据所述第一服务端图层对象所对应的子图层对象,获取该子图层对象对应的第一应用图形界面窗口状态数据;所述图形合成器基于所述第一服务端图层对象,并根据所述第一应用图形界面窗口状态数据,响应所述第二图形合成请求。
可选地,所述第二图形合成请求由第一客户端基于第一客户端图层对象对所述第一应用的图形界面的窗口状态进行更新的操作生成,所述第一客户端图层对象与所述第一服务端图层对象对应;其中,所述第一客户端为所述第一应用在第一子系统中的客户端。
可选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
第二方面,提供一种图层处理方法,包括:
第一客户端指示图形合成器针对第一应用的子图层对象创建第一服务端图层对象,并向第二客户端发送通知;其中,所述第一客户端为所述第一应用在第一子系统中的客户端,所述第二客户端为所述第一应用在第二子系统中的客户端;
所述第二客户端根据所述通知,指示所述图形合成器针对所述第一应用的子图层对象创建第二服务端图层对象,并建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
可选地,建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系,包括:将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
可选地,还包括:所述第一客户端获得所述第一服务端图层对象对应的子图层对象的名称,并将所述名称携带于所述通知中。
可选地,所述第一客户端获得所述第一服务端图层对象对应的子图层对象的名称,包括:所述第一客户端接收所述图形合成器在创建完成所述第一服务端图层对象后返回的所述子图层对象的名称;或者,所述第一客户端通过注册的回调函数获得所述子图层对象的名称,所述回调函数用于在所述图形合成器创建完成所述第一服务端图层对象后将所述第一服务端图层对象对应的子图层对象的名称通知给所述第一客户端。
可选地,第一客户端指示图形合成器创建第一服务端图层对象,包括:所述第一客户端通过调用用于创建图层对象的第一库函数模块,为第一应用的图形界面创建第一客户端图层对象,所述第一库函数模块被调用后通知所述图形合成器创建所述第一服务端图层对象。
可选地,所述第二客户端根据所述通知,指示所述图形合成器创建第二服务端图层对象,包括:所述第二客户端根据所述通知,通过调用用于创建图层对象的第二库函数模块,为所述图形界面创建第二客户端图层对象,所述第二库函数模块被调用后通知所述图形合成器创建所述第二服务端图层对象。
可选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
第三方面,提供一种图层处理方法,包括:
图形合成器根据第一客户端的指示,针对第一应用的子图层对象创建第一服务端图层对象;其中,所述第一客户端为所述第一应用在第一子系统中的客户端;
所述图形合成器根据第二客户端的指示,针对所述第一应用的子图层对象创建第二服务端图层对象;其中,所述指示是所述第二客户端根据所述第一客户端发送的通知向所述图形合成器发送的;其中,所述第二客户端为所述第一应用在第二子系统中的客户端;
所述图形合成器建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
可选地,所述图形合成器建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系,包括:所述图形合成器将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
可选地,还包括:所述图形合成器从所述第二客户端获得所述第一服务端图层对象对应的子图层对象的名称;其中,所述子图层对象的名称是所述第一客户端携带于通知中发送给所述第二客户端的。
可选地,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
第四方面,提供一种图形合成器,所述图形合成器为操作系统中的第一子系统和第二子系统共享使用的图形合成器,所述图形合成器包括:
请求获取模块,用于获取第一图形合成请求,所述第一图形合成请求对应于第二子系统中的第二服务端图层对象;
关联对象获取模块,用于根据所述第一图形合成请求所对应的第二服务端图层对象, 获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象;其中,所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创建的;
合成模块,用于获取所述第二服务端图层对象所对应的缓存,基于所述第一服务端图层对象并使用所述缓存中存储的与所述第一应用的子图层对象对应的图形界面内容数据,响应所述第一图形合成请求。
可选地,所述关联对象获取模块具体用于:根据所述第二服务端图层对象对应的子图层对象的名称,获取对应于相同子图层对象名称的第一服务端图层对象。
可选地,所述第一图形合成请求由第二客户端基于第二客户端图层对象对所述第一应用的图形界面渲染完成后生成,所述第二客户端图层对象与所述第二服务端图层对象对应;其中,所述第二客户端为所述第一应用在第二子系统中的客户端。
可选地,所述请求获取模块还用于:获取第二图形合成请求,所述第二图形合成请求对应于所述第一服务端图层对象;所述合成模块还用于:根据所述第一服务端图层对象所对应的子图层对象,获取该子图层对象对应的第一应用图形界面窗口状态数据;基于所述第一服务端图层对象,并根据所述第一应用图形界面窗口状态数据,响应所述第二图形合成请求。
可选地,所述第二图形合成请求由第一客户端基于第一客户端图层对象对所述第一应用的图形界面的窗口状态进行更新的操作生成,所述第一客户端图层对象与所述第一服务端图层对象对应;其中,所述第一客户端为所述第一应用在第一子系统中的客户端。
第五方面,提供一种装置,包括:
第一客户端,用于指示图形合成器针对第一应用的子图层对象创建第一服务端图层对象,并向第二客户端发送通知;其中,所述第一客户端为所述第一应用在第一子系统中的客户端,所述第二客户端为所述第一应用在第二子系统中的客户端;
第二客户端,用于根据所述通知,指示所述图形合成器针对所述第一应用的子图层对象创建第二服务端图层对象,并建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
可选地,所述第二客户端具体用于:将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
可选地,所述第一客户端还用于:获得所述第一服务端图层对象对应的子图层对象的名称,并将所述名称携带于所述通知中。
可选地,所述第一客户端具体用于获得所述第一服务端图层对象对应的子图层对象的名称,包括:接收所述图形合成器在创建完成所述第一服务端图层对象后返回的所述子图层对象的名称;或者,通过注册的回调函数获得所述子图层对象的名称,所述回调函数用于在所述图形合成器创建完成所述第一服务端图层对象后将所述第一服务端图层对象对应的子图层对象的名称通知给所述第一客户端。
可选地,第一客户端具体用于:通过调用用于创建图层对象的第一库函数模块,为第一应用的图形界面创建第一客户端图层对象,所述第一库函数模块被调用后通知所述图形合成器创建所述第一服务端图层对象。
可选地,所述第二客户端具体用于:根据所述通知,通过调用用于创建图层对象的第二库函数模块,为所述图形界面创建第二客户端图层对象,所述第二库函数模块被调用后通知所述图形合成器创建所述第二服务端图层对象。
第六方面,提供一种图形合成器,所述图形合成器为操作系统中的第一子系统和第二子系统共享使用的图形合成器,所述图形合成器包括:
第一图层对象创建模块,用于根据第一客户端的指示,针对第一应用的子图层对象创建第一服务端图层对象;以及,根据第二客户端的指示,针对所述第一应用的子图层对象创建第二服务端图层对象,所述指示是所述第二客户端根据所述第一客户端发送的通知向所述图形合成器发送的;其中,所述第一客户端为所述第一应用在第一子系统中的客户端,所述第二客户端为所述第一应用在第二子系统中的客户端;
关联模块,用于建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
可选地,所述关联模块具体用于:将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
可选地,所述关联模块还用于:从所述第二客户端获得所述第一服务端图层对象对应的子图层对象的名称;其中,所述子图层对象的名称是所述第一客户端携带于通知中发送给所述第二客户端的。
第七方面,提供一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行上述第一方面中任一项所述的方法。
第八方面,提供一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行上述第二方面中任一项所述的方法。
第九方面,提供一个或多个计算机可读介质,所述可读介质上存储有指令,所述指 令被一个或多个处理器执行时,使得通信设备执行上述第三方面中任一项所述的方法。
第十方面,提供一种装置,包括:一个或多个处理器;以及,一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行上述第一方面中任一项所述的方法。
第十一方面,提供一种装置,包括:一个或多个处理器;以及,一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行上述第二方面中任一项所述的方法。
第十二方面,提供一种装置,包括:一个或多个处理器;以及,一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行上述第三方面中任一项所述的方法。
本申请的上述实施例中,图形合成器获取到第一图形合成请求,由于所述第一图形合成请求对应于第二子系统中的第二服务端图层对象,因此,图形合成器可根据所述第一图形合成请求所对应的第二服务端图层对象,获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象;所述图形合成器获取所述第二服务端图层对象所对应的缓存,并根据所述缓存中存储的与所述子图层对象对应的图形界面内容数据,响应所述第一图形合成请求。其中,由于所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创建的,因此图形合成器通过上述方式响应第一图形合成请求,从而使用第一应用的子图层对象对应的图形界面内容数据进行图形合成,实现了在一种操作系统框架内,基于不同操作系统的应用或服务在图形合成层面的融合。
附图说明
本申请的实施例通过示例而非限制的方式示出在所附附图中,类似的附图标记表示类似的元素。
图1示例性地示出了本申请实施例所使用的系统架构示意图;
图2示例性地示出了本申请实施例中图层对象的Z-order顺序示意图;
图3示例性地示出了本申请实施例提供的图层对象的创建流程示意图;
图4示例性地示出了本申请实施例创建得到的图层对象的示意图;
图5示例性地示出了本申请实施例提供的图形合成的流程示意图;
图6示例性地示出了本申请另外的实施例提供的图形合成的流程示意图;
图7示例性地示出了本申请实施例中Host_client_appA和Guest_client_appA创建与 图形合成相关的对象的过程;
图8示例性地示出了本申请实施例提供的图形合成器的结构示意图;
图9示例性地示出了本申请另外的实施例提供的图形合成器结构示意图;
图10示例性地示出了本申请实施例提供的通信装置的结构示意图。
具体实施方式
虽然本申请的概念易于进行各种修改和替代形式,但是其具体实施例已经通过附图中的示例示出并且将在本文中详细描述。然而,应当理解,没有意图将本申请的概念限制为所公开的特定形式,而是相反,意图是覆盖与本申请以及所附权利要求一致的所有修改、等同物和替代物。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用,指示所描述的实施例可包括特定特征、结构或特性,但是每个实施例可以或可以不必包括特定特征、结构或特性。此外,这样的短语不一定指的是相同的实施例。进一步地,认为在本领域技术人员的知识范围内,当结合实施例描述特定特征、结构或特性时,结合无论是否明确描述的其它实施例影响这样的特征,结构或特性。另外,应当理解,以“A,B和C中的至少一个”的形式包括在列表中的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。类似地,以“A,B或C中的至少一个”的形式列出的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C)或(A,B和C)。
在一些情况下,所公开的实施例可以在硬件、固件、软件或其任何组合中实现。所公开的实施例还可以被实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读形式(例如,易失性或非易失性存储器、介质盘或其他介质)存储或传输信息的任何存储设备,机制或其他物理结构的设备)。
在附图中,一些结构或方法特征可以以特定布置和/或顺序示出。然而,应当理解,可能不需要这样的具体布置和/或排序。相反,在一些实施例中,这些特征可以以与说明性附图中所示不同的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示这种特征在所有实施例中都是需要的,并且在一些实施例中可以不包括或可以与其他特征组合。
为了在一种操作系统框架内更好地兼容另一种操作系统,为用户提供更好的用户体 验,本申请实施例提供了在一种操作系统框架内针对不同操作系统在图形合成层面上的融合和统一处理操作,为用户提供无缝的双系统用户体验。
本申请实施例可适用于操作系统框架内包含第一子系统和第二子系统,且第一子系统和第二子系统共享第一子系统的图形合成器的场景。其中,第一子系统可以是主系统或称Host子系统,第二子系统可以是辅系统或称Guest子系统。具体地,第一子系统可以是云操作系统,第二子系统可以是传统的操作系统。更具体地,第一子系统可以是YunOS,第二子系统可以是Android。
下面结合附图对本申请实施例进行详细描述。
图1示例性地示出了本申请实施例使用的一种包括多个子系统的操作系统框架示意图。以YunOS作为第一子系统,Android为第二子系统为例,图1示出了在操作系统框架内的双系统兼容架构。
如图1所示,操作系统框架中包括Host子系统与Guest子系统,其中,YunOS即为Host子系统,Android即为Guest子系统,两个子系统通过容器(container)技术隔离。该框架内的硬件抽象层(Hardware Abstraction Layer,简称HAL)提供了图形显示等方面的接口和驱动服务。
Host子系统中的Glibc,即C运行库,是linux中最底层的应用程序编程接口(Application Programming Interface,简称API)。Libhybris为兼容层,能够使基于Glibc的操作系统重用现有的Android的驱动(driver)服务。Gralloc模块位于硬件抽象层中,封装了对帧缓冲区的所有访问操作。Compositor是Host子系统的图形合成器,该图形合成器为Host子系统和Guest子系统共享使用。
需要说明的是,上述系统架构仅以YunOS和Andriod为例进行说明,对于其他类型的操作系统,也可基于上述原理实现双系统在图形合成层面的兼容以及有效融合。
为了理解本申请实施例,下面首先描述与图形合成相关的技术术语。
一个应用程序可包含一个或多个图形界面(或称窗口),一个图形界面可至少对应一个图层对象,称为surface。每个图形界面在屏幕上有它的位置、大小,以及需要显示的内容。一个图形界面对应的图层对象(surface)可被理解为该图形界面对应的一个容器,用来存储该图形界面的控制信息(比如该图形界面在屏幕上的大小、位置等信息)和/或图形界面的数据(即图形界面需要显示的内容)。图层对象(surface)可由应用程序在图形合成器(compositor)中的客户端(client)创建。
多个图层对象(surface)之间可能有重叠,图层对象(surface)之间的层叠关系可 用Z-order描述。在屏幕平面的垂直方向存在一个Z轴,所有的图层对象(surface)根据在Z轴上的坐标来确定前后顺序,即描述各个图层对象(surface)之间的上下覆盖关系。这个在Z轴上的顺序,可称为Z-order。
图2示例性地示出了多个图层对象(surface)在Z轴上的顺序。其中,按照在屏幕上显示时从顶至底的顺序,屏幕上包括surface0、surface1和surface2。surface0部分覆盖surface1,surface1部分覆盖surface2。surface0、surface1和surface2的Z-order分别表示为:1,2,3。
一个图层对象(surface)对应Z轴上的一个层对象,称为layer。一个层对象(layer)提供了对该layer所对应的图层对象(surface)的控制信息的操作,以及对该surface的内容的处理。
图形合成器(compositor)主要用于对图形合成过程进行管理,即对不同图层对象(surface)的融合进行控制,比如,计算两个图层对象(surface)重叠的区域,而图层对象(surface)需要显示的内容则可在layer中进行。
在包含第一子系统和第二子系统的操作系统框架内,针对一些应用程序的图形界面创建有主图层对象(即主surface)和子图层对象(即子surface)。对于子surface,其所对应的图形界面窗口状态数据保存在第一子系统中,其所对应的图形界面内容数据保存在第二子系统中。对于上述应用,当其图形界面的内容发生改变时,需要在图形合成层面由第一子系统和第二子系统共用的图形合成器基于子surface对应的窗口状态数据和图形界面内容数据进行图形合成。
其中,窗口状态数据可在窗口状态更新事件发生时生成或更新。所述窗口状态更新事件可包括但不限于:基于窗口移动生成的事件、基于窗口缩放生成的事件、基于窗口旋转生成的事件。所述窗口状态数据可包括但不限于:用于描述窗口位置和/或方向的数据。
为了实现此目的,本申请实施例中,针对应用程序的图形界面(更具体地,针对该图形界面的子surface)在第一子系统中创建第一服务端图层对象,针对该图形界面(更具体地,针对该图形界面的子surface)在第二子系统中创建第二服务端图层对象以及对应的缓存(该缓存用于存储该图形界面的内容数据),并建立第一服务端图层对象和第二服务端图层对象间的关联。这样,第一服务端图层对象和第二服务端图层对象均关联于该子surface。当该应用程序的图形界面的内容发生变化时,该应用程序在第二子系统中的客户端基于上述关联关系确定出该图形界面在第一子系统中对应的第一服务端图层 对象,并基于第一服务端图层对象使用该子Surface对应的缓存中的图形界面内容数据进行图形合成。进一步地,当该应用程序的图形界面的窗口状态发生变化时,该应用程序在第一子系统中的客户端基于第一服务端图层对象使用子surface对应的图形界面窗口状态数据进行图形合成。
由此可见,本申请的上述实施例中,通过不同子系统中的服务端图层对象之间的关联关系,使得第二子系统相关的图形合成事件发生时,第一子系统中的第一服务端图层对象可基于第二子系统中的第二服务端图层对象对应的缓存进行图形合成,实现了不同子系统在图形合成层面的融合。
下面结合图3和图4对本申请实施例提供的图层对象(surface)创建过程进行描述,结合图5和图6对本申请实施例提供的图形合成过程进行描述。
本申请实施例中,对于包含有两个子系统(第一子系统和第二子系统)的操作系统架构来说,针对基于第二子系统的应用,可创建两个客户端:一个是该应用在第一子系统中的客户端,本申请实施例中称为第一客户端,另一个是该应用在第二子系统中的客户端,本申请实施例中称为第二客户端。其中,该应用的两个客户端可对应于该应用在操作系统中的两个不同的进程,每个进程拥有各自的内存区域。具体实施时,可在应用程序启动时创建上述应用客户端。
基于第二子系统的应用,其在第一子系统中的客户端和在第二子系统的客户端,可分别创建服务端图层对象(surface),并建立相互的关联关系。
图3示例性地示出了本申请实施例提供的图层对象(surface)的创建流程。该流程可在应用程序被启动时执行,也可在打开新的图形界面(窗口)时执行,或者在其他情况下执行。以下流程以第一应用为例进行描述,其中,该应用在第一子系统(如主系统)中的客户端称为第一客户端,该应用在第二子系统(如辅系统)中的客户端称为第二客户端。第一客户端可创建子图层对象(以下简称子surface)。
如图所示,该流程可包括:
S301:第一客户端指示图形合成器为第一应用的图形界面创建第一服务端图层对象。
可选地,第一客户端可通过调用用于创建图层对象的第一库函数模块,为第一应用的图形界面创建第一客户端图层对象,该第一库函数模块被调用后通知图形合成器创建与第一客户端图层对象对应的第一服务端图层对象。其中,第一库函数模块可以是第一子系统中的函数库,其中可包含多种函数,这些函数中包括用于创建图层对象的函数。该函数库可将函数接口(比如应用程序编程接口(Application Programming Interface,简 称API))提供给应用层使用。第一客户端可基于用于创建图层对象的函数的接口,调用相应函数创建图层对象。
可选地,第一客户端可基于第一应用程序的子surface创建第一服务端图层对象,使得第一服务端图层对象与该子surface对应或与该子surface关联。比如,第一服务端图层对象中可包括第一应用程序的子surface的名称,从而使第一服务端图层对象与该子surface关联。
S302:第一客户端向第二客户端发送通知。该通知用于指示为该第一应用的图形界面创建第二服务端图层对象。
可选地,S302中,第一客户端可采用进程间通信(Inter-Process Communication,简称IPC)协议,向第二客户端发送通知消息。进一步地,该通知消息中可包括该子surface的名称,该子surface为第一服务端图层对象所对应的子surface。
可选地,第一客户端可采用以下方式获得第一服务端图层对象所对应的子surface的名称:
方式1:第一客户端接收图形合成器在创建完成该第一服务端图层对象后返回的该第一服务端图层对象所对应的子surface的名称;
方式2:第一客户端可预先注册回调函数,当图形合成器创建完成第一服务端图层对象后,该回调函数可将该第一服务端图层对象所对应的子surface的名称通知给第一客户端。
S303:第二客户端根据该通知,指示图形合成器为该第一应用的图形界面创建第二服务端图层对象,并建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
可选地,第二客户端可基于第一客户端所通知的子surface的名称,基于该子surface指示图形合成器为第一应用的图形界面创建第二服务端图层对象,使得创建得到的第二服务端图层对象与该子surface对应或关联。
可选地,第二客户端可通过调用用于创建图层对象的第二库函数模块,为第一应用的图形界面创建第二客户端图层对象,该第二库函数模块被调用后通知图形合成器创建与第二客户端图层对象对应的第二服务端图层对象。其中,第二库函数模块可以是第二子系统中的函数库,其中可包含多种函数,这些函数中包括用于创建图层对象的函数。该函数库可将函数接口(比如应用程序编程接口(API)提供给应用层使用。第二客户端可基于用于创建图层对象的函数的接口,调用相应函数创建图层对象。
在S303中,图形合成器可采用多种方式建立第一服务端图层对象和第二服务端图层对象之间的关联关系。比如,可将第二服务端图层对象所对应的图层对象的名称(即子surface的名称),设置为与第一服务端图层对象所对应的图层对象的名称(即子surface的名称)相同,这样,第一服务端图形对象和第二服务端图形对象对应于相同名称的子surface,即关联与同一子surface。再比如,将第一服务端图层对象的标识和第二服务端图层对象的标识以标识对的形式存储。
进一步地,第二客户端还可为第一应用的图形界面创建缓存,该缓存与第一应用的图形界面的子surface对应。由于该子surface与第二服务端图层对象和/或第二客户端图层对象相对应,因此该缓存也与第二服务端图层对象和/或第二客户端图层对象相对应。通过该缓存可获取到该图形界面的内容数据,所述内容数据可以是指图形界面渲染处理后的数据。该缓存用于存储该图形界面的内容数据更新事件对应的内容数据。所述事件可包括图形界面渲染事件,比如在对图形界面渲染完成后可生成该事件。
上述路程的步骤顺序没有严格要求,比如,S301和S302的先后顺序可以调换。
基于上述流程,图4示例性地示出了针对第一应用的图形界面创建得到的图层对象。如图所示,第一客户端图层对象和第一服务端图层对象是第一应用在第一子系统中的第一客户端创建的图层对象,第二客户端图层对象和第二服务端图层对象是第一应用在第二子系统中的第二客户端创建的图层对象。其中,在第一子系统中,首先创建第一客户端图层对象,并以第一客户端图层对象作为父对象创建子对象——第一服务端图层对象;在第二子系统中,首先创建第二客户端图层对象,并以第二客户端图层对象作为父对象创建子对象——第二服务端图层对象。具体创建过程可参见前述实施例。第一服务端图层对象和第二服务端图层对象之间关联,并均关联于第一应用程序的图形界面的子surface。第二客户端图层对象与用于存储第一应用的图形界面内容数据的缓存相对应。
上述基于第二子系统的第一应用程序,其在运行过程中可响应用户操作,根据用户的操作更新该应用程序的图形界面,也可以根据设定周期刷新该应用程序的图形界面。图形界面更新可包括两个方面:
(1)图形界面的内容更新,该过程即为图形渲染过程。当图形渲染过程完成后(即得到图形界面内容数据后),图形合成器进行图形合成。
(2)图形界面的窗口状态更新。当图形界面的窗口状态更新后,图形合成器进行图形合成。
上述两个方面可能同时发生,也可能仅发生其中一个方面描述的更新过程。
图5示例性地示出了本申请实施例提供的图形合成的流程示意图。该流程描述了第一应用的图形界面渲染完成后,图形合成器进行图形合成。其中,第一应用在第二子系统中的第二客户端基于第二客户端图层对象,对相应图形界面进行渲染,渲染后的图形界面内容数据存储于第二子系统中该第一应用的子surface所对应的缓存中。渲染完成后,可触发以下流程:
S501:图形合成器获取第一图形合成请求,该第一图形合成请求对应于第二服务端图层对象。
该步骤可基于异步事件机制实现,也可基于同步事件机制实现。在采用异步事件机制的情况下,第二客户端基于第二服务端图层对象完成图形界面渲染后生成第一图形合成请求(或称事件),并将该请求存储于事件队列,图形合成器基于异步事件机制从事件队列中获取第一图形合成请求进行响应。在采用同步事件机制的情况下,第二客户端基于第二服务端图层对象完成图形界面渲染后,向图形合成器发送请求,以请求图形合成器立即响应该请求进行图形合成。
其中,在具体实施时,第二客户端可调用第二客户端图层对象,再由第二客户端图层对象调用第二服务端图层对象进行图形渲染。
S502:图形合成器根据该请求所对应的第二服务端图层对象,获取该第二服务端图层对象关联的第一服务端图层对象。
在具体实施时,第一服务端图层对象所对应的子surface的名称,与第二服务端图层对象所对应的子surface的名称相同,相应地,图形合成器可根据第二服务端图层对象对应的子surface的名称,获取对应于相同子surface名称的第一服务端图层对象。
S503:图形合成器获取第二服务端图层对象所对应的缓存,基于S502中获取的第一服务端图层对象并使用缓存中存储的与第一应用的子图层对象对应的图形界面内容数据,响应该第一图形合成请求。
该步骤中,图形合成器可根据第一服务端图层对象,获取第一服务端图层对象关联的第二服务端图层对象所对应的缓存,该缓存中存储有第二服务端图层对象所对应的子surface的图形界面内容数据。图形合成器基于获取到的第一服务端图层对象,并根据该缓存中存储的图形界面内容数据,响应第一图形合成请求。在图形合成器响应该图形合成请求时,进一步地可根据相应子surface(即该第一服务端图层对象所对应的子surface)的窗口状态数据以及各图层对象的Z-order等控制信息进行图形合成。
图6示例性地示出了本申请另外的实施例提供的图形合成的流程示意图。该流程描 述了第一应用的图形界面的窗口状态发生变化后,图形合成器进行图形合成。其中,第一应用在第一子系统中的第一客户端更新图形界面的窗口状态。窗口状态更新完成后,可触发以下流程:
S601:图形合成器获取第二图形合成请求,该第二图形合成请求根据第一应用程序的图形界面窗口状态更新事件生成。
该步骤可基于异步事件机制实现,也可基于同步事件机制实现。在采用异步事件机制的情况下,第一客户端基于第一服务端图层对象完成图形界面的窗口状态更新后生成第二图形合成请求(或称事件),并将该请求存储于事件队列,图形合成器基于异步事件机制从事件队列中获取第二图形合成请求进行响应。在采用同步事件机制的情况下,第一客户端基于第一服务端图层对象完成图形界面的窗口状态更新后,向图形合成器发送请求,以请求图形合成器立即响应该请求进行图形合成。
其中,在具体实施时,第一客户端可调用第一客户端图层对象,再由第一客户端图层对象调用第一服务端图层对象进行窗口状态更新。
S602:图形合成器根据该第一服务端图层对象响应该第二图形合成请求。
该步骤中,图形合成器可根据第一服务端图层对象,获取第一服务端图层对象对应的子surface,基于该子surface对应的图形界面的窗口状态数据,响应第二图形合成请求。
为了更清楚地理解本申请实施例,下面结合具体场景对本申请实施例进行描述。
智能手机使用的操作系统的框架中包括Host子系统(对应于云操作系统)和Guest子系统(对应于Android系统),这两个子系统共享使用一个图形合成器(Compositor server)。该智能手机上安装了应用程序A,应用程序A是基于Andorid系统的应用程序窗口小部件(Widget)应用。
当用户点击操作系统的主界面中应用程序A的图标,该操作被操作系统捕获,生成应用程序A的启动事件,应用程序A的启动事件被发送给Host子系统和Guest子系统。在Host子系统中,Host子系统根据应用程序A的启动事件为应用程序A在Host子系统中创建一个客户端(client),为描述方便,此处将该客户端称为Host_client_appA,Host_client_appA创建应用程序A的子surface,该子surface的名称为“N”。在Guest子系统中,Guest子系统根据应用程序A的启动事件为应用程序A在Guest子系统中创建一个客户端(client),为描述方便,此处将该客户端称为Guest_client_appA。Host_client_appA与Guest_client_appA之间可基于IPC机制进行通信。
Host_client_appA和Guest_client_appA创建完成后,可创建与图形合成相关的对象。 图7示例性地示出了Host_client_appA和Guest_client_appA创建与图形合成相关的对象的过程。
在图7的S701中,Host_client_appA调用Host子系统中的图形化用户界面库模块(libgui模块)为应用程序A创建Host子系统中客户端的surface对象,这里将该surface对象称为Host Client Surface,简称为HC_surface对象,HC_surface对象与应用程序A的子surface对应,是针对应用程序A的子surface创建的。其中,libgui模块中封装有native层针对surface对象的相关函数,可用于创建surface对象。libgui模块被调用时通知图形合成器(Compositor server)为应用程序A创建Host子系统中服务端的surface对象,这里将该surface对象称为Host Server Surface,简称为HS_surface对象,HS_surface对象与应用程序A的子surface对应,是针对应用程序A的子surface创建的。HS_surface对象创建完成后,Host_client_appA注册的回调函数将HS_surface所对应的子surface名字“N”通知给Host_client_appA。
在图7的S702中,Host_client_appA向Guest_client_appA发送请求,其中携带HS_surface对象所对应的子surface名字“N”,以请求为应用程序A创建Guest子系统中的相应surface对象。
在图7的S703中,Guest_client_appA接收到Host_client_appA发送的请求后,调用Guest子系统中的函数库模块为应用程序A创建layer对象,根据该请求消息中的HS_surface对象对应的子surface名字“N”为应用程序A创建Guest子系统中客户端的surface对象,这里将该surface对象称为Guest Client Surface,简称为GC_surface对象,GC_surface对象与应用程序A的子surface对应,是针对应用程序A的子surface创建的。该函数库模块被调用时通知图形合成器(Compositor server)根据GC_surface对象所对应的子surface名字为应用程序A创建Guest子系统中的服务端surface对象,这里将该surface对象称为Guest Client Surface,简称为GS_surface对象,该GS_surface对象所对应的子surface名称为“N”。
Guest_client_appA还创建该子surface对应的buffer,该buffer用于存储应用程序A的图形界面内容数据。由于GC_surface对象和GS_surface对象是基于该子surface创建的,因此,该buffer也与GC_surface对象和GS_surface对象相对应。
应用程序A运行过程中,Guest_client_appA进行图形界面渲染,渲染后的图形界面内容数据存储于应用程序A在Guest子系统中的GC_surface对象所对应的buffer中。
当该buffer中的图形界面内容数据已渲染完成或者是达到其他进行图形界面合成的 条件时,Guest_client_appA通过GC_surface对象获取GS_surface对象,基于GS_surface对象并采用IPC通信机制向compositor发送第一图形合成请求;compositor根据GS_surface对象获取关联的HS_surface对象,并基于该HS_surface对象,利用GS_surface对象所对应的buffer中的图形界面内容数据以及Host子系统中保存的相应子surface的图形界面窗口状态数据,并结合Z-order等信息进行图形合成。
应用程序A运行过程中,图形界面的位置发生变化,Host_client_appA通过IPC通信机制通知compositor针对位置更新后的图形界面进行图形合成,compositor基于HS_surface对象获取相应子surface所对应的图形界面窗口状态数据,并结合Z-order等信息进行图形合成。
本申请的上述实施例中,图形合成器获取到第一图形合成请求,由于所述第一图形合成请求对应于第二子系统中的第二服务端图层对象,因此,图形合成器可根据所述第一图形合成请求所对应的第二服务端图层对象,获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象;所述图形合成器获取所述第二服务端图层对象所对应的缓存,并根据所述缓存中存储的与所述子图层对象对应的图形界面内容数据,响应所述第一图形合成请求。其中,由于所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创建的,因此图形合成器通过上述方式响应第一图形合成请求,从而使用第一应用的子图层对象对应的图形界面内容数据进行图形合成,实现了在一种操作系统框架内,基于不同操作系统的应用或服务在图形合成层面的融合。
基于相同的技术构思,本申请实施例还提供了一种能够实现上述实施例描述的方法的装置。
参见图8,为本申请实施例提供的图形合成器的结构示意图,如图所示,所述图形合成器为操作系统中的第一子系统和第二子系统共享使用的图形合成器,所述图形合成器包括:请求获取模块801、关联对象获取模块802、合成模块803,其中:
请求获取模块801用于获取第一图形合成请求,所述第一图形合成请求对应于第二子系统中的第二服务端图层对象;
关联对象获取模块502用于根据所述第一图形合成请求所对应的第二服务端图层对象,获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象;其中,所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创建的;
合成模块803用于获取所述第二服务端图层对象所对应的缓存,基于所述第一服务 端图层对象并使用所述缓存中存储的与所述第一应用的子图层对象对应的图形界面内容数据,响应所述第一图形合成请求。
可选地,关联对象获取模块802具体用于:根据所述第二服务端图层对象对应的子图层对象的名称,获取对应于相同子图层对象名称的第一服务端图层对象。
可选地,所述第一图形合成请求由第二客户端基于第二客户端图层对象对所述第一应用的图形界面渲染完成后生成,所述第二客户端图层对象与所述第二服务端图层对象对应;其中,所述第二客户端为所述第一应用在第二子系统中的客户端。
可选地,请求获取模块801还用于:获取第二图形合成请求,所述第二图形合成请求对应于所述第一服务端图层对象;所述合成模块还用于:根据所述第一服务端图层对象所对应的子图层对象,获取该子图层对象对应的第一应用图形界面窗口状态数据;基于所述第一服务端图层对象,并根据所述第一应用图形界面窗口状态数据,响应所述第二图形合成请求。
可选地,所述第二图形合成请求由第一客户端基于第一客户端图层对象对所述第一应用的图形界面的窗口状态进行更新的操作生成,所述第一客户端图层对象与所述第一服务端图层对象对应;其中,所述第一客户端为所述第一应用在第一子系统中的客户端。
基于相同的技术构思,本申请实施例还提供了一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行前述实施例描述的图形界面处理方法。
基于相同的技术构思,本申请实施例还提供了一种能够实现上述实施例描述的方法的装置。
基于相同的技术构思,本申请实施例还提供了一种能够实现上述实施例描述的方法的装置。
参见图9,为本申请实施例提供的图形合成器的结构示意图,如图所示,所述图形合成器为操作系统中的第一子系统和第二子系统共享使用的图形合成器,所述图形合成器包括:第一图层对象创建模块901、关联模块902,其中:
第一图层对象创建模块901用于根据第一客户端的指示,针对第一应用的子图层对象创建第一服务端图层对象;以及,根据第二客户端的指示,针对所述第一应用的子图层对象创建第二服务端图层对象,所述指示是所述第二客户端根据所述第一客户端发送的通知向所述图形合成器发送的;其中,所述第一客户端为所述第一应用在第一子系统中的客户端,所述第二客户端为所述第一应用在第二子系统中的客户端;
关联模块902用于建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
可选地,关联模块902具体用于:将第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
可选地,关联模块902还用于:从所述第二客户端获得所述第一服务端图层对象对应的子图层对象的名称;其中,所述子图层对象的名称是所述第一客户端携带于通知中发送给所述第二客户端的。
基于相同的技术构思,本申请实施例还提供了一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行前述实施例描述的图形界面处理方法。
基于相同的技术构思,本申请实施例还提供了一种装置,该装置中包括第一客户端和第二客户端。所述第一客户端和所述第二客户端的功能可如前述实施例所述,在此不再重复。
基于相同的技术构思,本申请实施例还提供了一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行前述实施例描述的图形界面处理方法。
基于相同的技术构思,本申请实施例还提供了一种装置1000,该装置1000可实现前述实施例中服务器侧的流程。
图10示例性地示出了根据各种实施例的示例装置1000,装置1000可包括一个或多个处理器1002,系统控制逻辑1001耦合于至少一个处理器1002,非易失性存储器(non-volatile memory,NMV)/存储器1004耦合于系统控制逻辑1001,网络接口1006耦合于系统控制逻辑1001。
处理器1002可包括一个或多个单核处理器或多核处理器。处理器1002可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。
一个实施例中的系统控制逻辑1001,可包括任何适当的接口控制器,以提供到处理器1002中的至少一个的任何合适的接口,和/或提供到与系统控制逻辑1001通信的任何合适的设备或组件的任何合适的接口。
一个实施例中的系统控制逻辑1001,可包括一个或多个内存控制器,以提供到系统内存1003的接口。系统内存1003用来加载以及存储数据和/或指令。例如,对应装置1000,在一个实施例中,系统内存1003可包括任何合适的易失性存储器。
NVM/存储器1004可包括一个或多个有形的非暂时的计算机可读介质,用于存储数据和/或指令。例如,NVM/存储器1004可包括任何合适的非易失性存储装置,如一个或多个硬盘(hard disk device,HDD),一个或多个光盘(compact disk,CD),和/或一个或多个数字通用盘(digital versatile disk,DVD)。
NVM/存储器1004可包括存储资源,该存储资源物理上是该系统所安装的或者可以被访问的设备的一部分,但不一定是设备的一部分。例如,NVM/存储器1004可经由网络接口1006被网络访问。
系统内存1003以及NVM/存储器1004可分别包括临时的或持久的指令1010的副本。指令1010可包括当由处理器1002中的至少一个执行时导致装置1000实现图4至图6描述的方法之一或组合的指令。各实施例中,指令1010或硬件、固件,和/或软件组件可另外地/可替换地被置于系统控制逻辑1001,网络接口1006和/或处理器1002。
网络接口1006可包括一个接收器来为装置1000提供无线接口来与一个或多个网络和/或任何合适的设备进行通信。网络接口1006可包括任何合适的硬件和/或固件。网络接口1006可包括多个天线来提供多输入多输出无线接口。在一个实施例中,网络接口1006可包括一个网络适配器、一个无线网络适配器、一个电话调制解调器,和/或无线调制解调器。
在一个实施例中,处理器1002中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装以形成系统级封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上以形成系统芯片。
装置1000可进一步包括输入/输出装置1005。输入/输出装置1005可包括用户接口旨在使用户与装置1000进行交互,可包括外围组件接口,其被设计为使得外围组件能够与系统交互,和/或,可包括传感器,旨在确定环境条件和/或有关装置1000的位置信息。

Claims (37)

  1. 一种图层处理方法,其特征在于,包括:
    图形合成器获取第一图形合成请求,所述第一图形合成请求对应于第二子系统中的第二服务端图层对象;
    所述图形合成器根据所述第一图形合成请求所对应的第二服务端图层对象,获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象;其中,所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创建的;
    所述图形合成器获取所述第二服务端图层对象所对应的缓存,基于所述第一服务端图层对象并使用所述缓存中存储的与所述第一应用的子图层对象对应的图形界面内容数据,响应所述第一图形合成请求。
  2. 如权利要求1所述的方法,其特征在于,所述获取所述第二服务端图层对象所关联的第一服务端图层对象,包括:
    所述图形合成器根据所述第二服务端图层对象对应的子图层对象的名称,获取对应于相同子图层对象名称的第一服务端图层对象。
  3. 如权利要求1或2所述的方法,其特征在于,所述第一图形合成请求由第二客户端基于第二客户端图层对象对所述第一应用的图形界面渲染完成后生成,所述第二客户端图层对象与所述第二服务端图层对象对应;其中,所述第二客户端为所述第一应用在第二子系统中的客户端。
  4. 如权利要求1或2所述的方法,其特征在于,还包括:
    所述图形合成器获取第二图形合成请求,所述第二图形合成请求对应于所述第一服务端图层对象;
    所述图形合成器根据所述第一服务端图层对象所对应的子图层对象,获取该子图层对象对应的第一应用图形界面窗口状态数据;
    所述图形合成器基于所述第一服务端图层对象,并根据所述第一应用图形界面窗口状态数据,响应所述第二图形合成请求。
  5. 如权利要求4所述的方法,其特征在于,所述第二图形合成请求由第一客户端基于第一客户端图层对象对所述第一应用的图形界面的窗口状态进行更新的操作生成,所述第一客户端图层对象与所述第一服务端图层对象对应;其中,所述第一客户端为所述第一应用在第一子系统中的客户端。
  6. 如权利要求1中任一项所述的方法,其特征在于,所述第一子系统为Host子系统, 所述第二子系统为Guest子系统。
  7. 一种图层处理方法,其特征在于,包括:
    第一客户端指示图形合成器针对第一应用的子图层对象创建第一服务端图层对象,并向第二客户端发送通知;其中,所述第一客户端为所述第一应用在第一子系统中的客户端,所述第二客户端为所述第一应用在第二子系统中的客户端;
    所述第二客户端根据所述通知,指示所述图形合成器针对所述第一应用的子图层对象创建第二服务端图层对象,并建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
  8. 如权利要求7所述的方法,其特征在于,建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系,包括:
    将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
  9. 如权利要求7所述的方法,其特征在于,还包括:
    所述第一客户端获得所述第一服务端图层对象对应的子图层对象的名称,并将所述名称携带于所述通知中。
  10. 如权利要求9所述的方法,其特征在于,所述第一客户端获得所述第一服务端图层对象对应的子图层对象的名称,包括:
    所述第一客户端接收所述图形合成器在创建完成所述第一服务端图层对象后返回的所述子图层对象的名称;或者,
    所述第一客户端通过注册的回调函数获得所述子图层对象的名称,所述回调函数用于在所述图形合成器创建完成所述第一服务端图层对象后将所述第一服务端图层对象对应的子图层对象的名称通知给所述第一客户端。
  11. 如权利要求7至10中任一项所述的方法,其特征在于,第一客户端指示图形合成器创建第一服务端图层对象,包括:
    所述第一客户端通过调用用于创建图层对象的第一库函数模块,为第一应用的图形界面创建第一客户端图层对象,所述第一库函数模块被调用后通知所述图形合成器创建所述第一服务端图层对象。
  12. 如权利要求7至10中任一项所述的方法,其特征在于,所述第二客户端根据所述通知,指示所述图形合成器创建第二服务端图层对象,包括:
    所述第二客户端根据所述通知,通过调用用于创建图层对象的第二库函数模块,为 所述图形界面创建第二客户端图层对象,所述第二库函数模块被调用后通知所述图形合成器创建所述第二服务端图层对象。
  13. 如权利要求7所述的方法,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
  14. 一种图层处理方法,其特征在于,包括:
    图形合成器根据第一客户端的指示,针对第一应用的子图层对象创建第一服务端图层对象;其中,所述第一客户端为所述第一应用在第一子系统中的客户端;
    所述图形合成器根据第二客户端的指示,针对所述第一应用的子图层对象创建第二服务端图层对象;其中,所述指示是所述第二客户端根据所述第一客户端发送的通知向所述图形合成器发送的;其中,所述第二客户端为所述第一应用在第二子系统中的客户端;
    所述图形合成器建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
  15. 如权利要求14所述的方法,其特征在于,所述图形合成器建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系,包括:
    所述图形合成器将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
  16. 如权利要求14或15所述的方法,其特征在于,还包括:
    所述图形合成器从所述第二客户端获得所述第一服务端图层对象对应的子图层对象的名称;其中,所述子图层对象的名称是所述第一客户端携带于通知中发送给所述第二客户端的。
  17. 如权利要求14或15所述的方法,其特征在于,所述第一子系统为Host子系统,所述第二子系统为Guest子系统。
  18. 一种图形合成器,其特征在于,所述图形合成器为操作系统中的第一子系统和第二子系统共享使用的图形合成器,所述图形合成器包括:
    请求获取模块,用于获取第一图形合成请求,所述第一图形合成请求对应于第二子系统中的第二服务端图层对象;
    关联对象获取模块,用于根据所述第一图形合成请求所对应的第二服务端图层对象,获取所述第二服务端图层对象所关联的第一子系统中的第一服务端图层对象;其中,所述第一服务端图层对象和所述第二服务端图层对象是针对第一应用的子图层对象创 建的;
    合成模块,用于获取所述第二服务端图层对象所对应的缓存,基于所述第一服务端图层对象并使用所述缓存中存储的与所述第一应用的子图层对象对应的图形界面内容数据,响应所述第一图形合成请求。
  19. 如权利要求18所述的图形合成器,其特征在于,所述关联对象获取模块具体用于:
    根据所述第二服务端图层对象对应的子图层对象的名称,获取对应于相同子图层对象名称的第一服务端图层对象。
  20. 如权利要求18或19所述的图形合成器,其特征在于,所述第一图形合成请求由第二客户端基于第二客户端图层对象对所述第一应用的图形界面渲染完成后生成,所述第二客户端图层对象与所述第二服务端图层对象对应;其中,所述第二客户端为所述第一应用在第二子系统中的客户端。
  21. 如权利要求18或19所述的图形合成器,其特征在于,
    所述请求获取模块还用于:获取第二图形合成请求,所述第二图形合成请求对应于所述第一服务端图层对象;
    所述合成模块还用于:根据所述第一服务端图层对象所对应的子图层对象,获取该子图层对象对应的第一应用图形界面窗口状态数据;基于所述第一服务端图层对象,并根据所述第一应用图形界面窗口状态数据,响应所述第二图形合成请求。
  22. 如权利要求21所述的图形合成器,其特征在于,所述第二图形合成请求由第一客户端基于第一客户端图层对象对所述第一应用的图形界面的窗口状态进行更新的操作生成,所述第一客户端图层对象与所述第一服务端图层对象对应;其中,所述第一客户端为所述第一应用在第一子系统中的客户端。
  23. 一种图层处理装置,其特征在于,包括:
    第一客户端,用于指示图形合成器针对第一应用的子图层对象创建第一服务端图层对象,并向第二客户端发送通知;其中,所述第一客户端为所述第一应用在第一子系统中的客户端,所述第二客户端为所述第一应用在第二子系统中的客户端;
    第二客户端,用于根据所述通知,指示所述图形合成器针对所述第一应用的子图层对象创建第二服务端图层对象,并建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
  24. 如权利要求23所述的装置,其特征在于,所述第二客户端具体用于:
    将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
  25. 如权利要求23所述的装置,其特征在于,所述第一客户端还用于:
    获得所述第一服务端图层对象对应的子图层对象的名称,并将所述名称携带于所述通知中。
  26. 如权利要求25所述的装置,其特征在于,所述第一客户端具体用于获得所述第一服务端图层对象对应的子图层对象的名称,包括:
    接收所述图形合成器在创建完成所述第一服务端图层对象后返回的所述子图层对象的名称;或者,
    通过注册的回调函数获得所述子图层对象的名称,所述回调函数用于在所述图形合成器创建完成所述第一服务端图层对象后将所述第一服务端图层对象对应的子图层对象的名称通知给所述第一客户端。
  27. 如权利要求23至26中任一项所述的装置,其特征在于,第一客户端具体用于:通过调用用于创建图层对象的第一库函数模块,为第一应用的图形界面创建第一客户端图层对象,所述第一库函数模块被调用后通知所述图形合成器创建所述第一服务端图层对象。
  28. 如权利要求23至26中任一项所述的装置,其特征在于,所述第二客户端具体用于:
    根据所述通知,通过调用用于创建图层对象的第二库函数模块,为所述图形界面创建第二客户端图层对象,所述第二库函数模块被调用后通知所述图形合成器创建所述第二服务端图层对象。
  29. 一种图形合成器,其特征在于,所述图形合成器为操作系统中的第一子系统和第二子系统共享使用的图形合成器,所述图形合成器包括:
    第一图层对象创建模块,用于根据第一客户端的指示,针对第一应用的子图层对象创建第一服务端图层对象;以及,根据第二客户端的指示,针对所述第一应用的子图层对象创建第二服务端图层对象,所述指示是所述第二客户端根据所述第一客户端发送的通知向所述图形合成器发送的;其中,所述第一客户端为所述第一应用在第一子系统中的客户端,所述第二客户端为所述第一应用在第二子系统中的客户端;
    关联模块,用于建立所述第二服务端图层对象与所述第一服务端图层对象间的关联关系。
  30. 如权利要求29所述的图形合成器,其特征在于,所述关联模块具体用于:
    将所述第二服务端图层对象对应的子图层对象的名称,设置为与所述第一服务端图层对象对应的子图层对象的名称相同。
  31. 如权利要求29或30所述的图形合成器,其特征在于,所述关联模块还用于:从所述第二客户端获得所述第一服务端图层对象对应的子图层对象的名称;其中,所述子图层对象的名称是所述第一客户端携带于通知中发送给所述第二客户端的。
  32. 一个或多个计算机可读介质,其特征在于,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行如权利要求1-6中任一项所述的方法。
  33. 一个或多个计算机可读介质,其特征在于,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行如权利要求7-13中任一项所述的方法。
  34. 一个或多个计算机可读介质,其特征在于,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行如权利要求14-17中任一项所述的方法。
  35. 一种图层处理装置,其特征在于,包括:
    一个或多个处理器;以及
    一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行如权利要求1-6中任一项所述的方法。
  36. 一种图层处理装置,其特征在于,包括:
    一个或多个处理器;以及
    一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行如权利要求7-13中任一项所述的方法。
  37. 一种图层处理装置,其特征在于,包括:
    一个或多个处理器;以及
    一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行如权利要求14-17中任一项所述的方法。
PCT/CN2018/092625 2017-07-07 2018-06-25 一种图层处理方法及装置 Ceased WO2019007216A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/714,074 US11164280B2 (en) 2017-07-07 2019-12-13 Graphics layer processing in a multiple operating systems framework

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710551288.5A CN109240677B (zh) 2017-07-07 2017-07-07 一种图层处理方法及装置
CN201710551288.5 2017-07-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/714,074 Continuation-In-Part US11164280B2 (en) 2017-07-07 2019-12-13 Graphics layer processing in a multiple operating systems framework

Publications (1)

Publication Number Publication Date
WO2019007216A1 true WO2019007216A1 (zh) 2019-01-10

Family

ID=64949714

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/092625 Ceased WO2019007216A1 (zh) 2017-07-07 2018-06-25 一种图层处理方法及装置

Country Status (3)

Country Link
US (1) US11164280B2 (zh)
CN (1) CN109240677B (zh)
WO (1) WO2019007216A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114610424A (zh) * 2022-02-11 2022-06-10 阿里巴巴(中国)有限公司 数据处理方法、云端应用的窗口显示方法和存储介质

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405810B2 (en) 2014-11-24 2016-08-02 Asana, Inc. Server side system and method for search backed calendar user interface
JP6846537B2 (ja) * 2016-12-27 2021-03-24 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. マルチオペレーティングシステム用の表示方法、装置及び電子設備
US10977434B2 (en) 2017-07-11 2021-04-13 Asana, Inc. Database model which provides management of custom fields and methods and apparatus therfor
US10623359B1 (en) 2018-02-28 2020-04-14 Asana, Inc. Systems and methods for generating tasks based on chat sessions between users of a collaboration environment
US11138021B1 (en) 2018-04-02 2021-10-05 Asana, Inc. Systems and methods to facilitate task-specific workspaces for a collaboration work management platform
US10613735B1 (en) 2018-04-04 2020-04-07 Asana, Inc. Systems and methods for preloading an amount of content based on user scrolling
US10785046B1 (en) 2018-06-08 2020-09-22 Asana, Inc. Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users
US10616151B1 (en) 2018-10-17 2020-04-07 Asana, Inc. Systems and methods for generating and presenting graphical user interfaces
US10956845B1 (en) 2018-12-06 2021-03-23 Asana, Inc. Systems and methods for generating prioritization models and predicting workflow prioritizations
US11113667B1 (en) 2018-12-18 2021-09-07 Asana, Inc. Systems and methods for providing a dashboard for a collaboration work management platform
US11568366B1 (en) 2018-12-18 2023-01-31 Asana, Inc. Systems and methods for generating status requests for units of work
US11782737B2 (en) 2019-01-08 2023-10-10 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11204683B1 (en) 2019-01-09 2021-12-21 Asana, Inc. Systems and methods for generating and tracking hardcoded communications in a collaboration management platform
US11341445B1 (en) 2019-11-14 2022-05-24 Asana, Inc. Systems and methods to measure and visualize threshold of user workload
US11783253B1 (en) 2020-02-11 2023-10-10 Asana, Inc. Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment
US11599855B1 (en) 2020-02-14 2023-03-07 Asana, Inc. Systems and methods to attribute automated actions within a collaboration environment
US11763259B1 (en) 2020-02-20 2023-09-19 Asana, Inc. Systems and methods to generate units of work in a collaboration environment
US11900323B1 (en) 2020-06-29 2024-02-13 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on video dictation
US11455601B1 (en) 2020-06-29 2022-09-27 Asana, Inc. Systems and methods to measure and visualize workload for completing individual units of work
US11449836B1 (en) 2020-07-21 2022-09-20 Asana, Inc. Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment
US11568339B2 (en) 2020-08-18 2023-01-31 Asana, Inc. Systems and methods to characterize units of work based on business objectives
US11769115B1 (en) 2020-11-23 2023-09-26 Asana, Inc. Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment
US11405435B1 (en) 2020-12-02 2022-08-02 Asana, Inc. Systems and methods to present views of records in chat sessions between users of a collaboration environment
US11694162B1 (en) 2021-04-01 2023-07-04 Asana, Inc. Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment
US11676107B1 (en) 2021-04-14 2023-06-13 Asana, Inc. Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles
US11553045B1 (en) 2021-04-29 2023-01-10 Asana, Inc. Systems and methods to automatically update status of projects within a collaboration environment
US11803814B1 (en) 2021-05-07 2023-10-31 Asana, Inc. Systems and methods to facilitate nesting of portfolios within a collaboration environment
US11792028B1 (en) 2021-05-13 2023-10-17 Asana, Inc. Systems and methods to link meetings with units of work of a collaboration environment
US11809222B1 (en) 2021-05-24 2023-11-07 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on selection of text
US12141756B1 (en) 2021-05-24 2024-11-12 Asana, Inc. Systems and methods to generate project-level graphical user interfaces within a collaboration environment
US12093859B1 (en) 2021-06-02 2024-09-17 Asana, Inc. Systems and methods to measure and visualize workload for individual users
US12182505B1 (en) 2021-06-10 2024-12-31 Asana, Inc. Systems and methods to provide user-generated project-level graphical user interfaces within a collaboration environment
US11756000B2 (en) 2021-09-08 2023-09-12 Asana, Inc. Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events
US12159262B1 (en) 2021-10-04 2024-12-03 Asana, Inc. Systems and methods to provide user-generated graphical user interfaces within a collaboration environment
US11635884B1 (en) 2021-10-11 2023-04-25 Asana, Inc. Systems and methods to provide personalized graphical user interfaces within a collaboration environment
CN114035851B (zh) * 2021-11-08 2023-10-03 北京字节跳动网络技术有限公司 多系统的图形数据处理方法及装置、电子设备和存储介质
US12536503B1 (en) 2021-12-06 2026-01-27 Asana, Inc. Systems and methods to track and present navigation through records of a collaboration environment
US12093896B1 (en) 2022-01-10 2024-09-17 Asana, Inc. Systems and methods to prioritize resources of projects within a collaboration environment
US12260475B2 (en) * 2022-01-27 2025-03-25 Adobe Inc. Content linting in graphic design documents
US12033251B2 (en) * 2022-01-27 2024-07-09 Adobe Inc. Automatically generating semantic layers in a graphic design document
US12223562B2 (en) 2022-01-27 2025-02-11 Adobe Inc. Organizing a graphic design document using semantic layers
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
US12118514B1 (en) 2022-02-17 2024-10-15 Asana, Inc. Systems and methods to generate records within a collaboration environment based on a machine learning model trained from a text corpus
US12190292B1 (en) 2022-02-17 2025-01-07 Asana, Inc. Systems and methods to train and/or use a machine learning model to generate correspondences between portions of recorded audio content and work unit records of a collaboration environment
US11997425B1 (en) 2022-02-17 2024-05-28 Asana, Inc. Systems and methods to generate correspondences between portions of recorded audio content and records of a collaboration environment
US12051045B1 (en) 2022-04-28 2024-07-30 Asana, Inc. Systems and methods to characterize work unit records of a collaboration environment based on stages within a workflow
US12288171B1 (en) 2022-07-18 2025-04-29 Asana, Inc. Systems and methods to provide records for new users of a collaboration environment
US12412156B1 (en) 2022-07-21 2025-09-09 Asana, Inc. Systems and methods to characterize work unit records of a collaboration environment based on freeform arrangement of visual content items
CN115390960A (zh) * 2022-07-24 2022-11-25 武汉蓝星科技股份有限公司 一种嵌入式设备的双系统界面融合显示系统及方法
US11863601B1 (en) 2022-11-18 2024-01-02 Asana, Inc. Systems and methods to execute branching automation schemes in a collaboration environment
US12287849B1 (en) 2022-11-28 2025-04-29 Asana, Inc. Systems and methods to automatically classify records managed by a collaboration environment
CN118567537A (zh) * 2023-02-28 2024-08-30 华为技术有限公司 基于多操作系统的图形显示方法及相关装置
US12401655B1 (en) 2023-04-24 2025-08-26 Asana, Inc. Systems and methods to manage access to assets of a computer environment based on user and asset grouping
US12423121B1 (en) 2023-11-09 2025-09-23 Asana, Inc. Systems and methods to customize a user interface of a collaboration environment based on ranking of work unit records managed by the collaboration environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090225093A1 (en) * 2008-03-04 2009-09-10 John Harper Buffers for display acceleration
CN101820524A (zh) * 2010-03-22 2010-09-01 中兴通讯股份有限公司 用于电视会议的视频播放方法
CN106201398A (zh) * 2016-06-30 2016-12-07 乐视控股(北京)有限公司 一种显示方法及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7839419B2 (en) 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US7996785B2 (en) 2004-06-30 2011-08-09 Microsoft Corporation Systems and methods for integrating application windows in a virtual machine environment
US8274518B2 (en) 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US8065687B2 (en) 2007-01-05 2011-11-22 Moka5, Inc. Bypass virtualization
US20090088883A1 (en) * 2007-09-27 2009-04-02 Rockwell Automation Technologies, Inc. Surface-based computing in an industrial automation environment
US8724696B2 (en) 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US9348626B2 (en) * 2011-08-05 2016-05-24 Vmware, Inc. Mobile device maintaining adequate security and data partitioning between user mode and business mode
CN103927222A (zh) * 2013-12-31 2014-07-16 瑞达信息安全产业股份有限公司 一种用于客户端与服务端的图形协同处理方法和系统
PL3974976T3 (pl) 2014-09-26 2026-02-23 Intel Corporation Ułatwianie wyświetlania aplikacji gościa z systemu operacyjnego hosta
KR102282365B1 (ko) * 2015-02-06 2021-07-27 삼성전자주식회사 Os들의 화면을 통합하여 표시하는 방법 및 장치
CN106001398A (zh) * 2016-07-07 2016-10-12 天津市航宇嘉瑞科技股份有限公司 一种模具砂芯用激冷涂料及其使用方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090225093A1 (en) * 2008-03-04 2009-09-10 John Harper Buffers for display acceleration
CN101820524A (zh) * 2010-03-22 2010-09-01 中兴通讯股份有限公司 用于电视会议的视频播放方法
CN106201398A (zh) * 2016-06-30 2016-12-07 乐视控股(北京)有限公司 一种显示方法及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114610424A (zh) * 2022-02-11 2022-06-10 阿里巴巴(中国)有限公司 数据处理方法、云端应用的窗口显示方法和存储介质

Also Published As

Publication number Publication date
US20200193556A1 (en) 2020-06-18
US11164280B2 (en) 2021-11-02
CN109240677B (zh) 2020-10-16
CN109240677A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
WO2019007216A1 (zh) 一种图层处理方法及装置
US11494010B2 (en) Touch support for remoted applications
US10976981B2 (en) Remote desktop exporting
US20230090171A1 (en) Resource Manager Integration in Cloud Computing Environments
US9047102B2 (en) Instant remote rendering
US9032062B2 (en) Shell integration on a mobile device for an application executing remotely on a server
US8957905B2 (en) Cross-environment user interface mirroring
US20110246904A1 (en) Interacting with Remote Applications Displayed Within a Virtual Desktop of a Tablet Computing Device
WO2012044829A2 (en) User interaction across cross-environment applications through an extended graphics context
WO2012044828A2 (en) User interaction support across cross-environment applications
WO2011050683A1 (zh) 一种应用程序图像的显示方法和装置
CN107292807A (zh) 一种图形合成方法、窗口设置方法及系统
WO2026012049A1 (zh) 通信方法、电子装置、车辆和存储介质
US11240293B2 (en) System for supporting remote accesses to a host computer from a mobile computing device
US9674307B1 (en) Running mobile applications in a distributed client-server model using selective delegation of hardware and software contexts to the client

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: 18827833

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18827833

Country of ref document: EP

Kind code of ref document: A1