CN113918056A - 一种调整应用窗口的方法和装置 - Google Patents

一种调整应用窗口的方法和装置 Download PDF

Info

Publication number
CN113918056A
CN113918056A CN202111130801.6A CN202111130801A CN113918056A CN 113918056 A CN113918056 A CN 113918056A CN 202111130801 A CN202111130801 A CN 202111130801A CN 113918056 A CN113918056 A CN 113918056A
Authority
CN
China
Prior art keywords
application window
window
target
virtual display
adjusting
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.)
Granted
Application number
CN202111130801.6A
Other languages
English (en)
Other versions
CN113918056B (zh
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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing Jingling Information System Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingling Information System Technology Co Ltd filed Critical Beijing Jingling Information System Technology Co Ltd
Priority to CN202111130801.6A priority Critical patent/CN113918056B/zh
Publication of CN113918056A publication Critical patent/CN113918056A/zh
Application granted granted Critical
Publication of CN113918056B publication Critical patent/CN113918056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

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

Abstract

本发明提供一种调整应用窗口的方法和装置,应用于第一端的窗口管理器,该方法包括:接收对应用窗口进行调整的请求信息;根据请求信息调用第二端的图形合成组件对应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;根据目标虚拟显示器调用第二端的应用组件对应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;调用第二端的图形合成组件将所述调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口;获取目标应用窗口,根据预先设置的应用窗口的旋转配置策略对目标应用窗口进行旋转调整。实现了第一端的窗口管理器能对第二端的应用窗口进行旋转调整的功能,提升了用户的体验感。

Description

一种调整应用窗口的方法和装置
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种调整应用窗口的方法和装置。
背景技术
在现代主流移动操作系统(Android、iOS)中,都有应用随设备方向自动旋转的实现;在Linux图形系统上的Android窗口也有配合系统做窗口旋转的需求。现有技术中,Linux窗体无法支持Android应用窗口旋转的操作要求,降低用户在异构系统中操作Android应用窗口的体验感。
发明内容
本发明提供一种调整应用窗口的方法和装置,实现了第一端的窗口管理器能对第二端的应用窗口进行旋转调整的功能,提升了用户的体验感。
第一方面,本发明实施例提供一种调整应用窗口的方法,应用于第一端的窗口管理器,所述方法包括:
接收对应用窗口进行调整的请求信息;
根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;
根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;
调用所述第二端的图形合成组件将所述调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口;
获取所述目标应用窗口,根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整。
根据本发明提供的调整应用窗口的方法,所述方法还包括:
通过所述第一端的窗口管理器将旋转调整后的目标应用窗口与显示侧进行适配,并在显示侧进行显示。
根据本发明提供的调整应用窗口的方法,所述根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整之前,包括:
建立所述第一端与所述第二端的通信代理,并根据所述通信代理创建所述第二端的窗口协议代理;
通过所述窗口协议代理接收所述应用窗口的旋转配置策略;
根据所述应用窗口的旋转配置策略,计算所述应用窗口的尺寸;
根据所述应用窗口的尺寸调用所述第二端的图形合成组件创建对应尺寸的虚拟显示器。
根据本发明提供的调整应用窗口的方法,所述根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口之前,包括:
调用所述第二端的活动管理器服务组件在所述创建的虚拟显示器中启动所述应用组件;
调用所述应用组件绘制与所述虚拟显示器对应尺寸的应用窗口的布局。
根据本发明提供的调整应用窗口的方法,所述调用所述第二端的图形合成组件将所述调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口之后,所述方法还包括:
根据所述目标应用窗口,对所述第一端的关联界面进行对应的尺寸调整,生成目标关联界面;
将所述目标应用窗口和所述目标关联界面进行合成,在第一端中根据所述应用窗口的旋转配置策略对合成后的应用窗口进行旋转;
通过所述第一端的窗口管理器将旋转后的应用窗口与显示侧进行适配,并在显示侧进行显示。
根据本发明提供的调整应用窗口的方法,所述根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整之后,所述方法还包括:
根据所述旋转调整之后的目标应用窗口,对输入设备在所述显示侧的显示区域中的坐标系进行对应的旋转调整。
第二方面,本发明实施例提供了一种调整应用窗口的装置,应用于第一端的窗口管理器,所述装置包括:
接收模块,用于接收对应用窗口进行调整的请求信息;
调整模块,用于根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;
生成模块,用于根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;
渲染模块,用于调用所述第二端的图形合成组件将所述调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口;
获取模块,用于获取所述目标应用窗口,根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述一种调整应用窗口的方法的步骤。
第四方面,本发明实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述一种调整应用窗口的方法的步骤。
第五方面,本发明实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述一种调整应用窗口的方法的步骤。
本发明提供的一种调整应用窗口的方法和装置,通过接收对应用窗口进行调整的请求信息;根据请求信息调用第二端的图形合成组件对应用窗口的虚拟显示器进行尺寸调整,将尺寸调整后的虚拟显示器作为目标虚拟显示器在第二端生成;根据目标虚拟显示器调用第二端的应用组件对应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;再次调用第二端的图形合成组件将调整后的应用窗口渲染至目标虚拟显示器上,作为目标应用窗口在第二端生成,也就是说在第二端完成对虚拟显示器和布局的尺寸调整;在第一端的窗口管理器中获取目标应用窗口,根据预先设置的应用窗口的旋转配置策略对目标应用窗口进行旋转调整,也就是在第一端完成对目标应用窗口的旋转调整。实现了第一端的窗口管理器能对第二端的应用窗口进行旋转调整的功能,提升了用户的体验感。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供一种调整应用窗口的方法的流程示意图;
图2是本发明实施例提供对应用窗口的虚拟显示器进行尺寸调整之前的流程示意图;
图3是本发明实施例提供在第二端生成目标应用窗口之后的流程示意图;
图4是本发明实施例提供的旋转之前的原始图;
图5是本发明实施例提供的旋转之后的图;
图6是本发明实施例提供的创建虚拟显示器和绘制布局的流程示意图;
图7是本发明实施例提供的对应用窗口进行旋转调整的流程示意图;
图8是本发明实施例提供的一种调整应用窗口的装置的结构示意图;
图9是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的实施例中,第一端可以为GNU/Linux端,所称的GNU/Linux包括Ubuntu、Debian、RedHat等各种发行版。需要说明的是,第一端并不限定是运行在物理机上的,也可以是托管在其它操作系统上的操作系统,例如Windows系统中的WSL。
在本发明的实施例中,第二端可以为Android(安卓)端,涵盖Google发行的Android OS以及AOSP和基于AOSP的各种衍生系统,如MIUI、EMUI、One UI等。其它类型的基于Linux Kernel的移动端操作系统,如Tizen、鸿蒙、Meego等作为第二端的示例,同样适用于本发明实施例的技术方案。
对应地,第一端的窗口管理器为Linux端的窗口管理器,窗口管理器是用户在系统里的主要图形管理模块。窗口管理器是个程序,它控制窗口的外表、位置、窗口层级和提供用户去操作这些窗口程序的方法。常见的窗口管理器的实现,例如,Linux中的X Window、Wayland等。
可以通过多种方式使得第二端的操作系统运行在第一端的操作系统中,包括但不限于基于Linux Kernel的LXC、容器等方式。
参照图1,为本发明实施例提供一种调整应用窗口的方法的流程示意图,该方法包括:
110,接收对应用窗口进行调整的请求信息。
例如,应用窗口可以为Android端的应用窗口。
进行调整的请求信息可以为对应用窗口进行尺寸的调整,包括对应用窗口的长或宽的调整;也可以理解为对应用窗口的旋转调整,旋转调整可以包括横向、纵向、横向翻转或纵向翻转等。
120,根据请求信息调用第二端的图形合成组件对应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器。
以Android为例,图形合成组件可以是SurfaceFlinger,SurfaceFlinger是Android端的图形合成组件,主要实现了Surface的建立、控制、调整、合成等功能。在Android的实现中,SurfaceFlinger相当于一个服务,提供系统范围内的Surface Composer功能,能够将各种应用程序的2D、3D Surface进行组合。
对应地,以Android为例,虚拟显示器可以是VirtualDisplay,VirtualDisplay是Android端的一个类,代表一个虚拟显示器,通过调用VirtualDisplay,能够将Android端的虚拟显示器内的内容渲染到一个Surface上。
具体地,第二端为Android端,根据请求信息对Android端的应用窗口进行尺寸调整,尺寸调整指对Android端应用窗口的虚拟显示器的长或宽进行的调整,将调整后的虚拟显示器作为目标虚拟显示器。
130,根据目标虚拟显示器调用第二端的应用组件对应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口。
该步骤中,布局可以为Layout,Layout的类型可以分为线性布局(LinearLayout)、帧布局(Frame Layout)、表格布局(Table Layout)、相对布局(Relative Layout)和绝对布局(Absolute Layout)。本发明实施例中不对Layout的类型进行限定。
以Android为例,对应用窗口的布局对应进行尺寸调整指的是当对Android端应用窗口的虚拟显示器的长或宽进行调整后,基于相同的长或宽的调整,对Android端应用窗口的布局对应进行调整,对应用窗口的布局进行对应尺寸调整是为了适配不同尺寸的虚拟显示器。
140,调用第二端的图形合成组件将调整后的应用窗口渲染至目标虚拟显示器上,在第二端生成目标应用窗口。
以Android为例,调用Android端的SurfaceFlinger组件将调整后的Android端的应用窗口渲染到虚拟显示器上,在Android端生成目标应用窗口。
150,获取目标应用窗口,根据预先设置的应用窗口的旋转配置策略对目标应用窗口进行旋转调整。
该步骤中,预先设置的应用窗口的旋转配置策略可以为横屏、竖屏、横竖屏翻转等,支持其中一种或多种。
本发明提供的一种调整应用窗口的方法,通过接收对应用窗口进行调整的请求信息;根据请求信息调用第二端的图形合成组件对应用窗口的虚拟显示器进行尺寸调整,将尺寸调整后的虚拟显示器作为目标虚拟显示器在第二端生成;根据目标虚拟显示器调用第二端的应用组件对应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;再次调用第二端的图形合成组件将调整后的应用窗口渲染至目标虚拟显示器上,作为目标应用窗口在第二端生成,也就是说在第二端完成对虚拟显示器和布局的尺寸调整;在第一端的窗口管理器中获取目标应用窗口,根据预先设置的应用窗口的旋转配置策略对目标应用窗口进行旋转调整,也就是在第一端完成对目标应用窗口的旋转调整。实现了第一端的窗口管理器能对第二端的应用窗口进行旋转调整的功能,提升了用户的体验感。
在一些实施例中,本发明实施例提供的调整应用窗口的方法,还包括:
通过第一端的窗口管理器将旋转调整后的目标应用窗口与显示侧进行适配,并在显示侧进行显示。
该步骤中,显示侧指的是具有显示功能的一种输入输出设备,也可以理解为它是一种将图像或者画面通过特定的传输设备显示到屏幕上再反射到人眼的显示工具,可以是LCD、OLED等,还可以是LED投影机、激光投影机等投影出的显示,或AR、VR等成像显示。
具体地,在显示侧进行显示的窗口、图像或者画面是横向的,而将旋转后的应用窗口与显示侧进行适配的目的在于,使旋转调整后的目标应用窗口的方向与显示侧显示的方向一致,即都是横向。对此举例说明,若旋转调整后的目标应用窗口的方向是纵向的,然最终要显示的方向应该是横向的,所以将旋转调整后的目标应用窗口进行旋转,使方向旋转至横向,则旋转调整后的应用窗口与显示侧显示的方向一致,都是横向。
在一些实施例中,参照图2,为本发明实施例提供对应用窗口的虚拟显示器进行尺寸调整之前的流程示意图,包括:
210,建立第一端与第二端的通信代理,并根据通信代理创建第二端的窗口协议代理。
以Linux和Android为例,通信代理主要用来进行Android端与Linux端的数据传输,实现Android端与Linux端的信息交互。
例如,可以通过Binder通信、Socket通信、管道(PIPE)、消息队列(MQ)、共享内存(Share Memory)、内存映射文件(Memory Map)等方式。
在通信代理中有很多的协议代理,并不仅限于窗口协议代理,所以通过通信代理创建和应用窗口有关的协议代理,即窗口协议代理,具体的窗口协议代理可以是X11或Wayland等Linux上的协议。
220,通过窗口协议代理接收应用窗口的旋转配置策略。
以Android为例,应用窗口的旋转配置策略指的是Android端的应用窗口所支持的旋转配置策略,具体可以是横屏、竖屏、横竖屏翻转等,支持其中一种或多种。
对应地,可以通过Wayland协议接收Android端的应用窗口所支持的旋转配置策略。
230,根据应用窗口的旋转配置策略,计算应用窗口的尺寸。
以Android为例,根据Android端应用窗口的旋转配置策略,计算Android应用窗口的尺寸,包括长和宽。
240,根据应用窗口的尺寸调用第二端的图形合成组件创建对应尺寸的虚拟显示器。
以Android为例,根据Android应用窗口的长和宽,调用Android端的SurfaceFlinger组件创建相同长和宽的虚拟显示器。
在对应用窗口的虚拟显示器进行尺寸调整之前,需要先创建虚拟显示器,在后续的过程中只需对已创建好的虚拟显示器进行尺寸调整即可。
在一些实施例中,在步骤130之前包括下述步骤S131~S132:
S131、调用第二端的活动管理器服务组件在创建的虚拟显示器中启动应用组件。
以Android为例,活动管理服务组件可以为ActivityManagerService,主要负责启动、切换、调度及应用进程的管理等工作。
应用组件指的是Android端的应用组件,为满足用户不同领域、不同问题的应用需求而提供的那部分组件。
S132、调用应用组件绘制与虚拟显示器对应尺寸的应用窗口的布局。
以Android为例,调用Android端的应用组件根据虚拟显示器的尺寸,对应绘制Android应用窗口的布局。
在一些实施例中,参照图3,为本发明实施例提供在第二端生成目标应用窗口之后的流程示意图,包括:
310,根据目标应用窗口,对第一端的关联界面进行对应的尺寸调整,生成目标关联界面。
以Linux为例,第一端的关联界面指的是Linux端的关联界面,关联界面具体指的是状态栏或系统弹窗这样的能够用来显示当前操作状态、信息提示等,可以包括状态栏、软键盘或弹出框等。如:对于浏览器等应用,状态栏上有许多按钮。这些按钮用于显示当前访问的Web页面的信息,包括当前页面的IP地址、页面的访问情况、下载进度、历史浏览记录等信息。
320,将目标应用窗口和目标关联界面进行合成,在第一端中根据应用窗口的旋转配置策略对合成后的应用窗口进行旋转。
330,通过第一端的窗口管理器将旋转后的应用窗口与显示侧进行适配,并在显示侧进行显示。
具体地,在显示侧进行显示的窗口、图像或者画面是横向的,而将旋转后的应用窗口与显示侧进行适配的目的在于,使旋转调整后的目标应用窗口的方向与显示侧显示的方向一致,即都是横向。
对步骤310~330进一步进行说明,参照图4所示,为本发明实施例提供的旋转之前的原始图。以第一端为Linux端,第二端为Android端为例,参照图5所示,为本发明实施例提供的旋转之后的图。图4和图5中都包括三部分,Linux端窗口管理器、Linux端关联界面和Android应用窗口。
在一些实施例中,调用Android端的SurfaceFlinger组件对应用窗口的虚拟显示器进行尺寸调整,在Android端生成目标虚拟显示器;根据目标虚拟显示器调用Android端的应用组件对应用窗口的布局对应进行尺寸调整,在Android端生成调整后的应用窗口,调用Android端的SurfaceFlinger组件将调整后的应用窗口渲染至目标虚拟显示器上,在Android端生成目标应用窗口,可以将Android应用窗口作为目标应用窗口,即从图4中的Android应用窗口调整为图5中的Android应用窗口;Android应用窗口是经过尺寸调整后生成的,相应的对Linux端关联界面进行同样的尺寸调整,即从图4中的Linux端关联界面调整为图5中的Linux端关联界面;将尺寸调整后的Android应用窗口和Linux端关联界面进行合成,将合成后的应用窗口提交至Linux端窗口管理器,Linux端窗口管理器对合成的应用窗口进行旋转,即从图4中Linux端窗口管理器显示的画面调整为图5中Linux端窗口管理器显示的画面;将旋转后的应用窗口与显示侧进行适配,并在显示侧进行显示。
在一些实施例中,在步骤150之后,所述方法还包括:
根据旋转调整之后的目标应用窗口,对输入设备在显示侧的显示区域中的坐标系进行对应的旋转调整。
该步骤中,输入设备可以为鼠标或触摸板等。在目标应用窗口完成旋转调整后,为了使整个应用窗口中内容的方向一致,对应用窗口内的输入设备在显示区域的坐标系进行对应的旋转调整,使输入设备在显示区域的坐标系与旋转调整后的目标应用窗口的坐标系保持一致。
进一步地,以第一端为Linux端,第二端为Android端为例,对本发明的实施做进一步补充说明:参照图6所示,为本发明实施例提供的创建虚拟显示器和绘制布局的流程示意图,具体包括以下步骤:
1,Linux端窗口管理器接收对Android端应用窗口进行调整的请求信息。
2,Linux端与Android端建立通信代理,实现两端的通信;根据通信代理创建Android窗口协议代理,实现两端窗口之间的通信;通过Android窗口协议代理与Linux端进行连接,在连接成功的情况下,接收Android端应用窗口的预先设置的旋转配置策略。
3,根据Android端应用窗口的旋转配置策略,计算Android应用窗口的尺寸。
4,根据Android应用窗口的尺寸调用Android的SurfaceFlinger组件创建对应尺寸的虚拟显示器,并将创建虚拟显示器的消息返回至Android窗口协议代理,Android窗口协议代理将消息再返回至通信代理,通信代理收到创建虚拟显示器消息后,发出在虚拟显示器中启动Android应用的消息。
5,调用Android端的ActivityManagerService组件启动Android应用,Android应用进行绘制布局,并提交至Android端的SurfaceFlinger组件。
6,调用Android端的SurfaceFlinger组件将Android端的应用窗口渲染到虚拟显示器上。
7,将渲染完成的消息通过Android窗口协议代理和通信代理通知,通知给Linux端窗口管理器。
在上述创建虚拟显示器和绘制布局后,对第二端应用窗口进行旋转。以第一端为Linux端,第二端为Android端为例,参照图7所示,为本发明实施例提供的对应用窗口进行旋转调整的流程示意图,具体步骤为:
1,Linux端窗口管理器接收对Android端应用窗口进行调整的请求信息。
2,Linux端与Android端之间通过Android窗口协议代理发出对虚拟显示器进行尺寸调整的消息。
3,调用Android的SurfaceFlinger组件对虚拟显示器进行尺寸调整,并将进行尺寸调整的消息发送给Android端的ActivityManagerService组件。
4,Android端的ActivityManagerService组件将接收的尺寸调整的消息发送给Android应用。
5,Android应用接收消息,根据虚拟显示器的尺寸调整相应的对布局进行尺寸调整,并提交给Android端的SurfaceFlinger组件。
6,Android端的SurfaceFlinger组件将Android端的应用窗口渲染到虚拟显示器上,将渲染完成的结果作为Android应用窗口,并通知给Android窗口协议代理。
7,Android窗口协议代理根据接收的消息,通知给Linux端窗口管理器。
8,Linux端窗口管理器接收通知,并根据预先设置的Android应用窗口的旋转配置策略对Android应用窗口进行旋转调整。
在一些实施例中,参照图8,为本发明实施例提供的一种调整应用窗口的装置的结构示意图,该装置包括:接收模块810、调整模块820、生成模块830、渲染模块840和获取模块850。其中,接收模块810,用于接收对应用窗口进行调整的请求信息;调整模块820,用于根据请求信息调用第二端的图形合成组件对应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;生成模块830,用于根据目标虚拟显示器调用第二端的应用组件对应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;渲染模块840,用于调用第二端的图形合成组件将调整后的应用窗口渲染至目标虚拟显示器上,在第二端生成目标应用窗口;获取模块850,用于获取目标应用窗口,根据预先设置的应用窗口的旋转配置策略对目标应用窗口进行旋转调整。
本发明提供的一种调整应用窗口的装置,通过接收对应用窗口进行调整的请求信息;根据请求信息调用第二端的图形合成组件对应用窗口的虚拟显示器进行尺寸调整,将尺寸调整后的虚拟显示器作为目标虚拟显示器在第二端生成;根据目标虚拟显示器调用第二端的应用组件对应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;再次调用第二端的图形合成组件将调整后的应用窗口渲染至目标虚拟显示器上,将渲染后的结果作为目标应用窗口在第二端生成,也就是说在第二端完成对虚拟显示器和布局的尺寸调整;在第一端的窗口管理器中获取目标应用窗口,根据预先设置的应用窗口的旋转配置策略对目标应用窗口进行旋转调整,也就是在第一端完成对目标应用窗口的旋转调整。实现了第一端的窗口管理器能对第二端的应用窗口进行旋转调整的功能,提升了用户的体验感。
在一些实施例中,所述装置还包括:
通过第一端的窗口管理器将旋转调整后的目标应用窗口与显示侧进行适配,并在显示侧进行显示。
在一些实施例中,所述调整模块820之前,包括:
建立第一端与第二端的通信代理,并根据通信代理创建第二端的窗口协议代理;
通过窗口协议代理接收应用窗口的旋转配置策略;
根据应用窗口的旋转配置策略,计算应用窗口的尺寸;
根据应用窗口的尺寸调用第二端的图形合成组件创建对应尺寸的虚拟显示器。
在一些实施例中,所述生成模块830之前,包括:
调用第二端的活动管理器服务组件在创建的虚拟显示器中启动应用组件;
调用应用组件绘制与虚拟显示器对应尺寸的应用窗口的布局。
在一些实施例中,所述渲染模块840之后,包括:
根据目标应用窗口,对第一端的关联界面进行对应的尺寸调整,生成目标关联界面;
将目标应用窗口和目标关联界面进行合成,在第一端中根据应用窗口的旋转配置策略对合成后的应用窗口进行旋转;
通过第一端的窗口管理器将旋转后的应用窗口与显示侧进行适配,并在显示侧进行显示。
在一些实施例中,所述获取模块850之后,包括:
根据旋转调整之后的目标应用窗口,对输入设备在显示侧的显示区域中的坐标系进行对应的旋转调整。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行一种调整应用窗口的方法,该方法包括:接收对应用窗口进行调整的请求信息;根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;调用所述第二端的图形合成组件将调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口;获取所述目标应用窗口,根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整。
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的一种调整应用窗口的方法,该方法包括:接收对应用窗口进行调整的请求信息;根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;调用所述第二端的图形合成组件将调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口;获取所述目标应用窗口,根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的一种调整应用窗口的方法,该方法包括:接收对应用窗口进行调整的请求信息;根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;调用所述第二端的图形合成组件将所述调整后的应用窗口渲染至目标虚拟显示器上,在第二端生成目标应用窗口;获取所述目标应用窗口,根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种调整应用窗口的方法,其特征在于,应用于第一端的窗口管理器,所述方法包括:
接收对应用窗口进行调整的请求信息;
根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;
根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;
调用所述第二端的图形合成组件将所述调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口;
获取所述目标应用窗口,根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整。
2.根据权利要求1所述的调整应用窗口的方法,其特征在于,所述方法还包括:
通过所述第一端的窗口管理器将旋转调整后的目标应用窗口与显示侧进行适配,并在显示侧进行显示。
3.根据权利要求1所述的调整应用窗口的方法,其特征在于,所述根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整之前,包括:
建立所述第一端与所述第二端的通信代理,并根据所述通信代理创建所述第二端的窗口协议代理;
通过所述窗口协议代理接收所述应用窗口的旋转配置策略;
根据所述应用窗口的旋转配置策略,计算所述应用窗口的尺寸;
根据所述应用窗口的尺寸调用所述第二端的图形合成组件创建对应尺寸的虚拟显示器。
4.根据权利要求3所述的调整应用窗口的方法,其特征在于,所述根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口之前,包括:
调用所述第二端的活动管理器服务组件在所述创建的虚拟显示器中启动所述应用组件;
调用所述应用组件绘制与所述虚拟显示器对应尺寸的应用窗口的布局。
5.根据权利要求1所述的调整应用窗口的方法,其特征在于,所述调用所述第二端的图形合成组件将所述调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口之后,所述方法还包括:
根据所述目标应用窗口,对所述第一端的关联界面进行对应的尺寸调整,生成目标关联界面;
将所述目标应用窗口和所述目标关联界面进行合成,在第一端中根据所述应用窗口的旋转配置策略对合成后的应用窗口进行旋转;
通过所述第一端的窗口管理器将旋转后的应用窗口与显示侧进行适配,并在显示侧进行显示。
6.根据权利要求2所述的调整应用窗口的方法,其特征在于,所述根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整之后,所述方法还包括:
根据所述旋转调整之后的目标应用窗口,对输入设备在所述显示侧的显示区域中的坐标系进行对应的旋转调整。
7.一种调整应用窗口的装置,其特征在于,应用于第一端的窗口管理器,所述装置包括:
接收模块,用于接收对应用窗口进行调整的请求信息;
调整模块,用于根据所述请求信息调用第二端的图形合成组件对所述应用窗口的虚拟显示器进行尺寸调整,在第二端生成目标虚拟显示器;
生成模块,用于根据所述目标虚拟显示器调用所述第二端的应用组件对所述应用窗口的布局对应进行尺寸调整,在第二端生成调整后的应用窗口;
渲染模块,用于调用所述第二端的图形合成组件将所述调整后的应用窗口渲染至所述目标虚拟显示器上,在第二端生成目标应用窗口;
获取模块,用于获取所述目标应用窗口,根据预先设置的所述应用窗口的旋转配置策略对所述目标应用窗口进行旋转调整。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述一种调整应用窗口的方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一种调整应用窗口的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一种调整应用窗口的方法的步骤。
CN202111130801.6A 2021-09-26 2021-09-26 一种调整应用窗口的方法和装置 Active CN113918056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111130801.6A CN113918056B (zh) 2021-09-26 2021-09-26 一种调整应用窗口的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111130801.6A CN113918056B (zh) 2021-09-26 2021-09-26 一种调整应用窗口的方法和装置

Publications (2)

Publication Number Publication Date
CN113918056A true CN113918056A (zh) 2022-01-11
CN113918056B CN113918056B (zh) 2024-05-03

Family

ID=79236343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111130801.6A Active CN113918056B (zh) 2021-09-26 2021-09-26 一种调整应用窗口的方法和装置

Country Status (1)

Country Link
CN (1) CN113918056B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629838A (zh) * 2022-12-06 2023-01-20 麒麟软件有限公司 基于Wayland的客户端窗口坐标管理实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269604A (zh) * 2020-11-11 2021-01-26 北京技德系统技术有限公司 在Linux上兼容运行Android应用的窗口交互方法及装置
CN112860363A (zh) * 2021-02-07 2021-05-28 麒麟软件有限公司 一种基于Linux系统的Android应用窗口状态动态更新方法
CN113467666A (zh) * 2021-09-06 2021-10-01 北京鲸鲮信息系统技术有限公司 一种调整应用窗口的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269604A (zh) * 2020-11-11 2021-01-26 北京技德系统技术有限公司 在Linux上兼容运行Android应用的窗口交互方法及装置
CN112860363A (zh) * 2021-02-07 2021-05-28 麒麟软件有限公司 一种基于Linux系统的Android应用窗口状态动态更新方法
CN113467666A (zh) * 2021-09-06 2021-10-01 北京鲸鲮信息系统技术有限公司 一种调整应用窗口的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629838A (zh) * 2022-12-06 2023-01-20 麒麟软件有限公司 基于Wayland的客户端窗口坐标管理实现方法
CN115629838B (zh) * 2022-12-06 2023-03-17 麒麟软件有限公司 基于Wayland的客户端窗口坐标管理实现方法

Also Published As

Publication number Publication date
CN113918056B (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
CN105630478B (zh) 一种实现页面切换的方法和装置
WO2018050003A1 (zh) 3D canvas网页元素的渲染方法、装置及电子设备
CN110415325B (zh) 云渲染三维可视化实现方法及系统
US20190196774A1 (en) Manipulating shared screen content
CN113467666B (zh) 一种调整应用窗口的方法和装置
WO2023065740A1 (zh) 窗口显示方法、装置、设备和存储介质
CN106598410B (zh) 电子书的显示方法、装置和终端设备
CN108228121B (zh) 一种浏览器分屏的方法、装置及移动终端
AU2015298291B2 (en) Optimized rendering of shared documents on client devices with document raster representations
CN108932413B (zh) 一种数字签名生成方法、装置及存储介质
CN111190672A (zh) 电子设备的ui界面适配方法、电子设备和存储介质
US8854368B1 (en) Point sprite rendering in a cross platform environment
CN113778583A (zh) 一种云桌面的本地应用的发布方法、装置、设备和介质
CN107025100A (zh) 播放多媒体数据的方法、界面渲染方法及装置、设备
CN108364324B (zh) 图像数据处理方法、装置及电子终端
EP3791364A1 (en) Dynamic soft shadow
CN113918056B (zh) 一种调整应用窗口的方法和装置
CN111813466B (zh) 水印添加方法、装置、终端设备及计算机存储介质
CN115546410A (zh) 窗口展示方法、装置、电子设备及存储介质
CN104636035A (zh) 信息处理装置、信息处理方法、计算机程序和记录介质
CN113536168B (zh) 组件处理方法及设备
CN113791857A (zh) Linux系统中应用窗口背景模糊处理方法及装置
CN113282852A (zh) 编辑网页的方法和装置
US10416855B2 (en) Integrating remote assets from content management service with content developed by content creation applications
CN108363742B (zh) 图像数据处理方法、装置及电子终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20220411

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

Address before: 2005, floor 2, No. 39, West Street, Haidian District, Beijing 100082

Applicant before: Beijing jingling Information System Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant