CN115756690A - 一种桌面窗口显示方法、装置、终端及存储介质 - Google Patents

一种桌面窗口显示方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN115756690A
CN115756690A CN202211424559.8A CN202211424559A CN115756690A CN 115756690 A CN115756690 A CN 115756690A CN 202211424559 A CN202211424559 A CN 202211424559A CN 115756690 A CN115756690 A CN 115756690A
Authority
CN
China
Prior art keywords
canvas
display
logic
application
target
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.)
Pending
Application number
CN202211424559.8A
Other languages
English (en)
Inventor
刘传
郑志海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PAX Computer Technology Shenzhen Co Ltd
Original Assignee
PAX Computer Technology Shenzhen 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 PAX Computer Technology Shenzhen Co Ltd filed Critical PAX Computer Technology Shenzhen Co Ltd
Priority to CN202211424559.8A priority Critical patent/CN115756690A/zh
Publication of CN115756690A publication Critical patent/CN115756690A/zh
Priority to PCT/CN2023/109689 priority patent/WO2024103831A1/zh
Pending legal-status Critical Current

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
    • G06F3/04817Interaction 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 using icons
    • 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
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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智能手机越来越普及,人们对终端的使用体验越来越高,这不仅仅体现在Android产品上,其它Linux、RTOS(Real Time Operating System,实时操作***)产品也逐渐增加智能设计,表现在靓丽的UI(User Interface。用户界面)、便捷的人机交互、设备间的互联互通等方面。
POS(point of sale,销售终端)在选用操作***时通常是基于某一广受认可的开源操作***,比如传统POS基于Linux,智能POS基于Android。国内支付终端市场中,AndroidPOS占主导地位,但海外支付市场Linux POS发货仍旧占比较大。
Linux POS属于嵌入式设备,不能运行开源的X86架构的桌面***。Linux现有开源GUI(Graphical User Interface,图形用户界面)框架也均不支持类似于Android***中的智能桌面管理和多应用视图动态切换功能,难以支持桌面管理和视图动态切换下的界面应用需求。
发明内容
本申请实施例提供了一种桌面窗口显示方法、装置、终端及存储介质,以解决现有技术中基于Linux的智能终端难以支持桌面管理和视图动态切换下的界面应用需求的问题。
本申请实施例的第一方面提供了一种桌面窗口显示方法,包括:
获取多个应用程序关联的逻辑画布,所述逻辑画布中布局有所述应用程序对应的待显示视图;
基于设定的显示图层层次列表,分别将所述逻辑画布挂载至对应的目标显示图层中;
基于挂载有所述逻辑画布的所述目标显示图层在所述显示图层层次列表中的层次顺序,对所述逻辑画布进行层次排序,得到视图序列;
发送画布合成指令至服务端,所述画布合成指令指示所述服务端基于所述视图序列,对所述逻辑画布进行合成显示。
本申请实施例的第二方面提供了一种桌面窗口显示装置,包括:
获取模块,用于获取多个应用程序关联的逻辑画布,所述逻辑画布中布局有所述应用程序对应的待显示视图;
第一处理模块,用于基于设定的显示图层层次列表,分别将所述逻辑画布挂载至对应的目标显示图层中;
第二处理模块,用于基于挂载有所述逻辑画布的所述目标显示图层在所述显示图层层次列表中的层次顺序,对所述逻辑画布进行层次排序,得到视图序列;
指令输出模块,用于发送画布合成指令至服务端,所述画布合成指令指示所述服务端基于所述视图序列,对所述逻辑画布进行合成显示。
本申请实施例的第三方面提供了一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
本申请的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端上运行时,使得所述终端执行上述第一方面所述方法的步骤。
由上可见,本申请实施例中,通过获取多个应用程序关联的布局有应用程序对应的待显示视图的逻辑画布,基于设定的显示图层层次列表,分别将逻辑画布挂载至对应的目标显示图层中,并基于挂载有逻辑画布的目标显示图层在显示图层层次列表中的层次顺序,对逻辑画布进行层次排序,得到视图序列,发送画布合成指令至服务端,以指示服务端基于视图序列,对逻辑画布进行合成显示,该过程能够针对不同应用程序对应的待显示视图,进而基于显示图层层次列表中显示图层的层次顺序,及布置有待显示视图的逻辑画布,实现对不同显示图层的显示顺序确定及最终合成显示,以基于不同应用程序,实现桌面视图的显示管理和动态切换,满足界面应用需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种桌面窗口显示方法的流程图一;
图2是本申请实施例提供的窗口列表生成示意图;
图3是本申请实施例提供的图标显示示意图;
图4是本申请实施例提供的导航栏显示示意图;
图5是本申请实施例提供的电源管理显示示意图;
图6是本申请实施例提供的一种桌面窗口显示方法的流程图二;
图7是本申请实施例提供的一种桌面窗口显示装置的结构图;
图8是本申请实施例提供的一种终端的结构图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本申请实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本申请实施例提供的一种桌面窗口显示方法的流程图一。如图1所示,一种桌面窗口显示方法,该方法包括以下步骤:
步骤101,获取多个应用程序关联的逻辑画布。
其中,逻辑画布中布局有所述应用程序对应的待显示视图。
逻辑画布具体为逻辑上的虚拟画布。不同的逻辑画布中可以布置需要显示的应用程序视图。该视图例如为应用程序的图标、显示界面、虚拟触控按键等。
借助于逻辑画布与应用程序之间的关联关系,在逻辑画布上布局与不同应用程序对应的待显示视图,以在后续处理过程中基于逻辑画布进行视图整合。
其中,在一个实施例中,获取多个应用程序关联的逻辑画布,包括:
对应用程序的安装目录进行监听;
在监听到所述安装目录发生结构变化的情况下,基于与所述结构变化对应的第一应用程序的增删处理,更新与所述第一应用程序关联的第一逻辑画布,更新得到的所述第一逻辑画布中增加有所述目标应用程序的图标或者去除掉所述目标应用程序的图标。
该过程,通过监听与应用程序安装或卸载对应的安装目录结构变化,以在逻辑画布中对与之对应的逻辑画布中进行应用程序的图标的增加或删除。
其中,在一个可选的实施方式中,所述基于与所述结构变化对应的第一应用程序的增删处理,更新与所述第一应用程序关联的第一逻辑画布,包括:
若与所述结构变化对应的目标应用程序的增删处理为所述目标应用程序的创建处理操作,则确定与所述目标应用程序对应的显示图标;
为所述显示图标分配图标显示坐标;
依照所述图标显示坐标在与所述目标应用程序关联的所述第一逻辑画布中增加所述显示图标。
在具体实施过程中,该过程涉及前端桌面显示设计。
linux桌面管理***需要支持多应用显示。为了避免Linux显存Framebuff(帧缓冲)的使用冲突,本申请实施例中,各个应用分别绘制自己的待显示视图,然后再统一由某个组件整合显示。符合需求的是C/S结构的GUI框架,client端负责调整和绘制自己的视图,然后由server端进行渲染合成后显示。
本申请实施例中,在具体实施过程中,可以基于Linux开源的C/S结构的GUI框架有wayland等。wayland去除掉一些非必要的中间层,更好适配移动设备。
Wayland是一套显示服务器display server(Wayland compositor)与客户端client间的通信协议,而Weston是Wayland compositor的参考实现。
Desktop(桌面)作为weston的一个特殊的client(客户端),在实现时,可以使用如下的***layers。
其中,具体可以使用Lock layer主要用于锁屏显示,FullScreen Layer为应用全屏后显示的图层,Panel layer为标题栏显示图层,Workspace layer为普通应用显示的图层,Bottom ui layer(底部ui层)为App图标显示图层,Background layer为背景图片显示图层。
本申请实施例中,基于以上默认***layer,在此基础上,进一步扩展了3个layer,分别为task_manager layer为用于显示运行应用队列的图层,navigation layer为用于显示***导航按钮的图层,power_off_ui layer为用于显示电源关机界面的图层。
Desktop根据功能可以划分成四个主要模块:应用管理,任务管理,***导航,电源管理。
其中,在应用管理模块中,为实现应用管理,结合图3所示,主要提供一个可交互的界面用于显示当前已安装的应用,具体可以是通过图层显示与应用对应的图标,在图标中关联回调函数,通过图标实现控制应用启动和退出。
上述过程中,Desktop根据应用管理功能,扩展了weston_desktop的wayland协议,Desktop启动初始化时新增Set_app(output,surface)协议请求,用于分配一块逻辑画布,并绑定于Bottom ui layer。实现应用程序在图层中进行显示的作用,因为有好多层,需要将应用程序与图层进行绑定,以确定显示于哪个图层上,确保正常显示。Set_app的功能主要是用来分配一块逻辑画布,并初始化该逻辑画布在哪一图层显示。
一个应用程序App的程序包中主要包含有:App的info文件,应用可执行文件,图标。App info文件用于记录可执行文件和图标的名字和路径。
Desktop使用inotify机制(linux内核用于通知用户空间文件***变化的机制)一直监听App安装目录,一旦App安装目录结构发生变化,即发生应用安装或卸载,Desktop会收到事件通知,并根据事件类型执行相应动作。
其中,事件例如为:
CREATE事件:根据App info文件,创建App对象,记录可执行文件和图标文件名字,分配图标显示坐标,绑定触屏回调函数,根据图标显示坐标将图标绘制于前期分配的逻辑画布上,并通知server重新合成显示。
DELETE事件:根据事件的名字参数,寻找到相应的App对象删除,并重绘逻辑画布。
当以后最终点击布置的图标时,weston将触屏事件发给desktop,desktop根据触屏事件的图标显示坐标参数,找到对应的App对象,并调用前期绑定的触屏回调,启动App。
即,上述过程,客户端向显示服务器端发送请求,请求分配一块逻辑画布,显示服务器分配一块逻辑画布并且绑定bottom ui layer,客户端通过操作***的inotify机制监听App安装目录,如果监听到App安装目录结构发生变化,操作***通知客户端,客户端根据新增的安装文件目录,找到相应的图标,在画布上画出来,客户端画完后通知显示服务器,显示服务器进行一层一层合成并将合成结果显示在显示屏上。
在另一个可选的实施方式中,获取多个应用程序关联的逻辑画布,包括:
创建与各个运行中的第二应用程序对应的任务对象,并为每一所述任务对象分配共享buff;
获取各个所述第二应用程序的当前显示画面帧;
将所述当前显示画面帧填充至对应的所述共享buff中,得到包含有所述共享buff的第二逻辑画布。
其中,任务对象例如为各种窗口视图,比如登录窗口、主界面显示窗口、对话窗口等等。
当运行中的第二应用程序为多个,每个运行中的第二应用程序对应有各自的任务对象,需要为每一任务对象分配共享buff;所有的共享buff均对应于同一逻辑画布。
各个共享buff中用于填充对应的所述第二应用程序的当前显示画面帧,所有的共享buff包含于同一个逻辑画布中。
其中该共享buff,为在同一个逻辑画布中并存的视图帧缓冲。以通过多个共享buff实现各个运行中的第二应用程序所对应的当前显示画面帧在同一画布中的布置。
上述过程,对应于Desktop的任务管模块功能。其中,在任务管模块,主要用于可视化显示正在运行的应用,并进行应用切换和终止应用。
上述过程中,Desktop根据应用管理功能,新增wayland协议接口。其中,新增的wayland协议接口具体包含如下内容:
set_task_manager_surface,用于分配一块逻辑画布,并绑定于task_managerlayer。该画布用于展示各应用的窗口视图。
task_startup,weston用于通知desktop应用启动了,desktop收到事件后,会创建任务对象,并给每个任务对象分配一个逻辑画布,及weston共享的buff,该buff后续用于填充应用的当前显示帧。
task_exit,weston用于通知desktop应用终止了,desktop收到事件后,会释放已分配的资源。
get_task_surface_content,获取各应用的当前显示帧,填充于前期分配的共享buff中。
show_task_views,将task_manager layer链接入排序器列表(compositorlist),可视化显示正在运行的应用。
hide_task_views,将task_manager layer从compositor list中移除。
task_views_move,多应用视图开始一个交互式的界面移动,配合active_task使用,可以实现应用切换功能。
其中,每个任务对象对应一个视图窗口,但一个屏幕下容不下所有任务对象对应的窗口,所以需要移动任务对象视图,task_views_move就是用来实现交互式界面移动的,移动任务对象视图用于选择任务对象,点击任务对象窗口后会触发相应的事件,会调用active_task给weston发送请求,weston收到请求后,根据请求携带的pid(进程标识符)参数,寻在对应的应用,并将应用恢复到前台显示,实现应用切换的功能。
active_task,将对应pid的应用恢复显示,可进行交互。
从大体流程上来看,当用户第一次点击菜单键时,触发事件回调,desktop通过调用get_task_surface_content,获取各应用当前显示帧。然后根据各帧数据重绘逻辑画布,最后通过show_task_views,通知weston显示多应用视图。
当用户拖动多应用视图时,会触发task_views_move,多应用视图开始一个交互式的界面移动,weston会陆续收到驱动上报的touch motion事件,根据事件坐标调整各应用视图的坐标,从而实现拖动的效果。拖动结束抬起时,weston会收到驱动上报的touch up事件,此时会启动定时器,根据源坐标和目的坐标,每隔一定时间调整一次坐标,直到各视图在目的坐标后停止,从而实现滑动的效果。
当直接点击某个应用窗口视图时,会触发desktop事件回调,调用active_task,将该应用恢复显示。
再次点击菜单键时,会触发hide_task_views,取消多应用视图的显示,回到桌面。
进一步地,在又一个不同的实施方式中,所述获取多个应用程序关联的逻辑画布,包括:
确定与第三应用程序中各个功能键对应的功能图标,所述功能键包括导航功能键或电源键;
在与所述第三应用程序对应的逻辑画布中绘制所述功能图标,得到第三逻辑画布。
其中,上述处理步骤,在具体应用过程中,可以对应于***导航功能。
其中,结合图4所示,可以在用户界面设置***导航栏,主要由三个按键组成,分别是:返回键,HOME键,菜单键。返回键,主要用于返回应用上一个操作,需要应用程序响应该键值;HOME键,用于隐藏应用显示,并返回主界面;菜单键,用于显示后台运行的应用。
上述过程中,Desktop根据***导航功能,扩展weston_desktop的wayland协议,新增导航协议接口。该新增的导航协议接口中包含如下内容:
set_navigation_bar,用于分配一块逻辑画布,并绑定于navigation layer。该画布用于绘制返回键,HOME键,菜单键。这三个导航按钮分别绑定相应的触屏事件回调。
Key_home,向weston发送一个请求,该接口是HOME键的事件回调。Weston收到该请求后,会将所有应用视图,从workspace layer中移除,最后weston合成时,所有应用视图都不显示。
Key_cancel,是返回键的事件回调。当点击返回键时,会触发对应的事件回调,给weston发送请求,weston收到请求后,会找到对应视图窗口,并将Key_cancel按键事件发送给该窗口对应的应用程序客户端。
其中,具体地,上述功能在实施过程中,按键是在desktop上,按键事件会先由weston传递给desktop,desktop再发送Key_cancel请求给weston,weston收到请求寻找与之对应的当前在前台运行的应用,即传递给当前在前台运行的应用,并将这个按键事件发送给这个应用。
其中,上述处理步骤,在另一个具体应用过程中,可以对应于电源管理功能。结合图5所示,电源管理主要提供一个可交互界面用于控制机器关机和重启等。
上述过程中,Desktop根据电源管理功能,扩展weston_desktop的wayland协议,新增电源管理接口。该新增的导航协议接口中包含如下内容:
set_poweroff_ui,用于分配一块逻辑画布,并绑定于poweroff ui layer。该画布用于绘制关机,重启,返回图标,每个图标都绑定自己的事件回调。
active_poweroff_ui,将poweroff ui layer链接入compositor list,显示电源管理交互界面。
deactive_poweroff_ui,将poweroff ui layer从compositor list移除。
当长按电源键时,desktop会检测到驱动上报的事件,并调用active_poweroff_ui显示电源管理交互界面。当点击关机图标时,会触发关机事件回调,desktop直接调用reboot(RB_POWER_OFF)关机。当点击重启图标时,desktop会调用reboot(RB_AUTOBOOT)重启机器。当点击返回图标时,调用deactive_poweroff_ui,隐藏电源管理交互界面。
上述过程,GUI服务端与客户端通讯协议基于成熟的Wayland协议,增加多应用切换、***导航键交互和电源管理协议,选定使用较为广泛且成熟的GUI Server Weston实现类Android Desktop和多应用动态切换功能。
步骤102,基于设定的显示图层层次列表,分别将所述逻辑画布挂载至对应的目标显示图层中。
其中,逻辑画布在显示图层层次列表中的目标显示图层的层次先后,与该逻辑画布中布局的与应用程序对应的待显示视图的显示优先级的高低正相关。
挂载,指的就是将设备文件中的目录连接到Linux根目录下的某一目录,访问此目录就等同于访问设备文件。在本步骤中,将逻辑画布挂载至对应的目标显示图层中,具体是将逻辑画布的目录连接到Linux根目录下的目标显示图层的目录,访问该目标显示图层就等于访问逻辑画布。
Weston从内部***来看主要分为窗口管理(shell),合成器(compositor)和输入管理几个模块部分。
从大体的流程上来看,输入管理模块将输入事件(input event)传给窗口堆栈顶端的窗口或当前正在运行的窗口对应的client(APP)。Client收到后会做相应的动作,如调正视图位置然后重绘。结合图2所示,如有重绘发生,各个Layer中新的视图内容缓冲(图2中左侧中Layer1-3中所包含的多个view)渲染完成后,client将新的内容缓冲传给服务端,将接着服务端生成窗口列表(图2中右侧),之后服务端将窗口对应的画布进行合成,最后输出到framebuff(帧缓冲)。将各个图层的逻辑画布绘制于显存中。
其中,显示图层层次列表中所包含的显示图层,例如由上到下依次包括:
Fade Layer(褪色层,变淡,逐渐消失);Lock layer(锁定层,用于显示锁屏壁纸等);Cursor layer(光标层,用于显示鼠标);Input panel layer(输入面板层,用于显示***键盘);FullScreen layer(全屏层);Panel layer(用于显示标题栏);Workspace layer(工作空间层,用于显示应用);Background layer(背景图层,用于显示桌面背景)。
步骤103,基于挂载有所述逻辑画布的所述目标显示图层在所述显示图层层次列表中的层次顺序,对所述逻辑画布进行层次排序,得到视图序列。
步骤104,发送画布合成指令至服务端。
该画布合成指令指示所述服务端基于所述视图序列,对所述逻辑画布进行合成显示。
上述所有layer会链入compositor layer list(复合层列表)中。每次要合成时,会首先将compositor layer list中的layer的视图按顺序合并到一个view list中。这样,在视图合成过程中compositor只需访问这个view list即可。
该过程,前端desktop确定逻辑画布的内容,最终通知server端对逻辑画布进行渲染合成即可显示。
本申请实施例中,通过获取多个应用程序关联的布局有应用程序对应的待显示视图的逻辑画布,基于设定的显示图层层次列表,分别将逻辑画布挂载至对应的目标显示图层中,并基于挂载有逻辑画布的目标显示图层在显示图层层次列表中的层次顺序,对逻辑画布进行层次排序,得到视图序列,发送画布合成指令至服务端,以指示服务端基于视图序列,对逻辑画布进行合成显示,该过程能够针对不同应用程序对应的待显示视图,进而基于显示图层层次列表中显示图层的层次顺序,及布置有待显示视图的逻辑画布,实现对不同显示图层的显示顺序确定及最终合成显示,以基于不同应用程序,实现桌面视图的显示管理和动态切换,满足界面应用需求。
本申请实施例中还提供了桌面窗口显示方法的不同实施方式。
参见图6,图6是本申请实施例提供的一种桌面窗口显示方法的流程图二。如图6所示,一种桌面窗口显示方法,该方法包括以下步骤:
步骤601,获取多个应用程序关联的逻辑画布。
该逻辑画布中布局有所述应用程序对应的待显示视图;
该步骤的实现过程与前述实施方式中的步骤101的实现过程相同,此处不再赘述。
步骤602,基于设定的显示图层层次列表,分别将所述逻辑画布挂载至对应的目标显示图层中;
该步骤的实现过程与前述实施方式中的步骤102的实现过程相同,此处不再赘述。
步骤603,基于挂载有所述逻辑画布的所述目标显示图层在所述显示图层层次列表中的层次顺序,对所述逻辑画布进行层次排序,得到视图序列;
该步骤的实现过程与前述实施方式中的步骤103的实现过程相同,此处不再赘述。
步骤604,发送画布合成指令至服务端。
其中,画布合成指令指示所述服务端基于所述视图序列,对所述逻辑画布进行合成显示。
该步骤的实现过程与前述实施方式中的步骤104的实现过程相同,此处不再赘述。
其中,可选地,在逻辑画布中布局的待显示视图关联有触控回调函数;与之对应地,该方法还包括:
步骤605,若检测到触控事件,则基于所述层次排序中位于顶端层次的目标逻辑画布中布局的所述待显示视图,确定所述触控事件位置匹配的目标待显示视图,及与所述目标待显示视图对应的目标应用程序。
步骤606,对所述目标应用程序执行所述触控回调函数。
其中,该触控回调函数包括:
用于电源开机或关机控制的回调函数;或者,用于视图返回、主界面显示或菜单显示的导航控制的回调函数;或者,用于正在运行的应用程序的显示控制的回调函数。
本申请实施例中,通过获取多个应用程序关联的布局有应用程序对应的待显示视图的逻辑画布,基于设定的显示图层层次列表,分别将逻辑画布挂载至对应的目标显示图层中,并基于挂载有逻辑画布的目标显示图层在显示图层层次列表中的层次顺序,对逻辑画布进行层次排序,得到视图序列,发送画布合成指令至服务端,以指示服务端基于视图序列,对逻辑画布进行合成显示,该过程能够针对不同应用程序对应的待显示视图,进而基于显示图层层次列表中显示图层的层次顺序,及布置有待显示视图的逻辑画布,实现对不同显示图层的显示顺序确定及最终合成,以基于不同应用程序,实现桌面视图的显示管理和动态切换,并进一步基于合成的显示界面中的显示视图,响应于触控事件,执行与目标应用程序对应的触控回调函数,满足界面显示及操控需求。
参见图7,图7是本申请实施例提供的一种桌面窗口显示装置的结构图,为了便于说明,仅示出了与本申请实施例相关的部分。
所述桌面窗口显示装置700包括:
获取模块701,用于获取多个应用程序关联的逻辑画布,所述逻辑画布中布局有所述应用程序对应的待显示视图;
第一处理模块702,用于基于设定的显示图层层次列表,分别将所述逻辑画布挂载至对应的目标显示图层中;
第二处理模块707,用于基于挂载有所述逻辑画布的所述目标显示图层在所述显示图层层次列表中的层次顺序,对所述逻辑画布进行层次排序,得到视图序列;
指令输出模块704,用于发送画布合成指令至服务端,所述画布合成指令指示所述服务端基于所述视图序列,对所述逻辑画布进行合成显示。
其中,所述获取模块701,具体用于:
对应用程序的安装目录进行监听;
在监听到所述安装目录发生结构变化的情况下,基于与所述结构变化对应的第一应用程序的增删处理,更新与所述第一应用程序关联的第一逻辑画布,更新得到的所述第一逻辑画布中增加有所述目标应用程序的图标或者去除掉所述目标应用程序的图标。
其中,所述获取模块701,更具体用于:
若与所述结构变化对应的目标应用程序的增删处理为所述目标应用程序的创建处理操作,则确定与所述目标应用程序对应的显示图标;
为所述显示图标分配图标显示坐标;
依照所述图标显示坐标在与所述目标应用程序关联的所述第一逻辑画布中增加所述显示图标。
其中,所述获取模块701,具体用于:
创建与各个运行中的第二应用程序对应的任务对象,并为每一所述任务对象分配共享buff;
获取各个所述第二应用程序的当前显示画面帧;
将所述当前显示画面帧填充至对应的所述共享buff中,得到包含有所述共享buff的第二逻辑画布。
其中,获取模块701,具体用于:
确定与第三应用程序中各个功能键对应的功能图标,所述功能键包括导航功能键或电源键;
在与所述第三应用程序对应的逻辑画布中绘制所述功能图标,得到第三逻辑画布。
其中,所述逻辑画布中布局的所述待显示视图关联有触控回调函数;所述装置,还包括:
触控响应模块,用于若检测到触控事件,则基于所述层次排序中位于顶端层次的目标逻辑画布中布局的所述待显示视图,确定所述触控事件位置匹配的目标待显示视图,及与所述目标待显示视图对应的目标应用程序;
对所述目标应用程序执行所述触控回调函数。
其中,所述触控回调函数包括:
用于电源开机或关机控制的回调函数;或者,
用于视图返回、主界面显示或菜单显示的导航控制的回调函数;或者,
用于正在运行的应用程序的显示控制的回调函数。
本申请实施例提供的桌面窗口显示装置能够实现上述桌面窗口显示方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图8是本申请实施例提供的一种终端的结构图。如该图所示,该实施例的终端8包括:至少一个处理器80(图8中仅示出一个)、存储器81以及存储在所述存储器81中并可在所述至少一个处理器80上运行的计算机程序82,所述处理器80执行所述计算机程序82时实现上述任意各个方法实施例中的步骤。
所述终端8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端8可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是终端8的示例,并不构成对终端8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
所述处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述终端8的内部存储单元,例如终端8的硬盘或内存。所述存储器81也可以是所述终端8的外部存储设备,例如所述终端8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述终端8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在终端上运行时,使得所述终端执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种桌面窗口显示方法,其特征在于,包括:
获取多个应用程序关联的逻辑画布,所述逻辑画布中布局有所述应用程序对应的待显示视图;
基于设定的显示图层层次列表,分别将所述逻辑画布挂载至对应的目标显示图层中;
基于挂载有所述逻辑画布的所述目标显示图层在所述显示图层层次列表中的层次顺序,对所述逻辑画布进行层次排序,得到视图序列;
发送画布合成指令至服务端,所述画布合成指令指示所述服务端基于所述视图序列,对所述逻辑画布进行合成显示。
2.根据权利要求1所述的方法,其特征在于,所述获取多个应用程序关联的逻辑画布,包括:
对应用程序的安装目录进行监听;
在监听到所述安装目录发生结构变化的情况下,基于与所述结构变化对应的第一应用程序的增删处理,更新与所述第一应用程序关联的第一逻辑画布,更新得到的所述第一逻辑画布中增加有所述目标应用程序的图标或者去除掉所述目标应用程序的图标。
3.根据权利要求2所述的方法,其特征在于,所述基于与所述结构变化对应的第一应用程序的增删处理,更新与所述第一应用程序关联的第一逻辑画布,包括:
若与所述结构变化对应的目标应用程序的增删处理为所述目标应用程序的创建处理操作,则确定与所述目标应用程序对应的显示图标;
为所述显示图标分配图标显示坐标;
依照所述图标显示坐标在与所述目标应用程序关联的所述第一逻辑画布中增加所述显示图标。
4.根据权利要求1所述的方法,其特征在于,所述获取多个应用程序关联的逻辑画布,包括:
创建与各个运行中的第二应用程序对应的任务对象,并为每一所述任务对象分配共享buff;
获取各个所述第二应用程序的当前显示画面帧;
将所述当前显示画面帧填充至对应的所述共享buff中,得到包含有所述共享buff的第二逻辑画布。
5.根据权利要求1所述的方法,其特征在于,所述获取多个应用程序关联的逻辑画布,包括:
确定与第三应用程序中各个功能键对应的功能图标,所述功能键包括导航功能键或电源键;
在与所述第三应用程序对应的逻辑画布中绘制所述功能图标,得到第三逻辑画布。
6.根据权利要求1所述的方法,其特征在于,所述逻辑画布中布局的所述待显示视图关联有触控回调函数;所述发送画布合成指令至服务端之后,还包括:
若检测到触控事件,则基于所述层次排序中位于顶端层次的目标逻辑画布中布局的所述待显示视图,确定所述触控事件位置匹配的目标待显示视图,及与所述目标待显示视图对应的目标应用程序;
对所述目标应用程序执行所述触控回调函数。
7.根据权利要求6所述的方法,其特征在于,所述触控回调函数包括:
用于电源开机或关机控制的回调函数;或者,
用于视图返回、主界面显示或菜单显示的导航控制的回调函数;或者,
用于正在运行的应用程序的显示控制的回调函数。
8.一种桌面窗口显示装置,其特征在于,包括:
获取模块,用于获取多个应用程序关联的逻辑画布,所述逻辑画布中布局有所述应用程序对应的待显示视图;
第一处理模块,用于基于设定的显示图层层次列表,分别将所述逻辑画布挂载至对应的目标显示图层中;
第二处理模块,用于基于挂载有所述逻辑画布的所述目标显示图层在所述显示图层层次列表中的层次顺序,对所述逻辑画布进行层次排序,得到视图序列;
指令输出模块,用于发送画布合成指令至服务端,所述画布合成指令指示所述服务端基于所述视图序列,对所述逻辑画布进行合成显示。
9.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
CN202211424559.8A 2022-11-15 2022-11-15 一种桌面窗口显示方法、装置、终端及存储介质 Pending CN115756690A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211424559.8A CN115756690A (zh) 2022-11-15 2022-11-15 一种桌面窗口显示方法、装置、终端及存储介质
PCT/CN2023/109689 WO2024103831A1 (zh) 2022-11-15 2023-07-27 一种桌面窗口显示方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211424559.8A CN115756690A (zh) 2022-11-15 2022-11-15 一种桌面窗口显示方法、装置、终端及存储介质

Publications (1)

Publication Number Publication Date
CN115756690A true CN115756690A (zh) 2023-03-07

Family

ID=85370783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211424559.8A Pending CN115756690A (zh) 2022-11-15 2022-11-15 一种桌面窗口显示方法、装置、终端及存储介质

Country Status (2)

Country Link
CN (1) CN115756690A (zh)
WO (1) WO2024103831A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560532A (zh) * 2023-07-06 2023-08-08 麒麟软件有限公司 一种wayland环境下远程桌面获取硬件光标的实现方法
WO2024103831A1 (zh) * 2022-11-15 2024-05-23 百富计算机技术(深圳)有限公司 一种桌面窗口显示方法、装置、终端及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005175595A (ja) * 2003-12-08 2005-06-30 Ricoh Co Ltd 画像形成装置、画像形成装置製造方法
CN101650672A (zh) * 2009-08-19 2010-02-17 中兴通讯股份有限公司 基于手机终端的显示图层的切换方法和装置
CN107748686B (zh) * 2017-11-30 2021-03-12 Oppo广东移动通信有限公司 应用程序的启动优化方法、装置、存储介质及智能终端
CN112805690B (zh) * 2018-11-16 2024-05-24 深圳市欢太科技有限公司 显示屏检测方法、装置、电子设备、计算机可读存储介质
CN111625238B (zh) * 2020-05-06 2023-02-03 Oppo(重庆)智能科技有限公司 一种显示窗口控制方法、装置、终端及存储介质
CN113986162B (zh) * 2021-09-22 2022-11-11 荣耀终端有限公司 图层合成方法、设备及计算机可读存储介质
CN115756690A (zh) * 2022-11-15 2023-03-07 百富计算机技术(深圳)有限公司 一种桌面窗口显示方法、装置、终端及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024103831A1 (zh) * 2022-11-15 2024-05-23 百富计算机技术(深圳)有限公司 一种桌面窗口显示方法、装置、终端及存储介质
CN116560532A (zh) * 2023-07-06 2023-08-08 麒麟软件有限公司 一种wayland环境下远程桌面获取硬件光标的实现方法
CN116560532B (zh) * 2023-07-06 2023-09-26 麒麟软件有限公司 一种wayland环境下远程桌面获取硬件光标的实现方法

Also Published As

Publication number Publication date
WO2024103831A1 (zh) 2024-05-23

Similar Documents

Publication Publication Date Title
US10496268B2 (en) Content transfer to non-running targets
KR101620058B1 (ko) 가상 머신 간 화면 전환 장치 및 방법
CN104536802B (zh) 一种实现应用调用的方法及虚拟机
RU2646376C2 (ru) Элементы пользовательского интерфейса для нескольких дисплеев
US8881047B2 (en) Systems and methods for dynamic background user interface(s)
US8732287B2 (en) System for managing a virtualization solution and management server and method for managing the same
CN115756690A (zh) 一种桌面窗口显示方法、装置、终端及存储介质
CA2798979A1 (en) Method of rendering a user interface
JP2013542515A (ja) 異環境間リダイレクション
CN109471626B (zh) 页面逻辑结构、页面生成方法、页面数据处理方法及装置
JP2013546043A (ja) 即時リモートレンダリング
US10831331B2 (en) Window control for simultaneously running applications
WO2014178898A1 (en) Second screen view with multitasking
WO2022076049A1 (en) Systems and methods for providing tab previews via an operating system user interface
CN113918260A (zh) 应用程序显示方法、装置及电子设备
US20200089512A1 (en) Method and Apparatus for Invoking Input Method, Server, and Terminal
JP2013161407A (ja) 情報表示装置
US20240077998A1 (en) Application compatibility on a computing device
CN114116098A (zh) 应用图标管理方法、装置、电子设备及存储介质
WO2018112772A1 (zh) 实现对另一操作***操作的方法、装置及电子设备
US11487559B2 (en) Dynamically switching between pointer modes
CN113393373B (zh) 图标处理方法及装置
WO2021073549A1 (zh) 转屏画面显示方法、装置、计算机设备和存储介质
CN117093296A (zh) 一种云桌面应用软件重定向方法及装置
CN118295760A (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