CN118276716A - 窗口管理的方法和电子设备 - Google Patents
窗口管理的方法和电子设备 Download PDFInfo
- Publication number
- CN118276716A CN118276716A CN202211708148.1A CN202211708148A CN118276716A CN 118276716 A CN118276716 A CN 118276716A CN 202211708148 A CN202211708148 A CN 202211708148A CN 118276716 A CN118276716 A CN 118276716A
- Authority
- CN
- China
- Prior art keywords
- window
- application
- input event
- processing module
- layout
- 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
Links
- 238000007726 management method Methods 0.000 title abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 428
- 230000008569 process Effects 0.000 claims abstract description 353
- 238000012545 processing Methods 0.000 claims abstract description 119
- 238000009877 rendering Methods 0.000 claims description 86
- 230000004044 response Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 abstract description 38
- 230000006870 function Effects 0.000 description 36
- 239000010410 layer Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000009286 beneficial effect Effects 0.000 description 12
- 230000026676 system process Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 7
- 239000000203 mixture Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 235000019800 disodium phosphate Nutrition 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000007858 starting material Substances 0.000 description 5
- 239000003999 initiator Substances 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008773 effect on children Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供了一种窗口管理的方法和电子设备,在多窗口显示模式下,电子设备可以在第一窗口内显示第二窗口,对于第二窗口内的输入事件,输入事件管理进程可以直接将该输入事件发送至第二进程。本申请提供的窗口管理的方法和电子设备,第二进程获取第二窗口内的输入事件不需要经由第一进程或其他进程转发,减少了输入事件接收过程中利用进程间通信转发输入事件的转发次数,节省了电子设备的资源,提高了电子设备对于窗口内的输入事件的处理效率,提升了用户的使用体验。
Description
技术领域
本申请涉及终端设备软件领域,具体地,涉及一种窗口管理的方法和电子设备。
背景技术
近些年,随着电子科技行业的蓬勃发展,终端设备的数据、信息处理能力越来越强,以手机、平板电脑为例的多种终端设备在用户生活、娱乐、办公等多种场景下的扮演的角色也越来越重要,为提高处理效率,终端设备可以支持用户同时进行多任务的处理。
在多任务处理场景下,终端设备可以利用同一屏幕显示多个窗口,多个窗口可以同时展示不同任务的处理状态,多个窗口也可以作为用户向终端设备输入信息的多个输入端口。如何优化多窗口显示模式下,不同窗口之间布局调整的方案,提高终端设备在多窗口显示模式下对于输入事件的处理效率,是值得考虑的。
发明内容
本申请提供一种窗口管理的方法和电子设备,在多窗口显示模式下,第二窗口位于第一窗口内,第二窗口对应的进程可以直接从电子设备的输入事件管理进程接收第二窗口内的输入事件,无需通过其他进程进行转发。本申请通过减少输入事件的转发步骤,提高了多窗口显示模式下电子设备对于输入事件的处理效率。
第一方面,提供了一种窗口管理的方法,该方法应用于电子设备,该电子设备显示第一窗口和第二窗口,该第一窗口为第一应用的显示窗口,该第二窗口为第二应用的显示窗口,该第二窗口位于第一窗口内;响应于第二窗口内的输入事件,该输入事件管理进程发送该输入事件至第二进程,该输入事件管理进程用于分发电子设备获取的第一窗口内的输入事件和第二窗口内的输入事件,该第二进程为与第二应用对应的进程;该电子设备输出该输入事件的处理结果。
第二窗口内的输入事件,是指在第二窗口的显示区域内的输入事件。对于手机、平板电脑等类似的电子设备,第二窗口的显示区域可以是电子设备的屏幕上一块固定的区域。对于增强现实装置等类似的电子设备,第二窗口的显示区域则不限定于电子设备的屏幕上的固定区域。第二进程为与第二应用对应的进程,也可以理解为,第二进程是第二应用的执行状态。
本技术方案中,在多窗口显示模式下,显示在第一窗口内的第二窗口在发生输入事件后,输入事件管理进程可以直接将输入事件发送到第二进程。相较于由输入事件管理进程先发给中间进程,再由中间进程发送给第二进程的方式,减少了输入事件分发到第二进程的过程中的在进程间转发的步骤。本技术方案的实施有利于减少多窗口显示模式下,输入事件接收过程中,输入事件在进程间转发的次数,有利于节省电子设备的资源,有利于提高电子设备在多窗口显示模式下对输入事件的处理效率,提升用户的使用体验。
结合第一方面,在第一方面的某些实现方式中,在该输入事件为无法被该第二进程处理的输入事件的情况下,该第二进程发送该输入事件至第一进程,该第一进程为与第一应用对应的进程;该第一进程根据该输入事件生成处理结果。
第一进程为与第一应用对应的进程,也可以理解为,第一进程是第一应用的执行状态。
在一种可能的实现方式中,第二进程将输入事件的信息通过进程间通信的方式发送至第一进程。
本技术方案中,将第二窗口内发生的且无法由第二进程处理的输入事件交由第一进程进行处理。相较于仅由一个窗口处理输入事件的方法,本技术方案的实施,有利于提升多窗口显示模式下电子设备对于输入事件的处理能力与处理效率,有利于提高电子设备的能源利用效率,提升用户的使用体验。
结合第一方面,在第一方面的某些实现方式中,该第一窗口包括目标控件,该目标控件用于显示该第二窗口,该第二窗口的布局根据该目标控件的尺寸确定。
第一窗口内的控件在绘制第一窗口的过程中可以同时进行绘制,本技术方案通过根据目标控件的尺寸来确定第二窗口的布局,简化了多窗口显示模式下,电子设备调整多个窗口布局的方法,提高了在一个窗口的布局的发生变化后,电子设备对另一个窗口的布局调整的效率。
结合第一方面,在第一方面的某些实现方式中,响应于第一操作,该第一进程调整第一窗口的布局,该第一窗口的布局包括该目标控件的尺寸;该第一进程发送调整后的该目标控件的尺寸至该第二进程;该第二进程块根据调整后的目标控件的尺寸调整该第二窗口的布局。
本技术方案中,用户调整第一窗口的布局的同时,第一进程可以将调整后的目标控件的尺寸发送至第二进程,从而第二进程可以根据目标控件的尺寸来相应调整第二窗口的布局。第一进程和第二进程之间可以直接进行通信并传输信息,而不需要通过其他进程的转发,本技术方案的实施有利于减少多窗口显示模式下窗口布局调整过程中控件尺寸等信息的转发步骤,降低电子设备的资源消耗,也有利于提升电子设备对于窗口布局调整的效率。
结合第一方面,在第一方面的某些实现方式中,响应于第二操作,该第二进程调整该第二窗口的布局,该第二窗口的布局包括该第二窗口的尺寸;该第二进程发送调整后的第二窗口的尺寸至第一进程;该第一进程根据该调整后的第二窗口的尺寸调整该目标控件的尺寸。
本技术方案中,在多窗口显示模式下,用户可以单独调整第二窗口的布局,且第二进程会将调整后的第二窗口的尺寸发送至第一进程,从而对第一进程可以相应的对目标控件进行调整。第二进程和第一进程之间可以直接进行通信并传输信息,而不需要通过其他进程的转发,本技术方案的实施有利于减少多窗口显示模式下窗口布局调整过程中窗口尺寸等信息的转发步骤,节省电子设备的资源,提高窗口布局的调整效率,提升用户的使用体验。
结合第一方面,在第一方面的某些实现方式中,该第一窗口的渲染对象组成第一渲染树,该第二窗口的渲染对象组成第二渲染树,该第二渲染树挂载在该第一渲染树中目标控件对应的渲染节点。
在窗口的渲染过程中,第二窗口的待渲染对象挂载在第一窗口的渲染树上。第一窗口作为渲染树的父节点,第二窗口的待渲染对象作为子节点。父节点对应的渲染对象的属性或渲染过程会对子节点对应的渲染对象的渲染结果产生影响。在对第一窗口渲染的同时也会渲染第二窗口的内容,本技术方案的实施,有利于简化第二窗口的布局调整方法,有利于提高第二窗口的布局的调整效率。
结合第一方面,在第一方面的某些实现方式中,该第二应用为应用内容的提供方,该第一应用为该应用内容的使用方。
在一种可能的实现方式中,第一应用为第一应用集合中的应用,第二应用为第二应用集合中的应用。第一应用集合和第二应用集合之间具有映射关系。
通过预设第一应用和第二应用之间的相互关系,可以对电子设备上运行的应用进行区分,只有满足关系的两个应用才可以利用本申请提供的窗口管理的方法在多窗口显示模式下并行显示,这种窗口管理的方法有利于限定不同应用的权限,有利于实现操作***对于电子设备上运行的应用的统一管理,提高应用的管理效率。
以下技术方案中的相关解释说明和有益效果可以参考第一方面中的相关描述,为了简洁,以下不再赘述。
第二方面,提供了一种电子设备,该电子设备包括处理器和存储器,该存储器用于存储程序指令,该处理器用于执行所述程序指令以使得所述电子设备实现所述第一方面及其任意可能的实现方式中的方法被执行。
以下技术方案中以功能模块的方式说明本申请提供的窗口管理的方法,应理解,模块的功能可以由硬件实现,也可以由软件实现,还可以以软件和硬件结合的方式实现。本申请对此不做限制。
第三方面,提供了一种窗口管理的装置,该窗口管理的装置包括显示模块、输入事件管理模块、第二处理模块和输出模块,该显示模块,用于显示第一窗口和第二窗口,该第一窗口为第一应用的显示窗口,该第二窗口为第二应用的显示窗口,该第二窗口位于第一窗口内;响应于第二窗口内的输入事件,该输入事件管理模块,用于发送该输入事件至第二处理模块,该输入事件管理模块用于分发窗口管理的装置获取的第一窗口内的输入事件和第二窗口内的输入事件,该第二处理模块为与第二应用对应的处理模块;该输出模块,用于输出该输入事件的处理结果。
结合第三方面,在第三方面的某些实现方式中,该窗口管理装置还包括第一处理模块,该第一处理模块为与该第一应用对应的处理模块,在输入事件为无法被第二处理模块的输入事件的情况下,该第二处理模块,用于发送该输入事件至该第一处理模块;该第一处理模块,用于根据该输入事件生成该处理结果。
结合第三方面,在第三方面的某些实现方式中,该第一窗口包括目标控件,该目标控件用于显示第二窗口,该第二窗口的布局根据目标控件的尺寸确定。
结合第三方面,在第三方面的某些实现方式中,响应于第一操作,该第一处理模块,还用于调整该第一窗口的布局,该第一窗口的布局包括该目标控件的尺寸,该第一处理模块为与第一应用对应的处理模块;该第一处理模块,还用于发送调整后的该目标控件的尺寸至第二处理模块;该第二处理模块,还用于根据调整后的该目标控件的尺寸调整该第二窗口的布局。
结合第三方面,在第三方面的某些实现方式中,响应于第二操作,该第二处理模块,还用于调整该第二窗口的布局,该第二窗口的布局包括该第二窗口的尺寸;该第二处理模块,还用于发送调整后的该第二窗口的尺寸至该第一处理模块,该第一处理模块为与第一应用对应的处理模块;该第一处理模块,还用于根据该调整后的该第二窗口的尺寸调整该目标控件的尺寸。
结合第三方面,在第三方面的某些实现方式中,该第一窗口的渲染对象组成第一渲染树,该第二窗口的渲染对象组成第二渲染树,该第二渲染树挂载在该第一渲染树中目标控件对应的渲染节点。
结合第三方面,在第三方面的某些实现方式中,该第二应用为应用内容的提供方,该第一应用为应用内容的使用方。
第四方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得第一方面或其任意可能的实现方式中的方法被执行。
第五方面,提供了一种计算机可读存储介质,该计算机可读介质中存储由计算机指令,当计算机指令在计算机上运行时,使得第一方面或其任意可能的实现方式中的方法被执行。
第六方面,提供了一种芯片产品,包括处理器,用于读取存储器中存储的指令,当该处理器执行该指令时,使得该芯片实现第一方面或其任意可能的实现方式中的方法被执行。
附图说明
图1是适用于本申请实施例中一种电子设备硬件架构示意图。
图2是适用于本申请实施例中一种电子设备软件架构示意图。
图3是本申请实施例提供的一种窗口管理的方法示意图。
图4是本申请实施例提供的另一种窗口管理的方法示意图。
图5是本申请实施例提供的又一种窗口管理的方法示意图。
图6是本申请实施例提供的又一种窗口管理的方法示意图。
图7至图11是本申请实施例提供的窗口管理的方法在手机上的应用示意图。
图12至图15是本申请实施例提供的窗口管理的方法在平板电脑上的应用示意图。
图16至图19是本申请实施例提供的窗口管理的方法在折叠屏设备上的应用示意图。
图20是本申请实施例提供的一种窗口管理装置。
图21是本申请实施例提供的一种电子设备。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图1示出了电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户身份识别(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户身份识别(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
应理解,本申请实施例中的技术方案可以用于Android、IOS、鸿蒙等***中。
在介绍本申请实施例前,首先对以下实施例中可能用到的一些专业术语进行说明。
能力组件(abilitycomponent),用于独立显示一项能力(ability)的一个容器,ability是应用所具备能力的抽象。在一些场景下,能力组件还可以称为activity,或者其他更多的名称。
渲染树(render tree),由元素显示序列中可见元素组成,它是文档的可视化标识,构建这棵树是为了以正确的顺序绘制文档内容。渲染树上的每一个节点也可以称为渲染服务器表面节点(render server surface node,RSSurfaceNode),每一个节点都可以视为一个渲染对象,每个渲染对象都包含样式信息,例如宽度、高度、位置、背景色等。渲染服务器可以通过这些样式信息来确定每个节点对象在页面上的确切大小和位置。绘制过程中,渲染服务器可以遍历渲染树,将渲染树上的渲染对象呈现在屏幕上。
进程,是程序在计算机上的一次执行活动。当计算机运行一个程序,就启动了一个进程。程序是静态的,进程是动态的。进程可以分为***进程和用户进程。凡是用于完成操作***的各种功能的进程就可以称为***进程,它们就是处于运行状态下的操作***本身。
插件(widget),又可以称为微件、小工具、小部件或挂件等,可以显示在电子设备操作***的主界面上,可以实时显示,并会自动更新内容,例如天气预报、用户的邮件或者新闻摘要等。微件一般可以与应用程序关联。
当前,终端设备中的应用越来越多,为了提升用户体验,方便用户同时对多个应用进行操作,部分***应用(SystemUI、Launcher、Settings)需要展示其他应用窗口的内容,从而有利于实现用户对多个应用程序的并行处理,提高终端设备的多任务处理效率。怎样更加高效、更加安全地处理多个窗口组合场景下的输入事件,是一个难点且未能有效实现。
之所以成为难点,是因为在组合窗口场景下,不同应用窗口的布局和大小变化以及输入事件的分发都将涉及到多个应用进程的通信,而多个应用进程的通信需要消耗一定的资源和时间,从而使得***不能高效地处理这一场景下的窗口显示和事件输入,降低了***流畅性和用户操作体验感。
本申请提供了一种窗口管理的方法,具体地,将第二应用的应用窗口封装至控件中,该控件可以位于第一应用的显示窗口内。该控件在拖动和大小变化的过程中,与第二应用对应的进程和与第一应用对应的进程之间可以直接进行进程间通信,无需其他中间进程进行转发,减少了通信代价。同时,该第二应用的应用进程可以不经过第一应用的应用进程的转发,直接对位于第二应用的显示窗口内的输入事件进行处理。因此,本申请提供的窗口管理的方法为组合窗口场景下提升窗口显示性能和输入事件分发效率提供了一个有效的解决方案。
如图3所示为本申请实施例提供的一种窗口管理的方法,电子设备可以显示第一窗口和第二窗口,该第一窗口为第一应用(或称第一应用程序)的显示窗口,第二窗口为第二应用(或第二称应用程序)的显示窗口。
第一窗口和第二窗口可以组成不同的布局,例如,第二窗口可以位于第一窗口的显示区域内,第一窗口和第二窗口可以组成上下或者左右并列显示的布局。
对于第二窗口位于第一窗口的显示区域的情况,第二窗口内显示的内容可以与第一窗口内显示的内容存在一定的关联性,例如,第二窗口内显示的内容可以是第一窗口内显示功能标题对应的详细内容。换句话说,第二应用可以为应用内容的提供方,第一应用可以为第二应用提供的应用内容的使用方。
电子设备可以设置有第一应用集合,该第一应用集合内包含多个第一应用,该多个第一应用为应用内容使用方的应用程序;电子设备也可以设置有第二应用集合,该第二应用集合内包含多个第二应用,该多个第二应用为应用内容提供方的应用程序。
通过预设应用集合,可以对电子设备上运行的应用进行区分,只有属于第一应用集合的应用才可以通过第一应用窗口内设置第二应用窗口的形式显示第二应用的内容,类似的,也只有属于第二应用集合的应用才可以在第一应用窗口内设置的第二应用窗口中展示应用的内容。这种窗口管理的方法有利于限定不同应用的权限,有利于实现操作***对于电子设备上应用的统一管理,提高应用的管理效率。
应理解,电子设备还可以同时显示多个应用窗口,以下实施例中以电子设备同时显示第一窗口和第二窗口为例进行说明,电子设备同时显示更多窗口的情况可以参考执行。
以下实施例中,以第二窗口位于第一窗口的显示区域内的情况介绍本申请实施例提供的窗口管理方法,第一窗口和第二窗口其他类型的布局可以参考执行。应理解,以下实施例中示例性的说明,不应理解为对本申请提供的窗口管理的方法所适用的窗口布局类型的限制。
本申请提供的窗口管理的方法大致如下,应理解,以下方法实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
S301,第二进程接收输入事件。
具体的,电子设备获取第二窗口内的输入事件,响应于该输入事件,电子设备的输入事件管理进程将输入事件发送至第二进程,从而第二进程接收到输入事件。
这里,第二窗口用于显示第二应用,第二窗口位于第一窗口内,第一窗口用于显示第一应用,第二进程是与第二应用对应的进程。输入事件管理进程可以用于对电子设备获取的所有输入事件进行分发,该进程可以为运行在电子设备操作***内核空间的***进程。输入事件管理进程可以是一个进程,也可以是多个进程的集合。
输入事件可以指通过软件和/或硬件的方式触发的能够被电子设备捕获的事件。例如,对于显示屏支持触摸功能的电子设备,该输入事件可以是用户对于屏幕的点击、长按等操作。对于可以连接鼠标、键盘等外设的电子设备,该输入事件可以是鼠标的光标点击电子设备显示界面的一个控件或类似的操作,该输入事件也可以是输入窗口中检测到的新的输入信息等等。
对于不同类型的输入事件,电子设备接收输入事件的方式不同,本实施例中,第二进程可以直接从输入事件管理进程接收输入事件,而不需要通过其他进程的转发。具体而言,电子设备运行的第二进程获取输入事件过程可以不通过第一进程(与第一应用对应的进程)的转发。
示例性的,对于第二窗口内的触摸事件,第二进程对输入事件的接收过程大致如下:
1、电子设备的***进程(例如system_server进程)接收来自触摸屏的信息,并确定第二进程需要接收该触摸事件。
2、电子设备的***进程将上述触摸事件发送至第二进程的输入事件套接字或其他通信的接口。
3、第二进程的输入事件套接字接收上述触摸事件,并将其存储下来,从而第二进程可以接收到该触摸事件。
S302,确定第二进程是否可以处理输入事件。
上述输入事件可以是与第二窗口对应第二进程可以处理的事件,以下称为第一输入事件。或者,输入事件也可以是第二进程无法处理的事件,以下称为第二输入事件。
第二进程是否能够处理输入事件与第二应用程序本身有关,例如第二应用程序没有设置响应于“长按”操作的相应程序,则第二应用程序的执行进程无法处理该“长按”操作。第二进程是否能够处理输入事件还与第二进程的执行状态有关,例如第二应用显示第一界面时,或者说第二进程处于第一状态时,第二进程可以处理“双击”操作,当第二应用显示第二界面,或者说第二进程处于第二状态时,第二进程无法处理“双击”操作。
对于不同输入事件的处理过程,以下实施例中进一步说明,此处不展开。
S303,在第二进程可以处理输入事件的情况下,第二进程处理输入事件,输出处理结果。
对于第二进程可以处理的输入事件,即第一输入事件,第二进程可以将输入事件作为输入内容,并根据该输入进行相应的处理并输出处理结果。
S304,在第二进程无法处理输入事件的情况下,第二进程发送输入事件至第一进程。
对于第二进程无法处理的输入事件,即第二输入事件,第二进程可以将输入事件的相关信息转发至第一进程,交由第一进程进行处理。
具体的,第二进程可以通过进程间通信的方式将第二输入事件发送至第一进程。
S305,第一进程处理输入事件,输出处理结果。
第一进程在接收到第二输入事件后,可以根据第一应用程序的数据、信息处理该第二输入事件,并输出处理结果。这里第一进程为与第一应用对应的进程,第一应用显示在第一窗口内。
以上S301至S305主要说明了第二窗口对于不同输入事件的处理方式,第二窗口可以直接处理的窗口内的输入事件,并且仅对第二进程无法处理的输入事件才转发至第一进程。相较于将所有输入事件的信息都转发至第一进程再由第一进程进行分发的处理方式,本实施例提供的技术方案有利于减少输入事件的转发步骤,有利于提高电子设备对于输入事件的处理效率。
以下进一步说明第一窗口和第二窗口的布局调整过程,应理解,窗口调整的过程和输入事件的处理过程属于两类不同过程,两类过程可以连续进行,也可以不连续进行。换句话说,S305之后的步骤可以紧跟着S305及之前的步骤执行,也可以与S305及之前的步骤分开执行。
S306,电子设备检测第一操作。
具体的,与第一窗口对应的第一进程检测第一操作。
这里第一操作是指调整第一窗口的布局的操作,具体的,可以包括调整第一窗口的大小、方向、形状、位置等中的一种或多种。
第一窗口还包括目标控件,目标控件用于显示第二窗口,第一窗口的布局的调整包括目标控件的尺寸的调整。
第一进程检测第一操作,可以是通过检测是否存在第一操作对应的信息来实现的。例如,用户拖动第一窗口的动作可以由触摸屏将与拖动操作相关的信息发送至操作***的进程,再由操作***发送至第一窗口对应的第一进程,从而第一进程可以检测到第一操作。
S307,响应于第一操作,电子设备调整第一窗口和第二窗口。
在检测到调整第一窗口的第一操作后,电子设备可以调整第一窗口和第二窗口。该第一操作为调整第一窗口的布局的操作,例如,旋转第一窗口、放大第一窗口、缩小第一窗口等等。
具体的,电子设备在检测到前述第一操作之后,可以将第一操作的信息发送至第一应用的执行进程(第一进程),第一进程可以根据第一操作调整第一窗口的布局,这里第一窗口的布局包括目标控件的尺寸。
在目标控件的尺寸发生调整后,第一进程可以将调整后的目标控件的尺寸发送至第二进程。
第二进程可以根据接收到的调整后的目标控件的尺寸来调整第二窗口的布局,第二窗口的布局包括第二窗口的尺寸。换句话说,当目标控件的尺寸发生变化时,第二窗口的布局也会相应地发生变化。
在一种可能的实现方式中,第二窗口的尺寸与目标控件的尺寸存在对应关系。例如,两者的尺寸相等,这种情况下,如果第二窗口和目标控件都为矩形,则意味着第二窗口的宽度和目标控件的宽度相等,第二窗口的高度和目标控件的高度相等。第二窗口内显示内容的布局与第二窗口的尺寸相关,通过建立第二窗口的尺寸和目标控件的尺寸的关系,从而可以实现根据目标控件的尺寸确定第二窗口的布局。
在第一窗口的布局发生变化时,第一进程可以将调整后的目标控件的尺寸发送至第二进程,从而第二进程可以根据接收到的目标控件的尺寸来调整第二窗口的布局。相较于在第一窗口发生变化时,第一进程将第一窗口的布局信息先发给其他进程,再通过前述的其他进程转发给第二进程,从而第二进程块再调整第二窗口的布局的方式,本实施例提供的窗口管理的方法有利于减少目标控件尺寸信息的转发步骤,有利于提高多窗口组合显示场景下第二窗口布局调整的效率,提升用户操作的流畅性,有利于用户的体验。
S308,电子设备检测第二操作。
具体的,与第二窗口对应的第二进程检测第二操作。
这里第二操作是指调整第二窗口的布局的操作,具体的,可以包括调整第二窗口的大小、方向、形状、位置等中的一种或多种。第二窗口的布局包括第二窗口的尺寸。
第二进程检测第二操作,可以是通过检测是否存在第二操作对应的信息来实现的。例如,用户拖动第二窗口的动作可以由触摸屏将与拖动操作相关的信息发送至操作***的进程,再由操作***发送至第二窗口对应的第二进程,从而第二进程可以检测到第二操作。
S309,电子设备调整第二窗口。
在检测到调整第二窗口的第二操作后,电子设备可以调整第二窗口。该第二操作可以为调整第二窗口的布局的操作,例如,旋转第二窗口、放大第二窗口、缩小第二窗口等等。
具体的,电子设备在检测到前述第二操作后,可以将第二操作的信息发送至第二应用的执行进程(第二进程),第二进程可以根据第二操作来调整第二窗口的布局。第二窗口布局的调整可以包括第二窗口的尺寸的调整。
由于第二窗口显示在第一窗口内,即第一窗口内的目标控件用于显示第二窗口,在第二窗口的布局发生变化的情况下,目标控件的尺寸也需要发生相应地调整。
在一种可能的实现方式中,第二窗口的尺寸与目标控件的尺寸存在对应关系。例如,两者的尺寸相等,这种情况下,如果第二窗口和目标控件都为矩形,则意味着第二窗口的宽度和目标控件的宽度相等,第二窗口的高度和目标控件的高度相等。
具体的,第二进程可以将第二窗口的尺寸发送至第一进程,第一进程可以根据接收到的调整后的第二窗口的尺寸来调整目标控件的尺寸。
在调整第二窗口的布局时,第二进程可以将调整后的第二窗口的尺寸直接发送至第一进程,第一进程可以根据接收的调整后的第二窗口的尺寸来调整目标控件的尺寸。相较于将第二窗口的尺寸先发送至其他进程再由该其他进程转发第二窗口的尺寸到第一进程的方式,本实施例提供的窗口管理的方法有利于减少第二窗口的尺寸信息的转发步骤,有利于提高多窗口组合显示场景下,窗口布局调整的效率,提升用户操作的流畅性,有利于用户的体验。
以下结合图4和图5进一步说明图3中窗口管理的方法的一种可能的实现方式。
本实施例中,第一窗口为第一应用的显示窗口,第二窗口为第二应用的显示窗口,第二窗口位于第一窗口的显示区域内,第二应用作为应用内容的提供方,第一应用作为应用内容的使用方。第二窗口封装在目标控件中,该目标控件可以自由布局于第一窗口中。
如图4所示,第一窗口作为父节点,第一窗口内的目标控件作为第一窗口的子节点,第二窗口中所有待渲染的渲染对象组成渲染树挂载在第一窗口的渲染树上,具体的,目标控件作为占位节点,第二窗口的根节点挂载在目标控件对应的占位节点对应的位置。
当用户调整第一窗口的布局时,响应于改变第一窗口的布局的操作,电子设备重新渲染或绘制第一窗口和第二窗口。在渲染的过程中,第一窗口的渲染树包含了第一窗口内所有渲染对象的信息,由于第二窗口的渲染树挂载在第一窗口的渲染树上,第一窗口的渲染树还包含了第二窗口上所有渲染对象的信息。当利用第一窗口的渲染树对第一窗口进行渲染时,第二窗口的内容也会一并渲染出来。
具体的,当第一窗口渲染的过程中目标控件的尺寸发生变化时,第一窗口的执行进程(第一进程)会将调整后的目标控件的尺寸发送至第二窗口的执行进程(第二进程),第二进程在接收到该调整后的目标控件的尺寸信息时,可以进一步与渲染服务器和窗口管理服务等***进程进行通信完成对第二窗口的绘制。
当用户调整第二窗口的布局时,响应于改变第二窗口的布局的操作,电子设备重新绘制第二窗口。在对第二窗口进行渲染时,第二窗口的渲染树中包含的渲染对象的信息可以单独发送至渲染服务器,可以不依赖第一窗口的渲染。
由于第二窗口显示在目标控件内,第二窗口的布局发生变化后,目标控件也可以进行相应的调整。具体的,第二进程可以将调整后第二窗口的尺寸发送至第一进程,第一进程可以根据接收的第二窗口的尺寸调整目标控件。在一些可能的情况下,第一窗口的布局也可以根据目标控件的调整进行相应的调整。
在渲染过程中,渲染服务器会从渲染树的根节点开始依次对渲染树上的节点进行绘制。即,渲染服务器会先绘制父节点再绘制该父节点的子节点。渲染树上父节点的属性(例如宽度、高度、位置、背景色等)会对子节点产生相应的限定、影响,例如,对子节点对应的渲染对象的尺寸不能大于父节点对应的渲染对象的尺寸。上述将第二窗口的渲染对象挂载在第一窗口的渲染树上,可以实现当第一窗口的属性发生改变时第二窗口渲染结果随之发生变化。
图5中具体描述了图4中的第一窗口和第二窗口的创建过程。
S501,电子设备启动第一应用。
电子设备可以响应于用户的操作启动第一应用,或者,电子设备也可以根据***配置信息启动第一应用。第一应用的执行进程可以称为第一进程。
S502,电子设备创建第一窗口。
具体的,第一进程可以将第一窗口的信息发送至窗口管理服务(WindowManagerService),窗口管理服务根据接收的第一窗口的信息创建第一窗口。第一窗口中设置有目标控件,该目标控件可以称为能力组件(abilitycomponent)。
S503,电子设备渲染合成第一窗口。
具体的,S502中创建第一窗口的窗口管理服务可以调用渲染服务器或称为图像渲染合成引擎(例如,surfaceflinger)来渲染合成第一窗口。
图像渲染合成引擎可以根据接收的第一窗口的信息来渲染合成第一窗口,具体的,渲染合成引擎可以根据第一窗口的信息来确定第一窗口中需要渲染的对象,并根据这些待渲染的对象构建第一窗口的渲染树,从而按照渲染树上对应的节点顺序依次对第一窗口中待渲染对像进行渲染。
图4中已经说明,为在第一窗口渲染的过程中同时对第二窗口进行渲染,第一窗口的渲染中的目标控件在第一窗口的渲染树上设置有占位节点,该占位节点可以后续接入第二窗口的渲染对象。
S504,电子设备在目标控件中启动第二应用。
在创建并渲染合成第一窗口之后,可以利用第一窗口内的目标控件来启动第二应用,该第二应用的显示窗口(第二窗口)可以封装在该目标控件中。具体的,目标控件可以通过启动第二控件来启动第二应用,该第二控件可以称为窗口延伸能力(windowExtensionAbility)。第二应用的执行进程可以称为第二进程。
S505,电子设备创建第二窗口。
具体的,第二进程可以将第二窗口的信息发送至窗口管理服务,窗口管理服务根据接收的第二窗口的信息创建第二窗口。
S506,电子设备渲染合成第二窗口。
具体的,S505中创建第二窗口的窗口管理服务可以调用图像渲染合成引擎来渲染合成第二窗口。
图像渲染合成引擎可以根据接收的第二窗口的信息来渲染合成第二窗口,具体的,渲染合成引擎可以根据第二窗口的信息来确定第二窗口中需要渲染的对象,并根据这些待渲染的对象构建第二窗口的渲染树,从而按照渲染树上对应的节点顺序依次对第二窗口中待渲染对像进行渲染。
由于第二窗口的渲染对象挂载在第一窗口的渲染树上,在对第一窗口进行渲染的过程中,按照第一窗口的渲染树的节点顺序,可以实现在对第一窗口渲染的同时完成对第二窗口的渲染。
以下结合具体示例,进一步说明本申请提供的窗口管理的方法。
图6至图12所示中,第一应用为“启动器(launcher)”应用,第二应用为“天气”应用,“天气”应用的显示窗口(第二窗口)位于“启动器”应用的显示窗口(第一窗口)的显示区域内。
图6示和图7出了第二窗口的创建过程,第二窗口的创建操作可以与“启动器”应用的插件的创建操作类似。
例如,响应于用户选择(例如长按、点击等)图6中“天气”应用的操作,电子设备可以显示第一选项框601,该第一选项框601中包含添加“桌面窗口”的选项卡,当用户选择该选项卡时,电子设备可以在“启动器”应用的显示窗口的空白位置(例如图6中的602的位置)添加该“天气”应用的显示窗口。
或者,响应于用户选择(例如长按、点击等)图7中的第一功能入口“桌面窗口”的操作,电子设备可以显示包含多个不同应用的不同“桌面窗口”的展示界面(图中未示出),用户可以在该展示界面中选择“天气”应用对应的桌面窗口。响应于用户选择“天气”应用对应的桌面窗口的操作,电子设备可以将该“天气”应用对应的桌面窗口添加至“启动器”应用的显示窗口的空白位置。
图6和图7只是示例性的提供了两种在“启动器”应用的显示窗口中添加“天气”应用的可能的实现方式,“天气”应用的显示窗口还可以通过其他方式添加至“启动器”应用的显示窗口内,实现在一个显示界面上同时对第一应用的内容和第二应用的内容的展示。第二窗口也可以是默认设置在第一窗口内而不需要用户手动添加的。
图8所示为电子设备同时显示第一窗口801和第二窗口802的显示界面,第一窗口用于显示第一应用的用户界面,第二窗口用于显示第二应用的用户界面。第一窗口801内可以显示电子设备安装的应用的图标,也可以显示电子设备支持的应用的插件。第一窗口801还包括一个或多个目标控件(图中未示出),该一个或多个目标控件用于显示第二窗口802以及与第二窗口802类似的可以显示应用的用户界面的应用窗口。第二窗口802可以显示默认时间时默认地址的天气状况,例如,1月1号08:00,A市区的天气为多云,气温为19℃。
以第二窗口802为例的这些在第一窗口内显示的应用窗口可以直接从输入事件管理进程接收用户的操作(输入事件)并响应于用户的操作输入对应的结果。如图9和图10所示,第二应用的执行进程(第二进程)也可以直接从输入事件管理进程处接收第二窗口内的输入事件,并根据输入事件的不同执行不同的处理流程。这里的输入事件管理进程用于将电子设备检测到的输入事件发送至对应的处理进程,输入事件管理进程可以是电子设备操作***的***进程,输入事件管理进程可以是一个进程也可以是多个进程的集合。
对于第二进程可以处理的输入事件,例如在图8所示的第二窗口802内执行左右滑动的操作,响应于用户的操作,第二进程可以执行将第二窗口802的显示内容切换至不同时间的天气的操作。例如,响应于用户在第二窗口802内向右滑动的操作,第二窗口内显示的天气信息由当天的天气切换至昨天的天气(如图9中第二窗口901内所示)。响应于用户在第二窗口902内向左滑动的操作,第二窗口内显示的天气信息由当天的天气切换至明天的天气(图中未示出)。
在“天气”应用处理上述在第二窗口内的输入事件的过程中,“天气”应用可以直接从电子设备的操作***的***进程获取这些输入事件的相关信息,而无需通过“启动器”应用通过进程间通信的方式转发。
对于第二进程无法处理的输入事件,例如在图9所示的第二窗口901内执行右滑的操作。由于第二窗口901当前显示的是“天气”应用支持查看的最早的日期的天气,换句话说,“天气”应用在显示昨天的天气的界面上无法处理右滑的操作。这种情况下,响应于用户的右滑操作,“天气”应用的执行进程(第二进程)在获取该右滑的操作的输入事件后,可以通过进程间通信的方式将该右滑操作的相关信息发送至“启动器”应用的执行进程(第一进程),“启动器”应用在接收该右滑操作的相关信息后会执行相应的处理。如图10所示,当接收到“天气”应用转发的右滑操作的信息后,“启动器”应用可以执行在第一窗口的显示界面上向右滑动的操作,即显示第一窗口当前显示界面的左侧的界面,图10中示出的第一窗口的显示界面的左侧界面为“负一屏”界面或称“智慧助手”界面等。
可选的,对于第二进程无法处理的输入事件,电子设备可以显示如图10所示的第一提示信息1001,该第一提示信息1001可以用于提示前述第二进程无法处理的输入事件的处理情况。以图9中“天气”应用无法处理的右滑操作为例,该第一提示信息1001可以为“天气”应用无法响应您的右滑操作,该操作已由“启动器”应用处理。
当“启动器”应用的布局发生变化时,“天气”应用的布局也可以发生相应的调整。结合图8和图11,响应于用户将电子设备由竖屏显示的状态(图8所示的状态)切换至横屏显示的状态(图11所示的状态)的操作,第一窗口内显示的图标的布局可以进行重排,桌面窗口也会发生相应的改变。具体的,图8中的第二窗口802的显示形态类似长方形(例如尺寸为4×1),图11中第二窗口1102的显示形态类似正方形(例如尺寸为2×2)。第二窗口在由类似长方形的形态调整为类似正方形的形态的过程中,第一进程可以直接将前述目标控件变化后的尺寸信息发送至第二进程,而不需要经过其他进程转发。
如果检测到用户拖动第二窗口或拉伸第二窗口的边界以及其他类似调整第二窗口的布局的操作,响应于用户的操作,电子设备可以调整第二窗口的布局。电子设备在调整第二窗口的布局时,第二进程还可以将调整后第二窗口的尺寸信息直接发送至第一进程,而不需要经过其他进程转发,第一进程接收到调整后第二窗口的尺寸信息后可以相应的调整目标控件的尺寸。
在上述示例中,“天气”应用可以根据窗口获取到的输入事件的不同执行不同的处理方案,仅对于“天气”应用无法处理的输入事件,第二进程可以将该输入事件上报至第一进程来处理,减少了输入事件的转发步骤,节省了***资源,提高了电子设备对于输入事件的处理效率。此外,“天气”应用的显示窗口可以按照与“启动器”应用的插件类似的调整规则来调整其窗口的布局,调整过程中“启动器”应用的执行进程和“天气”应用的执行进程之间可以直接通信而不需要其他进程进行转发,同样也有利于减少电子设备的***资源的消耗,提升用户体验。
图12至图15是本申请提供的窗口管理的方法在平板电脑上的应用示意图。
如图12所示,第一应用为“设置”应用,第二应用为“***”应用,第一应用的显示窗口(第一窗口)为图12中的窗口1201,第二应用的显示窗口(第二窗口)为图12中的窗口1202。本示例中,第二窗口默认设置于第一窗口包含的目标控件的显示区域内(图中未示出目标控件),无需用户手动添加。
第一窗口1201可以用于显示电子设备支持的多种设置功能的功能入口,例如“蓝牙”功能入口、“通知”功能入口、“***”功能入口,当用户选择第一窗口1201中显示的一个功能入口时,响应于用户的选择,电子设备在第一窗口中打开该功能入口对应应用的显示窗口。例如,图12中第二窗口1202可以用于显示与“***”应用相关的设置选项或信息,例如设备名称、***版本等等。用户可以查看第二窗口内显示的信息,用户也可以通过选择第二窗口内显示的功能选项完成相应的功能。
以图12中的第二窗口1202为例,如图13和图14所示,“***”应用的执行进程(第二进程)可以直接从输入事件管理进程接收用户在第二窗口内的输入事件,并根据输入事件的不同执行不同的处理流程,这里的输入事件管理进程用于将电子设备检测到的输入事件发送至对应的处理进程,输入事件管理进程可以是电子设备操作***的***进程,输入事件管理进程可以是一个进程也可以是多个进程的集合。
对于第二进程可以处理的输入事件,例如在图13中,用户选择“设备名称”的选项卡,响应于用户的操作,第二进程可以执行显示如图13所示的输入控件1301的操作,用户可以在该输入控件1301中输入需要更改的设备的名称。又例如,当用户选择第二窗口1202中的“***版本”的选项卡时,响应于用户的操作,第二进程可以执行展示***版本的详细信息的操作(图中未示出)。
对于第二进程无法处理的输入事件,例如在图14中,用户在第二窗口内执行向上滑动的操作。由于第二窗口已经完全展示了第二应用的全部内容,即第二进程无法将该向上滑动的操作转换为第二窗口显示内容的向上滚动(如翻页)等类似的操作。在获取该向上滑动的操作后,第二进程可以确定无法处理该上滑操作,并将该操作的信息发送至第一窗口的执行进程(第一进程),由第一进程处理该操作。第一进程在接收到该向上滑动的操作信息后可以执行相应的处理。如图14所示,当“设置”应用的执行进程接收到“***”应用的执行进程发送的向上滑动操作的信息后,“设置”应用可以在第一窗口的显示界面向上滚动,以响应用户的向上滑动的操作。
可选的,对于第二进程无法处理的输入事件,电子设备可以显示第二提示信息1401,该第二提示信息1401可以用于提示前述第二进程无法处理的输入事件的处理情况。以图14中“***”应用无法处理的上滑动操作为例,该第二提示信息1401可以为“***”应用无法响应您的上滑操作,该操作已由“设置”应用处理。
当第一应用(“***”应用)的布局发生变化时,第二应用(“***”应用)的布局可以发生相应的调整。结合图12和图15,响应于用户将电子设备由竖屏显示的状态(图11所示的状态)切换至横屏显示的状态(图15所示的状态)的操作,“设置”应用的显示窗口内多个设置功能的入口的显示的尺寸可以进行调整,“***”应用的显示窗口的布局也会发生改变。具体的,图12中第二窗口内每个控件(例如图12中的控件1203)的长宽比更小(与图12中第一方向平行的方向为长度方向,与第一方向垂直的方向为宽度方向),图15中第二窗口内每个相同的控件的长宽比更大。第二窗口在调整窗口内控件的显示方式的过程中,第一进程可以直接将前述目标控件变化后的尺寸信息发送至第二进程,而不需要经过其他进程转发。
如果检测到用户拖动第二窗口内控件的边界或其他类似调整第二窗口的布局的操作,响应于用户的操作,电子设备可以调整第二窗口的布局。电子设备在调整第二窗口的布局时,第二进程还可以将调整后第二窗口的尺寸信息直接发送至第一进程,而不需要经过其他进程转发,第一进程接收到调整后第二窗口的尺寸信息后可以相应的调整目标控件的尺寸。
在上述示例中,“***”应用可以根据窗口获取到的输入事件的不同执行不同的处理方案,仅对于“***”应用无法处理的输入事件,第二进程可以将该输入事件上报至第一进程来处理,减少了输入事件的转发步骤,节省了***资源,提高了电子设备对于输入事件的处理效率。此外,“***”应用的显示窗口可以按照与“设置”应用的插件类似的调整规则来调整其窗口的布局,调整过程中“设置”应用的执行进程和“***”应用的执行进程之间可以直接通信而不需要经过其他进程的转发,同样也有利于减少电子设备的***资源的消耗,提升用户体验。
图16至图19是本申请提供的窗口管理的方法在折叠屏设备上的应用示意图。
如图16所示,第一应用为“锁屏”应用,第二应用为“天气”应用,第一应用的显示窗口(第一窗口)为图16中的窗口1601,第二应用的显示窗口(第二窗口)为图16中的窗口1602。
第二窗口的创建操作可以与“锁屏”应用的插件的创建操作类似,具体的可以参见前述实施例中图6和图7的相关描述,为了简洁,此处不做重复。
图16所示为电子设备同时显示第一窗口1601和第二窗口1602的显示界面,第一窗口用于显示第一应用的用户界面,第二窗口用于显示第二应用的用户界面。第一窗口1601可以显示时间、日期、快捷操作入口等,第一窗口1601还包括一个或多个目标控件(图中未示出),该一个或多个目标控件用于显示第二窗口1602以及与第二窗口1602类似的可以显示应用的用户界面的应用窗口。第二窗口1602可以显示默认时间时默认地址的天气状况,例如,1月1号08:00,A市区的天气为多云,气温为19℃。
以第二窗口1602为例的这些在第一窗口内显示的应用窗口可以直接从输入事件管理进程获取用户的操作(输入事件)并响应于用户的操作输出对应的的结果。如图17和图18所示,第二应用的执行进程(第二进程)可以从输入事件管理进程处接收到用户在第二窗口内的输入事件,并根据输入事件的不同执行不同的处理流程。这里的输入事件管理进程用于将电子设备检测到的输入事件发送至对应的处理进程,输入事件管理进程可以是电子设备操作***的***进程,输入事件管理进程可以是一个进程也可以是多个进程的集合。
对于第二进程可以处理的输入事件,例如在图16所示的第二窗口1602内执行左右滑动的操作,响应于用户的操作,第二进程可以执行将第二窗口1602的显示内容切换至不同时间的天气的操作。例如,响应于用户在第二窗口1602内向右滑动的操作,第二窗口内显示的天气信息由当天的天气切换至昨天的天气(如图17中第二窗口1701内所示)。响应于用户在第二窗口内向左滑动的操作,第二窗口内显示的天气信息由当天的天气切换至明天的天气(图中未示出)。
在天气应用处理上述在第二窗口内的输入事件的过程中,天气应用可以直接从电子设备的操作***的***进程获取这些输入事件的相关信息,而无需通过启动器应用通过进程间通信的方式转发。
对于第二进程无法处理的输入事件,例如在图16所示的第二窗口1602内执行上滑的操作。由于“天气”应用没有配置响应于第二窗口内上滑操作的命令,天气应用的执行进程无法处理天气的界面上向上滑动的操作。这种情况下,响应于用户的上滑操作,“天气”应用的执行进程(第二进程)在获取该上滑的操作的输入事件后,可以通过进程间通信的方式将该上滑操作的相关信息发送至“锁屏”应用的执行进程(第一进程),“锁屏”应用在接收该上滑操作的相关信息后会执行相应的处理。如图18所示,当接收到“天气”应用转发的上滑操作的信息后,“锁屏”应用可以执行在第一窗口的显示界面上向上滑动的操作,即显示解锁界面1801。
可选的,对于第二进程无法处理的输入事件,电子设备可以显示如图18所示的第三提示信息1802,该第三提示信息1802可以用于提示前述第二进程无法处理的输入事件的处理情况。以图18中“天气”应用无法处理的上滑操作为例,该第三提示信息可以为“天气”应用无法响应您的右滑操作,该操作已由“锁屏”应用处理。
当“锁屏”应用的布局发生变化时,“天气”应用的布局也可以发生相应的调整。结合图16和图19,响应于用户将电子设备由展开显示的状态(图16所示的状态)切换至折叠显示的状态(图19所示的状态)的操作,第一窗口内显示时间、日期等信息的尺寸和位置可以进行调整,第一窗口内显示的其他应用的窗口也会发生相应的改变。例如,图16中的第二窗口1602的长宽比更大(与图16中第二方向平行的方向为长度方向,与第二方向垂直的方向为宽度方向),图19中第二窗口1902的长宽比更小。第二窗口在进行形态调整的过程中,第一进程可以直接将前述目标控件变化后的尺寸信息发送至第二进程,而不需要经过其他进程转发。。
如果检测到用户拖动第二窗口或拉伸第二窗口的边界以及其他类似调整第二窗口的布局的操作,响应于用户的操作,电子设备可以调整第二窗口的布局。电子设备在调整第二窗口的布局时,第二进程还可以将调整后第二窗口的尺寸信息直接发送至第一进程,而不需要经过其他进程转发,第一进程接收到调整后第二窗口的尺寸信息后可以相应的调整目标控件的尺寸。
在上述示例中,“天气”应用可以根据窗口获取到的输入事件的不同执行不同的处理方案,仅对于“天气”应用无法处理的输入事件,第二进程可以将该输入事件上报至第一进程来处理,减少了输入事件的转发步骤,节省了***资源,提高了电子设备对于输入事件的处理效率。此外,“天气”应用的显示窗口可以按照与“锁屏”应用的插件类似的调整规则来调整其窗口的布局,调整过程中“锁屏”应用的执行进程和“天气”应用的执行进程之间可以直接通信而不需要其他进程转发,同样也有利于减少电子设备的***资源的消耗,提升用户体验。
基于与以上方法实施例相同的发明构思,本申请实施例还提供了一种窗口管理装置,该窗口管理装置可具备上述方法实施例中的电子设备功能,并可用于执行上述方法实施例中由电子设备的功能执行的步骤。所述功能可以通过硬件实现,也可以通过软件或者硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
如图20所示的窗口管理装置2000可作为上述方法实施例所涉及的电子设备,并执行上述方法实施例中由电子设备执行的步骤。
如图20所示,该窗口管理装置2000可包括通信模块2010和处理模块2020,以上通信模块2010和处理模块2020之间相互耦合。
通信模块2010可用于支持窗口管理装置2000进行通信,例如执行图3等中如S301、S304等由电子设备执行的发送和/或接收的动作。
处理模块2020可用于支持窗口管理装置2000执行上述方法实施例中的处理动作,例如执行图3等中如S301等由电子设备执行的处理动作。
可选的,窗口管理装置2000还可以包括存储模块2030,用于存储通信装置2000的程序代码和数据。
图21是本申请实施例提供的电子设备2100的示意性框图。如图所示,该电子设备2100包括:至少一个处理器2110和收发器2120。该处理器2110与存储器耦合,用于执行存储器中存储的指令,以控制收发器2120发送信号和/或接收信号。
可选地,该电子设备2100还包括存储器2130,用于存储指令。
在一些实施例中,上述处理器2110和存储器2130可以合成一个处理装置,处理器2110用于执行存储器2130中存储的程序代码来实现上述功能。具体实现时,该存储器2130也可以集成在处理2110中,或者独立于处理器2110。
在一些实施例中,收发器2120可以包括接收器(或者称,接收机)和发射器(或者称,发射机)。
收发器2120还可以进一步包括天线,天线的数量可以为一个或多个。收发器2120有可以是通信接口或者接口电路。
当该电子设备2100为芯片时,该芯片包括收发单元和处理单元。其中,收发单元可以是输入输出电路或通信接口;处理单元可以为该芯片上集成的处理器或者微处理器或者集成电路。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本申请实施例还提供一种计算机可读存储介质,其上存储有用于实现上述方法实施例中由通信设备执行的方法的计算机指令。
例如,该计算机程序被计算机执行时,使得该计算机可以实现上述方法实施例中由通信设备执行的方法。
上述提供的任一种装置中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
应理解,本申请实施例中提及的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM)。例如,RAM可以用作外部高速缓存。作为示例而非限定,RAM可以包括如下多种形式:静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)可以集成在处理器中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种窗口管理的方法,其特征在于,所述方法应用于电子设备,所述方法包括:
所述电子设备显示第一窗口和第二窗口,所述第一窗口为第一应用的显示窗口,所述第二窗口为第二应用的显示窗口,所述第二窗口位于所述第一窗口内;
响应于所述第二窗口内的输入事件,输入事件管理进程发送所述输入事件至第二进程,所述输入事件管理进程用于分发所述电子设备获取的所述第一窗口内的输入事件和所述第二窗口内的输入事件,所述第二进程为所述第二应用对应的进程;
所述电子设备输出所述输入事件的处理结果。
2.根据权利要求1所述的方法,其特征在于,在所述输入事件为无法被所述第二进程处理的输入事件的情况下,所述方法还包括:
所述第二进程发送所述输入事件至第一进程,所述第一进程为所述第一应用对应的进程;
所述第一进程根据所述输入事件生成所述处理结果。
3.根据权利要求1或2所述的方法,其特征在于,所述第一窗口包括目标控件,所述目标控件用于显示所述第二窗口,所述第二窗口的布局根据所述目标控件的尺寸确定。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于第一操作,第一进程调整所述第一窗口的布局,所述第一窗口的布局包括所述目标控件的尺寸,所述第一进程为所述第一应用对应的进程;
所述第一进程发送调整后的所述目标控件的尺寸至所述第二进程;
所述第二进程根据所述调整后的所述目标控件的尺寸调整所述第二窗口的布局。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
响应于第二操作,所述第二进程调整所述第二窗口的布局,所述第二窗口的布局包括所述第二窗口的尺寸;
所述第二进程发送调整后的所述第二窗口的尺寸至第一进程,所述第一进程为所述第一应用对应的进程;
所述第一进程根据所述调整后的所述第二窗口的尺寸调整所述目标控件的尺寸。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述第一窗口的渲染对象组成第一渲染树,所述第二窗口的渲染对象组成第二渲染树,所述第二渲染树挂载在所述第一渲染树中所述目标控件对应的渲染节点。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第二应用为应用内容的提供方,所述第一应用为所述应用内容的使用方。
8.一种窗口管理装置,其特征在于,包括:显示模块、输入事件管理模块、第二处理模块和输出模块,
所述显示模块,用于显示第一窗口和第二窗口,所述第一窗口为第一应用的显示窗口,所述第二窗口为第二应用的显示窗口,所述第二窗口位于所述第一窗口内;
响应于所述第二窗口内的输入事件,所述输入事件管理模块,用于发送所述输入事件至所述第二处理模块,所述输入事件管理模块用于分发所述窗口管理装置获取的所述第一窗口内的输入事件和所述第二窗口内的输入事件,所述第二处理模块为与所述第二应用对应的处理模块;
所述输出模块用于输出所述输入事件的处理结果。
9.根据权利要求8所述的窗口管理装置,其特征在于,所述窗口管理装置还包括第一处理模块,所述第一处理模块为与所述第一应用对应的处理模块,
在所述输入事件为无法被所述第二处理模块处理的输入事件的情况下,所述第二处理模块,用于发送所述输入事件至所述第一处理模块;
所述第一处理模块,用于根据所述输入事件生成所述处理结果。
10.根据权利要求8或9所述的窗口管理装置,其特征在于,所述第一窗口包括目标控件,所述目标控件用于显示所述第二窗口,所述第二窗口的布局根据所述目标控件的尺寸确定。
11.根据权利要求10所述的窗口管理装置,其特征在于,
响应于第一操作,所述第一处理模块,还用于调整所述第一窗口的布局,所述第一窗口的布局包括所述目标控件的尺寸,所述第一处理模块为与所述第一应用对应的处理模块;
所述第一处理模块,还用于发送调整后的所述目标控件的尺寸至所述第二处理模块;
所述第二处理模块,还用于根据所述调整后的所述目标控件的尺寸调整所述第二窗口的布局。
12.根据权利要求10或11所述的窗口管理装置,其特征在于,
响应于第二操作,所述第二处理模块,还用于调整所述第二窗口的布局,所述第二窗口的布局包括所述第二窗口的尺寸;
所述第二处理模块,还用于发送调整后的所述第二窗口的尺寸至所述第一处理模块,所述第一处理模块为与所述第一应用对应的处理模块;
所述第一处理模块,还用于根据所述调整后的所述第二窗口的尺寸调整所述目标控件的尺寸。
13.根据权利要求10至12中任一项所述的窗口管理装置,其特征在于,所述第一窗口的渲染对象组成第一渲染树,所述第二窗口的渲染对象组成第二渲染树,所述第二渲染树挂载在所述第一渲染树中所述目标控件对应的渲染节点。
14.根据权利要求8至13中任一项所述的窗口管理装置,其特征在于,所述第二应用为应用内容的提供方,所述第一应用为所述应用内容的使用方。
15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行权利要求1至7中任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,权利要求1至7中任一项所述的方法被执行。
17.一种计算机可读存储介质,其特征在于,其上存储由计算机程序,所述计算机程序被计算机执行时,以使得实现权利要求1至7中任一项所述的方法。
18.一种芯片产品,其特征在于,包括:处理器,用于读取存储器中存储的指令,当所述处理器执行所述指令时,使得所述芯片实现权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211708148.1A CN118276716A (zh) | 2022-12-29 | 2022-12-29 | 窗口管理的方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211708148.1A CN118276716A (zh) | 2022-12-29 | 2022-12-29 | 窗口管理的方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118276716A true CN118276716A (zh) | 2024-07-02 |
Family
ID=91642297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211708148.1A Pending CN118276716A (zh) | 2022-12-29 | 2022-12-29 | 窗口管理的方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118276716A (zh) |
-
2022
- 2022-12-29 CN CN202211708148.1A patent/CN118276716A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553014B (zh) | 多窗口投屏场景下的应用界面显示方法及电子设备 | |
WO2020238774A1 (zh) | 一种通知消息的预览方法及电子设备 | |
CN114397979B (zh) | 一种应用显示方法及电子设备 | |
CN112269527B (zh) | 应用界面的生成方法及相关装置 | |
JP7473100B2 (ja) | ユーザインタフェースレイアウト方法および電子デバイス | |
WO2020221063A1 (zh) | 切换父页面和子页面的方法、相关装置 | |
CN112558825A (zh) | 一种信息处理方法及电子设备 | |
CN112527174B (zh) | 一种信息处理方法及电子设备 | |
CN111263002B (zh) | 一种显示方法和电子设备 | |
CN116302227A (zh) | 多个应用组合且同时启动多个应用的方法及电子设备 | |
CN112527222A (zh) | 一种信息处理方法及电子设备 | |
WO2022161119A1 (zh) | 一种显示方法及电子设备 | |
EP4293490A1 (en) | Display method and related apparatus | |
CN113961157A (zh) | 显示交互***、显示方法及设备 | |
CN114489529A (zh) | 电子设备的投屏方法及其介质和电子设备 | |
WO2023005900A1 (zh) | 一种投屏方法、电子设备及*** | |
WO2021052488A1 (zh) | 一种信息处理方法及电子设备 | |
WO2023005751A1 (zh) | 渲染方法及电子设备 | |
CN118276716A (zh) | 窗口管理的方法和电子设备 | |
WO2022160999A1 (zh) | 显示方法和电子设备 | |
CN116672707B (zh) | 生成游戏预测帧的方法和电子设备 | |
US20240220184A1 (en) | Screen projection method and related apparatus | |
WO2023217142A1 (zh) | 窗口尺寸调整方法、相关装置及通信*** | |
WO2024109481A1 (zh) | 窗口控制方法及电子设备 | |
CN116737291A (zh) | 桌面应用的处理方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |