进程控制方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:35051917 阅读:59 留言:0更新日期:2022-09-28 10:54
本申请涉及一种进程控制方法、装置、计算机设备和存储介质。通过获取运行中的应用的运行状态,若应用的运行状态由可见状态切换为不可见状态,获取上述应用在不可见状态下对应的目标进程,并且目标进程满足的条件包括:对应的界面、窗口为不可见;无对应的通知以及无对应的组件。并控制上述目标进程下的线程停止执行后台帧绘制。相较于传统的当应用在后台时仍然执行应用的帧绘制过程的方式,本方案通过监测应用的运行状态,在检测到应用由可见状态切换为不可见状态时,控制应用在不可见状态下的满足条件的目标进程下的线程停止执行后台帧绘制,从而实现减少资源浪费的效果。从而实现减少资源浪费的效果。从而实现减少资源浪费的效果。

【技术实现步骤摘要】
进程控制方法、装置、计算机设备和存储介质


[0001]本申请涉及计算机
,特别是涉及一种进程控制方法、装置、计算机设备和存储介质。

技术介绍

[0002]目前智能终端已经成为了人们生活中的必需品之一。智能终端中通常有多种应用程序,各个应用程序在运行过程中,需要使用到多种进程来实现应用程序功能的正常运行。应用程序在运行时,分为前台运行和后台运行的情况,当应用程序在后台运行时,代表着用户暂时不需要使用该应用程序,然而,目前智能终端中的应用程序在后台运行时,应用的进程仍然会不断申请资源执行内部逻辑,导致该应用的CPU占用升高,浪费资源。
[0003]因此,目前对应用程序的进程控制存在资源浪费的缺陷。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够减少资源浪费的进程控制方法、装置、计算机设备和存储介质。
[0005]一种进程控制方法,所述方法包括:
[0006]获取运行中的应用的运行状态;
[0007]若所述运行状态由可见状态切换为不可见状态,获取所述应用在所述不可见状态下的目标进程;所述目标进程满足条件:对应的界面和/或窗口为不可见,无对应的通知以及无对应的组件;
[0008]控制所述目标进程下的线程停止执行后台帧绘制。
[0009]在其中一个实施例中,所述获取运行中的应用对应的运行状态,包括:
[0010]获取所述应用对应的进程的进程状态;
[0011]获取所述应用对应的界面的感知状态和窗口的感知状态;
[0012]获取所述应用对应的通知数量以及组件数量;
[0013]由所述进程状态、界面的感知状态、窗口的感知状态、通知数量以及组件数量,得到所述应用对应的运行状态。
[0014]在其中一个实施例中,所述方法还包括:
[0015]基于所述运行状态,检测所述应用是否由可见状态切换为不可见状态;若检测到所述进程对应的进程状态值由第一状态值切换为第二状态值、所述界面的感知状态由可感知状态切换为不可感知状态、所述窗口的感知状态由可感知状态切换为不可感知状态、所述通知数量为零以及所述组件数量为零,确定所述应用由可见状态切换为不可见状态。
[0016]在其中一个实施例中,所述检测所述应用是否由可见状态切换为不可见状态,包括:
[0017]按照预设时间间隔检测所述应用是否由可见状态切换为不可见状态;
[0018]若本次检测结果为否,将所述预设时间间隔延长,得到新的预设时间间隔,并根据
所述新的预设时间间隔检测所述应用是否由可见状态切换为不可见状态;
[0019]若本次检测结果为是,则将所述预设时间间隔还原为初始时间间隔。
[0020]在其中一个实施例中,所述获取所述应用在所述不可见状态下的目标进程之后,还包括:
[0021]获取所述目标进程的接口;
[0022]通过所述接口,将所述第二状态值发送至所述目标进程,以触发所述目标进程基于所述第二状态值控制其下的线程停止后台帧绘制。
[0023]在其中一个实施例中,所述控制所述目标进程下的线程停止执行后台帧绘制,包括:
[0024]将所述第二状态值发送至所述目标进程的主线程,通过所述主线程将所述第二状态值发送至所述目标进程的至少一个子线程,以使所述主线程以及所述至少一个子线程根据所述第二状态值,判断本线程是否符合停止帧绘制的条件,若符合,停止执行本线程的后台帧绘制;
[0025]其中,所述停止帧绘制的条件包括本线程对应的进程的进程状态值为第二状态值、本线程对应的应用的界面不可见、本线程对应的应用的窗口不可见、本线程对应的应用的通知数量为零以及本线程对应的应用的组件数量为零。
[0026]在其中一个实施例中,所述控制所述目标进程下的线程停止后台帧绘制之后,还包括:
[0027]缓存所述目标进程下的目标线程对应的动画处理对象待执行队列;所述目标线程为所述停止执行本线程的后台帧绘制的主线程和/或子线程;
[0028]若检测到所述应用从不可见状态切换为可见状态,根据缓存的所述动画处理对象待执行队列中的动画处理对象,恢复所述目标进程下的目标线程的帧绘制。
[0029]在其中一个实施例中,所述缓存所述目标进程下的目标线程对应的动画处理对象待执行队列,包括:
[0030]在所述目标进程的主线程中缓存所述主线程对应的动画处理对象;
[0031]在所述主线程对应的动画处理对象中,缓存子线程的动画处理对象。
[0032]在其中一个实施例中,所述根据缓存的所述动画处理对象待执行队列中的动画处理对象,恢复所述目标进程下的目标线程的帧绘制,包括:
[0033]向所述目标进程对应的主线程发送遍历回调信息,触发所述主线程恢复执行帧绘制;
[0034]在所述主线程执行帧绘制过程中,检测所述应用是否由不可见状态切换为可见状态,
[0035]若是,则检测所述主线程缓存的子线程的动画处理对象待执行队列中是否包含未完成的帧绘制任务;
[0036]若包含未完成的帧绘制任务,则向对应的子线程发送动画回调指令,以使所述对应的子线程恢复执行所述未完成的帧绘制任务。
[0037]在其中一个实施例中,所述在所述主线程执行帧绘制过程中,检测所述应用是否由不可见状态切换为可见状态,包括:
[0038]在所述主线程执行帧绘制过程中,若检测到所述目标进程为无窗口进程,通过所
述主线程判断所述目标进程的进程状态值是否切换为所述第一状态值,若是,确定所述应用由不可见状态切换为可见状态;
[0039]若所述目标进程为有窗口进程,且所述目标进程的窗口为可感知状态,则确定所述应用由不可见状态切换为可见状态。
[0040]一种进程控制装置,所述装置包括:
[0041]第一获取模块,用于获取运行中的应用的运行状态;
[0042]第二获取模块,用于若所述运行状态由可见状态切换为不可见状态,获取所述应用在所述不可见状态下的目标进程;所述目标进程满足条件:对应的界面和/或窗口为不可见,无对应的通知以及无对应的组件;
[0043]控制模块,用于控制所述目标进程下的线程停止执行后台帧绘制。
[0044]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
[0045]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
[0046]上述进程控制方法、装置、计算机设备和存储介质,通过获取运行中的应用的运行状态,若应用的运行状态由可见状态切换为不可见状态,获取上述应用在不可见状态下对应的目标进程,并且目标进程满足的条件包括:对应的界面、窗口为不可见;无对应的通知以及无对应的组件。并控制上述目标进程下的线程停止执行后台帧绘制。相较于传统的当应用在后台时仍然执行应用的帧绘制过程的方式,本方案通过监测应用的运行状本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进程控制方法,其特征在于,所述方法包括:获取运行中的应用的运行状态;若所述运行状态由可见状态切换为不可见状态,获取所述应用在所述不可见状态下的目标进程;所述目标进程满足条件:对应的界面和/或窗口为不可见,无对应的通知以及无对应的组件;控制所述目标进程下的线程停止执行后台帧绘制。2.根据权利要求1所述的方法,其特征在于,所述获取运行中的应用对应的运行状态,包括:获取所述应用对应的进程的进程状态;获取所述应用对应的界面的感知状态和窗口的感知状态;获取所述应用对应的通知数量以及组件数量;由所述进程状态、界面的感知状态、窗口的感知状态、通知数量以及组件数量,得到所述应用对应的运行状态。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:基于所述运行状态,检测所述应用是否由可见状态切换为不可见状态;若检测到所述进程对应的进程状态值由第一状态值切换为第二状态值、所述界面的感知状态由可感知状态切换为不可感知状态、所述窗口的感知状态由可感知状态切换为不可感知状态、所述通知数量为零以及所述组件数量为零,确定所述应用由可见状态切换为不可见状态。4.根据权利要求3所述的方法,其特征在于,所述检测所述应用是否由可见状态切换为不可见状态,包括:按照预设时间间隔检测所述应用是否由可见状态切换为不可见状态;若本次检测结果为否,将所述预设时间间隔延长,得到新的预设时间间隔,并根据所述新的预设时间间隔检测所述应用是否由可见状态切换为不可见状态;若本次检测结果为是,则将所述预设时间间隔还原为初始时间间隔。5.根据权利要求3所述的方法,其特征在于,所述获取所述应用在所述不可见状态下的目标进程之后,还包括:获取所述目标进程的接口;通过所述接口,将所述第二状态值发送至所述目标进程,以触发所述目标进程基于所述第二状态值控制其下的线程停止后台帧绘制。6.根据权利要求5所述的方法,其特征在于,所述控制所述目标进程下的线程停止执行后台帧绘制,包括:将所述第二状态值发送至所述目标进程的主线程,通过所述主线程将所述第二状态值发送至所述目标进程的至少一个子线程,以使所述主线程以及所述至少一个子线程根据所述第二状态值,判断本线程是否符合停止帧绘制的条件,若符合,停止执行本线程的后台帧绘制;其中,所述停止帧绘制的条件包括本线程对应的进程的进程状态值为第二状态值、本线程对应的应用的界面不可见、本线程对应的应用的窗口不可见、本线程对应的应用的通知数量为零以及本线程对应的应用的组件数量为零。7.根据权利要求6所述的方法,其特征...

【专利技术属性】
技术研发人员:刘亚鑫
申请(专利权)人:深圳市万普拉斯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1