CN111897586A - 应用状态控制方法、装置、终端及计算机可读存储介质 - Google Patents

应用状态控制方法、装置、终端及计算机可读存储介质 Download PDF

Info

Publication number
CN111897586A
CN111897586A CN201910370183.9A CN201910370183A CN111897586A CN 111897586 A CN111897586 A CN 111897586A CN 201910370183 A CN201910370183 A CN 201910370183A CN 111897586 A CN111897586 A CN 111897586A
Authority
CN
China
Prior art keywords
application
target application
unfreezing
calling
call
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
Application number
CN201910370183.9A
Other languages
English (en)
Inventor
吴鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201910370183.9A priority Critical patent/CN111897586A/zh
Priority to PCT/CN2020/084327 priority patent/WO2020224381A1/zh
Priority to EP20802456.2A priority patent/EP3929737A4/en
Priority to US17/441,072 priority patent/US20220179680A1/en
Publication of CN111897586A publication Critical patent/CN111897586A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例提供一种应用状态控制方法、装置、终端及计算机可读存储介质,对于确定当前待调用的目标应用处于冻结状态时,或确定当前的调用是否满足应用解冻触发条件,如果满足则对其调用的目标应用进行解冻处理,以供该目标应用解冻后正常响应该调用,从而尽可能保证采用冻结技术实现终端节能的同时,又尽可能避免需要响应的调用不能被正常响应而引起严重阻塞,进而引发系统异常的情况发生,实现节能和调用响应处理的平衡,提升用户体验满意度。

Description

应用状态控制方法、装置、终端及计算机可读存储介质
技术领域
本发明实施例涉及但不限于终端领域,具体而言,涉及但不限于一种应用状态控制方法、装置、终端及计算机可读存储介质。
背景技术
冻结技术主要是基于智能终端的一种限制应用占用系统资源的方法。它主要包括禁止占用CPU(Central Processing Unit,中央处理器)资源、Sensor、GPS(GlobalPositioning System,全球定位系统)、内存等外设资源。能有效的节省功耗,延长电池续航时间。在能耗仍为各种智能终端的短板的情况下,冻结技术在智能终端上的应用尤为重要。进程冻结是一种较好的后台行为管理办法。进程冻结可以识别那些异常的、对用户没有必要运行的进程。进行冻结处理。限制其使用系统资源,节约耗电。当用户重新使用该应用时,只需通过终端后台调度出该应用即可。这样,该应用则无需重新打开运行,节省了应用加载的时间。
对终端上的应用进行冻结处理之后,应用不再消耗资源,但应用本身还是存活的,它和终端系统中其它模块的各种业务逻辑联系也还是正常存在的,虽然冻结应用不会再主动发出各种逻辑调用,但是其它应用或者系统本身在自身的逻辑流程中很可能对冻结应用发起逻辑调用,目前相关技术中对于处于冻结状态的应用不响应其他应用或者系统本身的任何调用,这种做法可以在最大程度上发挥冻结机制达到的节能效果。但是任何调用都不予响应的做法有可能导致调用发起方的调用线程引起严重阻塞问题。例如,如果系统同步调用了一个冻结应用然后同步等待它返回结果,那么系统的这个调用线程将一直处于阻塞等待状态,如果这个调用恰好对系统而言是一个非常重要的系统线程并实施了严格的阻塞监控,那么系统的异常处理模块会在检测到阻塞后引发系统异常造成系统重启,严重影响用户体验。
发明内容
本发明实施例提供的一种应用状态控制方法、装置、终端及计算机可读存储介质,主要解决的技术问题是:解决相关技术对于处于冻结应用的调用都不响应,而可能影响系统异常进而导致用户体验满意度差。
为解决上述技术问题,本发明实施例提供一种应用状态控制方法,包括:
确定当前待调用的目标应用处于冻结状态,且当前的调用满足应用解冻触发条件时,对所述目标应用进行解冻。
为解决上述技术问题,本发明实施例还提供一种应用解冻控制装置,包括:
控制模块,用于确定当前待调用的目标应用处于冻结状态,且当前的调用满足应用解冻触发条件时,对所述目标应用进行解冻。
为解决上述技术问题,本发明实施例还提供一种终端,包括处理器、存储器和通信总线;
所述通信总线用于将所述处理器和存储器连接;
所述处理器用于执行所述存储器中存储的计算机程序,以实现如上所述的应用状态控制方法的步骤。
为解决上述技术问题,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如上所述的应用状态控制方法的步骤。
本发明的有益效果是:
根据本发明实施例提供的应用状态控制方法、装置、终端及计算机可读存储介质,对于确定当前待调用的目标应用处于冻结状态时,或确定当前的调用是否满足应用解冻触发条件,如果满足则对其调用的目标应用进行解冻处理,以供该目标应用解冻后正常响应该调用,从而尽可能保证采用冻结技术实现终端节能的同时,又尽可能避免需要响应的调用不能被正常响应而引起严重阻塞,进而引发系统异常的情况发生,实现节能和调用响应处理的平衡,提升用户体验满意度。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1为本发明实施例一提供的应用状态控制方法流程示意图;
图2为本发明实施例一提供的应用解冻触发条件判断流程示意图;
图3为本发明实施例二提供的应用状态控制方法流程示意图;
图4-1为本发明实施例三提供的应用状态控制装置结构示意图;
图4-2为本发明实施例三提供的应用状态控制装置控制应用状态逻辑示意图;
图5为本发明实施例四提供的终端结构示意图;
图6为本发明实施例四提供的另一终端结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本领域技术人员可以理解的,本发明的下述实施例中,终端可以是手机、平板电脑、笔记本电脑、掌上电脑、智能电视机、移动互联网设备、可穿戴设备、或其他可以安装应用客户端的终端,也可以是其他任何可实现本发明应用处理方法的终端或装置,本发明并不对此进行限定。
实施例一:
针对相关技术将发给冻结应用的所有调用都不予响应的不合理处理方式,本实施例提供了一种应用状态控制方法,该应用状态控制方法针对当前待调用的目标应用为冻结应用时,并非直接全部不予响应,而是在确定当前的调用满足应用解冻触发条件时,对该目标应用进行解冻,以便于解冻后的目标应用对该应用进行正常的响应,尽可能避免针对冻结应用的需要响应的调用不能被正常响应而引起严重阻塞,进而引发系统异常的情况发生,实现终端节能和调用响应处理的平衡。为了便于理解,本实施下面结合图1所示的应用状态控制方法流程为示例进行说明,请参见图1所示,包括:
S101:检测到针对某一应用的调用,该应用则为待调用的目标应用。
本实施例中针对某一应用的调用可以包括:终端系统本身在自身的逻辑流程中发起的调用,终端上的其他应用针对该应用发起的调用中的至少一种。
S102:获取该目标应用的冻结情况。
在本实施例中,获取某一应用是否处于冻结状态的方式可以灵活设置。例如,一种示例中,可以通过底层的可以获取到应用冻结情况信息的各种模块获取应用的冻结情况。例如一种应用场景中可以通过但不限于跨进程通信驱动模块获取当前待调用的目标应用的冻结状态。本实施例中的底层可以根据终端所运行的系统不同而灵活确定。例如对于运行安卓Android系统的终端,其底层可以是Linux内核层,该跨进程通信驱动模块可以为但不限于Binder驱动模块;又例如对于运行IOS系统的终端,该底层可以是核心操作系统层(CoreOS layer),该跨进程通信驱动模块可以是核心操作系统层内实现跨进程通信机制、且能获取到系统内应用冻结情况的各种模块。
又例如,在另一种示例中,也可通过终端系统内的冻结服务模块获取应用的冻结情况。本实施例中的冻结服务模块可为对应用进行冻结管理可以获取到应用冻结情况的各模块。该冻结服务模块可以设置在系统内的用户层,本实施例中的用户层可以根据终端所运行的系统不同而灵活确定。例如对于运行安卓Android系统的终端,其用户层可以是应用程序框架层;又例如对于运行IOS系统的终端,该用户层可以是核心服务层(Core Serviceslayer)。
应当理解的是,本实施例中的终端并不限于运行Android系统和IOS系统的终端,也可以是运行其他操作系统的终端,对于运行其他系统的终端可以此类推,在此不再赘述。
S103:确定该目标应用是否处于冻结状态,如是,转至S104;否则,转至S107。
S104:确定当前的调用是否满足应用解冻触发条件,如是,转至S105;否则,转至S106。
本步骤中应用解冻触发条件的设置目的是使得针对被冻结应用,进行必要的临时解冻以应用逻辑的正确性和尽可能减少临时解冻的次数以保持冻结状态节省能耗之间取得平衡。因此本实施例中对于应用解冻触发条件的设置可以在达到该目的的情况下灵活设置。例如,在本实施例的一种示例中,应用解冻触发条件可包括但不限于以下至少之一:
当前的调用之调用类型为同步调用;
当前的调用之调用类型为异步调用,且该调用在预设调用白名单中;本实施例中的调用白名单中包括各需要响应的调用,也即需要对该调用所对应的目标应用在处于冻结状态时进行解冻的各调用。该调用白名单中可以具体包括能唯一识别各调用的唯一识别信息,在进行匹配时,可以根据当前的调用之唯一识别信息与该调用白名单中的各唯一识别信息进行匹配,从而确定当前的调用是否在该调用白名单中。
例如,在本实施例的一种应用场景中,应用解冻触发条件包括:当前的调用之调用类型为同步调用,以及当前的调用之调用类型为异步调用,且该调用在预设调用白名单中。此时确定当前的调用是否满足应用解冻触发条件的过程请参见图2所示,包括:
S201:获取当前的调用之调用类型。
S202:判断获取的调用类型是否为同步调用,如否,转至S203;否则,转至S205。
S203:确定当前的调用是否在调用白名单中,如是,转至S205;否则,转至S204。
S204:确定该调用不满足应用解冻触发条件。
S205:确定该调用满足应用解冻触发条件。
S105:对该目标应用进行解冻。
在本实施例中,解冻之后的目标应用可以正常对其调用进行响应。
在本实施例中,对目标应用进行解冻的方式可包括但不限于以下任意之一:
方式一:直接通过跨进程通信驱动模块调用解冻驱动模块对目标应用进行解冻,也即直接通过驱动层调用相应的解冻驱动模块实现对目标应用的解冻;
方式二:直接通过冻结服务模块调用解冻驱动模块对目标应用进行解冻;也即可通过用户层调用相应的解冻驱动模块实现对目标应用的解冻;
方式三:确定当前的调用对应于第一解冻类型时,通过跨进程通信驱动模块调用解冻驱动模块对目标应用进行解冻;
确定当前的调用对应于第二解冻类型时,通过冻结服务模块调用解冻驱动模块对目标应用进行解冻。
例如,在一些示例中,可以设置第一解冻类型对应的第一调用名单,属于该第一调用名单中的各调用则对应于第一解冻类型;否则,属于第二解冻类型;或者在另一些示例中,可以设置第二解冻类型对应的第二调用名单,属于该第二调用名单中的各调用则对应于第二解冻类型;否则,属于第一解冻类型;或者可以设置第一解冻类型对应的第一调用名单和第二解冻类型对应的第二调用名单,属于第一调用名单中的各调用则对应于第一解冻类型,属于第二调用名单中的各调用则对应于第二解冻类型。
另外,应当理解的是,本实施例中调用白名单、第一调用名单、第二调用名单中至少一个名单可由终端厂商、服务提供商和终端用户中的至少一方灵活设定和/或更新。且上述名单的至少一个名单内的各调用的设置可以灵活设置。例如可以通过日志Log分析总结、AI机器学习方法、调用的关键度,调用的频度、调用实现的功能等特性中的至少一种进行动态设置和/或升级、维护。
在本实施例的一种示例中,通过冻结服务模块调用解冻驱动模块对目标应用进行解冻时,可包括:
通过跨进程通信驱动模块向冻结服务模块发送用于请求解冻目标应用的解冻请求消息,以供冻结服务模块根据该解冻请求消息调用解冻驱动模块对该目标应用进行解冻。
另外,为了保证底层中目标应用的实际冻结情况与用户层的冻结服务模块中的该目标应用的冻结情况一致,在对该目标应用进行解冻之后,还可包括对冻结信息进行同步处理,该同步处理可包括但不限于:通过冻结服务模块将目标应用的冻结状态更新为解冻状态。
S106:保持该目标应用处于冻结状态,不对该调用进行响应。
S107:目标应用正常响应该调用。
另外,在本实施例中,为了保证冻结应用的节能效果,在对目标应用进行临时解冻之后,还可监测对该目标应用重新冻结的条件是否满足,如果满足,则对该目标应用重新冻结,从而保证冻结应用的节能效果。
本实施例中,重新冻结的条件可以灵活设置,例如可以包括但不限于以下至少之一:
监测到当前的调用执行结束;
自该目标应用解冻后开始计时,计时值达到预设的时间阈值;该时间阈值可为大于等于目标应用响应调用(也即执行调用对应的功能)所需要的时间;
接收到针对该目标应用下发的重新冻结指令;该重新冻结指令可以为终端用户下发的,也可以为根据预设条件自动下发的。
在本实施例中,对目标应用进行重新冻结的方式可包括但不限于以下任意之一:
方式一:直接通过跨进程通信驱动模块调用冻结驱动模块对目标应用进行冻结,也即直接通过驱动层调用相应的冻结驱动模块实现对目标应用的冻结;
方式二:直接通过冻结服务模块调用冻结驱动模块对目标应用进行冻结;也即可通过用户层调用相应的冻结驱动模块实现对目标应用的冻结;
方式三:确定当前的调用对应于第一冻结类型时,通过跨进程通信驱动模块调用冻结驱动模块对目标应用进行冻结;
确定当前的调用对应于第二冻结类型时,通过冻结服务模块调用冻结驱动模块对目标应用进行冻结。
例如,在一些示例中,可以设置第一冻结类型对应的第三调用名单,属于该第三调用名单中的各调用则对应于第一冻结类型;否则,属于第二冻结类型;或者在另一些示例中,可以设置第二冻结类型对应的第四调用名单,属于该第四调用名单中的各调用则对应于第二冻结类型;否则,属于第一冻结类型;或者可以设置第一冻结类型对应的第三调用名单和第二冻结类型对应的第四调用名单,属于第三调用名单中的各调用则对应于第一冻结类型,属于第四调用名单中的各调用则对应于第二冻结类型。其中第三调用名单与上述第一调用名单可以相同,也可不同;第四调用名单与上述第二调用名单也可以相同,也可不同。
在本实施例中,对目标应用重新冻结之后,也可包括对冻结信息进行同步处理,该同步处理可包括但不限于:通过冻结服务模块将目标应用的冻结状态更新为冻结状态。
可见,通过本实施例提供的应用状态控制方法,对于处于冻结状态的目标应用的调用,可以在需要时对该目标应用进行临时解冻使其可以正常的对该调用进行响应,在不需要时则保持冻结状态而不对该调用进行响应,从而使得终端在冻结节能和正常执行需要响应的调用之间达到一个合理的平衡点,从而使得终端合理节能的情况下,维持重要业务的正常执行,从而提升用户体验的满意度。
实施例二:
为了便于理解,本实施例下面结合运行Android系统的终端,对该终端上应用状态控制为示例进行说明。本实施例中对冻结应用的可为Binder调用。本实施例中力求在对用户影响最小的情况下对发生Binder调用的冻结应用进行临时解冻,目标是尽量减少由不必要的Binder调用引起的临时解冻发的发生,而保证必要的Binder调用需要临时解冻以保证对该部分Binder调用的正常执行;尽可能的让冻结应用一直维持在合理的冻结状态,节能省耗,进一步提高用户体验。
本实施例在Binder调用发生时首先检查Binder调用的目标应用的冻结状态,如果该目标应用已处于冻结状态,则进一步确定该Binder调用是否满足应用解冻触发条件,例如该应用解冻触发条件包括:
获取该Binder调用的调用类型,如果调用类型是同步Binder调用,则确定需要对该目标应用进行解冻;如果调用类型是异步Binder调用,则需要进一步结合预设的Binder调用白名单(也可称之为Binder调用类表)来判断是否需要解冻,如果此Binder异步调用在Binder调用白名单之内则确定需要对该目标应用进行解冻;否则目标应用保持冻结状态,对该Binder异步调用不做处理,减少不必要的解冻,节省能耗。
在本实施例中,在对目标应用执行解冻操作之前,可以确定是通过Binder驱动模块(即跨进程通信驱动模块)进行解冻,还是通过用户层的冻结服务模块进行解冻。如果是通过Binder驱动模块解冻,则可通过Binder驱动模块调用解冻驱动模块对目标应用进行解冻,并向冻结服务模块发送冻结数据同步请求;如果通过冻结服务模块进行解冻,则Binder驱动模块可向冻结服务模块发送用于请求解冻目标应用的解冻请求消息和冻结数据同步请求,Binder驱动模块可根据解冻请求消息调用解冻驱动模块对目标应用进行解冻;对Binder驱动模块或冻结服务模块对目标应用解冻后,冻结服务模块对该目标应用的冻结情况进行更新,也即由冻结状态更新为解冻状态,以保证用户层冻结服务模块中的应用冻结状态和底层驱动层中的实际应用冻结状态保持一致。在对目标应用临时解冻后还可在需要时动态的将其进行重新冻结。
以上应用状态的控制过程请参见图3所示,包括:
S301:Binder调用发起方发起Binder调用;该Binder调用经过系统框架进入内核的Binder驱动模块进行处理。
S302:Binder驱动模块中冻结检查点检查目标应用的冻结状态,如果目标应用处于冻结状态,转至S303;否则,转至S3011。
S303:Binder驱动模块中Binder调用类型检查点检查,判断该中Binder调用是否为同步Binder调用,如是,转至S305;否则,转至S304。
S304:判断该Binder调用是否属于Binder调用白名单中的调用,如果属于,转至S305;否则,转至S3010。
S305:Binder驱动模块中Binder调用解冻方式检查点,如果检查方式为驱动解冻,转至S306;否则,转至S307。
S306:由Binder驱动模块调用解冻驱动模块对该目标应用进行解冻,并发送同步请求。
S307:Binder驱动模块向冻结服务模块发送请求消息,该请求消息可同时同时请求解冻和同步。
S308:冻结服务模块调用解冻驱动模块对该目标应用进行解冻。
S309:冻结服务模块的同步处理模块进行解冻数据的同步处理。
S3010:目标应用保持冻结状态,不响应该Binder调用。
S3011:目标应用直接正常处理该Binder调用。
可见本实施例提供的应用状态控制方法可以从多个角度设置相应的应用解冻触发条件,实现在对用户影响最小的情况下对冻结应用解冻进行调用的响应处理,既保证应用本身功能和状态的正确性,又能保证减少不必要的调用的临时解冻发的发生,尽可能的让冻结应用一直维持在冻结状态,节能省耗,又能对必要的调用进行正常响应处理,进一步提高用户体验。
实施例三:
本实施例提供了一种应用状态控制装置,其可设置于终端内,请参见图4-1所示,其包括:
控制模块401,用于确定当前待调用的目标应用处于冻结状态,且当前的调用满足应用解冻触发条件时,对该目标应用进行解冻。本实施例中的控制模块401执行上述步骤的过程请参见上述各实施例所示。为了便于理解,本实施例下面结合图4-2所示的Android系统内的应用状态控制逻辑过程为示例进行说明。
控制模块401在检测到Binder调用后,可通过Binder驱动模块中冻结检查点进行应用冻结状态检查,检查该Binder调用的目标应用是否处于已冻结状态,如果是则交由Binder驱动模块中Binder调用类型检查点做进一步处理。
Binder调用类型检查点:检查Binder调用的调用类型,例如确定其为同步类型还是异步类型,如果是同步调用则必须进行解冻,如果是异步调用则根据预设调用白名单决定是否解冻,如果当前异步调用属于预设调用白名单中则进行解冻处理,否则不做处理。
Binder驱动模块中Binder调用解冻类型检查点:根据设置可以选择驱动解冻还是发送请求到框架冻结服务模块请求统一进行解冻和同步操作。
Binder驱动模块:在确定通过驱动解冻时,调用解冻驱动模块对目标应用进行解冻。
冻结服务模块:在确定通过框架冻结服务解冻时,调用解冻驱动模块对目标应用进行解冻。
同步处理模块:进行目标应用的冻结信息的同步处理,以保持冻结服务中的各进程冻结状态和底层驱动中应用实际的冻结状态一致。
驱动解冻模块:在Binder驱动模块的调用下或冻结服务模块的调用下具体执行目标应用的解冻操作。
以上仅仅是以Android系统为示例进行说明。对于IOS系统或其他操作系统中应用状态的控制逻辑以此类推,在此不再赘述。
实施例四:
本实施例提供了一种终端,本实施例中的终端可以包括各种移动终端,也可为非移动类终端。参见图5所示,其包括处理器501、存储器502和通信总线503;
通信总线503用于将处理器501和存储器502连接;
处理器501用于执行存储器502中存储的计算机程序,以实现如上各实施例所示的应用状态控制方法的步骤。此处的存储器502可为终端自身的存储器;其可不包括能与终端分离的终端部件上设置的存储器;当然根据需求也可设置为包括能与终端分离的终端部件上设置的存储器。
本实施例中图5所示的终端可以是手机、平板电脑、笔记本电脑、掌上电脑、智能电视机、移动互联网设备、可穿戴设备、或其他可以安装应用客户端的终端,也可以是其他任何可实现本发明应用状态控制方法的终端或装置,本实施例下面以一种终端的具体结构为示例进行说明。本发明实施例所涉及的终端的一个具体实施例中,终端600包括射频电路608、一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、网络连接模块607(例如Wi-fi模块)、一个或一个以上的处理器601、以及电源609等部件。本领域技术人员可以理解,以上结构并不构成对终端的限定,可以包括比所列部件更多或更少的部件。其中射频电路608可用于通信信号的接收与发送,接收基站的信息,再交由处理器601处理。存储器602用于存储软件程序(例如包括但不限于上述计算机程序)以及模块,处理器601通过运行存储器602的软件程序或模块,从而执行各种功能以及数据处理。输入单元603可用于接收输入的数字或字符信息。输入单元603可以包括多种输入设备,例如触摸屏输入、以及其它输入设备等。输入单元603同样将各类输入信息转化为计算机指令发送给处理器601,并也能接收处理器601的命令进行执行。显示单元604用于显示由用户输入的信息或者终端提供给用户的信息以及终端上各种图形用户接口。终端600还包括至少一种传感器,例如:光传感器、运动传感器等。终端600还可以包括音频电路606、网络连接模块607、和电源609等部件。
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
在一种示例中,本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,该一个或者多个计算机程序可被一个或者多个处理器执行,以实现如上各实施例所示的应用状态控制方法的步骤。
本实施例还提供了一种计算机程序(或称计算机软件),该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现如上各实施例所示的应用状态控制方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种应用状态控制方法,包括:
确定当前待调用的目标应用处于冻结状态,且当前的调用满足应用解冻触发条件时,对所述目标应用进行解冻。
2.如权利要求1所述的应用状态控制方法,其特征在于,所述应用解冻触发条件包括以下至少之一:
当前的调用之调用类型为同步调用;
当前的调用之调用类型为异步调用,且该调用在预设调用白名单中。
3.如权利要求1所述的应用状态控制方法,其特征在于,所述对所述目标应用进行解冻后,还包括:
通过冻结服务模块将所述目标应用的冻结状态更新为解冻状态。
4.如权利要求1-3任一项所述的应用状态控制方法,其特征在于,所述对所述目标应用进行解冻包括以下任意之一:
直接通过跨进程通信驱动模块调用解冻驱动模块对所述目标应用进行解冻;
直接通过冻结服务模块调用解冻驱动模块对所述目标应用进行解冻;
确定当前的调用对应于第一解冻类型时,通过跨进程通信驱动模块调用解冻驱动模块对所述目标应用进行解冻;确定当前的调用对应于第二解冻类型时,通过冻结服务模块调用解冻驱动模块对所述目标应用进行解冻。
5.如权利要求4所述的应用状态控制方法,其特征在于,确定当前待调用的目标应用是否冻结状态包括:
通过跨进程通信驱动模块获取当前待调用的目标应用的冻结状态。
6.如权利要求5所述的应用状态控制方法,其特征在于,通过冻结服务模块调用解冻驱动模块对所述目标应用进行解冻时,包括:
通过所述跨进程通信驱动模块向所述冻结服务模块发送用于请求解冻所述目标应用的解冻请求消息,以供所述冻结服务模块根据所述解冻请求消息调用解冻驱动模块对所述目标应用进行解冻。
7.如权利要求1-3任一项所述的应用状态控制方法,其特征在于,对所述目标应用进行解冻后,还包括:
监测到所述目标应用的重新冻结条件触发时,将所述目标应用进行重新冻结;
所述重新冻结条件包括以下至少之一:
所述当前的调用执行结束;
自所述目标应用解冻后开始计时,计时值达到预设的时间阈值;
接收到针对所述目标应用下发的重新冻结指令。
8.一种应用解冻控制装置,其特征在于,包括:
控制模块,用于确定当前待调用的目标应用处于冻结状态,且当前的调用满足应用解冻触发条件时,对所述目标应用进行解冻。
9.一种终端,其特征在于,包括处理器、存储器和通信总线;
所述通信总线用于将所述处理器和存储器连接;
所述处理器用于执行所述存储器中存储的计算机程序,以实现如权利要求1-7任一项所述的应用状态控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如权利要求1-7任一项所述的应用状态控制方法的步骤。
CN201910370183.9A 2019-05-06 2019-05-06 应用状态控制方法、装置、终端及计算机可读存储介质 Pending CN111897586A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910370183.9A CN111897586A (zh) 2019-05-06 2019-05-06 应用状态控制方法、装置、终端及计算机可读存储介质
PCT/CN2020/084327 WO2020224381A1 (zh) 2019-05-06 2020-04-10 应用状态控制方法、装置、终端及计算机可读存储介质
EP20802456.2A EP3929737A4 (en) 2019-05-06 2020-04-10 APPLICATION STATE CONTROL METHOD, DEVICE AND TERMINAL AND COMPUTER READABLE STORAGE MEDIA
US17/441,072 US20220179680A1 (en) 2019-05-06 2020-04-10 Application state control method apparatus, and terminal and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910370183.9A CN111897586A (zh) 2019-05-06 2019-05-06 应用状态控制方法、装置、终端及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN111897586A true CN111897586A (zh) 2020-11-06

Family

ID=73051259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910370183.9A Pending CN111897586A (zh) 2019-05-06 2019-05-06 应用状态控制方法、装置、终端及计算机可读存储介质

Country Status (4)

Country Link
US (1) US20220179680A1 (zh)
EP (1) EP3929737A4 (zh)
CN (1) CN111897586A (zh)
WO (1) WO2020224381A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112653615A (zh) * 2020-12-16 2021-04-13 努比亚技术有限公司 即时通信应用的管控方法、终端以及计算机可读介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4367856B2 (ja) * 2005-07-07 2009-11-18 レノボ シンガポール プライヴェート リミテッド プロセス制御システム及びその制御方法
CN101645032B (zh) * 2009-08-31 2011-08-10 金蝶软件(中国)有限公司 应用服务器的性能分析方法和应用服务器
US8621494B2 (en) * 2011-09-12 2013-12-31 Microsoft Corporation Managing processes within suspend states and execution states
EP2959417B1 (en) * 2013-02-25 2017-06-07 Intel Corporation Method, apparatus, system, and machine readable storage medium for providing software security
US9921986B2 (en) * 2015-10-27 2018-03-20 International Business Machines Corporation Suspend and resume in a time shared coprocessor
US20170149864A1 (en) * 2015-11-24 2017-05-25 International Business Machines Corporation Distributed applications management with dependent resilient distributed services
CN106200876B (zh) * 2016-07-11 2019-06-04 珠海市魅族科技有限公司 应用程序处理方法及系统
CN106681768A (zh) * 2016-12-29 2017-05-17 努比亚技术有限公司 一种进程控制方法及电子设备
CN107066320B (zh) * 2017-01-19 2021-06-15 努比亚技术有限公司 一种Android进程冻结和解冻的装置及方法
CN106844029B (zh) * 2017-01-19 2020-06-30 努比亚技术有限公司 一种自管理的Android进程冻结和解冻的装置及方法
CN106991003B (zh) * 2017-03-06 2023-07-07 宇龙计算机通信科技(深圳)有限公司 冻结和解冻文件夹内批量应用程序的方法及系统
CN109917993A (zh) * 2017-12-13 2019-06-21 华硕电脑股份有限公司 控制方法、电子装置及非瞬时电脑可读取记录媒体
CN109144232B (zh) * 2018-08-01 2020-12-01 Oppo广东移动通信有限公司 进程处理方法和装置、电子设备、计算机可读存储介质
CN109445917B (zh) * 2018-10-16 2020-12-01 Oppo广东移动通信有限公司 应用处理方法和装置、电子设备、计算机可读存储介质
CN111857859A (zh) * 2019-04-30 2020-10-30 中兴通讯股份有限公司 应用控制方法、装置、终端及计算机可读存储介质
CN111858081A (zh) * 2019-04-30 2020-10-30 中兴通讯股份有限公司 广播控制方法、装置、终端及计算机可读存储介质

Also Published As

Publication number Publication date
US20220179680A1 (en) 2022-06-09
EP3929737A4 (en) 2022-06-15
WO2020224381A1 (zh) 2020-11-12
EP3929737A1 (en) 2021-12-29

Similar Documents

Publication Publication Date Title
EP1668509B1 (en) Method and apparatus for monitoring and resetting a co-processor
US8402174B2 (en) Handling sensors in a context-aware platform with hint signals
US20220197690A1 (en) Application control method and apparatus, terminal, and computer-readable storage medium
WO2020052471A1 (zh) 待管理应用检测及控制方法、装置、终端及存储介质
US10417062B2 (en) Method and apparatus of unloading out of memory processing flow to user space
CN107831887B (zh) 一种应用启动方法及装置
CN113630443A (zh) 服务管理方法、装置、服务器及介质
CN111897586A (zh) 应用状态控制方法、装置、终端及计算机可读存储介质
US11687140B2 (en) Broadcast control method for frozen applications
CN112351476A (zh) 基于网络的应用功耗调控方法、终端及存储介质
EP3974977A1 (en) Application management method and apparatus, terminal, and readable storage medium
WO2020052472A1 (zh) 异常应用检测及控制方法、装置、终端及存储介质
US10986221B2 (en) Execution of testing processes on apparatuses
WO2020094125A1 (zh) 应用控制方法、装置、终端及计算机可读存储介质
CN110851328B (zh) 一种密码卡在pkcs#11应用时异常掉电的检测方法
CN114860512A (zh) 车辆的soc芯片工作状态检测方法、装置、设备和系统
CN111782515A (zh) web应用的状态检测方法、装置、服务器和存储介质
CN111913553A (zh) 终端电耗控制的方法、装置、终端及计算机可读存储介质
EP4020132A1 (en) Application control method and apparatus, electronic device, and storage medium
CN112558745A (zh) 终端应用程序冷冻控制的方法、装置、终端及存储介质
CN115562826A (zh) 一种车机系统进程冻结及解冻方法和系统
US20220269328A1 (en) Application program freezing control method and apparatus, terminal, and readable storage medium
CN117055965A (zh) 片上系统的启动方法、装置、片上系统及电子设备
CN114670869A (zh) 系统、系统启动方法、装置及自动驾驶车辆
CN117278385A (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