CN113448582A - 一种窗口显示方法、计算设备及存储介质 - Google Patents
一种窗口显示方法、计算设备及存储介质 Download PDFInfo
- Publication number
- CN113448582A CN113448582A CN202110993043.4A CN202110993043A CN113448582A CN 113448582 A CN113448582 A CN 113448582A CN 202110993043 A CN202110993043 A CN 202110993043A CN 113448582 A CN113448582 A CN 113448582A
- Authority
- CN
- China
- Prior art keywords
- interface
- plug
- application
- data
- application program
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 176
- 230000008569 process Effects 0.000 claims abstract description 102
- 238000004891 communication Methods 0.000 claims description 64
- 238000009877 rendering Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
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)
- Digital Computer Display Output (AREA)
Abstract
本发明公开了一种窗口显示方法、计算设备及存储介质,窗口显示方法适于在计算设备中执行,并包括步骤:在操作系统创建父进程,根据父进程运行应用程序生成应用界面的界面数据;创建父进程的子进程,根据子进程运行应用程序的插件生成插件界面的界面数据;在存储器中分配共享存储空间,将应用界面和插件界面的界面数据在共享存储空间中进行存储;根据共享存储空间中的应用界面和插件界面的界面数据确定应用界面与插件界面的层级关系;根据应用界面和插件界面的界面数据、应用界面与插件界面的层级关系,绘制包括应用界面和插件界面的应用程序窗口。本发明可以提高插件在应用程序中运行稳定性和应用程序对插件的兼容性。
Description
技术领域
本发明涉及软件开发领域,特别涉及一种窗口显示方法、计算设备及存储介质。
背景技术
随着计算机技术的发展,涌现出越来越多的在计算机中运行的应用程序,应用程序承载了越来愈多的功能。在对应用程序进行开发的过程中,使用插件在应用程序中集成相应的功能已称为一种成熟的做法。插件是一种特殊的程序,通过和应用程序的接口进行调用。在应用程序进行开发运行和界面呈现的过程中,应用程序对插件的兼容性,以及集成插件后应用程序的稳定性是非常重要的。
在现有技术中,对应用程序及其插件的界面进行显示时,使用单进程的图形插件。具体的,将插件进程的加载到应用进程的进程空间,初始化插件对象并获取插件对象的窗口数据,最后将其添加到主窗口显示。现有技术中,当插件稳定性较差,或插件接口和程序接口出现兼容性问题时,就会导致整个程序运行出错,被强行停止运行。
为此,需要一种新的窗口显示方法。
发明内容
为此,本发明提供一种窗口显示方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种窗口显示方法,在计算设备中执行,计算设备包括存储有应用程序的存储器,并运行有操作系统,方法包括步骤:在操作系统创建父进程,根据父进程运行应用程序生成应用界面的界面数据,应用程序还包括插件;创建父进程的子进程,根据子进程运行应用程序的插件,生成插件界面的界面数据;在存储器中分配共享存储空间,将应用界面和插件界面的界面数据在共享存储空间中进行存储;根据共享存储空间中的应用界面和插件界面的界面数据,确定应用界面与插件界面的层级关系;根据应用界面和插件界面的界面数据、应用界面与插件界面的层级关系,绘制包括应用界面和插件界面的应用程序窗口。
可选地,在根据本发明的方法中,操作系统中包括通信单元,在存储器中分配共享存储空间包括步骤:在通信单元中注册父进程;通过父进程调用通信单元在所述存储器中设置共享存储空间。
可选地,在根据本发明的方法中,将应用界面和插件界面的界面数据在共享存储空间中进行存储包括步骤:通过父进程调用通信单元在存储器中存储应用界面的界面数据;在通信单元中注册子进程;通过子进程在存储器中存储插件界面的界面数据。
可选地,在根据本发明的方法中,操作系统中还包括绘制单元,方法还包括步骤:在绘制单元中注册父进程;通过子进程调用通信单元向父进程发送界面绘制消息;父进程接受到界面绘制消息后,通过父进程调用绘制单元从共享存储空间中获取应用界面和插件界面的界面数据,以便根据应用界面和插件界面的界面数据,确定应用界面与插件界面的层级关系。
可选地,在根据本发明的方法中,根据共享存储空间中的应用界面和插件界面的界面数据,确定应用界面与插件界面的层级关系包括步骤:根据应用界面和插件界面的界面数据构建应用界面和插件界面的结构关系;根据应用界面和插件界面的结构关系,确定应用界面与插件界面的层级关系。
可选地,在根据本发明的方法中,绘制包括应用界面和插件界面的应用程序窗口包括步骤:根据应用界面的界面数据绘制应用界面;根据插件界面的界面数据绘制插件界面;组合应用界面和插件界面,确定应用界面和插件界面在应用程序窗口中的重叠区域;根据应用界面与插件界面的层级关系,在重叠区域对应用界面进行遮挡操作得到应用程序窗口。
可选地,在根据本发明的方法中,还包括步骤:根据子进程运行应用程序的插件生成二级界面的界面数据,二级界面为插件界面的子界面;将二级界面的界面数据在共享存储空间中进行存储;根据共享存储空间中的二级界面和插件界面的界面数据,确定插件界面与二级界面的层级关系;根据插件界面的界面数据和插件界面与二级界面的层级关系,在应用程序窗口中绘制二级界面。
可选地,在根据本发明的方法中,根据共享存储空间中的二级界面和插件界面的界面数据,确定插件界面与二级界面的层级关系包括步骤:根据插件界面和二级界面的界面数据,构建插件界面和二级界面的结构关系;根据插件界面和二级界面的结构关系,确定插件界面与二级界面的层级关系。
可选地,在根据本发明的方法中,在应用程序窗口中绘制二级界面包括步骤:根据二级界面的界面数据绘制二级界面;组合插件界面和二级界面,确定插件界面和二级界面在应用程序窗口中的重叠区域;根据插件界面和二级界面的层级关系,在插件界面和二级界面的重叠区域对插件界面进行遮挡操作,从而在应用程序窗口中绘制二级界面。
根据本发明的另一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的一种窗口显示方法。
根据本发明的还有一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的一种窗口显示方法。
本发明中的种窗口显示方法,适于在计算设备中执行,计算设备包括存储有应用程序的存储器,并运行有操作系统,在操作系统中创建父进程,根据父进程运行应用程序,再创建父进程的子进程,以运行应用程序的插件。父进程运行应用程序生成应用界面的界面数据,子进程运行插件生成插件界面的界面数据,本发明通过在存储器中分配共享存储空间,并在共享存储空间中存储插件界面和应用界面的界面数据,从而能够实现应用界面和插件界面其界面数据的共享,提高绘制应用程序窗口的速度。再通过共享存储空间中的应用界面和插件界面的界面数据确定所述应用界面与插件界面的层级关系,从而直接从共享存储空间中获取界面数据并对其进行处理,得到应用界面和插件界面的层级关系。最后根据应用界面和插件界面的界面数据、应用界面与插件界面的层级关系,绘制包括应用界面和插件界面的应用程序窗口,实现应用界面和插件界面的同时显示,提高插件在应用程序中运行稳定性,也提高应用程序对插件的兼容性,以及插件开发的灵活性。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本发明公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的操作系统的示意图;
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;
图3示出了根据本发明一个示范性实施例的窗口显示方法300的流程示意图;以及
图4示出了根据本发明一个示范性实施例的应用程序窗口的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
本发明的窗口显示方法适于在计算设备中执行。图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(µP)、微控制器(µC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个程序222以及程序数据228。在一些实施方式中,程序222可以布置为在操作系统上由一个或者多个处理器204利用程序数据228执行根据本发明的方法300的指令223。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、程序222以及数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行程序222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外围接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为以便经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,程序222包括指令执行方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的计算设备200中运行的窗口显示方法300中的部分步骤,以便计算设备200中的各部分通过执行本发明的窗口显示方法300来实现对窗口进行显示。
计算设备200可以实现为服务器,例如文件服务器240、数据库250、服务器、应用程序服务器等,这些电子设备可以是诸如个人数字助理(PDA)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,也在一些实施例中,计算设备200被配置为执行窗口显示方法300。
计算设备中还包括存储有应用程序的存储器,并运行有操作系统。图1示出了根据本发明一个示范性实施例的操作系统的示意图。如图1所示,操作系统120可支持运行应用程序110,图1中所示的应用程序的数量仅为示例性的,本发明对运行在操作系统120上的应用程序的数量不作限制,以及对操作系统120的种类不做限制。
操作系统120中包括通信单元121,绘制单元122和渲染单元126,其中,绘制单元122包括管理组件123,合成组件124和接口组件125。通信单元121用于注册父进程,以便父进程调用通信单元121,通过父进程调用通信单元121在存储器中设置共享存储空间。通信单元121还用于注册子进程,以便子进程调用通信单元121,通过子进程调用通信单元121在存储器中存储插件界面的界面数据。
通信单元121还向父进程发送界面绘制消息,通知父进程在共享内存空间中,已经完成存储应用界面和插件界面的界面数据,以便通过父进程调用绘制单元122从共享存储空间中获取应用界面和插件界面的界面数据。
绘制单元122中管理组件123根据应用界面的界面数据确定应用界面的显示位置,根据插件界面的界面数据确定插件界面的显示位置。
合成组件124在当应用界面和插件界面在各自的显示位置上有重合时,根据应用界面和插件界面的界面数据构建树状结构的结构关系,还根据树状结构确定应用界面与插件界面的层级关系。
合成组件124还根据应用界面的界面数据绘制应用界面,根据插件界面的界面数据绘制插件界面,组合应用界面和插件界面,确定应用界面和所述插件界面在应用程序窗口中的重叠区域,以及根据应用界面与插件界面的层级关系,在重叠区域对应用界面进行遮挡操作得到应用程序窗口。
管理组件123用于将绘制好的应用程序窗口发送到渲染单元126。渲染单元126与计算设备的显卡进行交互,将应用程序窗口和显示应用程序窗口的命令发送到显卡以便在显示器中进行显示应用程序窗口。
图3示出了根据本发明一个示范性实施例的窗口显示方法300的流程示意图。如图3所示,窗口显示方法300始于步骤S310,在操作系统120创建父进程(图中未示出),根据父进程运行应用程序110生成应用界面的界面数据,应用程序110还包括插件。
应用程序110包括主程序,在主程序中可集成一个或多个插件。插件是一种遵循规范应用程序接口的程序,只能依附于应用程序110运行,不能独立运行。应用程序110中集成的插件可承载一项或多项功能。在操作系统120中创建父进程,父进程运行应用程序110时执行应用程序110的主程序,生成应用界面的界面数据,以便绘制应用界面。应用界面的界面数据包括应用界面的形状,大小,颜色和位置等,本发明对应用界面的界面数据的类型不做限制。
随后,执行步骤S320,创建父进程的子进程(图中未示出),根据子进程运行应用程序110的插件,生成插件界面的界面数据,以便绘制插件界面。根据本发明的一个实施例,创建父进程的子进程时,通过fork函数创建父进程的子进程,以运行应用程序110的插件。当应用程序110有多个插件需要运行,在创建父进程的子进程时创建多个子进程,以分别运行多个插件,生成多个插件界面的界面数据。插件界面的界面数据包括插件界面的形状,大小,颜色和位置等,本发明对插件界面的界面数据的类型不做限制。
随后,执行步骤S330,在存储器中分配共享存储空间,将应用界面和插件界面的界面数据在共享存储空间中进行存储。
在存储器中分配存储单元时,先在通信单元121中注册父进程,以便父进程调用通信单元121。再通过父进程调用通信单元121在存储器中设置共享存储空间。在存储器中设置共享存储空间时,根据存储的需要设置共享存储空间的大小。
将应用界面和插件界面的界面数据在共享存储空间中进行存储时,通过父进程调用通信单元121在存储器中存储应用界面的界面数据。随后在通信单元121中注册子进程,以便子进程调用通信单元121。接着通过子进程调用通信单元121在存储器中存储插件界面的界面数据。
根据本发明的一个实施例,还在绘制单元122中注册父进程,以便父进程调用绘制单元122。子进程在存储器中存储插件界面的界面数据后,通过子进程调用通信单元121向父进程发送界面绘制消息。界面绘制消息通知父进程,在共享内存空间中,已经完成存储应用界面和插件界面的界面数据。子进程调用通信单元121向父进程发送界面绘制消息时,可通过消息总线将界面绘制消息发送到父进程,本发明对子进程与父进程之间传输消息的方式不做限制。通信单元121实现了进程间通信和接口的封装,通信单元121可通过如下代码实现发送界面绘制消息:
void init() {
initDBus();
createWrapper();
wrapper().Call();
wrapper().setParentWid();
// 设置共享内存
wrapper().getSharedMemory();
}
父进程接受到界面绘制消息后,通过父进程调用绘制单元122从共享存储空间中获取应用界面和插件界面的界面数据,以便根据应用界面和插件界面的界面数据,确定应用界面与插件界面的层级关系,并进一步的根据应用界面和插件界面的界面数据、应用界面与插件界面的层级关系,绘制包括应用界面和插件界面的应用程序窗口。
子进程与父进程之间的通信通过调用通信单元121实现,通过通信单元121方便对子进程与父进程,以及子进程之间的通信进行管理。进一步的可以通过通信单元121对进程之间的通信进行管理,允许或禁止进程与进程之间的通信。并且通过管理进程之间的通信,能够避免未经允许的进程加载应用程序110的主程序中的代码,设置插件与主程序之间的资源隔离。根据上述步骤,能够提升对通信交互数据的管理,提高应用程序运行插件的安全性。
根据本发明的一个实施例,父进程调用绘制单元122和通信单元121,以及子进程调用绘制单元122和通信单元121,可通过创建管理程序实现。具体的,父进程创建父进程管理程序,由父进程管理程序调用绘制单元122和通信单元121;子进程创建子进程管理程序,由子进程管理程序调用绘制单元122和通信单元121。本发明对父进程调用绘制单元122和通信单元121,以及子进程调用绘制单元122和通信单元121的方式不作限制。父进程和子进程创建管理程序可通过执行如下代码实现:
void init() {
for () {
fork();
if (pid == 0) {
loadPlugin();
initPluginManager();
}
}
if (pid != 0) {
CreateMainWindow();
initManager();
}
}
随后,执行步骤S340,根据共享存储空间中的应用界面和插件界面的界面数据,确定应用界面与插件界面的层级关系。确定应用界面与插件界面的层级关系时,先根据应用界面和插件界面的界面数据构建应用界面和插件界面的结构关系;再根据应用界面和插件界面的结构关系,确定应用界面与插件界面的层级关系。
具体的,由绘制单元122的管理组件123根据应用界面的界面数据确定应用界面的显示位置,根据插件界面的界面数据确定插件界面的显示位置。当应用界面和插件界面在各自的显示位置上有重合时,由控制模块根据应用界面和插件界面的界面数据构建树状结构的结构关系,将应用界面作为树状结构的父节点,将插件界面作为树状结构中父节点的子节点。当应用程序110包括多个插件,创建有多个子进程,每个子进程分别运行一个插件得到一个插件界面,进而得到多个插件界面的界面数据时,根据多个插件界面的界面数据在父节点下构建多个子节点。合成组件124根据树状结构对应用界面和插件界面的结构关系进行管理。
接着控制模块根据树状结构确定应用界面与插件界面的层级关系:将树状结构中构成父节点的应用界面,作为第一层界面;将树状结构中构成父节点的子节点的插件界面作为第二层界面,第二层界面的显示级别高于第一层界面,在显示时将第二层界面在第一层界面上进行显示。
最后,执行步骤S350,根据应用界面和插件界面的界面数据、应用界面与插件界面的层级关系,绘制包括应用界面和插件界面的应用程序窗口。绘制包括应用界面和插件界面的应用程序窗口时,由绘制单元122的合成组件124先根据应用界面的界面数据绘制应用界面,根据插件界面的界面数据绘制插件界面。绘制应用界面和插件界面时,根据界面数据中位置,大小,形状和颜色等数据进行绘制。
随后,由合成组件124组合应用界面和插件界面,确定应用界面和插件界面在应用程序窗口中的重叠区域。组合应用界面和插件界面时,按照应用界面和插件界面所显示的位置进行组合。插件界面为第二层界面,应用界面为第一层页面,将插件界面在应用界面的上层进行显示。插件界面在应用界面的上层进行显示时,插件界面会盖住应用界面的部分区域,插件界面的显示区域对应用界面构成遮挡,遮挡的部分即为重叠区域。
接着由合成组件124根据应用界面与插件界面的层级关系,在重叠区域对应用界面进行遮挡操作得到应用程序窗口。具体的在重叠区域执行遮挡操作,屏蔽这部分应用界面的显示内容,不对这部分显示内容进行显示,得到包括应用界面和插件界面的应用程序窗口。
在现有技术中,还使用多进程图形嵌入的方式绘制插件界面,即使用显示服务器的窗口嵌入功能,将插件窗口嵌入到当前窗口上。而这种方式会遇到窗口嵌入以后不支持透明背景,因为背景透明是窗口管理器的合成器将后方背景贴图到窗口底部实现的,合成器无法对嵌入窗口进行合成处理,在包含嵌入窗口的程序里无法操作嵌入窗口的图像数据。
而本发明中通过合成组件124组合应用界面和插件界面,确定应用界面和插件界面在应用程序窗口中的重叠区域。接着由合成组件124根据应用界面与插件界面的层级关系,在重叠区域对应用界面进行遮挡操作得到应用程序窗口,从而解决了上述技术问题,提高了方案对于窗口显示的适用性。
根据本发明的一个实施例,合成组件124完成绘制应用程序窗口后,由接口组件125将绘制好的应用程序窗口发送到渲染单元126。渲染单元126具体实现为直接渲染管理器(Direct Rendering Manager),本发明对渲染单元126的具体形式不作限制。渲染单元126与计算设备的显卡进行交互,将应用程序窗口和显示应用程序窗口的命令发送到显卡以便在显示器中进行显示应用程序窗口。
图4示出了根据本发明一个示范性实施例的应用程序窗口的示意图。如图4所示,图4所示的应用程序窗口包括左上角的插件界面,和在插件界面下一层显示的应用界面。
根据本发明的一个实施例,子进程运行插件还可在插件界面的基础上生成插件界面的子界面,即二级界面。二级界面隶属于插件界面,承载部分交互功能,包括但不限于收集插件所需要的用户数据,将用户数据返回插件等。子进程还可以生成插件的多个子界面,即多个二级界面。方法还包括步骤:根据子进程运行应用程序110的插件生成二级界面的界面数据,二级界面为所述插件界面的子界面,二级界面的界面数据包括二级界面的形状,大小,颜色和位置等,本发明对二级界面的界面数据的类型不做限制。
随后将二级界面的界面数据在共享存储空间中进行存储,存储二级界面的界面数据时,通过子进程调用通信单元121在存储器中存储插件界面的界面数据。
接着根据共享存储空间中的二级界面和插件界面的界面数据,确定插件界面与二级界面的层级关系。具体的,先根据插件界面和二级界面的界面数据,构建插件界面和二级界面的结构关系,由绘制单元122的管理组件123根据二级界面的界面数据确定二级界面的显示位置。当二级界面和插件界面在各自的显示位置上有重合时,由控制模块根据二级界面和插件界面的界面数据构建树状结构的结构关系,将插件界面作为树状结构的父节点,将二级界面作为树状结构中父节点的子节点。当有多个二级界面的界面数据时,根据多个二级界面的界面数据在父节点下构建多个子节点。合成组件124根据树状结构对二级界面和插件界面的结构关系进行管理。
再根据插件界面和二级界面的结构关系,确定插件界面与二级界面的层级关系:将树状结构中构成父节点的插件界面,作为第二层界面;将树状结构中构成父节点的子节点的二级界面作为第三层界面,第三层界面的显示级别高于第二层界面,在显示时将第三层界面在第二层界面上进行显示。
随后,根据插件界面的界面数据和插件界面与二级界面的层级关系,在应用程序窗口中绘制二级界面。在应用程序窗口中绘制二级界面时,首先由合成组件124组合根据二级界面的界面数据绘制二级界面,绘制二级界面时,根据界面数据中位置,大小,形状和颜色等数据进行绘制。
接着由合成组件124组合插件界面和二级界面,确定插件界面和二级界面在应用程序窗口中的重叠区域。组合二级界面和插件界面时,按照二级界面和插件界面所显示的位置进行组合。二级界面为第三层界面,插件界面为第二层页面,将二级界面在插件界面的上层进行显示。二级界面在插件界面的上层进行显示时,二级界面会盖住插件界面的部分区域,二级界面的显示区域对插件界面构成遮挡,遮挡的部分即为重叠区域。
随后,根据插件界面和二级界面的层级关系,在插件界面和二级界面的重叠区域对插件界面进行遮挡操作,从而在应用程序窗口中绘制二级界面。具体的由合成组件124在重叠区域执行遮挡操作,屏蔽这部分插件界面的显示内容,不对这部分显示内容进行显示,得到包括二级界面的应用程序窗口。
最后由接口组件125将绘制好的包括二级界面的应用程序窗口发送到渲染单元126。渲染单元126将包括二级界面的应用程序窗口和显示该应用程序窗口的命令发送到显卡以便在显示器中进行显示应用程序窗口。
本发明中的种窗口显示方法,适于在计算设备中执行,计算设备包括存储有应用程序的存储器,并运行有操作系统,在操作系统中创建父进程,根据父进程运行应用程序,再创建父进程的子进程,以运行应用程序的插件。父进程运行应用程序生成应用界面的界面数据,子进程运行插件生成插件界面的界面数据,本发明通过在存储器中分配共享存储空间,并在共享存储空间中存储插件界面和应用界面的界面数据,从而能够实现应用界面和插件界面其界面数据的共享,提高绘制应用程序窗口的速度。再通过共享存储空间中的应用界面和插件界面的界面数据确定所述应用界面与插件界面的层级关系,从而直接从共享存储空间中获取界面数据并对其进行处理,得到应用界面和插件界面的层级关系。最后根据应用界面和插件界面的界面数据、应用界面与插件界面的层级关系,绘制包括应用界面和插件界面的应用程序窗口,实现应用界面和插件界面的同时显示,提高插件在应用程序中运行稳定性,也提高应用程序对插件的兼容性,以及插件开发的灵活性。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的设备停机状态的判断方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种窗口显示方法,适于在计算设备中执行,所述计算设备包括存储有应用程序的存储器,并运行有操作系统,所述方法包括步骤:
在所述操作系统创建父进程,根据所述父进程运行应用程序生成应用界面的界面数据,所述应用程序还包括插件;
创建所述父进程的子进程,根据所述子进程运行所述应用程序的插件,生成插件界面的界面数据;
在所述存储器中分配共享存储空间,将所述应用界面和插件界面的界面数据在共享存储空间中进行存储;
根据所述共享存储空间中的应用界面和插件界面的界面数据,确定所述应用界面与插件界面的层级关系;
根据所述应用界面和插件界面的界面数据、所述应用界面与插件界面的层级关系,绘制包括应用界面和插件界面的应用程序窗口。
2.如权利要求1所述的方法,其中,所述操作系统中包括通信单元,所述在所述存储器中分配共享存储空间包括步骤:
在所述通信单元中注册父进程;
通过所述父进程调用通信单元在所述存储器中设置共享存储空间。
3.如权利要求2所述的方法,其中,所述将所述应用界面和插件界面的界面数据在共享存储空间中进行存储包括步骤:
通过所述父进程调用通信单元在所述存储器中存储应用界面的界面数据;
在所述通信单元中注册子进程;
通过所述子进程在所述存储器中存储插件界面的界面数据。
4.如权利要求3所述的方法,其中,所述操作系统中还包括绘制单元,所述方法还包括步骤:
在所述绘制单元中注册父进程;
通过所述子进程调用所述通信单元向所述父进程发送界面绘制消息;
所述父进程接受到界面绘制消息后,通过所述父进程调用所述绘制单元从共享存储空间中获取应用界面和插件界面的界面数据,以便根据所述应用界面和插件界面的界面数据,确定所述应用界面与插件界面的层级关系。
5.如权利要求1-4中任一项所述的方法,其中,所述根据所述共享存储空间中的应用界面和插件界面的界面数据,确定所述应用界面与插件界面的层级关系包括步骤:
根据应用界面和插件界面的界面数据构建应用界面和插件界面的结构关系;
根据所述应用界面和插件界面的结构关系,确定所述应用界面与插件界面的层级关系。
6.如权利要求5所述的方法,其中,所述绘制包括应用界面和插件界面的应用程序窗口包括步骤:
根据所述应用界面的界面数据绘制应用界面;
根据所述插件界面的界面数据绘制插件界面;
组合所述应用界面和插件界面,确定所述应用界面和所述插件界面在所述应用程序窗口中的重叠区域;
根据所述应用界面与插件界面的层级关系,在所述重叠区域对应用界面进行遮挡操作得到应用程序窗口。
7.如权利要求6所述的方法,其中,所述方法还包括步骤:
根据所述子进程运行所述应用程序的插件生成二级界面的界面数据,所述二级界面为所述插件界面的子界面;
将所述二级界面的界面数据在所述共享存储空间中进行存储;
根据所述共享存储空间中的二级界面和插件界面的界面数据,确定所述插件界面与二级界面的层级关系;
根据所述插件界面的界面数据和所述插件界面与二级界面的层级关系,在所述应用程序窗口中绘制二级界面。
8.如权利要求7所述的方法,其中,所述根据所述共享存储空间中的二级界面和插件界面的界面数据,确定所述插件界面与二级界面的层级关系包括步骤:
根据插件界面和二级界面的界面数据,构建插件界面和二级界面的结构关系;
根据所述插件界面和二级界面的结构关系,确定所述插件界面与二级界面的层级关系。
9.一种计算设备,包括:
一个或多个处理器;
存储器;以及
一个或多个装置,所述一个或多个装置包括用于执行根据权利要求1-8中任一项所述的方法的指令。
10.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1-8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110993043.4A CN113448582B (zh) | 2021-08-27 | 2021-08-27 | 一种窗口显示方法、计算设备及存储介质 |
CN202111320544.2A CN114020268A (zh) | 2021-08-27 | 2021-08-27 | 一种窗口显示方法、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110993043.4A CN113448582B (zh) | 2021-08-27 | 2021-08-27 | 一种窗口显示方法、计算设备及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111320544.2A Division CN114020268A (zh) | 2021-08-27 | 2021-08-27 | 一种窗口显示方法、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448582A true CN113448582A (zh) | 2021-09-28 |
CN113448582B CN113448582B (zh) | 2021-12-07 |
Family
ID=77818874
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111320544.2A Pending CN114020268A (zh) | 2021-08-27 | 2021-08-27 | 一种窗口显示方法、计算设备及存储介质 |
CN202110993043.4A Active CN113448582B (zh) | 2021-08-27 | 2021-08-27 | 一种窗口显示方法、计算设备及存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111320544.2A Pending CN114020268A (zh) | 2021-08-27 | 2021-08-27 | 一种窗口显示方法、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114020268A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968551A (zh) * | 2022-03-10 | 2022-08-30 | 中移互联网有限公司 | 一种进程管理的方法、装置、电子设备及存储介质 |
CN117539582A (zh) * | 2024-01-10 | 2024-02-09 | 中航国际金网(北京)科技有限公司 | 多进程界面融合方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500104A (zh) * | 2013-09-09 | 2014-01-08 | 北京奇虎科技有限公司 | 一种沙箱界面的实现方法和装置 |
US20140282019A1 (en) * | 2013-03-14 | 2014-09-18 | thePlatform Media, Inc. | Systems And Methods For Generating Software Components |
CN107402782A (zh) * | 2017-06-30 | 2017-11-28 | 武汉斗鱼网络科技有限公司 | 一种用于在直播软件中加载插件的方法及装置 |
CN109101298A (zh) * | 2017-06-20 | 2018-12-28 | 武汉斗鱼网络科技有限公司 | Windows跨进程窗口管理方法、存储介质、电子设备及系统 |
CN111258694A (zh) * | 2020-01-15 | 2020-06-09 | 广州虎牙科技有限公司 | 界面加载方法、装置、用户端及存储介质 |
CN111857929A (zh) * | 2020-07-23 | 2020-10-30 | 杭州海康威视数字技术股份有限公司 | 应用程序界面显示的方法、装置及计算机设备 |
CN113204385A (zh) * | 2021-05-17 | 2021-08-03 | 南京统信软件技术有限公司 | 一种插件加载方法、装置、计算设备及可读存储介质 |
-
2021
- 2021-08-27 CN CN202111320544.2A patent/CN114020268A/zh active Pending
- 2021-08-27 CN CN202110993043.4A patent/CN113448582B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282019A1 (en) * | 2013-03-14 | 2014-09-18 | thePlatform Media, Inc. | Systems And Methods For Generating Software Components |
CN103500104A (zh) * | 2013-09-09 | 2014-01-08 | 北京奇虎科技有限公司 | 一种沙箱界面的实现方法和装置 |
CN109101298A (zh) * | 2017-06-20 | 2018-12-28 | 武汉斗鱼网络科技有限公司 | Windows跨进程窗口管理方法、存储介质、电子设备及系统 |
CN107402782A (zh) * | 2017-06-30 | 2017-11-28 | 武汉斗鱼网络科技有限公司 | 一种用于在直播软件中加载插件的方法及装置 |
CN111258694A (zh) * | 2020-01-15 | 2020-06-09 | 广州虎牙科技有限公司 | 界面加载方法、装置、用户端及存储介质 |
CN111857929A (zh) * | 2020-07-23 | 2020-10-30 | 杭州海康威视数字技术股份有限公司 | 应用程序界面显示的方法、装置及计算机设备 |
CN113204385A (zh) * | 2021-05-17 | 2021-08-03 | 南京统信软件技术有限公司 | 一种插件加载方法、装置、计算设备及可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968551A (zh) * | 2022-03-10 | 2022-08-30 | 中移互联网有限公司 | 一种进程管理的方法、装置、电子设备及存储介质 |
CN114968551B (zh) * | 2022-03-10 | 2023-09-19 | 中移互联网有限公司 | 一种进程管理的方法、装置、电子设备及存储介质 |
CN117539582A (zh) * | 2024-01-10 | 2024-02-09 | 中航国际金网(北京)科技有限公司 | 多进程界面融合方法及装置 |
CN117539582B (zh) * | 2024-01-10 | 2024-05-07 | 中航国际金网(北京)科技有限公司 | 多进程界面融合方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113448582B (zh) | 2021-12-07 |
CN114020268A (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113448582B (zh) | 一种窗口显示方法、计算设备及存储介质 | |
US8843889B2 (en) | Managing application template artifacts in a networked computing environment | |
US10198785B2 (en) | Graphics processing method, apparatus, and system | |
CN113986515B (zh) | 为插件运行创建沙箱环境的方法和装置以及计算设备 | |
JP6974604B2 (ja) | ユーザインタフェース表示方法及び端末デバイス | |
CN104025185A (zh) | 用于使用gpu控制器来预加载缓存的机制 | |
CN109417488A (zh) | 虚拟网络功能资源管理的方法和设备 | |
CN104714823B (zh) | 基于OpenStack的新建主机配置方法 | |
CN112558841B (zh) | 一种应用图标管理方法、计算设备及可读存储介质 | |
CN114610294B (zh) | 仿真实验效能指标并发计算控制方法、装置和计算机设备 | |
JP7048663B2 (ja) | コード実行方法、装置、レンダリングデバイス、記憶媒体、及びプログラム | |
CN113791873B (zh) | 一种虚拟机创建方法、计算设备及存储介质 | |
CN113535275A (zh) | 一种混合应用构建方法、装置及计算设备 | |
CN110377367B (zh) | 组件配置方法、装置、电子终端及计算机可读存储介质 | |
CN115712375A (zh) | 服务编排方法、基于服务编排的流程处理方法及计算设备 | |
CN114780069A (zh) | 一种开放式图形库渲染的开启方法、装置与计算设备 | |
CN114461419A (zh) | 一种消息推送方法、系统、计算设备与可读存储介质 | |
CN113849245A (zh) | 一种应用程序运行方法、计算设备及存储介质 | |
KR101732922B1 (ko) | Gui 기반의 비동기 방식 코딩 시스템 및 방법 | |
CN112380829B (zh) | 一种文档生成方法及装置 | |
CN115202633A (zh) | 用于管理应用的组件的方法、装置、设备和介质 | |
US20230153120A1 (en) | System and method for cloud deployment and management | |
WO2024108907A1 (zh) | 一种数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN113467763A (zh) | 一种mvp架构开发方法、装置、电子设备及存储介质 | |
James | Object-Oriented Programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |