进程处理方法和装置、电子设备、计算机可读存储介质与流程

文档序号:18141970发布日期:2019-07-10 11:10阅读:147来源:国知局
进程处理方法和装置、电子设备、计算机可读存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种进程处理方法、装置、电子设备、计算机可读存储介质。



背景技术:

智能设备可以通过应用程序实现不同的应用操作,比如可以通过购物类应用程序购买商品、通过视频类应用程序查看视频等。应用程序可以被冻结,冻结后的应用程序无法再继续运行,不会占用智能设备中处理器资源,但是由于应用程序还是存在与智能设备中的,因此还会占用智能设备中的内存、硬件等资源。



技术实现要素:

本申请实施例提供一种进程处理方法、装置、电子设备、计算机可读存储介质,可以提高设备的资源利用率。

一种进程处理方法,包括:

若检测到目标进程对应的关闭信号,则检测所述目标进程是否处于冻结状态;

若检测到所述目标进程处于冻结状态,则将所述目标进程进行解冻;

将所述关闭信号发送至所述目标进程;

若检测到所述目标进程被解冻,则根据所述关闭信号关闭所述目标进程。

一种进程处理装置,包括:

信号检测模块,用于若检测到目标进程对应的关闭信号,则检测所述目标进程是否处于冻结状态;

进程解冻模块,用于若检测到所述目标进程处于冻结状态,则将所述目标进程进行解冻;

信号发送模块,用于将所述关闭信号发送至所述目标进程;

进程关闭模块,用于若检测到所述目标进程被解冻,则根据所述关闭信号关闭所述目标进程。

一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

若检测到目标进程对应的关闭信号,则检测所述目标进程是否处于冻结状态;

若检测到所述目标进程处于冻结状态,则将所述目标进程进行解冻;

将所述关闭信号发送至所述目标进程;

若检测到所述目标进程被解冻,则根据所述关闭信号关闭所述目标进程。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:

若检测到目标进程对应的关闭信号,则检测所述目标进程是否处于冻结状态;

若检测到所述目标进程处于冻结状态,则将所述目标进程进行解冻;

将所述关闭信号发送至所述目标进程;

若检测到所述目标进程被解冻,则根据所述关闭信号关闭所述目标进程。

上述进程处理方法、装置、电子设备、计算机可读存储介质,在检测到目标进程对应的关闭信号时,若检测到目标进程处于冻结状态,则将目标进程进行解冻。并通过解冻后的目标进程对关闭信号进行处理。这样目标进程即时处于冻结状态,也可以及时对关闭信号进行处理。在设备资源不足的情况下,目标进程也可以及时接收并响应关闭信号,以及时释放设备资源,保证设备的运行效率,提高了设备的资源利用率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一个实施例中电子设备的内部结构示意图;

图2为一个实施例中电子设备中的系统的部分框架示意图;

图3为一个实施例中进程处理方法的流程图;

图4为另一个实施例中进程处理方法的流程图;

图5为一个实施例中进程处理装置的结构示意图;

图6为另一个实施例中进程处理装置的结构示意图;

图7为与本申请实施例提供的电子设备相关的手机的部分结构的框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。

如图1所示,提供了一种电子设备的内部结构示意图。该电子设备包括通过系统总线连接的处理器、存储器和显示屏。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器用于存储数据、程序、和/或指令代码等,存储器上存储至少一个计算机程序,该计算机程序可被处理器执行,以实现本申请实施例中提供的适用于电子设备的进程处理方法。存储器可包括磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(random-access-memory,ram)等。例如,在一个实施例中,存储器包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现本申请各个实施例所提供的一种进程处理方法。内存储器为非易失性存储介质中的操作系统和计算机程序提供高速缓存的运行环境。显示屏可以是触摸屏,比如为电容屏或电子屏,用于显示前台进程对应的应用的界面信息,还可以被用于检测作用于该显示屏的触摸操作,生成相应的指令,比如进行前后台应用的切换指令等。

本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如该电子设备还包括通过系统总线连接的网络接口,网络接口可以是以太网卡或无线网卡等,用于与外部的电子设备进行通信,比如可用于同服务器进行通信。

在一个实施例中,如图2所示,提供了一种电子设备的部分架构图。其中,该电子设备的架构系统中包括java空间层21、本地框架层22以及内核(kernel)空间层23。java空间层21上可包含策略应用程序210,电子设备可通过该策略应用程序210来发起对各个应用程序的冻结和解冻策略,从而实现对电子设备中的各个应用程序实现冻结和解冻的操作。例如,通过策略应用程序210来判断后台耗电的应用程序,并发起对该后台耗电的应用程序做冻结操作。本地框架层22中包含资源优先级和限制管理模块220及平台冻结管理模块222。电子设备可通过资源优先级和限制管理模块220来实时维护应用程序的优先级和对应的资源组,根据上层的需求来调整应用程序的优先级和资源组,从而达到优化性能,节省功耗的作用。电子设备可通过平台冻结管理模块222将后台可以冻结的任务按照进入冻结时间的长短,分配到对应预设的不同层次的冻结层,可选地,该冻结层可包括:cpu限制睡眠模式、cpu冻结睡眠模式、进程深度冻结模式。内核空间层23中包括uid管理模块230、cgroup模块232、超时冻结退出模块234、binder管控模块236、进程内存回收模块238。其中,uid管理模块230可以基于应用程序的用户身份标识(useridentifier,uid)来管理第三方应用程序的资源或进行冻结。相比较于基于进程身份标识(processidentifier,pid)来进行进程管控,通过uid更便于统一管理一个用户的应用的资源。cgroup模块232用于提供一套完善的中央处理器(centralprocessingunit,cpu)、cpuset、内存(memory)、输入/输出(input/output,i/o)和net相关的资源限制机制。超时冻结退出模块234用于解决出现冻结超时场景产生的异常。binder管控模块236用于实现后台binder通信的优先级的控制。进程内存回收模块238用于实现进程的深度冻结模式,当第三方应用程序长期处于冻结状态的时候,可以释放进程的文件区,从而达到节省内存的模块,也加快该应用程序在下次启动时的速度。通过上述的架构,可实现本申请各个实施例中的进程处理方法。

图3为一个实施例中进程处理方法的流程图。如图3所示,该进程处理方法包括步骤302至步骤308。其中:

步骤302,若检测到目标进程对应的关闭信号,则检测目标进程是否处于冻结状态。

应用程序(application,app)是指电子设备中针对某种应用目的所撰写的软体,电子设备可以通过应用程序实现对用户的需求服务。例如,用户可以通过游戏类应用程序玩游戏,也可以通过视频类应用程序看视频,还可以通过音乐类应用程序播放音乐等。应用程序可以根据运行的状态分为前台应用程序和后台应用程序。前台应用程序是指在电子设备的前台运行的应用程序,前台应用程序可以在与在前台显示并与用户实现交互。后台应用程序是指在电子设备的后台运行的应用程序,后台应用程序一般不能在前台显示并与用户实现交互过程。

一般地,应用程序的应用操作是由一个或多个进程(process)来共同完成,进程是是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。同时,一个进程可以对应一个或多个线程,线程是程序中一个单一的顺序控制流程,是进程内一个相对独立的、可调度的执行单元。进程可包括前台进程和后台进程,前台进程即为在电子设备前台运行的进程,后台进程即为在电子设备后台运行的进程。电子设备可以控制前台进程和后台进程的切换,前台进程可切换到后台运行,后台进程也可以切换到前台运行。具体地,可以通过进程池来实现对进程的管理,进程池中可以存放一个或多个进程对应的进程标识。进程池可以包括前台进程池和后台进程池,前台进程池中包括前台进程对应的进程标识,后台进程池中包括后台进程对应的进程标识。当检测到前台进程和后台进程的运行状态发生改变时,进程池会相应地添加或删除产生变化的进程标识。例如,进程a的进程标识为“0123”,当检测到进程a由后台进程变成前台进程时,可将该进程a的进程标识“0123”从后台进程池中移除,并添加到前台进程池中。

在一个实施例中,关闭信号是指对进程发起关闭操作的信号。一般地,电子设备应用层的应用程序可以发起关闭信号,进程在接收到关闭信号之后,会根据关闭信号退出运行。进程退出之后,不再占用终端的处理器和内存等资源。以android系统的终端为例,终端应用层中的应用程序可以通过调用android.os.process.killprocess(android.os.process.mypid())方法,来触发对进程发起关闭信号。可以理解的是,本申请中以android操作系统为例对进程处理方法进行说明,但是本申请的进程处理方法并不仅限于在android系统中实现,还可以应用在ios(iphoneoperatingsystem)、塞班、windows、macos(macintoshoperatingsystem)等操作系统中。

步骤304,若检测到目标进程处于冻结状态,则将目标进程进行解冻。

具体地,进程可以被冻结,处于冻结状态的进程并没有被关闭,只是暂时不运行。在操作系统一般会对被冻结的进程进行一种处理,通过函数体控制被冻结的进程进入一种不可中断的睡眠状态。处于这种不可中断的睡眠状态的进程,即使被唤醒,也会由于该函数体的存在而立刻恢复到不可中断的睡眠状态中。因此处于冻结状态的进程无法接收信号,也无法对信号进行处理。也就是说,处于冻结状态的进程不占用处理器资源进行运行,但是仍然占用电子设备的内存和硬件等资源。电子设备的本地框架层中的资源优先级和限制管理模块可以对进程的状态进行标记,通过对应的标记来实现对进程冻结状态的管控,通过读取进程的状态标记就可以知道进程是否处于冻结状态。

电子设备应用层中的应用程序在发起关闭信号之后,电子设备的内核层可以接收该关闭信号,然后通过读取本地框架层的资源优先级和限制管理模块来判断进程是否处于冻结状态。发起关闭信号的可以为第三方应用程序,也可以为系统应用程序。例如,用户可以通过第三方应用程序选择需要查杀的进程,然后通过第三方应用程序向用户所选择的进程发起关闭信号。电子设备还可以根据运行情况自动触发对后台进程的查杀,当后台进程满足查杀条件时,电子设备的系统应用程序自动触发向该后台进程发起关闭信号。

步骤306,将关闭信号发送至目标进程。

若判断目标进程处于冻结状态,则电子设备可以通过本地框架层将目标进程进行解冻。同时,电子设备的内核层会将关闭信号发送至目标进程。若发送关闭信号时,目标进程还处于冻结状态,那么目标进程就无法接收到该关闭信号,则该关闭信号就会被加入到目标进程对应的信号处理队列中。等到目标进程被解冻后,目标进程会从信号处理队列中获取处理信号,并对处理信号进行处理。

电子设备中传输的信号中带有发送进程标识和接收进程标识,然后通过发送进程标识查找发送该信号的进程,通过接收进程标识来查找接收该信号的进程。具体地,电子设备可根据关闭信号中携带的接收进程标识查找目标进程,然后将该关闭信号发送至接收进程标识所对应的目标进程。

步骤308,若检测到目标进程被解冻,则根据关闭信号关闭目标进程。

当目标进程被解冻之后,可以将解冻之后的目标进程置于一种不可冻结状态,处于不可冻结的状态的进程就不可以再被冻结。目标进程被解冻之后,可以接收信号以及对信号进行处理了。则目标进程可以通过信号处理队列获取关闭信号,并根据关闭信号进行关闭。

上述实施例中提供的进程处理方法,在检测到目标进程对应的关闭信号时,若检测到目标进程处于冻结状态,则将目标进程进行解冻。并通过解冻后的目标进程对关闭信号进行处理。这样目标进程即时处于冻结状态,也可以及时对关闭信号进行处理。在设备资源不足的情况下,目标进程也可以及时接收并响应关闭信号,以及时释放设备资源,保证设备的运行效率,提高了设备的资源利用率。

图4为另一个实施例中进程处理方法的流程图。如图4所示,该进程处理方法包括步骤402至步骤420。其中:

步骤402,获取电子设备的资源占用率,并根据资源占用率获取目标进程。

在一个实施例中,电子设备在运行过程中,用于应用处理的资源是有限的。因此,电子设备在运行过程中需要不断释放内存,这样才能保证应用的有效运行。资源是指电子设备在处理应用事件时所必须用到的软件或硬件资源,比如电子设备的内存、硬件资源等。资源占用率是指电子设备的资源占用比例,一般是指被占用的资源与全部资源的比例,可以通过百分比的形式进行表示。例如,设备的总内存有128gb,已经被占用的内存有56gb,那么该设备的资源占用率就可以表示为内存占用率,得到的内存占用率即为43.75%。

预先建立资源占用率与进程的进程标识的对应关系,根据资源占用率获取对应的目标进程标识,再根据目标进程标识获取对应的目标进程。还可以建立资源占用率与进程的优先级的对应关系,然后可以根据电子设备的资源占用率获取对应的目标优先级,并获取该目标优先级对应的目标进程标识,根据目标进程标识获取对应的目标进程。例如,将电子设备的内存占用率分为20~40%、40%~70%、70%~100%等三个等级,将进程分为1级、2级、3级、4级、5级等五个优先级,从1级到5级进程的重要性递减。然后建立内存占用率和进程的优先级之间的对应关系,令内存占用率20~40%对应进程4级、5级,内存占用率40%~70%对应进程3级、4级、5级,内存占用率70%~100%对应进程2级、3级、4级、5级。假设电子设备中的内存占用率为50%,那么对应的进程优先级就为3级、4级、5级,则获取优先级为3级、4级、5级的进程作为目标进程。

上述对应关系可以通过列表的形式进行存储,电子设备可以每间隔一段时间统计一次资源占用率,并根据统计得到的资源占用率从该列表中读取对应的目标进程标识,然后根据目标进程标识获取对应的目标进程。例如,电子设备可以每间隔5分钟读取一次资源占用率,然后根据资源占用率获取对应的目标进程。

步骤404,向获取的目标进程发起关闭信号。

关闭信号可由第三方应用程序发起,也可由系统应用程序发起。发起的关闭信号中可以但不限于包括发送进程标识、接收进程标识等内容。电子设备可以通过接收进程标识查找目标进程,然后将该关闭信号发送至该目标进程。例如,可以通过函数intsend_sig_info(intsig,structsiginfo*info,structtask_struct*t)向目标进程发送信号。

步骤406,若检测到目标进程对应的关闭信号,则检测目标进程是否处于冻结状态。

步骤408,若检测到目标进程处于冻结状态,则获取目标进程对应的冻结时长,其中冻结时长表示从目标进程进入冻结状态的时刻到当前时刻的时间间隔。

当进程进入冻结状态时,电子设备会同时记录进程进入冻结状态的时间,然后实时监听电子设备的状态,当进程退出冻结状态后,又会同时记录进程退出冻结状态的时间。这样电子设备可以对各个进程的状态进行管理,通过电子设备记录的进程对应的状态,可以读取进程在各个时刻下的状态。冻结时长是标识目标进程进入冻结状态的时刻到当前时刻的时间间隔,具体是指从本次进入冻结状态的时刻到当前时刻的时间间隔。例如,进程本次进入冻结状态的时刻为12点10分02秒,当前时刻为12点14分10秒,则得到冻结时长就为4分08秒。

具体地,电子设备可以读取目标进程当前的状态,若目标进程当前处于冻结状态,则可以读入目标进程本次进入冻结状态的时刻,然后再获取当前时刻,并通过进入冻结状态的时刻和当前时刻计算对应的冻结时长。例如,在android系统中,可以通过函数simpledateformat("yyyy-mm-ddhh:mm:ss")来获取当前时刻,然后再根据读取的进入冻结状态的时刻,来极端冻结时长。

步骤410,若冻结时长大于时长阈值,则将目标进程进行解冻。

可以理解的是,冻结时长可以反映进程本次进入冻结状态的时长,如果进程长时间处于冻结状态未被解冻,说明该进程长时间未处于运行状态,可以认为该进程是不重要的进程,则可以将该进程进行关闭。时长阈值是用于筛选目标进程的时长的取值,可以根据需要进行设定。当目标进程的冻结时长大于时长阈值时,认为用户或系统再次启动该目标进程的概率比较小,则可以将该目标进程进行解冻,然后关闭;若目标进程的冻结时长小于时长阈值。则认为用户或系统再次启动该目标进程的概率比较大,则可以继续保持该目标进程当前的状态。

例如,时长阈值为1个小时,若目标进程的冻结时长超过1小时,则可以将该目标进程进行解冻,然后将解冻后的目标进程进行关闭。假设目标进程的冻结时长为5分钟,则说明目标进程进入冻结状态的时长为5分钟,则认为用户或系统再次启动该目标进行的概率较大,那么可以继续保持该目标进程的状态。

步骤412,将关闭信号加入到目标进程对应的信号处理队列中,其中信号处理队列中包括一个或多个用于对目标进程进行处理的处理信号。

每一个进程都可以具有一个信号处理队列,信号处理队列可以是一个堆栈空间,该信号处理队列中包括一个或多个用于对目标进程进行处理的处理信号,每一个处理信号都用于指示对进程的处理。具体地,进程对应的信号处理队列可以是一个按顺序排列的链式队列,可以通过一个数据结构进行描述。例如,在信号处理队列list中,可以通过sigpending数据结构来描述。sigpending数据结构中可以包括head、tail、signal等三个数据,其中head用于指向第一个处理信号,tail用于指向最末的处理信号的next指针,signal用于描述该信号处理队列中的信号集。

步骤414,若检测到目标进程被解冻,则获取目标进程对应的信号处理队列,按照信号发起时间将处理信号进行排序。

当目标进程处于冻结状态时,目标进程无法接收信号,也无法对信号进行处理。目标进程接收到的处理信号就会存放在该信号处理队列中,然后在目标进程被唤醒后再对信号处理队列中的处理信号进行处理。当目标进程被解冻后,目标进程可以在电子设备中进行运行。目标进程会获取对应的信号处理队列,信号处理队列中的处理信号按照信号发起时间进行排序,信号发起时间即为发起处理信号的时间。一般可以按照信号发起时间由先到后的顺序将处理信号进行排列,那么在处理的时候就可以优先获取队列首位的处理信号进行处理。也可以按照信号发起时间由后到先的顺序将处理信号进行排列,处理的时候可以优先获取队尾的处理信号进行处理。在本实施例中,信号处理队列的排列顺序,以及处理的先后顺序不做具体限定。例如,信号处理队列中包括三个处理信号,信号a对应的信号发起时间为12:16,信号b对应的信号发起时间为13:22,信号c对应的信号发起时间为13:50。则信号处理队列中处理信号的排列顺序就可以为信号a、信号b和信号c。

步骤416,将排序后的信号处理队列中的处理信号依次进行处理。

一般地,为了避免信息的遗漏,目标进程在被解冻之后,会将冻结期间未处理的处理信号进行处理,即将排序后的信号处理队列中的处理信号依次进行处理。可以理解的是,目标进程在解冻之后,也可以不用将信号处理队列中的处理信号全部进行处理,可以只获取部分处理信号进行处理。可选地,根据信号发起对象从排序后的信号处理队列中获取处理信号,并将获取的处理信号进行处理。其中,信号发起对象是指发起处理信号的对象。例如,可以只处理系统应用发起的处理信号,或者只处理对应的信号发起对象与关闭信号的信号发起对象相同的处理信号。

在一个实施例中,还可以根据处理信号的信号优先级从排序后的信号处理队列中获取处理信号,并将获取的处理信号进行处理。其中,信号优先级表示处理信号的重要程序。例如,可以根据处理信号的类型设置信号优先级,即时消息对应的处理信号的信号优先级较高,非即时消息对应的处理信号的信号优先级较低。根据信号优先级获取处理信号,在目标进程被解冻之后只会对优先级较高的处理信号进行处理,节省了设备的资源。

步骤418,根据关闭信号关闭目标进程。

具体地,目标进程根据关闭信号进行关闭,目标进程关闭之后,可以将该目标进程对应的线程都进行关闭,以避免出现僵尸进程。目标进程被关闭之后,可以将目标进程设置为不可冻结状态,在不可冻结状态下,目标进程无法再次被冻结,避免目标进程再次进入冻结状态而导致资源的占用。可选地,还可以设置不可冻结状态的持续时长,从目标进程被关闭的时刻开始计时,在该持续时长内将目标进程设置为不可冻结状态。还可以建立进程优先级与持续时长的对应关系,一般进程优先级越高,对应的持续时长越短。即根据目标进程的进程优先级获取对应的持续时长,然后从目标进程被关闭的时刻开始计时,在该持续时长内将目标进程设置为不可冻结状态。

步骤420,获取依赖于目标进程的依赖进程,并根据关闭信号关闭依赖进程。

在一个实施例中,依赖表示一个进程需要利用于另一个或多个进程的数据才能顺利实现对该一个进程的执行的关系。存在依赖关系的两个进程,分别为被依赖的进程和依赖的进程。举例来说,进程a依赖于进程b,或进程b被进程a依赖,即表示进程a需要利用进程b的数据才能实现对该进程a的执行,此时,进程a即为依赖于进程b的进程,进程b即为被进程a依赖的进程。具体地,在本申请实施例中,依赖进程就是指依赖于目标进程进行运行的进程。

进程之间的依赖关系并非一直不变的,而是实时变化的。电子设备可将进程之间的依赖关系进行记录,当目标进程被关闭后,从记录的依赖关系中查找依赖于目标进程的后台进程作为依赖进程,并根据关闭信号将该依赖进程进行关闭。具体地,两个进程之间的相互依赖是建立在它们需要互相通信的基础之上的。因此,获取目标进程对应的依赖进程包括:获取与前台进程之间存在通信关系的后台进程,作为依赖进程。在操作系统中,进程之间的交互机制主要分为同步机制和通信机制。

其中,通信机制包括socket、binder、共享内存等。binder通信是android系统中实现的一种高效的ipc(inter-processcommunication,进程间通信)机制,是一种client-server(客户端-服务器)的通信结构。客户端与服务器会定义一个对应的代理接口,客户端调用代理接口中的方法时,代理接口的方法会将客户端的参数打包成一个parcel对象,然后代理接口将parcel对象发送给内核层中的binder驱动。服务器可以读取binder驱动中的请求数据,然后将parcel对象进行解析并处理,并将处理结果返回。socket通信可以对两个网络应用程序进行通信连接,从而实现网络上的应用程序的数据交换。具体地,本地进程间通信可以通过pid(processidentity,进程标识)来唯一标识一个进程,但是在网络进程间通信是没有办法实现的。而在网络通信中ip(internetprotocol,网络之间互连的协议)地址可以唯一标识网络中的主机,“协议+端口”可以唯一标识主机中的进程,因此在socket通信中通常是通过“ip地址+协议+端口”的形式来唯一标识一个进程的。共享内存就是允许两个不相关的进程访问同一个逻辑内存,共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式,不同进程之间共享的内存通常安排为同一段物理内存。

更进一步地,获取目标进程对应的依赖进程包括以下方式中至少一种:获取与目标进程具有socket通信关系的后台进程,作为依赖进程;获取与目标进程具有binder通信关系的后台进程,作为依赖进程;获取与目标进程之间进行内存共享的后台进程,作为依赖进程。

上述实施例提供的进程处理方法,根据电子设备的资源占用率获取目标进程,并向获取的目标进程发起关闭信号。在检测到目标进程对应的关闭信号时,若检测到目标进程处于冻结状态,则根据目标进程的冻结时长将目标进程进行解冻。并根据关闭信号关闭解冻后的目标进程和依赖进程。这样目标进程即时处于冻结状态,也可以及时对关闭信号进行处理。在设备资源不足的情况下,目标进程也可以及时接收并响应关闭信号,以及时释放设备资源,保证设备的运行效率,提高了设备的资源利用率。在目标进程被关闭的情况下,将依赖于目标进程的依赖进程也进行关闭,以减少依赖进程对设备资源的占用。

应该理解的是,虽然图3和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

图5为一个实施例中进程处理装置的结构示意图。如图5所示,该进程处理装置500包括信号检测模块502、进程解冻模块504、信号发送模块506和进程关闭模块508。其中:

信号检测模块502,用于若检测到目标进程对应的关闭信号,则检测所述目标进程是否处于冻结状态。

进程解冻模块504,用于若检测到所述目标进程处于冻结状态,则将所述目标进程进行解冻。

信号发送模块506,用于将所述关闭信号发送至所述目标进程。

进程关闭模块508,用于若检测到所述目标进程被解冻,则根据所述关闭信号关闭所述目标进程。

上述实施例中提供的进程处理装置,在检测到目标进程对应的关闭信号时,若检测到目标进程处于冻结状态,则将目标进程进行解冻。并通过解冻后的目标进程对关闭信号进行处理。这样目标进程即时处于冻结状态,也可以及时对关闭信号进行处理。在设备资源不足的情况下,目标进程也可以及时接收并响应关闭信号,以及时释放设备资源,保证设备的运行效率,提高了设备的资源利用率。

图6为另一个实施例中进程处理装置的结构示意图。如图6所示,该进程处理装置600包括资源检测模块602、信号检测模块604、进程解冻模块606、信号发送模块608和进程关闭模块610。其中:

资源检测模块602,用于获取电子设备的资源占用率,并根据所述资源占用率获取目标进程;向获取的所述目标进程发起关闭信号。

信号检测模块604,用于若检测到目标进程对应的关闭信号,则检测所述目标进程是否处于冻结状态。

进程解冻模块606,用于若检测到所述目标进程处于冻结状态,则将所述目标进程进行解冻。

信号发送模块608,用于将所述关闭信号发送至所述目标进程。

进程关闭模块610,用于若检测到所述目标进程被解冻,则根据所述关闭信号关闭所述目标进程。

上述实施例提供的进程处理装置,根据电子设备的资源占用率获取目标进程,并向获取的目标进程发起关闭信号。在检测到目标进程对应的关闭信号时,若检测到目标进程处于冻结状态,则根据目标进程的冻结时长将目标进程进行解冻。并根据关闭信号关闭解冻后的目标进程。这样目标进程即时处于冻结状态,也可以及时对关闭信号进行处理。在设备资源不足的情况下,目标进程也可以及时接收并响应关闭信号,以及时释放设备资源,保证设备的运行效率,提高了设备的资源利用率。

在一个实施例中,进程解冻模块606还用于若检测到所述目标进程处于冻结状态,则获取所述目标进程对应的冻结时长,其中所述冻结时长表示从所述目标进程进入冻结状态的时刻到当前时刻的时间间隔;若所述冻结时长大于时长阈值,则将所述目标进程进行解冻。

在一个实施例中,信号发送模块608还用于将所述关闭信号加入到所述目标进程对应的信号处理队列中,其中所述信号处理队列中包括一个或多个用于对所述目标进程进行处理的处理信号。

在一个实施例中,进程关闭模块610还用于获取所述目标进程对应的信号处理队列,按照信号发起时间将所述处理信号进行排序;将排序后的所述信号处理队列中的处理信号依次进行处理。

在一个实施例中,进程关闭模块610还用于获取依赖于所述目标进程的依赖进程,并根据所述关闭信号关闭所述依赖进程。

在一个实施例中,进程关闭模块610还用于获取与所述目标进程之间存在通信关系的后台进程,作为依赖进程。

上述进程处理装置中各个模块的划分仅用于举例说明,在其他实施例中,可将进程处理装置按照需要划分为不同的模块,以完成上述进程处理装置的全部或部分功能。

本申请实施例中提供的进程处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的步骤。

本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行上述实施例提供的进程处理方法。

一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的进程处理方法。

本申请实施例还提供了一种电子设备。如图7所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该电子设备可以为包括手机、平板电脑、pda(personaldigitalassistant,个人数字助理)、pos(pointofsales,销售终端)、车载电脑、穿戴式设备等任意终端设备,以电子设备为手机为例:

图7为与本申请实施例提供的电子设备相关的手机的部分结构的框图。参考图7,手机包括:射频(radiofrequency,rf)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(wirelessfidelity,wifi)模块770、处理器780、以及电源790等部件。本领域技术人员可以理解,图7所示的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,rf电路710可用于收发信息或通话过程中,信号的接收和发送,可将基站的下行信息接收后,给处理器780处理;也可以将上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路710还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte))、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器720可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能的应用程序、图像播放功能的应用程序等)等;数据存储区可存储根据手机的使用所创建的数据(比如音频数据、通讯录等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元730可用于接收输入的数字或字符信息,以及产生与手机700的用户设置以及功能控制有关的键信号输入。具体地,输入单元730可包括触控面板731以及其他输入设备732。触控面板731,也可称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板731上或在触控面板731附近的操作),并根据预先设定的程式驱动相应的连接装置。在一个实施例中,触控面板731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板731。除了触控面板731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)等中的一种或多种。

显示单元740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元740可包括显示面板741。在一个实施例中,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板741。在一个实施例中,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触控面板731与显示面板741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现手机的输入和输出功能。

手机700还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板741和/或背光。运动传感器可包括加速度传感器,通过加速度传感器可检测各个方向上加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换)、振动识别相关功能(比如计步器、敲击)等;此外,手机还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器等。

音频电路760、扬声器761和传声器762可提供用户与手机之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经rf电路710可以发送给另一手机,或者将音频数据输出至存储器720以便后续处理。

wifi属于短距离无线传输技术,手机通过wifi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了wifi模块770,但是可以理解的是,其并不属于手机700的必须构成,可以根据需要而省略。

处理器780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在一个实施例中,处理器780可包括一个或多个处理单元。在一个实施例中,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等;调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。

手机700还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

在一个实施例中,手机700还可以包括摄像头、蓝牙模块等。

在本申请实施例中,该电子设备所包括的处理器780执行存储在存储器上的计算机程序时实现上述实施例提供的进程处理方法的步骤。

本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram),它用作外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1