CN116069209A - 焦点窗口处理方法、装置、设备和存储介质 - Google Patents
焦点窗口处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116069209A CN116069209A CN202210609385.6A CN202210609385A CN116069209A CN 116069209 A CN116069209 A CN 116069209A CN 202210609385 A CN202210609385 A CN 202210609385A CN 116069209 A CN116069209 A CN 116069209A
- Authority
- CN
- China
- Prior art keywords
- focus window
- window
- application
- target
- focus
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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/04817—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04842—Selection of displayed objects or displayed text elements
-
- 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
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)
- Stored Programmes (AREA)
Abstract
本申请公开了一种焦点窗口处理方法、装置、设备和存储介质,属于计算机技术领域。该方法包括:检测焦点窗口。若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口。若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据目标焦点窗口执行预设处理流程。若在确定出目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则不根据目标焦点窗口执行预设处理流程,重新执行若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口的步骤。如此,在焦点窗口频繁发生变化时,可以实现焦点窗口防抖,过滤掉获得焦点的持续时长较短的焦点窗口,从而可以降低电子设备的处理压力,保证电子设备的稳定运行。
Description
本申请要求于2022年05月16日提交的申请号为202210529301.8、申请名称为“焦点窗口处理方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别涉及一种焦点窗口处理方法、装置、设备和存储介质。
背景技术
随着电子设备的屏幕的不断大屏化,以及随着各种应用的不断普及,在电子设备的屏幕上同时显示多种应用的窗口成为可能,为用户带来了良好的视觉和操作体验。
目前,电子设备中的很多功能依赖于对电子设备中的焦点窗口的确定。然而,用户在使用电子设备的过程中经常会切换不同的窗口,并且,一些应用也经常会弹出通知窗口,这会导致焦点窗口的频繁变化,这样会导致电子设备中依赖于焦点窗口执行的功能频繁变化,不利于电子设备的稳定运行。
发明内容
本申请提供了一种焦点窗口处理方法、装置、设备和存储介质,可以实现焦点窗口防抖,保证电子设备的稳定运行。所述方案如下:
第一方面,提供了一种焦点窗口处理方法,在该方法中,检测焦点窗口。若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口。若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据目标焦点窗口执行预设处理流程。而若在确定出目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则不根据目标焦点窗口执行预设处理流程,重新执行若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口的步骤。
在本申请中,在焦点窗口变化后,若当前的目标焦点窗口获得焦点的持续时长较长,则根据目标焦点窗口执行后续的预设处理流程,而若当前的目标焦点窗口获得焦点的持续时长较短时焦点窗口就又发生变化,则过滤目标焦点窗口,即不根据目标焦点窗口执行后续的预设处理流程。如此,在焦点窗口频繁发生变化时,可以实现焦点窗口防抖,过滤掉获得焦点的持续时长较短的焦点窗口,从而可以降低电子设备的处理压力,保证电子设备的稳定运行。
可选地,若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据目标焦点窗口执行预设处理流程的操作可以通过如下三种方式实现:
第一种方式中,若在电子设备确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则直接根据目标焦点窗口执行预设处理流程。
第二种方式中,若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,则根据目标焦点窗口执行预设处理流程。
这种情况下,若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口,则不根据目标焦点窗口执行预设处理流程,结束操作。
若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,说明是在不同应用之间进行了焦点窗口的切换,这种情况下,切换后的目标焦点窗口很有可能是用户最新需要使用的窗口,因而可以不过滤目标焦点窗口,正常根据目标焦点窗口执行预设处理流程。
若目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口,说明是在同一应用中进行了焦点窗口的切换,这种情况下,虽然焦点窗口发生切换,但是切换前后焦点窗口所属的应用(即焦点应用)并未发生改变,从而可以确定用户需求并未发生较大改变,因而为了减轻电子设备的处理负担,维持电子设备的稳定运行,可以将目标焦点窗口过滤掉,不根据目标焦点窗口执行预设处理流程,并结束操作。
可选地,若目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程,则确定目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口;若目标焦点窗口的进程与上一个历史焦点窗口的进程是不同应用的进程,则确定目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口。
可选地,若目标焦点窗口的进程的进程标识与上一个历史焦点窗口的进程的进程标识相同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程。
若目标焦点窗口的进程的进程标识与上一个历史焦点窗口的进程的进程标识不同,则从应用白名单中查找目标焦点窗口的进程的进程标识对应的应用标识,且从该应用白名单中查找上一个历史焦点窗口的进程的进程标识对应的应用标识;若目标焦点窗口的进程的进程标识对应的应用标识与上一个历史焦点窗口的进程的进程标识对应的应用标识相同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程;若目标焦点窗口的进程的进程标识对应的应用标识与上一个历史焦点窗口的进程的进程标识对应的应用标识不同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是不同应用的进程。
其中,该应用白名单包括多个应用标识中每个应用标识对应的至少一个进程标识,该多个应用标识中每个应用标识对应的至少一个进程标识是每个应用标识所标识的应用的至少一个进程中每个进程的进程标识。
作为一种示例,应用白名单可以包括电子设备中所有应用中每个应用的应用标识对应的至少一个进程标识。作为另一种示例,应用白名单可以包括电子设备中部分应用中每个应用的应用标识对应的至少一个进程标识,这种情况下,应用白名单中的多个应用标识中每个应用标识所标识的应用是技术人员根据使用需求确定的需要重点关注的应用,如可以是用户经常使用的应用,或者可以是会对电子设备的能耗或续航能力造成较大影响的应用。
需注意的是,在从应用白名单中查找目标焦点窗口的进程的进程标识对应的应用标识时,若从应用白名单中未查找到目标焦点窗口的进程的进程标识对应的应用标识,也即,应用白名单中不存在目标焦点窗口的进程的进程标识,则说明目标焦点窗口所属的应用不是重点关注的应用,因而为了减轻电子设备的处理负担,维持电子设备的稳定运行,可以将目标焦点窗口过滤掉,不根据目标焦点窗口执行预设处理流程,并结束操作。
第三种方式中,若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,且若该应用白名单中存在目标焦点窗口的进程的进程标识,则根据目标焦点窗口执行预设处理流程。
这种情况下,若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,且若该应用白名单中不存在目标焦点窗口的进程的进程标识,则不根据目标焦点窗口执行预设处理流程,结束操作。
若应用白名单中不存在目标焦点窗口的进程的进程标识,说明目标焦点窗口所属的应用的应用标识不在应用白名单中,即目标焦点窗口所属的应用不是重点关注的应用,因而为了减轻电子设备的处理负担,维持电子设备的稳定运行,可以将目标焦点窗口过滤掉,不根据目标焦点窗口执行预设处理流程,并结束操作。若应用白名单中存在目标焦点窗口的进程的进程标识,说明目标焦点窗口所属的应用的应用标识在应用白名单中,即目标焦点窗口所属的应用是重点关注的应用,因而可以根据目标焦点窗口执行预设处理流程。
可选地,根据目标焦点窗口执行预设处理流程的操作可以为:根据目标焦点窗口确定用户场景;根据该用户场景进行资源调度。
在本申请中,可以根据当前所处的用户场景合理配置资源,尽可能保证资源在用户场景下得到合理分配,从而降低电子设备功耗,提高电子设备的续航,降低对用户场景的影响。并且,由于是根据当前所处的用户场景合理分配资源,所以使得资源可以满足用户场景的资源需求,保证用户场景下应用的流畅运行,提高用户体验。
可选地,根据目标焦点窗口执行预设处理流程的操作可以为:确定目标焦点窗口所属的应用为焦点应用;根据该焦点应用和当前接收到的用户操作,确定需要执行的指令。
在焦点应用不同时,同一用户操作所触发的指令可以是不同的。比如,在手势识别场景下,当不同的应用处于焦点时,同一手势操作可以向系统或应用发送不同的指令。以向右挥手的手势操作为例,当焦点应用为音乐应用时,该手势操作可以触发切换下一曲指令;当焦点应用为视频应用时,该手势操作可以触发视频快进指令;当焦点应用为幻灯片应用时,该手势操作可以触发翻页指令。如此,可以增加用户操作的灵活性。
第二方面,提供了一种焦点窗口处理装置,所述焦点窗口处理装置具有实现上述第一方面中焦点窗口处理方法行为的功能。所述焦点窗口处理装置包括至少一个模块,所述至少一个模块用于实现上述第一方面所提供的焦点窗口处理方法。
第三方面,提供了一种焦点窗口处理装置,所述焦点窗口处理装置的结构中包括处理器和存储器,所述存储器用于存储支持焦点窗口处理装置执行上述第一方面所提供的焦点窗口处理方法的程序,以及存储用于实现上述第一方面所述的焦点窗口处理方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述焦点窗口处理装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的焦点窗口处理方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的焦点窗口处理方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种电子设备的结构示意图;
图2是本申请实施例提供的一种软件模块架构示意图;
图3是本申请实施例提供的一种软件模块间的交互示意图;
图4是本申请实施例提供的另一种软件模块间的交互示意图;
图5是本申请实施例提供的一种焦点窗口处理方法的流程图;
图6是本申请实施例提供的另一种焦点窗口处理方法的流程图;
图7是本申请实施例提供的一种焦点窗口处理装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请中描述的“一个实施例”或“一些实施例”等语句意味着在本申请的一个或多个实施例中包括该实施例描述的特定特征、结构或特点。由此,在本申请中的不同之处出现的“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等语句不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。此外,术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了各实施例的描述清楚简洁,下面给出相关概念或技术的简要介绍:
1、焦点窗口(focus window),指拥有焦点的窗口。焦点窗口是唯一可以接收键盘输入的窗口。焦点窗口的确定方式与系统的焦点模式(focus mode)关联。焦点窗口的顶层窗口被称为活动窗口(active window)。同一时间只有一个窗口可以是活动窗口。焦点窗口大概率为用户当前需要使用的窗口。焦点窗口所属的应用为焦点应用,焦点应用是当前前台运行可接收键盘输入和鼠标操作等操作的应用。
2、焦点模式,可用于决定鼠标如何使一个窗口获得焦点。一般地,焦点模式可包括三种,分别为:
(1)点击聚焦(click-to focus),在这种模式下,鼠标点击的窗口即可获得焦点。也即,当鼠标点击一个可以获得焦点的窗口的任意位置,即可激活该窗口,该窗口便被置于所有窗口的最前面,并接收键盘输入。当鼠标点击其他窗口时,该窗口会失去焦点。
(2)焦点跟随鼠标(focus-follow-mouse),在这种模式下,鼠标下的窗口可以获取焦点。也即,当鼠标移到一个可以获得焦点的窗口的范围内,用户不需要点击窗口的某个地方就可以激活这个窗口,接收键盘输入,但该窗口不一定被置于所有窗口的最前面。当鼠标移出这个窗口的范围时,这个窗口也会随之失去焦点。
(3)草率聚焦(sloppy focus),这种焦点模式与focus-follow-mouse比较类似,当鼠标移到一个可以获得焦点的窗口的范围内,用户不需要点击窗口的某个地方就可以激活这个窗口,接收键盘输入,但该窗口不一定被置于所有窗口的最前面。与focus-follow-mouse不同的是,当鼠标移出这个窗口的范围时,焦点并不会随之改变,只有当鼠标移动到别的可以接收焦点的窗口时,系统焦点才改变。
3、焦点进程,指创建焦点窗口的线程所属的进程。进程包括多个线程,线程可以创建窗口。
4、长时睿频功耗(power limit1,PL1),指中央处理器(central processingunit,CPU)在正常负载下的功耗,相当于热设计功耗,CPU绝大部分时间的运行功耗不超过PL1。
5、短时睿频功耗(power limit2,PL2),指CPU在短时间内可达到的最高功耗,其具有持续时间限制。一般地,PL2大于PL1。
6、CPU能效比(energy performance preference,EPP),用于反映CPU的调度倾向,其取值范围为0~255。CPU能效比越小,则表明CPU趋向于高性能;CPU能效比越高,则表明CPU趋向于低功耗。
下面对本申请实施例涉及的电子设备予以说明。
图1是本申请实施例提供的一种电子设备100的结构示意图。如图1所示,电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,无线通信模块150,显示屏160等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备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)接口,和/或USB接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏160,和无线通信模块150等供电。在一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
无线通信模块150可以提供应用在电子设备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)等无线通信的解决方案。例如,本申请实施例中,电子设备100可以通过无线通信模块150与诸如无线耳机等设备建立蓝牙连接。无线通信模块150可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块150经由天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块150还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线转为电磁波辐射出去。
电子设备100通过GPU,显示屏160,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏160和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏160用于显示图像,视频等。显示屏160包括显示面板。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能,例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
接下来对电子设备100的软件系统予以说明。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Windows系统为例,对电子设备100的软件系统进行示例性说明。
图2是本申请实施例提供的一种电子设备100的软件系统的框图。参见图2,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Windows系统分为用户态和内核态。其中,用户态包括应用层以及子系统动态链接库。内核态自下而上分为固件层、硬件抽象层(hardware abstraction layer,HAL)、内核(kernel)和驱动层及执行体。
如图2所示,应用层包括音乐、视频、游戏、办公、社交等应用程序。应用层还包括环境子系统、场景识别引擎以及调度引擎等。其中,图中仅示出部分应用程序,应用层还可以包括其他应用程序,如购物应用、浏览器等,本申请实施例对此不作限定。
环境子系统可以将基本的执行体系统服务的某些子集以特定的形态展示给应用程序,为应用程序提供执行环境。
场景识别引擎可以识别电子设备100所处的用户场景,并确定与该用户场景匹配的基础调度策略(也可称为第二调度策略)。调度引擎可以获取电子设备100的负载情况,并结合电子设备100的负载情况及上述基础调度策略确定符合电子设备100实际运行情况的实际调度策略(也可称为第一调度策略)。其中,关于场景识别引擎和调度引擎的具体内容见后文,在此暂不描述。
子系统动态链接库包括应用编程接口(application programming interface,API)模块,该API模块包括Windows(窗口)API,Windows原生API等。其中,Windows API,Windows原生API均可以为应用程序提供系统调用入口及内部函数支持,区别在于Windows原生API为Windows系统原生的API。例如,Windows API可包括user.dll、kernel.dll,Windows原生API可包括ntdll.dll。其中,user.dll是Windows用户界面接口,可用于执行创建窗口、发送消息等操作。kernel.dll用于为应用程序提供访问内核的接口。ntdll.dll是重要的Windows NT内核级文件,描述了windows本地NTAPI的接口。当Windows启动时,ntdll.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
执行体包括进程管理器、虚拟内存管理器、安全引用监视器、输入/输出(Input/Output,I/O)管理器、Windows管理规范(Windows management instrumentation,WMI)、电源管理器、系统事件驱动(operating system event driver,OsEventDriver)节点(也可称为Event驱动)、系统与芯片驱动(operating system to System on Chip,OS2SOC)节点等。
进程管理器用于创建及中止进程和线程。虚拟内存管理器实现“虚拟内存”。虚拟内存管理器也为高速缓存管理器提供基本的支持。安全引用监视器可在本地计算机上执行安全策略,它保护了操作系统资源,执行运行时对象的保护和监视。I/O管理器执行独立于设备的输入/输出,并进一步处理调用适当的设备驱动程序。电源管理器可管理所有支持电源状态更改的设备的电源状态更改。系统事件驱动节点可以与内核和驱动层进行交互,如与显卡驱动进行交互,在确定存在GPU视频解码事件后,向场景识别引擎上报该GPU视频解码事件。系统与芯片驱动节点可供调度引擎向硬件设备发送调整信息,如向CPU发送调整PL1和PL2的信息。
内核和驱动层包括内核以及设备驱动程序。内核是对处理器体系结构的抽象,将执行体与处理器体系结构的差异相隔离,保证系统的可移植性。内核可以进行线程安排和调度、陷阱处理和异常调度、中断处理和调度等。设备驱动程序运行在内核模式下,为I/O系统和相关硬件之间的接口。设备驱动程序可包括显卡驱动、Intel动态调谐技术(dynamic tuning technology,DTT)驱动、鼠标驱动、音视频驱动、摄像头驱动、键盘驱动等。例如,显卡驱动可以驱动GPU运行,Intel DTT驱动可以驱动CPU运行。
HAL是一个核心态模块,可以隐藏各种与硬件有关的细节,如I/O接口、中断控制器以及多处理器通信机制等,为运行Windows的不同硬件平台提供统一的服务接口,实现多种硬件平台上的可移植性。需要说明的是,为了维护Windows的可移植性,Windows内部组件和用户编写的设备驱动程序并不直接访问硬件,而是通过调用HAL中的例程。
固件层可以包括基本输入输出系统(basic input output system,BIOS),BIOS是一组固化到计算机主板上一个只读存储器(read only memory,ROM)芯片内的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。Intel DTT驱动可以通过BIOS向CPU发送指令的。
需要说明的是,本申请实施例仅以Windows系统为例来说明,在其他操作系统中(例如安卓(Android)系统,IOS系统等),只要各个功能模块实现的功能和本申请实施例类似也能实现本申请的方案。
接下来对电子设备100对资源进行调度的软件及硬件的工作流程予以说明。
图3是本申请实施例提供的一种电子设备100对资源进行调度的软件及硬件的工作流程示意图。
如图3所示,应用层的场景识别引擎包括系统探针模块、场景识别模块及基础策略匹配管理器。场景识别模块可分别与系统探针模块及基础策略匹配管理器进行交互。场景识别模块可以向系统探针模块发送获取探针状态的请求。系统探针模块可以获取电子设备100的运行状态。例如,系统探针模块可以包括电源状态探针、外设状态探针、进程负载探针、音视频状态探针、系统负载探针及系统事件探针等。
其中,电源状态探针可以向内核态订阅电源状态事件,根据内核态反馈的回调函数确定电源状态,电源状态包括电池(剩余)电量、电源模式等,电源模式可包括交流电源(alternating current,AC)和直流电源(direct current,DC)。例如,电源状态探针可向执行体层的OsEventDriver节点发送订阅电源状态事件的请求,由OsEventDriver节点向执行体层的电源管理器转发该请求。电源管理器可通过该OsEventDriver节点向电源状态探针反馈回调函数。
外设状态探针可以向内核态订阅外设事件,根据内核态反馈的回调函数确定外设事件。外设事件包括鼠标滚轮滑动事件、鼠标点击事件、键盘输入事件、麦克风输入事件、摄像头输入事件等。
进程负载探针可以向内核态订阅进程负载,根据内核态反馈的回调函数确定进程(例如,焦点进程)的负载。
系统负载探针可以向内核态订阅系统负载,根据内核态反馈的回调函数确定系统负载。
音视频状态探针可向内核态订阅音视频事件,根据内核态反馈的回调函数确定电子设备100当前存在的音视频事件。音视频事件可包括GPU解码事件等。例如,音视频状态探针可向执行体层的OsEventDriver节点发送订阅GPU解码事件的请求,由OsEventDriver节点向内核和驱动层的显卡驱动转发该请求。显卡驱动可以监控GPU的状态,在监控到GPU在进行解码操作后,通过该OsEventDriver节点向音视频状态探针反馈回调函数。
系统事件探针可以向内核态订阅系统事件,根据内核态反馈的回调函数确定系统事件。系统事件可包括窗口变化事件、进程创建事件、线程创建事件等。例如,系统事件探针可向执行体层的OsEventDriver节点发送订阅进程创建事件的请求,由OsEventDriver节点向进程管理器转发该请求。进程管理器可在创建进程后,通过该OsEventDriver节点向系统事件探针反馈回调函数。又例如,系统事件探针还向API模块发送订阅焦点窗口变化事件,API模块可监控电子设备100的焦点窗口是否发生变化,并在监控到焦点窗口发生变化时,向系统事件探针反馈回调函数。
可见,系统探针模块通过向内核态订阅电子设备100的各种事件,再根据内核态反馈的回调函数确定电子设备100的运行状态,即得到探针状态。系统探针模块得到探针状态后,可向场景识别模块反馈该探针状态。场景识别模块接收到探针状态后,可根据该探针状态确定电子设备100所处的用户场景。该用户场景可包括视频场景、游戏场景、办公场景及社交场景等。该用户场景可以反映用户当前的使用需求。例如,场景识别模块在识别出焦点窗口为视频应用的窗口时,确定出电子设备100处于视频场景,这说明用户需要使用视频应用观看、浏览视频。又例如,场景识别模块在识别出焦点窗口为即时通讯应用的聊天窗口时,确定电子设备100处于社交场景。场景识别模块还可向基础策略匹配管理器发送该用户场景。基础策略匹配管理器可根据该用户场景确定基础调度策略(也可称为第二调度策略)。基础策略匹配管理器可向场景识别模块反馈该基础调度策略。场景识别模块可向应用层的调度引擎发送该基础调度策略及该用户场景。
如图3所示,调度引擎包括负载管控器、芯片策略融合器以及调度执行器。其中,负载管控器可接收场景识别模块发送的该基础调度策略及该用户场景。负载管控器还可从系统探针模块获取系统负载,并根据系统负载和该用户场景对该基础调度策略进行调整,得到实际调度策略(也可称为第一调度策略)。实际调度策略中包括操作系统(OperatingSystem,OS)调度策略和第一CPU功耗调度策略。
其中,负载管控器可向调度执行器发送该OS调度策略,由调度执行器基于该OS调度策略进行调度。OS调度策略用于调整焦点进程的进程优先级及I/O优先级。示例性的,调度执行器可向进程管理器发送调整焦点进程的进程优先级的指令,响应于该指令,进程管理器对焦点进程的进程优先级进行调整。又例如,调度执行器可向I/O管理器发送调整焦点进程的I/O优先级的指令,响应于该指令,I/O管理器对焦点进程的I/O优先级进行调整。
负载管控器还可向芯片策略融合器发送第一CPU功耗调度策略,芯片策略融合器可基于CPU的芯片平台类型及第一CPU功耗调度策略,得到第二CPU功耗调度策略。示例地,CPU的芯片平台类型主要分为两种,分别为(Advanced Micro Devices,AMD)的CPU和的CPU,这两类CPU对于CPU功耗的调整方式并不相同,因此需要进行区分。
若CPU的芯片平台类型为AMD,调度执行器可以向电源管理器发送调整EPP的指令,以调整CPU的EPP。另外,调度执行器还可以向OS2SOC驱动节点发送调整PL1、PL2的指令,以调整CPU的PL1和PL2。
若CPU的芯片平台类型为调度执行器可以通过WMI插件向Intel DTT驱动发送第二CPU功耗调度策略,第二CPU功耗调度策略可包括PL1的最小值、PL1的最大值、PL2、PL2的持续时间及EPP,由Intel DTT驱动CPU基于第二CPU功耗调度策略运行。
图4是本申请实施例提供的一种电子设备100对资源进行调度的软件及硬件的工作流程示意图。参见图4,电子设备可以采用分层架构,自下而上分为固件层、驱动层和应用层。示例地,驱动层自下而上可以包括HAL、内核和驱动层及执行体(图中未示出)。
电子设备的操作系统包括系统探针模块、场景管理引擎、执行调度引擎和芯片调度引擎。系统探针模块、场景管理引擎和执行调度引擎位于应用层,场景管理引擎可以作为插件运行,执行调度引擎可以作为服务运行。芯片调度引擎位于驱动层,且芯片调度引擎可以作为服务运行。
场景管理引擎可以与系统探针模块进行交互,以根据系统探针模块反馈的电子设备的运行状态识别用户场景。场景管理引擎可以与执行调度引擎进行交互,场景管理引擎识别出用户场景后,根据用户场景确定调度策略,将调度策略下发给执行调度引擎。执行调度引擎接收到调度策略后,向场景管理引擎返回接收结果,以通知场景管理引擎自身已成功接收到调度策略。然后,执行调度引擎向芯片调度引擎发送调度策略,由芯片调度引擎执行调度策略。
场景管理引擎包括场景识别模块、场景库、策略调度模块和策略库。执行调度引擎包括场景交互模块、调度策略融合模块和调度执行器。芯片调度引擎包括WMI插件和OS2SOC驱动。固件层包括Intel DTT、AMD电源管理框架(power management framework,PMF)、NVIDIA数据库(database,DB)等。
如图4所示,场景管理引擎可以分别与系统探针模块、执行调度引擎、策略配置模块和管家界面模块进行交互。
管家界面模块可以向场景管理引擎发送电子设备当前使用的系统电源模式,系统电源模式可以辅助场景管理引擎确定调度策略;策略配置模块用于向场景管理引擎发送预先配置的多种调度策略,多种调度策略可以称为多种资源调度策略。
系统探针模块可以获取电子设备的运行状态。例如,系统探针模块可以包括电源状态探针、外设状态探针、音视频状态探针、应用切换探针、系统负载探针、系统运行状态探针等。
其中,电源状态探针用于检测电源状态,电源状态包括电池(剩余)电量、电源模式、电源计划等,电源模式可以包括AC和DC,电源计划可以包括能效计划、平衡计划、性能计划等。外设状态探针用于检测外设事件,外设事件包括鼠标滚轮滑动事件、鼠标点击事件、键盘输入事件、麦克风输入事件、摄像头输入事件等。音视频状态探针用于检测电子设备当前存在的音频事件和视频事件。应用切换探针用于检测电子设备当前运行的应用,即检测焦点应用、非焦点应用、后台应用等,其中,焦点应用为焦点窗口所属的应用,非焦点应用为当前打开的窗口中不是焦点窗口但也未被最小化的窗口所属的应用,后台应用为后台运行的应用。系统负载探针用于检测系统当前的负载等级。系统运行状态探针用于检测系统当前的运行状态,即检测系统当前是否为idle(空闲)状态。
系统探针模块通过各种探针检测电子设备的运行状态,即得到探针状态。场景管理引擎可以向系统探针模块订阅探针状态。这种情况下,系统探针模块得到探针状态后,可向场景管理引擎上报探针状态。
场景管理引擎中的场景库用于存储多个用户场景,如用户场景包括社交场景、办公场景和浏览器场景等多个主场景,每个主场景下可以划分多个子场景,如浏览器场景包括浏览器上网场景、浏览器音频播放场景和浏览器视频播放场景等。场景管理引擎中的策略库用于存储策略配置模块发送的多种调度策略,调度策略和用户场景可以是一对一关系,如为每个子场景分配一个调度策略。例如,调度策略包括大小核调度和办公策略库等,办公策略库中记录与办公应用相关的调度策略,大小核调度是第12代平台的架构提供的大小核调度能力,指示优先使用大核(偏性能)还是小核(偏能效)进行的策略配置。
策略调度模块可以向场景识别模块发送查询订阅场景请求,查询订阅场景请求用于触发场景识别模块进行场景识别,查询订阅场景请求可以在电子设备开机后立即发送,也可以定期发送,本申请实施例对此不作限定。
场景识别模块在接收到查询订阅场景请求后,向系统探针模块发送查询订阅状态请求,查询订阅状态请求用于指示系统探针模块中的各探针进行状态探测/状态确定等,然后系统探针模块可以向场景识别模块上报电子设备的状态。场景识别模块根据电子设备的状态,从场景库中确定出电子设备当前所处的用户场景,向策略调度模块上报用户场景。策略调度模块可以根据电子设备当前所处的用户场景,从策略库中确定调度策略。
此外,策略调度模块还可以接收管家界面模块下发的系统电源模式,系统电源模式可根据管家界面模块下发的用户开关标识确定。策略调度模块在确定调度策略时可以参照系统电源模式,如确定与当前使用的系统电源模式和当前所处的用户场景相匹配的调度策略。或者,系统电源模式作为策略调度模块是否确定调度策略的条件,在系统电源模式为预设模式时,策略调度模块根据用户场景确定调度策略。
策略调度模块将调度策略发送给场景交互模块,场景交互模块在接收到调度策略后,向策略调度模块返回接收结果,接收结果用于通知策略调度模块自身已成功接收到调度策略。场景交互模块将调度策略发送给调度策略融合模块,由调度策略融合模块对调度策略进行解析转义,以将调度策略中的策略参数解析转义成硬件平台识别的参数。调度策略融合模块将解析转义后的调度策略发送给调度执行器。调度执行器根据硬件平台类型发送解析转义后的调度策略。
例如,如果硬件平台类型为调度执行器可以向OS2SOC驱动发送解析转义后的调度策略;如果硬件平台类型为调度执行器可以通过WMI插件向Intel驱动发送解析转义后的调度策略。在本申请实施例中,调度策略可以是芯片调度策略,通过调整芯片的能效比,实现功耗的最佳平衡。例如,调度策略可以是CPU的功耗调度策略。
如果硬件平台类型为调度执行器可以向电源管理器发送功耗调度策略中的用于调整CPU的EPP的指令,EPP用于反映CPU的调度倾向,其取值范围为0~255。CPU能效比越小,则表明CPU趋向于高性能;CPU能效比越高,则表明CPU趋向于低功耗。另外,调度执行器还可以向OS2SOC驱动发送功耗调度策略中的用于调整CPU的PL1、PL2的指令。PL1指CPU在正常负载下的功耗,相当于热设计功耗,CPU绝大部分时间的运行功耗不超过PL1。PL2指CPU在短时间内可达到的最高功耗,其具有持续时间限制。一般地,PL2大于PL1。若硬件平台类型为调度执行器可以通过WMI插件向Intel DTT发送调度策略,其中可包括PL1的最小值、PL1的最大值、PL2、PL2的持续时间及EPP,由Intel DTT驱动CPU基于该调度策略运行。WMI插件、Intel DTT和OS2SOC驱动在接收到调度策略后,可以返回接收结果,接收结果用于指示成功接收到调度策略。
需要说明的是,在上文图3实施例中,系统事件探针中可以包括焦点窗口探针。焦点窗口探针用于在焦点窗口变化时确定最新的焦点窗口。也即,系统事件探针获取焦点窗口变化事件的操作可以由系统事件探针中的焦点窗口探针来执行。
同样的,上文图4实施例中,应用切换探针中可以包括焦点窗口探针。焦点窗口探针用于在焦点窗口变化时确定最新的焦点窗口,焦点窗口探针可以向应用切换探针上报焦点窗口变化事件。应用切换探针可以根据焦点窗口探针上报的焦点窗口变化事件确定当前的焦点应用、非焦点应用、后台应用等。
然而,用户在使用电子设备的过程中经常会切换不同的窗口,并且,一些非焦点应用也经常会弹出通知窗口,这会导致焦点窗口的频繁变化,这样会导致电子设备依赖于焦点窗口执行的调度策略频繁变化,从而不利于电子设备的稳定运行。为此,需要做焦点窗口防抖措施。
例如,用户主动切换窗口,如通过点击任务栏图标、Alt+Tab快捷键、Win+Tab快捷键等操作从窗口a切换到窗口b,在此过程中,窗口进程的变化过程为:a.exe→explorer.exe→b.exe,explorer.exe是用于显示系统桌面的图标、任务栏等的进程,explorer.exe所属的窗口在从窗口a切换到窗口b的过程中一闪而过,停留时间很短。此时,需要通过焦点窗口防抖措施来过滤掉explorer.exe所属的窗口,以保证电子设备的稳定运行。
这种情况下,上文图3实施例中的焦点窗口探针获取到焦点窗口变化事件后,系统事件探针可以先执行焦点窗口防抖措施,若在执行焦点窗口防抖措施后该焦点窗口变化事件指示的获得焦点的焦点窗口未被过滤掉,再将该焦点窗口变化事件发送给其他模块,以供其他模块根据最新的焦点窗口执行后续的处理流程。
同样的,上文图4实施例中的应用切换探针接收到焦点窗口探针上报的焦点窗口变化事件后,可以先执行焦点窗口防抖措施,若在执行焦点窗口防抖措施后该焦点窗口变化事件指示的获得焦点的焦点窗口未被过滤掉,再根据最新的焦点窗口确定焦点应用、非焦点应用、后台应用等,之后将焦点应用、非焦点应用、后台应用等应用的相关信息(包括但不限于应用名、类型等)发送给其他模块,以供其他模块据此执行后续的处理流程。
在本申请实施例中的焦点窗口防抖措施可以通过焦点窗口获得焦点的持续时长来实现。具体地,在焦点窗口变化后,若当前的焦点窗口获得焦点的持续时长达到预设时长,再根据这个焦点窗口执行后续处理流程,而若当前的焦点窗口获得焦点的持续时长未达到预设时长时焦点窗口就又发生变化,则过滤这个焦点窗口,即不根据这个焦点窗口执行后续处理流程,接着继续对变化后最新的焦点窗口执行焦点窗口防抖措施。下面对此进行具体说明。
图5是本申请实施例提供的一种焦点窗口处理方法的流程图。参见图5,该方法包括:
步骤501:电子设备检测焦点窗口。
电子设备中的API(包括但不限于Windows底层API)可以监听电子设备中的窗口变化,继而生成系统通知,该系统通知中携带窗口事件,该窗口事件可以包括窗口全屏事件、窗口最小化事件、焦点获得事件、焦点失去事件等。窗口全屏事件用于指示某个窗口被全屏化了。窗口最小化事件用于指示某个窗口被最小化了。焦点获得事件用于指示某个窗口获得焦点。焦点失去事件用于指示某个窗口失去焦点。获得焦点的窗口即是焦点窗口。而失去焦点的窗口则是上一次获得焦点的窗口,即是上一个历史焦点窗口。
电子设备可以根据该窗口事件确定各个窗口的状态,即确定哪个窗口处于全屏状态、哪个窗口处于最小化状态、哪个窗口获得焦点、哪个窗口失去焦点。电子设备根据各个窗口的状态就可以获知焦点窗口是否发生变化,且在焦点窗口发生变化时可以获知最新获得焦点的焦点窗口。
值得说明的是,步骤501中电子设备对焦点窗口的检测可以是在电子设备的运行过程中持续执行的,以便在焦点窗口发生变化时电子设备可以及时获知。
步骤502:若电子设备检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口。
这种情况下,电子设备在确定目标焦点窗口后,可以根据目标焦点窗口获得焦点的持续时长确定是否要根据目标焦点窗口执行后续处理流程。
目标焦点窗口获得焦点的持续时长即是电子设备确定出目标焦点窗口的时刻至当前时刻的时长。也即,目标焦点窗口获得焦点的持续时长是最新检测到焦点窗口发生变化且变化为目标焦点窗口的时刻至当前时刻的时长。
若目标焦点窗口获得焦点的持续时长未达到(即小于)预设时长,则执行如下步骤503。若目标焦点窗口获得焦点的持续时长达到(即大于或等于)预设时长,则执行如下步骤504。预设时长可以预先进行设置,且预设时长可以设置的较短,如预设时长可以为3000ms(毫秒)。
步骤503:若在电子设备确定出目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则电子设备不根据目标焦点窗口执行预设处理流程,重新执行上述步骤502。
若在电子设备确定出目标焦点窗口后的预设时长内检测到焦点窗口发生变化,说明目标焦点窗口获得焦点的持续时长未达到预设时长,即目标焦点窗口获得焦点的时间很短,很有可能不是用户当前需要使用的窗口,因而可以将目标焦点窗口过滤掉,不根据目标焦点窗口执行预设处理流程。
步骤504:若在电子设备确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则电子设备根据目标焦点窗口执行预设处理流程。
若在电子设备确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,说明目标焦点窗口获得焦点的持续时长达到预设时长,即目标焦点窗口获得焦点的时间较长,很有可能是用户当前需要使用的窗口,因而可以不过滤目标焦点窗口,正常根据目标焦点窗口执行预设处理流程。
可选地,步骤504可以通过如下三种可能的方式实现:
第一种可能的方式中,若在电子设备确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则可以直接根据目标焦点窗口执行预设处理流程。
第二种可能的方式中,若在电子设备确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则可以判断目标焦点窗口与上一个历史焦点窗口是否是同一应用中的窗口;若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,则根据目标焦点窗口执行预设处理流程;若目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口,则不根据目标焦点窗口执行预设处理流程,结束操作。
若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,说明是在不同应用之间进行了焦点窗口的切换,这种情况下,切换后的目标焦点窗口很有可能是用户最新需要使用的窗口,因而可以不过滤目标焦点窗口,正常根据目标焦点窗口执行预设处理流程。
若目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口,说明是在同一应用中进行了焦点窗口的切换,这种情况下,虽然焦点窗口发生切换,但是切换前后焦点窗口所属的应用(即焦点应用)并未发生改变,从而可以确定用户需求并未发生较大改变,因而为了减轻电子设备的处理负担,维持电子设备的稳定运行,可以将目标焦点窗口过滤掉,不根据目标焦点窗口执行预设处理流程,并结束操作。
其中,电子设备判断目标焦点窗口与上一个历史焦点窗口是否是同一应用中的窗口的操作可以为:判断目标焦点窗口的进程与上一个历史焦点窗口的进程是否是同一应用的进程;若目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程,则确定目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口;若目标焦点窗口的进程与上一个历史焦点窗口的进程是不同应用的进程,则确定目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口。
窗口是与用户进行可视化界面交互的,窗口的进程中的数据和指令是控制该窗口实现交互的。窗口事件中可以携带窗口标识(包括但不限于窗口句柄)。每个窗口在被创建出来之后就会被赋予一个窗口句柄,该窗口句柄实际上是一个指针,指向一个数据结构体,这个数据结构体里包含有窗口的各种信息,如窗口大小、窗口名等。电子设备可以根据窗口标识确定窗口进程。
电子设备可以从焦点获得事件中获取到焦点窗口的窗口标识,继而根据焦点窗口的窗口标识可以确定焦点窗口的进程,具体可以根据焦点窗口的窗口标识获取到焦点窗口的进程的进程标识(即进程ID)。进程ID是在一个进程被创建出来时系统内核为其分配的唯一标识。
应用进程可以包括应用的主进程和子进程。可选地,一个应用中不同窗口的进程可以是这个应用的不同的子进程。一个应用中不同窗口的进程的进程标识可能会相同,也可能会不同。而若两个窗口的进程的进程标识相同,则这两个窗口属于同一应用;若两个窗口的进程的进程标识不同,则这两个窗口有可能属于同一应用,也有可能属于不同应用。
这种情况下,电子设备判断目标焦点窗口的进程与上一个历史焦点窗口的进程是否是同一应用的进程的操作可以为:若目标焦点窗口的进程的进程标识与上一个历史焦点窗口的进程的进程标识相同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程。若目标焦点窗口的进程的进程标识与上一个历史焦点窗口的进程的进程标识不同,则从应用白名单中查找目标焦点窗口的进程的进程标识对应的应用标识,且从应用白名单中查找上一个历史焦点窗口的进程的进程标识对应的应用标识;若目标焦点窗口的进程的进程标识对应的应用标识与上一个历史焦点窗口的进程的进程标识对应的应用标识相同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程;若目标焦点窗口的进程的进程标识对应的应用标识与上一个历史焦点窗口的进程的进程标识对应的应用标识不同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是不同应用的进程。
应用白名单是事先设置的,且可以是技术人员根据使用需求事先设置的。应用白名单包括多个应用标识中每个应用标识对应的至少一个进程标识,该多个应用标识中每个应用标识对应的至少一个进程标识是每个应用标识所标识的应用的至少一个进程中每个进程的进程标识。
作为一种示例,应用白名单可以包括电子设备中所有应用中每个应用的应用标识对应的至少一个进程标识。作为另一种示例,应用白名单可以包括电子设备中部分应用中每个应用的应用标识对应的至少一个进程标识,这种情况下,应用白名单中的多个应用标识中每个应用标识所标识的应用是技术人员根据使用需求确定的需要重点关注的应用,如可以是用户经常使用的应用,或者可以是会对电子设备的能耗或续航能力造成较大影响的应用。
比如,目标焦点窗口的进程的进程标识是进程标识1,上一个历史焦点窗口的进程的进程标识是进程标识2。电子设备可以从下表1所示的应用白名单中获取到进程标识1对应的应用标识为应用标识1,且可以从下表1所示的应用白名单中获取到进程标识2对应的应用标识为应用标识1,则可知目标焦点窗口的进程的进程标识对应的应用标识与上一个历史焦点窗口的进程的进程标识对应的应用标识相同,继而确定目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程。
表1
本申请实施例仅以上表1为例来对应用白名单进行示例性说明,上表1并不对本申请实施例构成限定。
需注意的是,在从应用白名单中查找目标焦点窗口的进程的进程标识对应的应用标识时,若从应用白名单中未查找到目标焦点窗口的进程的进程标识对应的应用标识,也即,应用白名单中不存在目标焦点窗口的进程的进程标识,则说明目标焦点窗口所属的应用不是重点关注的应用,因而为了减轻电子设备的处理负担,维持电子设备的稳定运行,可以将目标焦点窗口过滤掉,不根据目标焦点窗口执行预设处理流程,并结束操作。
第三种可能的方式:若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,则可以判断应用白名单中是否存在目标焦点窗口的进程的进程标识;若应用白名单中存在目标焦点窗口的进程的进程标识,则根据目标焦点窗口执行预设处理流程;若应用白名单中不存在目标焦点窗口的进程的进程标识,则不根据目标焦点窗口执行预设处理流程,结束操作。
若应用白名单中不存在目标焦点窗口的进程的进程标识,说明目标焦点窗口所属的应用的应用标识不在应用白名单中,即目标焦点窗口所属的应用不是重点关注的应用,因而为了减轻电子设备的处理负担,维持电子设备的稳定运行,可以将目标焦点窗口过滤掉,不根据目标焦点窗口执行预设处理流程,并结束操作。若应用白名单中存在目标焦点窗口的进程的进程标识,说明目标焦点窗口所属的应用的应用标识在应用白名单中,即目标焦点窗口所属的应用是重点关注的应用,因而可以根据目标焦点窗口执行预设处理流程。
值得注意的是,通过上述焦点窗口防抖措施,可以排除窗口变化过程中短暂出现的窗口以及同进程或同应用内的子窗口,从而可以减少对上层业务的干扰。
预设处理流程可以事先设置,且预设处理流程可以是技术人员根据使用需求事先设置的。
在一种可能的实现方式中,预设处理流程可以是上文图3实施例所述的资源调度流程,具体为:根据目标焦点窗口确定用户场景,根据用户场景进行资源调度。
作为一种示例,预设处理流程可以是上文图3实施例所述的资源调度流程。这种情况下,在上文图3实施例中,上述步骤501可以由焦点窗口探针执行,上述步骤502-步骤504可以由系统事件探针执行,即系统事件探针可以在焦点窗口探针获取到焦点窗口变化事件后执行上述502-步骤504。若系统事件探针最终确定需要根据目标焦点窗口执行预设处理流程,则系统事件探针可以将焦点窗口变化事件发送给场景识别模块,以供场景识别模块根据焦点窗口变化事件指示的最新的焦点窗口确定用户场景,继而根据用户场景进行资源调度,如此,可以在满足用户需求的情况下,降低电子设备的能耗。
作为另一种示例,预设处理流程可以是上文图4实施例所述的资源调度流程。这种情况下,在上文图4实施例中,上述步骤501可以由焦点窗口探针执行,上述步骤502-步骤504可以由应用切换探针执行,即应用切换探针可以在焦点窗口探针获取到焦点窗口变化事件后执行上述502-步骤504。若应用切换探针最终确定需要根据目标焦点窗口执行预设处理流程,则应用切换探针可以根据目标焦点窗口确定焦点应用、非焦点应用和后台应用等应用的应用信息,然后将这些应用的应用信息发送给场景管理引擎,以供场景管理引擎据此确定用户场景,继而根据用户场景进行资源调度,如此,可以在满足用户需求的情况下,降低电子设备的能耗。
在本申请实施例中,电子设备可以根据当前所处的用户场景合理配置资源,尽可能保证资源在用户场景下得到合理分配,从而降低电子设备功耗,提高电子设备的续航,降低对用户场景的影响。并且,由于电子设备是根据当前所处的用户场景合理分配资源,所以使得资源可以满足用户场景的资源需求,保证用户场景下应用的流畅运行,提高用户体验。
在另一种可能的实现方式中,预设处理流程可以是指令识别处理流程,具体是:确定目标焦点窗口所属的应用为焦点应用,根据焦点应用和当前接收到的用户操作,确定需要执行的指令。
在焦点应用不同时,同一用户操作所触发的指令可以是不同的。比如,在手势识别场景下,当不同的应用处于焦点时,同一手势操作可以向系统或应用发送不同的指令。以向右挥手的手势操作为例,当焦点应用为音乐应用时,该手势操作可以触发切换下一曲指令;当焦点应用为视频应用时,该手势操作可以触发视频快进指令;当焦点应用为幻灯片应用时,该手势操作可以触发翻页指令。如此,可以增加用户操作的灵活性。
这种方式中,焦点应用可以用于对外界输入电子设备的信号(即用户操作)进行识别处理。可选地,电子设备中可以设置有焦点应用标识、用户操作标识和指令之间的对应关系,电子设备在确定出焦点应用且检测到用户操作后,可以根据该焦点应用的应用标识和该用户操作的操作标识,从该对应关系中获取对应的指令,然后执行所获取的指令。
在本申请实施例,检测焦点窗口。若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口。若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据目标焦点窗口执行预设处理流程。若在确定出目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则不根据目标焦点窗口执行预设处理流程,重新执行若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口的步骤。如此,在焦点窗口频繁发生变化时,可以实现焦点窗口防抖,过滤掉获得焦点的持续时长较短的焦点窗口,从而可以降低电子设备的处理压力,保证电子设备的稳定运行。
下面结合图6,来对上文图5实施例所述的焦点窗口处理方法进行示例性说明。
图6是本申请实施例提供的一种焦点窗口处理方法的流程图,参见图6,该焦点窗口处理方法可以包括如下步骤601-步骤606。
步骤601:观察者向探针管理程序注册探针回调。
可选地,观察者(Observer)可以是需要执行预设处理流程的模块。示例地,观察者可以是上文图3实施例中所述的场景识别模块,也可以是上文图4实施例中所述的场景管理引擎。当然,观察者也可以是其他需要获知焦点窗口或焦点应用的模块,本申请实施例对此不作限定。
观察者向探针管理程序(ProbeManager)注册探针回调的作用是当探针管理程序获取到焦点窗口事件时,可以向观察者返回该焦点窗口事件。探针管理程序可以是上文3实施例中所述的系统事件探针,也可以是上文图4实施例中所述的应用切换探针。当然,探针管理程序也可以是其他可以实现探针管理的模块,本申请实施例对此不作限定。
步骤602:探针管理程序向焦点窗口探针注册探针回调。
探针管理程序向焦点窗口探针(FocusWindowProbe)注册探针回调的作用是当焦点窗口探针获取到焦点窗口变化事件时,可以向探针管理程序返回该焦点窗口变化事件。
步骤603:焦点窗口探针指示API模块安装系统事件钩子。
可选地,API模块可以是WinEvenHookUtil。API模块是对API的一个封装模块,里面会调用多个API。
系统事件钩子可以截获各种窗口事件。该窗口事件可以包括窗口全屏事件、窗口最小化事件、焦点获得事件、焦点失去事件等。
步骤604:API模块在获取到窗口事件时,向焦点窗口探针返回窗口事件。
步骤605:焦点窗口探针在该窗口事件为焦点获得事件时,将该焦点获得事件发送给探针管理程序。
该焦点获得事件中携带窗口标识,该窗口标识用于标识该焦点获得事件所指示的获得焦点的焦点窗口。
步骤606:探针管理程序接收到该焦点获得事件时,可以按照上述步骤502-步骤504实现焦点窗口防抖措施。
探针管理程序在执行焦点窗口防抖措施后,若最终确定需要根据该焦点获得事件所指示的焦点窗口执行预设处理流程,则可以将该焦点获得事件所指示的焦点窗口的窗口标识上报给观察者,或者可以将该焦点窗口的进程的进程标识上报给观察者,或者可以将该焦点窗口所属的应用的应用标识上报给观察者,本申请实施例对此不作限定。
值得注意的是,焦点窗口在该窗口事件为焦点获得事件时,探针管理程序还可以多角度检测该焦点获得事件所指示的焦点窗口是否处于全屏状态。一种情况下,若该焦点窗口是窗口全屏事件所指示的窗口,则可以确定该焦点窗口处于全屏状态。另一种情况下,可以根据该焦点窗口的窗口标识获取该焦点窗口的窗口显示参数,若该窗口显示参数为最大化,则确定该焦点窗口处于全屏状态。又一种情况下,若该焦点窗口所属的应用为指定应用(如浏览器),则可以根据该焦点窗口的窗口标识获取该焦点窗口的窗口大小(也可称为窗口尺寸),将该窗口大小与屏幕大小(也可称为屏幕尺寸)进行比较,若该窗口大小与该屏幕大小之间的差距较小,则可以确定该焦点窗口处于全屏状态。
图7是本申请实施例提供的一种焦点窗口处理装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为上文图1-图2实施例所述的电子设备100。参见图7,该装置包括:检测模块701、第一确定模块702、执行模块703和触发模块704。
检测模块701,用于检测焦点窗口;
第一确定模块702,用于若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口;
执行模块703,用于若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据目标焦点窗口执行预设处理流程;
触发模块704,用于若在确定出目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则不根据目标焦点窗口执行预设处理流程,触发确定模块执行若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口的步骤。
可选地,执行模块703用于:
若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,则根据目标焦点窗口执行预设处理流程;
该装置还包括:
结束模块,用于若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口,则不根据目标焦点窗口执行预设处理流程,结束操作。
可选地,该装置还包括:
第二确定模块,用于若目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程,则确定目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口;
第三确定模块,用于若目标焦点窗口的进程与上一个历史焦点窗口的进程是不同应用的进程,则确定目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口。
可选地,该装置还包括:
第四确定模块,用于若目标焦点窗口的进程的进程标识与上一个历史焦点窗口的进程的进程标识相同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程;
第五确定模块,用于若目标焦点窗口的进程的进程标识与上一个历史焦点窗口的进程的进程标识不同,则从应用白名单中查找目标焦点窗口的进程的进程标识对应的应用标识,且从该应用白名单中查找上一个历史焦点窗口的进程的进程标识对应的应用标识;若目标焦点窗口的进程的进程标识对应的应用标识与上一个历史焦点窗口的进程的进程标识对应的应用标识相同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是同一应用的进程;若目标焦点窗口的进程的进程标识对应的应用标识与上一个历史焦点窗口的进程的进程标识对应的应用标识不同,则确定目标焦点窗口的进程与上一个历史焦点窗口的进程是不同应用的进程;其中,该应用白名单包括多个应用标识中每个应用标识对应的至少一个进程标识,该多个应用标识中每个应用标识对应的至少一个进程标识是每个应用标识所标识的应用的至少一个进程中每个进程的进程标识。
可选地,执行模块703用于:
若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,且若该应用白名单中存在目标焦点窗口的进程的进程标识,则根据目标焦点窗口执行预设处理流程;
该装置还包括:
结束模块,用于若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,且若目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,且若该应用白名单中不存在目标焦点窗口的进程的进程标识,则不根据目标焦点窗口执行预设处理流程,结束操作。
可选地,执行模块703用于:
根据目标焦点窗口确定用户场景;根据该用户场景进行资源调度。
可选地,执行模块703用于:
确定目标焦点窗口所属的应用为焦点应用;根据该焦点应用和当前接收到的用户操作,确定需要执行的指令。
在本申请实施例中,检测焦点窗口。若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口。若在确定出目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据目标焦点窗口执行预设处理流程。若在确定出目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则不根据目标焦点窗口执行预设处理流程,重新执行若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口的步骤。如此,在焦点窗口频繁发生变化时,可以实现焦点窗口防抖,过滤掉获得焦点的持续时长较短的焦点窗口,从而可以降低电子设备的处理压力,保证电子设备的稳定运行。
需要说明的是:上述实施例提供的焦点窗口处理装置在焦点窗口处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的焦点窗口处理装置与焦点窗口处理方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种焦点窗口处理方法,其特征在于,所述方法包括:
检测焦点窗口;
若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口;
若在确定出所述目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据所述目标焦点窗口执行预设处理流程;
若在确定出所述目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则不根据所述目标焦点窗口执行预设处理流程,重新执行所述若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口的步骤。
2.如权利要求1所述的方法,其特征在于,所述若在确定出所述目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据所述目标焦点窗口执行预设处理流程,包括:
若在确定出所述目标焦点窗口后至少持续所述预设时长未检测到焦点窗口发生变化,且若所述目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,则根据所述目标焦点窗口执行所述预设处理流程;
所述若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口之后,还包括:
若在确定出所述目标焦点窗口后至少持续所述预设时长未检测到焦点窗口发生变化,且若所述目标焦点窗口与上一个历史焦点窗口是同一应用中的窗口,则不根据所述目标焦点窗口执行所述预设处理流程,结束操作。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
若所述目标焦点窗口的进程与所述上一个历史焦点窗口的进程是同一应用的进程,则确定所述目标焦点窗口与所述上一个历史焦点窗口是同一应用中的窗口;
若所述目标焦点窗口的进程与所述上一个历史焦点窗口的进程是不同应用的进程,则确定所述目标焦点窗口与所述上一个历史焦点窗口是不同应用中的窗口。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若所述目标焦点窗口的进程的进程标识与所述上一个历史焦点窗口的进程的进程标识相同,则确定所述目标焦点窗口的进程与所述上一个历史焦点窗口的进程是同一应用的进程;
若所述目标焦点窗口的进程的进程标识与所述上一个历史焦点窗口的进程的进程标识不同,则从应用白名单中查找所述目标焦点窗口的进程的进程标识对应的应用标识,且从所述应用白名单中查找所述上一个历史焦点窗口的进程的进程标识对应的应用标识;若所述目标焦点窗口的进程的进程标识对应的应用标识与所述上一个历史焦点窗口的进程的进程标识对应的应用标识相同,则确定所述目标焦点窗口的进程与所述上一个历史焦点窗口的进程是同一应用的进程;若所述目标焦点窗口的进程的进程标识对应的应用标识与所述上一个历史焦点窗口的进程的进程标识对应的应用标识不同,则确定所述目标焦点窗口的进程与所述上一个历史焦点窗口的进程是不同应用的进程;其中,所述应用白名单包括多个应用标识中每个应用标识对应的至少一个进程标识,所述多个应用标识中每个应用标识对应的至少一个进程标识是每个应用标识所标识的应用的至少一个进程中每个进程的进程标识。
5.如权利要求2-4任一所述的方法,其特征在于,所述若在确定出所述目标焦点窗口后至少持续所述预设时长未检测到焦点窗口发生变化,且若所述目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,则根据所述目标焦点窗口执行所述预设处理流程,包括:
若在确定出所述目标焦点窗口后至少持续所述预设时长未检测到焦点窗口发生变化,且若所述目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,且若所述应用白名单中存在所述目标焦点窗口的进程的进程标识,则根据所述目标焦点窗口执行所述预设处理流程;
所述若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口之后,还包括:
若在确定出所述目标焦点窗口后至少持续所述预设时长未检测到焦点窗口发生变化,且若所述目标焦点窗口与上一个历史焦点窗口是不同应用中的窗口,且若所述应用白名单中不存在所述目标焦点窗口的进程的进程标识,则不根据所述目标焦点窗口执行所述预设处理流程,结束操作。
6.如权利要求1-5任一所述的方法,其特征在于,所述根据所述目标焦点窗口执行预设处理流程,包括:
根据所述目标焦点窗口确定用户场景;
根据所述用户场景进行资源调度。
7.如权利要求1-5任一所述的方法,其特征在于,所述根据所述目标焦点窗口执行预设处理流程,包括:
确定所述目标焦点窗口所属的应用为焦点应用;
根据所述焦点应用和当前接收到的用户操作,确定需要执行的指令。
8.一种焦点窗口处理装置,其特征在于,所述装置包括:
检测模块,用于检测焦点窗口;
确定模块,用于若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口;
执行模块,用于若在确定出所述目标焦点窗口后至少持续预设时长未检测到焦点窗口发生变化,则根据所述目标焦点窗口执行预设处理流程;
触发模块,用于若在确定出所述目标焦点窗口后的预设时长内检测到焦点窗口发生变化,则不根据所述目标焦点窗口执行预设处理流程,触发所述确定模块执行所述若检测到焦点窗口发生变化,则确定最新获得焦点的目标焦点窗口的步骤。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529301 | 2022-05-16 | ||
CN2022105293018 | 2022-05-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069209A true CN116069209A (zh) | 2023-05-05 |
Family
ID=86177543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210609385.6A Pending CN116069209A (zh) | 2022-05-16 | 2022-05-31 | 焦点窗口处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069209A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117289833A (zh) * | 2023-11-23 | 2023-12-26 | 之江实验室 | 面向集成开发环境的悬浮窗显示和交互方法、设备、介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620529A (zh) * | 2008-07-03 | 2010-01-06 | 联想(北京)有限公司 | 拦截弹出窗口的方法和系统 |
US20100287498A1 (en) * | 2009-05-07 | 2010-11-11 | International Business Machines Corporation | User interface command disambiguation in a multi-window operating environment |
CN102073545A (zh) * | 2011-02-28 | 2011-05-25 | 中国人民解放军国防科学技术大学 | 操作系统中防止用户界面卡屏的进程调度方法及装置 |
CN102681751A (zh) * | 2011-03-15 | 2012-09-19 | 联想(北京)有限公司 | 输入控制方法、输入识别方法及设备 |
CN105808257A (zh) * | 2016-03-08 | 2016-07-27 | 杭州朗和科技有限公司 | 一种应用弹窗识别方法和装置 |
-
2022
- 2022-05-31 CN CN202210609385.6A patent/CN116069209A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620529A (zh) * | 2008-07-03 | 2010-01-06 | 联想(北京)有限公司 | 拦截弹出窗口的方法和系统 |
US20100287498A1 (en) * | 2009-05-07 | 2010-11-11 | International Business Machines Corporation | User interface command disambiguation in a multi-window operating environment |
CN102073545A (zh) * | 2011-02-28 | 2011-05-25 | 中国人民解放军国防科学技术大学 | 操作系统中防止用户界面卡屏的进程调度方法及装置 |
CN102681751A (zh) * | 2011-03-15 | 2012-09-19 | 联想(北京)有限公司 | 输入控制方法、输入识别方法及设备 |
CN105808257A (zh) * | 2016-03-08 | 2016-07-27 | 杭州朗和科技有限公司 | 一种应用弹窗识别方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117289833A (zh) * | 2023-11-23 | 2023-12-26 | 之江实验室 | 面向集成开发环境的悬浮窗显示和交互方法、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115599513B (zh) | 资源调度方法及电子设备 | |
CN116028205B (zh) | 资源调度方法和电子设备 | |
US20170078160A1 (en) | Method for processing services and electronic device for the same | |
CN115809139A (zh) | 内存管理的方法及电子设备 | |
KR20170108636A (ko) | 태스크 스케줄링 방법 및 이를 구현한 전자 장치 | |
CN115292199A (zh) | 一种显存泄露的处理方法及相关装置 | |
CN116069209A (zh) | 焦点窗口处理方法、装置、设备和存储介质 | |
CN105677481B (zh) | 一种数据处理方法、系统及电子设备 | |
CN116025580B (zh) | 调节风扇转速的方法和电子设备 | |
WO2023221752A1 (zh) | 信息处理方法和电子设备 | |
CN116028210B (zh) | 资源调度方法、电子设备及存储介质 | |
CN116027879B (zh) | 确定参数的方法、电子设备和计算机可读存储介质 | |
CN117130454A (zh) | 功耗调整方法和电子设备 | |
CN116578422A (zh) | 资源分配方法和电子设备 | |
CN116028211A (zh) | 显卡调度方法、电子设备和计算机可读存储介质 | |
EP4332756A1 (en) | Application deployment method, distributed operation system, electronic device, and storage medium | |
CN116028005B (zh) | 音频会话获取方法、装置、设备和存储介质 | |
CN116028208B (zh) | 系统负载确定方法、装置、设备和存储介质 | |
CN116055443B (zh) | 识别社交场景的方法、电子设备及计算机可读存储介质 | |
KR101614920B1 (ko) | 다수 개의 컴퓨팅 시스템 및/또는 환경들에서의 입출력 자원들의 공유 | |
CN116028207B (zh) | 调度策略确定方法、装置、设备和存储介质 | |
CN116027880B (zh) | 资源调度方法和电子设备 | |
CN116089055B (zh) | 资源调度方法和装置 | |
CN116028209B (zh) | 资源调度方法、电子设备及存储介质 | |
CN113495787A (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 |