CN113741994B - 一种视频应用的保活方法以及电子设备 - Google Patents

一种视频应用的保活方法以及电子设备 Download PDF

Info

Publication number
CN113741994B
CN113741994B CN202110715306.5A CN202110715306A CN113741994B CN 113741994 B CN113741994 B CN 113741994B CN 202110715306 A CN202110715306 A CN 202110715306A CN 113741994 B CN113741994 B CN 113741994B
Authority
CN
China
Prior art keywords
application
alive
keep
video
module
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.)
Active
Application number
CN202110715306.5A
Other languages
English (en)
Other versions
CN113741994A (zh
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.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202110715306.5A priority Critical patent/CN113741994B/zh
Priority to CN202210334778.0A priority patent/CN115525356A/zh
Publication of CN113741994A publication Critical patent/CN113741994A/zh
Priority to US18/033,647 priority patent/US20230325260A1/en
Priority to EP22827263.9A priority patent/EP4216058A4/en
Priority to PCT/CN2022/093745 priority patent/WO2022267765A1/zh
Application granted granted Critical
Publication of CN113741994B publication Critical patent/CN113741994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本申请提供了一种视频应用的保活方法以及电子设备,该视频应用的保活方法包括:当系统的运行内存使用量超出第一阈值时,电子设备判断该第一应用是否为视频类型。在第一应用为视频类型的情况下,确定第一应用是否处于视频保持状态。若第一应用处于视频保持状态,且该应用满足排名条件,电子设备在保活时长内对第一应用进行保活。

Description

一种视频应用的保活方法以及电子设备
技术领域
本申请涉及应用保活领域,尤其涉及一种视频应用的保活方法以及电子设备。
背景技术
视频应用是手机用户日常使用的高频应用,用户在使用视频应用观看视频一般都要经过:启动视频应用、搜索视频、观看广告的步骤。用户在观看视频的过程中,难免会出现交叉使用其他应用的情况。例如,当在使用某一视频软件观看视频时,如果用户需要接听电话或者需要使用通信软件回复别人消息,这时,用户会短暂地切换到其它应用。如果这时系统出现内存紧张,为保证系统的正常使用,系统可能会将视频应用清理掉,用户观看之前的视频则需要重新执行启动视频应用、搜索视频、观看广告、查找上次观看视频进度的步骤。这一系列的步骤会使得用户找回之前播放状态的成本增大,给用户较差的使用体验。因此,如何在系统应用的清理方案中保证系统正常运行的情况下,对视频应用的播放状态进行短时间的保活是当前及未来的研究方向。
发明内容
本申请实施例提供了一种视频应用的保活方法,当系统运行内存紧张且运行在后台的视频应用为保活应用程序时,在保活时长内对该应用程序的进程保活,当该视频应用在保活时长内切换回前台时,视频应用可以继续播放切换到后台前播放的视频,解决了因系统内存不足清理了视频应用的进程,导致用户重新使用视频应用,因恢复切换前的播放状态,而耗费大量时间的问题。
第一方面,本申请实施例提供了一种视频应用的保活方法,应用于电子设备,所述方法包括:确定该电子设备的内存使用量大于第一阈值;确定第一应用的应用类型,第一应用处于后台运行状态;若第一应用的类型为视频类型,确定第一应用是否处于视频保持状态;若第一应用处于视频保持状态,在保活时间内对第一应用的进程进行保活。这样,当系统运行内存紧张时,第一应用在保活时长内被保活,当第一应用在保活时长内重新切换到前台后,视频应用可以继续播放切换到后台前播放的视频,解决了因系统内存不足清理了视频应用的进程,导致用户重新使用视频应用,因恢复切换前的播放状态,而耗费大量时间的问题。
结合第一方面,在一种可能的实现方式中,确定该电子设备的内存使用量大于第一阈值之前,所述方法还包括:将处于第一界面的所述第一应用切换到后台运行。
结合第一方面,在一种可能的实现方式中,在保活时间内对第一应用的进程进行保活之后,所述方法还包括:将第一应用在保活时间内切换到前台运行;在前台运行的第一应用显示所述第一界面。在上述实施例中,第一界面为视频播放界面,切换回前台的第一应用,其第一界面中的播放的视频画面和音频与第一应用被切换到后台前的视播放的视频画面和音频一致。
结合第一方面,在一种可能的实现方式中,所述确定第一应用是否处于视频保持状态,包括:第一应用被切换到后台运行时,第一界面不是主界面,并且第一应用获取音频焦点的时长超过第一时长。这样,电子设备可以确定第一应用切换到后台前的界面为视频播放界面,且播放视频的时间大于第一时长。
结合第一方面,在一种可能的实现方式中,所述确定该电子设备的内存使用量大于第一阈值之后,所述方法还包括:确定该电子设备的系统压力等级。这样,在第一应用为保活应用程序的情况下,以便于第一设备针对系统压力等级,采取相应的保活策略对第一应用进行保活。
结合第一方面,在一种可能实现的方式中,在保活时间内对所述第一应用的进程进行保活,包括:基于系统压力等级确定第一应用是否满足排名条件;若满足排名条件,则在保活时间内对第一应用的进程进行保活。这样,电子设备可以根据系统的压力等级采取不同的标准对第一应用是否为保活应用程序进行判定。
结合第一方面,在一种可能实现的方式中,系统压力等级包括一级压力和二级压力,基于所述系统压力等级确定所述第一应用是否满足排名条件,包括:当该电子设备的系统压力等级为一级压力时,确定第一应用在第一应用队列中的排名是否在第二阈值之内,第一应用队列包括与第一应用相同类型的应用;若第一应用在第一应用队列中的排名在第二阈值之内,则确定第一应用满足排名条件;或者,当该电子设备的系统压力等级为二级压力时,确定第一应用在第一应用队列中的排名是否在第三阈值之内;若第一应用在第一应用队列中的排名在第三阈值之内,则确定第一应用满足排名条件。这样,电子设备可以根据系统的压力等级采取不同的标准对第一应用是否满足排名条件进行判断,从而判断出第一应用是否为保活应用。
结合第一方面,在一种可能实现的方式中,该电子设备包括系统状态识别模块、资源管理模块以及保活决策模块,所述方法包括:系统识别模块从资源管理模块获取当前系统的运行内存使用量;系统识别模块确定运行内存使用量大于第一阈值;系统状态识别模块向保活决策模块发送运行内存使用量;响应于接收所述运行内存使用量,保活决策模块通过资源管理模块获取系统压力系数;保活决策模块判断系统压力系数是否大于第四阈值;若大于第四阈值,保活决策模块确定系统状态为高压状态;在系统状态为高压状态的情况下,保活决策模块判断所述运行内存使用量是否超过第五阈值;若超过第五阈值,则确定系统压力等级为一级压力;若未超过第五阈值,则确定系统压力等级为二级压力。这样,保活决策模块可以根据系统内存的压力判断出系统是否应该清理内存,以及在系统处于高压状态下,判断出系统的压力等级,以便保活决策模块根据系统的压力等级采取对应的保活策略(保活时间等)对保活应用程序进行保活。
结合第一方面,在一种可能实现的方式中,所述电子设备包括保活决策模块和应用识别模块,确定第一应用的应用类型之前,所述方法还包括:保活决策模块通过所述应用识别模块获取第一应用的应用类型;确定第一应用的应用类型,具体为:保活决策模块基于应用类型确定第一应用的类型为视频类型。这样,保活决策模块可以判断出第一应用为视频类型,以便于保活决策模块根据判断视频类应用是否为保活应用程序的方法(处于视频保持状态且满足排名条件)判断第一应用是否为保活应用程序。
结合第一方面,在一种可能实现的方式中,所述电子设备还包括音频焦点识别和应用切换识别模块,确定所述第一应用是否处于视频保持状态包括:保活决策模块从应用切换识别模块中获取第二界面切换报告,第二界面切换报告至少包括第一应用切换到后台的时刻T2、所述第一界面的标识信息;保活决策模块判断所述第一界面的标识信息是否与第一应用主界面的标志信息一致;若一致,保活决策模块确定所述第一应用不处于视频保持状态;若不一致,保活决策模块从所述音频焦点识别模块获取所述第一应用的音频焦点变化报告,音频焦点变化报告至少包括第一应用申请音频焦点的时刻T1;保活决策模块计算所述T1与T2的模值;保活决策模块分析该模值是否大于或等于第一时长;若是,保活模块确定所述第一应用处于视频保持状态;若否,保活模块确定所述第一应用不处于视频保持状态。这样,保活决策模块在判断出第一应用处于视频保持状态的情况下,通过判断第一应用是否满足排名条件来判断第一应用是否满足保活条件。
结合第一方面,在一种可能实现的方式中,基于所述系统压力等级确定所述第一应用满足排名条件,包括:在系统压力等级为一级压力的情况下,保活决策模块判断第一应用在第一应用队列中的排名是否在第二阈值之内,第一应用队列包括与第一应用相同类型的应用;若在,保活决策模块确定所述第一应用满足排名条件;或者,在系统压力等级为二级压力的情况下,保活决策模块判断所述第一应用在第一应用队列中的排名是否在第三阈值之内;若在,保活决策模块确定第一应用满足排名条件。这样,保活决策模块可以根据第一应用是否满足排名条件对第一应用是否满足保活条件进行判断,若满足保活条件,便可对第一应用在保活时长内进行保活。
结合第一方面,在一种可能实现的方式中,该电子设备还包括音频管理模块,将第一应用在保活时间内切换到前台运行之后,还包括:第一应用向音频管理模块申请音频焦点;音频管理模块向第一应用分配音频焦点。这样,重新切换回前台的第一应用重新获取音频焦点,可以播放音频。
结合第一方面,在一种可能实现的方式中,该电子设备还包括音频焦点决策模块,在保活时间内对所述第一应用的进程进行保活之后,包括:保活决策模块向音频焦点决策模块发送第一应用的保活信息,该保活信息包括保活时长SaveTime。这样,音频焦点决策模块可以根据保活信息判断切换回前台的第一应用是否为保活应用程序。
结合第一方面,在一种可能实现的方式中,该电子设备还包括音频管理模块、事件管理模块和界面管理模块,将所述第一应用在所述保活时间内切换到前台运行之后,还包括:界面管理模块向事件管理模块发送第三界面切换报告,第三界面切换报告包括第一应用的标识信息、第二应用程序的标识信息以及界面切换时刻T4;事件管理模块向应用切换识别模块发送第三界面切换报告;应用切换识别模块确定第一应用的标识信息与第二应用程序的标识信息不一致;应用切换识别模块向音频焦点决策模块发送所述第三界面切换报告;音频焦点决策模块计算所述T4与接收保活信息的时刻T5的模值;在模值大于SaveTime的情况下,音频决策管理模块向事件管理模块发送第一请求消息,第一请求消息用于指示音频管理模块向第一应用分配音频焦点;事件管理模块向所述音频管理模块发送第一请求消息;音频管理模块向第一应用分配音频焦点。这样,重新切换回前台的第一应用重新获取音频焦点,可以播放音频。
第二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:确定该电子设备的内存使用量大于第一阈值;确定第一应用的应用类型,第一应用处于后台运行状态;若第一应用的类型为视频类型,确定第一应用是否处于视频保持状态;若第一应用处于视频保持状态,在保活时间内对第一应用的进程进行保活。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:将处于第一界面的所述第一应用切换到后台运行。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:将第一应用在保活时间内切换到前台运行;在前台运行的第一应用显示所述第一界面。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:确定该电子设备的系统压力等级。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:基于系统压力等级确定第一应用是否满足排名条件;若满足排名条件,则在保活时间内对第一应用的进程进行保活。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:当该电子设备的系统压力等级为一级压力时,确定第一应用在第一应用队列中的排名是否在第二阈值之内,第一应用队列包括与第一应用相同类型的应用;若第一应用在第一应用队列中的排名在第二阈值之内,则确定第一应用满足排名条件;或者,当该电子设备的系统压力等级为二级压力时,确定第一应用在第一应用队列中的排名是否在第三阈值之内;若第一应用在第一应用队列中的排名在第三阈值之内,则确定第一应用满足排名条件。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:通过系统识别模块从资源管理模块获取当前系统的运行内存使用量;通过系统识别模块确定运行内存使用量大于第一阈值;通过系统状态识别模块向保活决策模块发送运行内存使用量;响应于接收所述运行内存使用量,通过保活决策模块通过资源管理模块获取系统压力系数;通过保活决策模块判断系统压力系数是否大于第四阈值;若大于第四阈值,通过保活决策模块确定系统状态为高压状态;在系统状态为高压状态的情况下,通过保活决策模块判断所述运行内存使用量是否超过第五阈值;若超过第五阈值,则确定系统压力等级为一级压力;若未超过第五阈值,则确定系统压力等级为二级压力。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:通过保活决策模块通过所述应用识别模块获取第一应用的应用类型;确定第一应用的应用类型,具体为:通过保活决策模块基于应用类型确定第一应用的类型为视频类型。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:通过保活决策模块从应用切换识别模块中获取第二界面切换报告,第二界面切换报告至少包括第一应用切换到后台的时刻T2、所述第一界面的标识信息;通过保活决策模块判断所述第一界面的标识信息是否与第一应用主界面的标志信息一致;若一致,通过保活决策模块确定所述第一应用不处于视频保持状态;若不一致,通过保活决策模块从所述音频焦点识别模块获取所述第一应用的音频焦点变化报告,音频焦点变化报告至少包括第一应用申请音频焦点的时刻T1;通过保活决策模块计算所述T1与T2的模值;通过保活决策模块分析该模值是否大于或等于第一时长;若是,通过保活模块确定所述第一应用处于视频保持状态;若否,通过保活模块确定所述第一应用不处于视频保持状态。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:在系统压力等级为一级压力的情况下,通过保活决策模块判断第一应用在第一应用队列中的排名是否在第二阈值之内,第一应用队列包括与第一应用相同类型的应用;若在,通过保活决策模块确定所述第一应用满足排名条件;或者,在系统压力等级为二级压力的情况下,通过保活决策模块判断所述第一应用在第一应用队列中的排名是否在第三阈值之内;若在,通过保活决策模块确定第一应用满足排名条件。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:向音频管理模块申请音频焦点。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:通过保活决策模块向音频焦点决策模块发送第一应用的保活信息,该保活信息包括保活时长SaveTime。
结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:通过界面管理模块向事件管理模块发送第三界面切换报告,第三界面切换报告包括第一应用的标识信息、第二应用程序的标识信息以及界面切换时刻T4;通过事件管理模块向应用切换识别模块发送第三界面切换报告;通过应用切换识别模块确定第一应用的标识信息与第二应用程序的标识信息不一致;通过应用切换识别模块向音频焦点决策模块发送所述第三界面切换报告;通过音频焦点决策模块计算所述T4与接收保活信息的时刻T5的模值;在模值大于SaveTime的情况下通过音频决策管理模块向事件管理模块发送第一请求消息,第一请求消息用于指示音频管理模块向第一应用分配音频焦点;事件管理模块向所述音频管理模块发送第一请求消息;音频管理模块向第一应用分配音频焦点。
第三方面,本申请实施例提供了一种电子设备,包括:触控屏、摄像头、一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述触控屏、所述摄像头、所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如第一方面或第一方面的任意一种实施方式所述的方法。
第四方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实施方式所述的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实施方式所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实施方式所述的方法。
附图说明
图1A-图1C是本申请实施例提供的一种应用场景图;
图2是本申请实施例提供的电子设备100的硬件结构示意图;
图3是本申请实施例提供的电子设备100的软件结构框图;
图4是本申请实施例提供的一种保活视频应用进程的流程图;
图5A-图5E是本申请实施例提供的一种视频应用界面图;
图6是本申请实施例提供的一种判断视频应用为视频保持状态的流程图;
图7是本申请实施例提供的一种分配音频焦点的流程图;
图8是本申请实施例提供的一种音频焦点决策模块与AudioManager的交互流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或者特性可以包含在本实施例申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是相同的实施例,也不是与其它实施例互斥的独立的或是备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中术语“第一”、“第二”、“第三”等是区别于不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元,或者可选地,还包括没有列出的步骤或单元,或者可选地还包括这些过程、方法、产品或设备固有的其它步骤或单元。
附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在本说明书中使用的术语“部件”、“模块”、“系统”、“单元”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,单元可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或分布在两个或多个计算机之间。此外,这些单元可从在上面存储有各种数据结构的各种计算机可读介质执行。单元可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一单元交互的第二单元数据。例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
下面,结合图1A-图1C介绍本申请实施例提供的应用场景。
如图1A所示,电子设备100的主界面101中存在多款软件的图标,例如视频应用1011、通信应用1012、游戏应用1013、浏览器1014等。当电子设备100检测到用户针对视频应用1011的输入操作(例如单击)时,视频应用开始启动,进入视频应用的界面。在用户使用视频应用观看如图1B所示的纪录片1的过程中,若有好友向该用户拨打电话时,电子设备100就会显示如图1C所示的电话接听界面。当用户接听电话时,视频应用就会被切换到后台,电子设备100会保存当前观看的视频状态。
在用户拨打电话的过程中,如果系统的运行内存紧张,系统会将运行在后台的部分应用程序清理,释放部分运行内存空间,以保证当前运行在前台的通话应用能够正常运行。电子设备首先会检测在后台运行的应用程序是否为保活应用程序,若为保活应用程序,电子设备则会在保活时间内对该应用程序进行保活。若不为保活应用程序,则电子设备清理该应用程序的进程。若当前运行在后台的应用程序包括视频应用1011、游戏应用1013、浏览器1014,系统检测到视频应用1011为保活应用程序,游戏应用1013和浏览器1014为非保活应用程序时,系统会可以将游戏应用1013和浏览器1014的进程清理掉,对视频应用1011在保活时间内(例如5分钟)进行保活。
当视频应用1011在5分钟内重新被切换到前台时,视频应用1011直接显示被切换前的界面,用户无需重新再进行查找视频、测试上次观看精度等步骤,一定程度上节约了用户的时间。例如,在图1B中,播放的视频为纪录片1,播放进度当前为00:10:53。当视频应用1011被重新切换到前台后,播放界面依然播放纪录片1,且播放进度为00:10:53。
下面,对电子设备100的硬件结构进行介绍。请参阅图2,图2是本申请实施例提供的电子设备100的硬件结构示意图。其中,电子设备100可以为手机、平板电脑、遥控器或具备无线通讯功能的可穿戴电子设备(如智能手表、AR眼镜)等等。
电子设备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)接口等。
电子设备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中。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。图3是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频应用,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括音频焦点识别模块、应用切换识别模块、事件管理模块、AudioManager(音频管理模块)、ActivityManager(界面管理模块)、保活决策模块、音频焦点决策模块、应用识别模块、用户习惯识别模块和系统状态识别模块等等。
音频焦点识别模块用于识别应用程序是否申请了音频焦点。
应用切换识别模块用于识别应用程序/界面是否发生切换。其中,切换分成切入和切出,切入为运行在后台的应用程序被切换到前台,切出为运行在前台的应用程序被切换到后台。
事件管理模块用于音频焦点识别模块、应用切换模块、保活决策模块等工作模块与ActivityManager、AudioManager之间的通信。
AudioManager用于分配/撤销应用程序的音频焦点。
ActivityManager用于查询应用程序运行的界面以及识别界面切换。
保活决策模块用于分析系统中的保活应用程序,以及根据保活策略在规定时间内对保活应用程序的进程进行保活。
音频焦点决策模块用于管理切换到前后台的应用程序的音频焦点。
应用识别模块用于识别应用程序的类型,例如识别应用程序为社交类应用程序、视频类应用程序、购物类应用程序等等。用户习惯识别模块用于根据用户数据对用户行为进行分析。例如,根据用于在一段时间内使用应用程序的频率和每次使用应用程序的时间,将应用程序分为高频应用程序和低频应用程序。
系统状态识别模块用于获取系统当前的内存运行使用量。
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绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,资源管理模块、传感器驱动。
资源管理模块用于存储系统运行内存所产生的数据资源。
上述图1A-图1C的实施例介绍了系统对视频应用进行保活的应用场景。系统将运行在后台的应用程序分为保活应用程序和非保活应用程序。当系统的运行内存紧张时,系统会将非保活应用程序的进程清理掉,并在保活时长内对保活应用程序的进程进行保活,当超出保活时长且保活应用程序未被切换到前台时,系统将不再保活该应用程序。
在系统运行内存紧张的情况下,运行在后台的视频应用的进程常常容易被清理掉。这就使得,当用户想继续使用视频应用观看视频时,需要重新执行打开视频应用→寻找目标视频→观看广告→查找进度等繁琐的操作,给用户带来了极大的时间成本以及极差的使用体验。
针对上述问题,本申请实施例提供了一种视频应用的保活方法,当电子设备系统运行内存紧张,且运行在后台的视频应用为保活应用程序时,电子设备根据保活策略对该视频应用进行保活。本申请实施例以第一应用为视频应用,进行举例说明。下面,结合图4,对系统保活视频应用进程的流程进行说明。请参见图4,图4是本申请实施例提供的一种系统保活视频应用进程的流程图,具体流程如下:
步骤S401:启动视频应用。
示例性的,如图5A所示,当电子设备100检测到针对视频应用的图标501的输入操作(例如单击)后,显示如图5B所示的视频应用加载界面502,电子设备在显示应用加载界面502的过程中,启动该视频应用的相关进程。当视频应用完成启动后,进入如图5C所示的视频应用主界面503。
步骤S402:进入视频播放界面。
具体地,视频播放界面是视频应用播放视频的工作界面。示例性的,当用户从图5C的视频应用主界面点击一个视频(例如,纪录片1)后,视频应用显示如图5D所示的视频播放界面505,如图5D所示,视频播放界面在播放用户选择的视频(纪录片1)。
步骤S403:视频应用向AudioManager申请音频焦点。
具体地,在进入视频播放界面的同时,视频应用会向AudioManager申请音频焦点,以便视频应用播放视频资源的音频。示例性的,视频应用可以调用函数AudioFocus_Request()向AudioManager申请音频焦点。
步骤S404:AudioManager向视频应用分配音频焦点。
具体地,AudioManager接收到所述视频应用申请音频焦点的请求后,为该视频应用分配音频焦点,并通过函数AudioFocus_Request向视频应用程序返回常量GRANTED,所述常量用于表征该视频应用成功申请音频焦点。
步骤S405:视频应用播放视频。
具体的,在成功申请音频焦点后,视频应用在视频播放界面播放视频。此时,用户可以通过看到视频应用的播放画面并听到相应的音频内容。
步骤S406:视频应用被切换到后台。
具体地,用户可以主动将视频应用切换到后台,也可以是其他应用启动到前台运行导致视频应用被切换到后台,如用户看视频过程中接收到来电,则视频应用被切换到后台运行。当视频应用被切换到后台后,视频应用可以释放音频焦点,也可以不释放音频焦点,本申请实施例对此不做限制。
步骤S407:系统状态识别模块从资源管理模块获取当前系统的运行内存使用量。
具体地,系统状态识别模块在电子设备开机后,周期性/定时地监测系统当前运行状态,监测的具体方式为:系统状态识别模块周期性/定时地调用函数Memory_Request从位于内核层的资源管理模块中获取系统的运行内存的使用量。示例性的,系统运行内存的使用量为5G。
步骤S408:系统状态识别模块确定系统的运行内存使用量大于第一阈值。
示例性的,系统状态识别模块判断系统的运行内存使用量是否超过第一阈值,若系统的运行内存使用量超过了第一阈值,系统状态识别模块向保活决策模块发送系统的运行内存使用量,执行步骤S409。否则,系统状态识别模块不发送系统的运行内存使用量。例如,预设的阈值为3G,系统的运行内存使用量为5G,由于系统的运行内存使用量超过了预设的阈值,因此系统状态识别模块要向保活决策模块发送系统的运行内存使用量。
步骤S409:系统状态识别模块向保活决策模块发送系统的运行内存使用量。
具体地,系统状态识别模块可以调用函数Memory_Send将系统的运行内存使用量发送给保活决策模块。
步骤S410:保活决策模块向资源管理模块获取系统压力系数。
具体地,保活决策模块在接收到系统状态识别模块发送的系统运行内存使用量后,保活决策模块可以向资源管理模块获取系统压力系数。系统压力系数可以包括:IO压力系数(例如,90)、CPU压力系数(例如,90)以及内存压力系数(例如,80)。示例性的,保活决策模块可以通过调用函数Pressure_Request从位于内核层的资源管理模块中获取系统压力系数。
步骤S411:保活决策模块基于系统的运行内存使用量和系统压力系数确定系统压力等级。
具体地,保活决策模块判断系统压力系数是否均达到第四阈值,若系统压力系数均大于第四阈值,则处于高压状态,否则为低压状态。其中,第四阈值可以基于经验值得到,也可以基于历史数据得到,还可以基于实验数据得到,本申请实施例对此不做限制。
如果系统处于高压状态,则判断系统压力较大,需要清理部分或全部在后台运行的应用程序,如果系统处于低压状态,则判断系统压力较小,不需要清理运行在后台的应用程序。
如果是高压状态,则确定系统的运行内存使用量是否超过第五阈值,若系统的运行内存使用量超过第五阈值,则为判断系统压力等级为一级压力,否则为二级压力。实际应用中也可以根据具体情况划分多个压力状态等级。其中,第五阈值可以由历史经验值得到,也可以由历史数据得到,还可以由实验数据得到,本申请实施例对此不做限制。
步骤S412:在系统处于高压状态下,保活决策模块从Activitymanager中获取当前在后台运行的应用和每个后台应用对应的进程。
具体地,保活决策模块从Activitymanager中获取的是应用队列,该应用队列包括所有在后台运行的应用,且每个应用都对应一个进程队列。示例性的,保活决策模块从资源管理模块中获取在后台运行的应用有十个,保活决策模块可基于当前系统的压力等级确定要清理哪些应用。保活决策模块可以通过调用函数Process_Request从Activitymanager中获取当前在后台运行的应用和每个后台应用对应的进程。
步骤S413:保活决策模块从应用识别模块获取视频应用的类型。
具体地,保活决策模块可以通过函数Request_Type(App_1)获取该视频应用的类型信息。其中,App_1为该视频应用的包名。应用识别模块中可预置有应用包名和应用类型的对应表,通过该对应表可以查询到该应用对应的应用类型。应用识别模块基于视频应用的包名App_1在对应表中查询该视频应用的类型信息Video,并调用函数Type_CallBack将该类型信息返回给保活决策模块。其中,Video用于指示应用的类型为视频类型。
步骤S414:保活决策模块确定该视频应用为视频类应用。
步骤S415:保活决策模块判断该视频应用是否为视频保持状态。
具体地,若判断为是,执行步骤S416。若判断为否,则无需对该视频应用进行保活,可以将该视频应用设置在非保活队列中。
步骤S416:在判断该视频应用为视频保持状态的情况下,保活决策模块基于系统压力等级确定该视频应用是否满足排名条件。
具体地,排名条件可以是该视频应用在第一应用中的排名是否达到预设排名范围。第一应用为电子设备中的视频类应用。例如,保活决策模块从用户习惯识别模块中读取第一应用的使用频率f、每次使用的时间t1、应用本次被切换到后台的时长等参数,并基于这些参数计算每个应用的分数值,并基于分数值对应用进行排名。
保活决策模块基于压力状态等级判断预设排名范围的大小,当系统压力等级为一级压力时,预设排名范围为第二阈值,即当所述视频应用的排名在前第二阈值以内(包括第二阈值),满足排名条件,执行步骤S417。当该视频应用的排名不在前第二阈值以内(包括第二阈值),则不满足排名条件,可以将该视频应用设置在非保活队列中。在系统压力状态等级为二级压力状态时,预设排名范围为第三阈值,即当所述视频应用的排名在前第三阈值以内(包括第三阈值),满足排名条件,执行步骤S417。当该视频应用的排名不在前第三阈值以内(包括第三阈值),则不满足排名条件,无需对视频应用进行保活,可以将该视频应用设置在非保活队列中。
步骤S417:在所述视频应用满足排名条件的情况下,保活决策模块根据保活策略,在保活时间内对所述视频应用进行保活。
具体地,若所述视频应用在第一应用程序中的排名达到预设排名范围,该视频应用为保活应用程序,保活决策模块会根据保活策略对其进行保活。所述保活策略为:根据系统压力状态等级不同,保活决策模块对所述视频应用的保活时长也不同。例如,当系统处于一级压力状态时,保活决策模块对该视频应用的保活时长为3分钟,当系统不处于一级压力状态时,保活决策模块对该视频应用的保活时长为5分钟。当系统处于一级压力状态时,若该视频应用在3分钟后还未被切换到前台,取消对该视频应用的保活,该视频应用设置在非保活队列中。
保活决策模块对进程可以进行分组,具体可以分成保活队列和非保活队列,如果确定需要对该应用进行保活则将该应用放在保活队列中,如果不需要对该应用保活或者该应用超出保活时间便将该应用放在非保活队列中。在需要进行内存清理时,可以对非保活对列中的应用对应的应用进程进行查杀。
步骤S418:该视频应用在保活时间内被切换到前台。
具体地,在步骤S406中,若视频应用被切换到后台后,释放音频焦点,或者在该视频应用切到后台后有其他应用申请音频焦点,则在步骤S418中,则视频应用则会再次申请音频焦点。该视频应用重新申请音频焦点的过程请参见步骤S403-步骤S404,本申请实施例在此不再赘述。如果视频应用被切换到后台后,未释放音频焦点,则也可以不重新申请音频焦点。
步骤S419:视频应用继续播放视频。
具体地,视频应用在切换到前台后,继续播放切换在后台前的视频,且视频播放进度与切换到后台前的视频播放进度相同。例如,在图5E中,视频应用切换到后台前,播放的视频为纪录片1,播放进度为00:33:00,视频应用切换到前台后,播放的视频为纪录片1,播放进度为00:33:00。
在一种可能实现的方式中,系统状态识别模块也可以是在保活决策模块中,也就是说,保活决策模块可以用来执行系统状态识别模块的功能。具体的,保活决策模块可以周期性/定时地调用函数Memory_Request从位于内核层的资源管理模块中读取系统的运行内存使用量。基于系统的运行内存使用量确定当前系统是否要进行内存清理,如果需要清理,则通过资源管理模块获取系统压力系数,保活决策模块基于系统的运行内存使用量和系统压力系数确定系统压力等级。
示例性的,保活决策模块也可以同时获取系统运行内存的占用率和系统压力系数,基于系统运行内存的使用量和系统压力系数确定系统压力等级。例如,在高压状态下,判断系统的运行内存使用量是否超过第二阈值,若系统的运行内存使用量超过第二阈值,则为判断系统状态为一级压力状态,否则为二级压力状态。实际应用中也可以根据具体情况划分多个压力状态等级。
在一种可能的实现方式中,在系统状态识别模块从资源管理模块获取当前系统的运行内存使用量后,系统状态识别模块可以基于运行内存使用量是否超过第一阈值,判断系统是否需要进行内存清理。若超过第一阈值,则需要内存清理,系统状态识别模块向保活决策模块发送系统的运行内存使用量。然后,保活决策模块向资源管理模块获取系统压力系数,再根据系统压力系数确定系统压力等级。例如,保活决策模块判断系统压力系数是否均达到预设的上限值,若系统压力系数均大于该上限值,则判断系统压力等级为一级压力,否则为二级压力。然后,保活决策模块从Activitymanager中获取当前在后台运行的应用和每个后台应用对应的进程。
在一种可能实现的方式中,执行步骤409后,可以直接执行步骤412保活决策模块从Activitymanager中获取后台应用和后台应用对应的进程。即系统状态识别模块向保活决策模块发送系统的运行内存使用量后,保活决策模块从Activitymanager中获取当前在后台运行的应用和每个后台应用对应的进程。然后,保活决策模块从应用识别模块获取视频应用的类型,在确定该视频应用为视频类应用后,判断该视频应用是否为视频保持状态。在判断该视频应用为视频保持状态的情况下,保活决策模块向资源管理模块获取系统压力系数,并根据系统压力系数确定系统压力等级。然后,保活决策模块基于系统压力等级确定该视频应用是否满足排名条件。
本申请实施例,在系统运行内存处于高压状态时,判断视频应用是否为保活应用程序,在视频应用为保活应用程序的情况下,根据保活策略对该视频应用进行保活,在保证系统能够正常运行的情况下,保证视频应用的进程在后台能够继续运行。当用户在保活时长内将该视频应用重新切回前台时,视频应用为切换前的视频播放状态,用户观看视频的进度与切换前的一致。用户不必再执行启动视频应用、查找视频、寻找历史观看进度等繁琐操作,为用户节约了时间,给用户良好的体验。
上述图4实施例介绍了系统在其运行内存处于高压状态下对视频应用进行保活的流程。下面,结合图6,对上述步骤S415中,判断视频应用是否为视频保持状态的具体流程进行展开说明。具体流程如下:
步骤S601:音频焦点识别模块向事件管理模块订阅音频焦点变化事件。
具体地,音频焦点识别模块在电子设备开机后,调用函数Subcribe_Change(AudioEvent,AudioCallBack)向事件管理模块订阅音频焦点变化事件。其中,AudioEvent用于指示订阅的事件类型为音频焦点变化事件,AudioCallBack为在音频焦点识别模块内的回调函数。这样,事件管理模块接收到AudioManager调用函数AudioFocus_Send1()发送的该视频应用的音频焦点变化报告后,事件管理模块可以调用回调函数AudioCallBack将该音频焦点变化报告发送给音频焦点识别模块。
步骤S602:应用切换识别模块向事件管理模块订阅界面切换变化事件。
具体地,应用切换识别模块在电子设备开机后,调用函数Subscribe_Change(BoundarChange,BoundarCallBack)向事件管理模块订阅界面切换变化事件。其中,BoundarChange用于指示订阅的事件类型为界面切换变化事件,BoundarCallBack为在应用切换识别模块内的回调函数。这样,当有界面或应用程序发生切换时,事件管理模块调用函数BoundarCallBack向应用切换识别模块发送界面切换变化报告。
需要说明的是,步骤S601可以先于步骤S602执行,也可以后于步骤S602执行,还可以与步骤S602同时执行,本申请实施例仅作举例说明,不做限制。
步骤S603:启动视频应用。
步骤S604:进入视频播放界面。
步骤S603-步骤S604请参考上述图4实施例中步骤S401-步骤S402的相关叙述,本申请实施例在此不再赘述。
步骤S605:ActivityManager向事件管理模块发送第一界面切换报告。
具体地,视频应用从其它界面切换到视频播放界面的同时,视频应用Activity栈的栈顶Activity为视频播放界面对应的Activity。可以事先对ActivityManager进行代码插桩,即:在ActivityManager中插入一段代码,当ActivityManager检测到栈顶Activity的变化后会向事件管理模块发送界面切换报告。以视频应用进入视频播放界面前的界面为主界面为例,进行说明。其中,该视频应用的标识为App_1,主界面的界面标识为Act_1,视频播放界面的界面标识为Act_2。当视频应用从主界面切换到视频播放界面后,ActivityManager可以调用函数Boundar_Send1()向事件管理模块发送第一界面切换报告。其中,第一界面切换报告包括切换界面的界面标识(Act_2)、切换界面应用程序的包名(App_1)、被切换界面的界面标识(Act_1)、被切换界面应用程序的包名(App_1)以及主界面切换到视频播放界面的时刻T3。
步骤S606:事件管理模块将第一界面切换报告发送给应用切换识别模块。
具体地,事件管理模块可以通过调用函数BoundarCallBack将第一界面切换报告发送给应用切换识别模块。
步骤S607:视频应用向AudioManager申请音频焦点。
步骤S608:AudioManager向视频应用分配音频焦点。
步骤S607-步骤S608请参考上述图4实施例中步骤S403-步骤S404的相关叙述,本申请实施例在此不再赘述。步骤S605和步骤S607步骤执行顺序,本申请实施例不予限定。
步骤S609:AudioManager向事件管理模块发送所述视频应用的音频焦点变化报告。
具体地,在AudioManager中进行代码插桩,即在AudioManager中预先插入一段代码,当AudioManager向应用程序分配或撤销音频焦点时,运行该代码。然后,AudioManager调用函数AudioFocus_Send1将该应用程序的音频焦点变化报告发送给事件管理模块。所述视频应用的音频焦点变化报告包括所述视频应用的包名(App_1)、参数Request、申请音频焦点的时间(T1),所述Request用于表征所述视频应用获取音频焦点。例如,所述音频焦点变化报告的形式可以为(App_1,Request,T1)。
步骤S610:事件管理模块向音频焦点识别模块发送所述视频应用的音频焦点变化报告。
具体地,由于音频焦点识别模块在电子设备开机后向事件管理模块订阅了音频焦点变化事件,当事件管理模块接收到AudioManager发送的所述视频应用的音频焦点变化报告后,调用函数AudioCallBack将该音频焦点变化报告发送给音频焦点识别模块。
步骤S611:所述视频应用被切换到后台。
具体地,用户可以主动将视频应用切换到后台,也可以是其他应用启动到前台运行导致视频应用被切换到后台,如用户看视频过程中接收到来电,则视频应用被切换到后台运行。当视频应用被切换到后台后,视频应用可以释放音频焦点,也可以不释放音频焦点,本申请实施例对此不做限制。
步骤S612:ActivityManager向事件管理模块发送第二界面切换报告。
具体地,当该视频应用被切换到后台时,会存在两个不同应用程序的界面切换的情况。例如,若视频应用在播放视频时被切换到后台,此时,若切换到前台的应用程序为某一音乐应用的播放界面。那么,第二界面切换报告包括:该视频应用的包名(App_1)、视频播放界面的界面标识(Act_2)、音乐应用的包名(例如,为App_2)、音乐播放界面的界面标识(例如,为Act_3)以及该视频应用被切换到后台的时刻T2。
步骤S613:事件管理模块向应用切换识别模块发送第二界面切换报告。
具体地,事件管理模块可以通过调用函数BoundarCallBack将第二界面切换报告发送给应用切换识别模块。
在系统处于高压状态的情况下,具体步骤S415包括:
步骤S614:保活决策模块从应用切换识别模块中获取第二界面切换报告。
具体地,保活决策模块可以通过调用函数Request_BoundarChange(App_1)获取第二界面切换报告。其中,App_1为该视频应用的包名。应用切换模块基于Request_BoundarChange中App_1为返回视频应用最新的界面切换报告(第二界面切换报告)。
步骤S615:保活决策模块基于第二界面切换报告判断该视频应用切换到后台前的界面是否为主界面。
具体地,保活决策模块读取第二界面切换报告中的Act_2,判断其是否与视频应用主界面的界面标识一致。若不一致,则说明视频应用被切换到后台前,其界面不为主界面,执行步骤S616,若一致,则确定该视频应用不为视频保持状态。
步骤S616:保活决策模块从音频焦点识别模块获取所述视频应用的音频焦点变化报告。
具体地,保活决策模块可以通过调用函数Request_AudioFocusChange(App_1)从音频焦点识别模块获取所述视频应用的音频焦点变化报告。
步骤S617:保活决策模块基于第二界面切换报告和所述视频应用的音频焦点变化报告判断所述视频应用获取音频焦点的时长是否大于或等于第一时长。
具体地,为了排除类似“在进入播放界面之后立即退出该界面”这种在视频播放界面停留时间很短的场景,保活决策模块需要判断视频应用获取音频焦点的时长是否大于第一时长。具体计算过程为:保活决策模块读取音频焦点变化报告中的T1和第二界面切换报告中的T2,计算T1与T2的模值,并判断该模值是否大于或等于第一时长。若该模值大于或等于第一时长,则确定所述视频应用获取音频焦点的时长大于或等于第一时长,若该模值小于第一时长,则确定所述视频应用获取音频焦点的时长小于第一时长。
步骤S618:在所述视频应用保留音频焦点的时长大于或等于第一时长的情况下,保活决策模块判断视频应用处于视频保持状态。
本申请实施例,保活决策模块通过判断视频应用是否处于视频保持状态,有利于保活决策模块判断视频应用是否为保活应用程序,当该视频应用为保活应用程序的情况下,在保活时间内对该视频应用进行保活,当用户在保活时长内将该视频应用重新切回前台时,视频应用为切换前的视频播放状态,用户观看视频的进度与切换前的一致。用户不必再执行启动视频应用、查找视频、寻找历史观看进度等繁琐操作,为用户节约了时间,给用户良好的体验。
在上述图4实施例中,当视频应用在保活时间内被切换回前台时,视频应用会重新申请音频焦点。本申请实施例提供另外一种为重新切换到前台的视频应用分配音频焦点的方法。下面,结合图7,对另一种分配音频焦点的方法进行展开说明。请参见图7,图7是本申请实施例提供的一种分配音频焦点的流程图,具体流程如下:
步骤S701:启动视频应用。
步骤S702:视频应用进入视频播放界面。
步骤S703:视频应用向AudioManager申请音频焦点。
步骤S704:AudioManager向视频应用分配音频焦点。
步骤S705:视频应用播放视频。
步骤S706:视频应用被切换到后台。
步骤S707:系统状态识别模块从资源管理模块获取当前系统的运行内存使用量。
步骤S708:系统状态识别模块确定系统的运行内存使用量大于第一阈值。
步骤S709:系统状态识别模块向保活决策模块发送系统的运行内存使用量。
步骤S710:保活决策模块向资源管理模块获取系统压力系数。
步骤S711:保活决策模块基于系统的运行内存使用量和系统压力系数确定系统压力等级。
步骤S712:在系统处于高压状态下,保活决策模块从Activitymanager中获取当前在后台运行的应用和每个后台应用对应的进程。
步骤S713:保活决策模块从应用识别模块获取视频应用的类型信息。
步骤S714:保活决策模块基于该视频应用的类型信息确定该视频应用为视频类应用。
步骤S715:保活决策模块判断该视频应用是否为视频保持状态。
步骤S716:在判断该视频应用为视频保持状态的情况下,保活决策模块基于系统压力状态等级确定该视频应用是否满足排名条件。
步骤S717:在所述视频应用满足排名条件的情况下,保活决策模块根据保活策略,在保活时间内对所述视频应用进行保活。
步骤S701-步骤S717请参考上述步骤S401-步骤S417的相关叙述,本申请实施例在此不再赘述。
步骤S718:保活决策模块向音频焦点决策模块发送该视频应用的保活信息。
具体地,保活决策模块确定保活应用程序后,会调用Save_App函数向音频焦点决策模块发送所述视频应用的保活信息(App_1,SaveTime)。其中,SaveTime为视频应用的保活时长。
步骤S719:该视频应用在保活时间内被切换到前台。
步骤S720:音频焦点决策模块基于保活信息向AudioManager发送第一请求消息。
具体地,所述第一请求消息用于指示AudioManage向所述视频应用分配音频焦点,包括所述视频应用的包名App_1。在步骤S706中,若视频应用被切换到后台后,释放音频焦点,或者在该视频应用切到后台后有其他应用申请音频焦点,当视频应用被再次切换到前台后,需要获得音频焦点。
步骤S721:AudioManager基于第一请求消息为该视频应用分配音频焦点。
步骤S722:视频应用继续播放视频。
步骤S722请参考上述步骤S419中的相关叙述,本申请实施例在此不再赘述。
在一种可能实现的方式中,系统状态识别模块也可以是在保活决策模块中,也就是说,保活决策模块可以用来执行系统状态识别模块的功能。具体的,保活决策模块可以周期性/定时地调用函数Memory_Request从位于内核层的资源管理模块中读取系统的运行内存使用量。基于系统的运行内存使用量确定当前系统是否要进行内存清理,如果需要清理,则通过资源管理模块获取系统压力系数,保活决策模块基于系统的运行内存使用量和系统压力系数确定系统压力等级。
示例性的,保活决策模块也可以同时获取系统运行内存的占用率和系统压力系数,基于系统运行内存的使用量和系统压力系数确定系统压力等级。例如,在高压状态下,判断系统的运行内存使用量是否超过第二阈值,若系统的运行内存使用量超过第二阈值,则为判断系统状态为一级压力状态,否则为二级压力状态。实际应用中也可以根据具体情况划分多个压力状态等级。
在一种可能的实现方式中,在系统状态识别模块从资源管理模块获取当前系统的运行内存使用量后,系统状态识别模块可以基于运行内存使用量是否超过第一阈值,判断系统是否需要进行内存清理。若判断为是,则需要内存清理,系统状态识别模块向保活决策模块发送系统的运行内存使用量。然后,保活决策模块向资源管理模块获取系统压力系数,再根据系统压力系数确定系统压力等级。例如,保活决策模块判断系统压力系数是否均达到预设的上限值,若系统压力系数均该上限值,则判断系统压力等级为一级压力,否则为二级压力。然后,保活决策模块从Activitymanager中获取当前在后台运行的应用和每个后台应用对应的进程。
在一种可能实现的方式中,系统状态识别模块向保活决策模块发送系统的运行内存使用量后,保活决策模块从Activitymanager中获取当前在后台运行的应用和每个后台应用对应的进程。然后,保活决策模块从应用识别模块获取视频应用的类型,在确定该视频应用为视频类应用后,判断该视频应用是否为视频保持状态。在判断该视频应用为视频保持状态的情况下,保活决策模块向资源管理模块获取系统压力系数,并根据系统压力系数确定系统压力等级。然后,保活决策模块基于系统压力等级确定该视频应用是否满足排名条件。
本申请实施例,音频决策模块通过AudioManager为切换回前台的视频应用重新分配音频焦点,使得当前处于视频播放界面的视频应用能够播放音频。
上述图7实施例中,对另一种为切换到前台的视频应用分配音频焦点的方法进行介绍。下面,结合图8,对上述步骤S720中音频焦点决策模块基于保活信息向AudioManager发送第一请求消息的具体流程进行说明,具体流程如下:
步骤S801:音频焦点决策模块向应用切换识别模块订阅应用切换变化事件。
具体地,音频焦点决策模块在电子设备开机时可以调用函数Subcribe_Change(AppChange,AppCallBack)向应用切换识别模块订阅应用切换变化事件,当有应用程序发生切换时,音频决策模块可以通过应用切换识别模块监听到。其中,AppChange用于指示订阅事件的类型为应用切换变化事件,AppCallBack为音频决策模块的回调函数。
步骤S802:应用切换识别模块向事件管理模块订阅界面切换变化事件。
具体地,应用切换识别模块向事件管理模块订阅界面切换变化事件的具体过程请参考步骤S602,在此不再赘述。
步骤S803:保活决策模块向音频焦点决策模块发送所述视频应用的保活信息。
具体地,保活决策模块向音频焦点决策模块发送所述视频应用的保活信息的过程请参考步骤S719,本申请实施例在此不再赘述。
步骤S804:所述视频应用在保活时间内被切换到前台。
步骤S805:ActivityManager向事件管理模块发送第三界面切换报告。
具体地,所述第三界面切换报告包括App_1、App_2、Act_a、Act_b、T4。其中,App_1为所述视频应用的包名,App_2为被视频应用切换到后台的应用程序的包名(第二应用程序)、Act_a为视频应用当前工作界面的标识信息(第二界面标识)、Act_b为被切换界面的标识信息(第一界面标识),T4是界面切换的时间。例如,第三界面切换报告的形式可以为(App_2,Act_b,App_1,Act_a,T4)。
在视频应用在保活时间内被切换到前台的情况下,具体步骤S720如下:
步骤S806:事件管理模块将第三界面切换报告发送给应用切换识别模块。
具体地,事件管理模块可以通过调用函数BoundarCallBack将第三界面切换报告发送给应用切换识别模块。
步骤S807:应用切换识别模块向音频焦点决策模块发送第三界面切换报告。
具体地,应用切换识别模块接收到第三界面切换报告后,将App_2和App_1进行比较,发现二者不一致,应用切换识别模块确定发生了应用切换。由于音频焦点决策模块在电子设备开机时向应用切换识别模块订阅了应用切换变化事件。因此,当应用切换识别模块识别到所述视频应用切换到前台为应用程序之间的切换时,调用函数AppCallBack将第三界面切换报告发送给音频焦点决策模块。
步骤S808:音频焦点决策模块基于第三界面切换报告向事件管理模块发送第一请求消息。
具体地,音频决策模块在接收到应用切换变化报告后调用视频应用的保活信息,并根据第三界面切换报告中App_1确定该视频应用为保活应用程序。然后,音频焦点决策模块可以计算接收该视频应用保活信息的时间T5与第三界面切换报告中的T4的模值,并判断该模值是否大于SaveTime。若判断为否,则该视频应用是在保活时间内被切回前台的,音频焦点决策模块向事件管理模块发送第一请求消息。若判断为是,则该视频应用不是在保活时间内被切回前台的,音频焦点决策模块不向事件管理模块发送第一请求消息。
步骤S809:事件管理模块向AudioManage发送第一请求消息。
具体地,事件管理模块调用函数AudioFocus_Distribut_1(App_1)向AudioManager发送第一请求消息。
本申请实施例,音频焦点决策模块向AudioManager发送第一请求消息,从而使得AudioManager向该应用程序分配音频焦点,使得当前处于视频播放界面的视频应用能够播放音频。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种视频应用的保活方法,其特征在于,应用于电子设备,所述方法包括:
将处于第一界面的第一应用切换到后台运行;
确定所述电子设备的内存使用量大于第一阈值;
确定第一应用的应用类型为视频类型;
确定所述第一应用是否处于视频保持状态,其中,在所述第一应用被切换到后台运行,
且所述第一界面不是主界面,并且所述第一应用获取音频焦点的时长超过第一时长的情况下,确定所述第一应用处于视频保持状态;
若所述第一应用处于视频保持状态,在保活时间内对所述第一应用的进程进行保活;
将所述第一应用在所述保活时间内切换到前台运行;
所述第一应用显示所述第一界面。
2.如权利要求1所述的方法,其特征在于,所述确定所述电子设备的内存使用量大于第一阈值之后,所述方法还包括:
确定所述电子设备的系统压力等级。
3.如权利要求2所述的方法,其特征在于,所述在保活时间内对所述第一应用的进程进行保活,包括:
基于所述系统压力等级确定所述第一应用是否满足排名条件;
若满足排名条件,则在保活时间内对所述第一应用的进程进行保活。
4.如权利要求3所述的方法,其特征在于,所述系统压力等级包括一级压力和二级压力,所述基于所述系统压力等级确定所述第一应用是否满足排名条件,包括:
当所述电子设备的系统压力等级为所述一级压力时,确定所述第一应用在第一应用队列中的排名是否在第二阈值之内,所述第一应用队列包括与所述第一应用相同类型的应用;
若所述第一应用在第一应用队列中的排名在第二阈值之内,则确定所述第一应用满足排名条件;
或者,
当所述电子设备的系统压力等级为所述二级压力时,确定所述第一应用在第一应用队列中的排名是否在第三阈值之内;
若所述第一应用在第一应用队列中的排名在第三阈值之内,则确定所述第一应用满足排名条件。
5.如权利要求4所述的方法,其特征在于,所述电子设备包括系统状态识别模块、资源管理模块以及保活决策模块,所述方法包括:
所述系统状态识别模块从所述资源管理模块获取当前系统的运行内存使用量;
所述系统状态识别模块确定所述运行内存使用量大于第一阈值;
所述系统状态识别模块向所述保活决策模块发送所述运行内存使用量;
响应于接收所述运行内存使用量,所述保活决策模块通过所述资源管理模块获取系统压力系数;
所述保活决策模块判断所述系统压力系数是否大于第四阈值;
若大于第四阈值,所述保活决策模块确定系统状态为高压状态;
在所述系统状态为高压状态的情况下,所述保活决策模块判断所述运行内存使用量是否超过第五阈值;
若超过第五阈值,则确定系统压力等级为一级压力;
若未超过第五阈值,则确定系统压力等级为二级压力。
6.如权利要求5所述的方法,其特征在于,所述电子设备还包括音频焦点识别和应用切换识别模块,所述确定所述第一应用是否处于视频保持状态,包括:
所述保活决策模块从所述应用切换识别模块中获取第二界面切换报告,所述第二界面切换报告至少包括所述第一应用切换到后台的时刻T2、所述第一界面的标识信息;
所述保活决策模块判断所述第一界面的标识信息是否与所述第一应用主界面的标志信息一致;
若一致,所述保活决策模块确定所述第一应用不处于视频保持状态;
若不一致,所述保活决策模块从所述音频焦点识别模块获取所述第一应用的音频焦点变化报告,所述音频焦点变化报告至少包括所述第一应用申请音频焦点的时刻T1;
所述保活决策模块计算所述T1与所述T2的模值;
所述保活决策模块确定所述模值是否大于或等于第一时长;
若是,所述保活决策模块确定所述第一应用处于视频保持状态;
若否,所述保活决策模块确定所述第一应用不处于视频保持状态。
7.如权利要求5所述的方法,其特征在于,所述基于所述系统压力等级确定所述第一应用满足排名条件,
包括:
在系统压力等级为所述一级压力的情况下,所述保活决策模块判断所述第一应用在第一应用队列中的排名是否在第二阈值之内,所述第一应用队列包括与所述第一应用相同类型的应用;
若在,所述保活决策模块确定所述第一应用满足排名条件;
或者,在系统压力等级为所述二级压力的情况下,所述保活决策模块判断所述第一应用在第一应用队列中的排名是否在第三阈值之内;
若在,所述保活决策模块确定所述第一应用满足排名条件。
8.如权利要求1所述的方法,其特征在于,所述电子设备还包括音频管理模块,所述将所述第一应用在所述保活时间内切换到前台运行之后,还包括:
所述第一应用向所述音频管理模块申请音频焦点;
所述音频管理模块向所述第一应用分配音频焦点。
9.如权利要求5所述的方法,其特征在于,所述电子设备还包括音频焦点决策模块,所述在保活时间内对所述第一应用的进程进行保活之后,包括:
所述保活决策模块向所述音频焦点决策模块发送所述第一应用的保活信息,所述保活信息包括保活时长SaveTime。
10.如权利要求9所述的方法,其特征在于,所述电子设备还包括音频管理模块、事件管理模块和界面管理模块,所述将所述第一应用在所述保活时间内切换到前台运行之后,还包括:
所述界面管理模块向所述事件管理模块发送第三界面切换报告,所述第三界面切换报告包括所述第一应用的标识信息、第二应用程序的标识信息以及界面切换时刻T4;
所述事件管理模块向所述应用切换识别模块发送所述第三界面切换报告;
所述应用切换识别模块确定所述第一应用的标识信息与第二应用程序的标识信息不一致;
所述应用切换识别模块向所述音频焦点决策模块发送所述第三界面切换报告;
所述音频焦点决策模块计算所述T4与接收所述保活信息的时刻T5的模值;
在所述模值大于所述SaveTime的情况下所述音频焦点决策模块向所述事件管理模块发送第一请求消息,所述第一请求消息用于指示所述音频管理模块向所述第一应用分配音频焦点;
所述事件管理模块向所述音频管理模块发送所述第一请求消息;
所述音频管理模块向所述第一应用分配音频焦点。
11.一种电子设备,其特征在于,包括:触控屏、摄像头、一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述触控屏、所述摄像头、所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-10中的任一项所述的方法。
12.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
13.一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-10中任一项所述的方法。
CN202110715306.5A 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备 Active CN113741994B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202110715306.5A CN113741994B (zh) 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备
CN202210334778.0A CN115525356A (zh) 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备
US18/033,647 US20230325260A1 (en) 2021-06-26 2022-05-19 Video application keepalive method and electronic device
EP22827263.9A EP4216058A4 (en) 2021-06-26 2022-05-19 CONNECTION MAINTENANCE METHOD FOR VIDEO APPLICATION AND ELECTRONIC DEVICE
PCT/CN2022/093745 WO2022267765A1 (zh) 2021-06-26 2022-05-19 一种视频应用的保活方法以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110715306.5A CN113741994B (zh) 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210334778.0A Division CN115525356A (zh) 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备

Publications (2)

Publication Number Publication Date
CN113741994A CN113741994A (zh) 2021-12-03
CN113741994B true CN113741994B (zh) 2022-07-12

Family

ID=78728528

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210334778.0A Pending CN115525356A (zh) 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备
CN202110715306.5A Active CN113741994B (zh) 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210334778.0A Pending CN115525356A (zh) 2021-06-26 2021-06-26 一种视频应用的保活方法以及电子设备

Country Status (4)

Country Link
US (1) US20230325260A1 (zh)
EP (1) EP4216058A4 (zh)
CN (2) CN115525356A (zh)
WO (1) WO2022267765A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115525356A (zh) * 2021-06-26 2022-12-27 荣耀终端有限公司 一种视频应用的保活方法以及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014200631A1 (en) * 2013-06-11 2014-12-18 Seven Networks, Inc. Optimizing keepalive and other background traffic in a wireless network
CN108055408A (zh) * 2017-12-28 2018-05-18 维沃移动通信有限公司 一种应用程序控制方法及移动终端
WO2019019703A1 (zh) * 2017-07-28 2019-01-31 华为技术有限公司 管理触发器的方法及终端设备
CN111193954A (zh) * 2020-03-05 2020-05-22 成都金麦客科技有限公司 一种Android MV视频后台播放系统
CN111615002A (zh) * 2020-04-30 2020-09-01 腾讯科技(深圳)有限公司 视频后台播放控制方法、装置、系统及电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003266466A1 (en) * 2002-12-06 2004-06-24 Transit Video Enterprises Pty Ltd Provision of Audio-visual Content in a Mobile Environment
US10552179B2 (en) * 2014-05-30 2020-02-04 Apple Inc. Resource management with dynamic resource policies
CN105335171B (zh) * 2014-06-24 2019-05-10 北京奇虎科技有限公司 应用程序常驻操作系统后台的方法及装置
CN109992310B (zh) * 2019-03-12 2024-04-05 中国平安财产保险股份有限公司 应用程序保活方法、装置、计算机设备和存储介质
CN111913750B (zh) * 2019-05-10 2022-04-22 华为技术有限公司 一种应用程序管理方法、装置及设备
CN110489215A (zh) * 2019-06-29 2019-11-22 华为技术有限公司 一种应用程序中等待场景的处理方法和装置
CN113535250A (zh) * 2020-04-13 2021-10-22 华为技术有限公司 一种应用保活方法、装置和电子设备
CN111857919A (zh) * 2020-07-16 2020-10-30 北京字节跳动网络技术有限公司 一种视频处理方法、装置、终端设备及介质
CN112988282B (zh) * 2021-04-27 2021-08-20 荣耀终端有限公司 应用保活方法和终端设备
CN115525356A (zh) * 2021-06-26 2022-12-27 荣耀终端有限公司 一种视频应用的保活方法以及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014200631A1 (en) * 2013-06-11 2014-12-18 Seven Networks, Inc. Optimizing keepalive and other background traffic in a wireless network
WO2019019703A1 (zh) * 2017-07-28 2019-01-31 华为技术有限公司 管理触发器的方法及终端设备
CN108055408A (zh) * 2017-12-28 2018-05-18 维沃移动通信有限公司 一种应用程序控制方法及移动终端
CN111193954A (zh) * 2020-03-05 2020-05-22 成都金麦客科技有限公司 一种Android MV视频后台播放系统
CN111615002A (zh) * 2020-04-30 2020-09-01 腾讯科技(深圳)有限公司 视频后台播放控制方法、装置、系统及电子设备

Also Published As

Publication number Publication date
WO2022267765A1 (zh) 2022-12-29
CN113741994A (zh) 2021-12-03
CN115525356A (zh) 2022-12-27
EP4216058A1 (en) 2023-07-26
US20230325260A1 (en) 2023-10-12
EP4216058A4 (en) 2024-01-03

Similar Documents

Publication Publication Date Title
CN113542485B (zh) 一种通知处理方法、电子设备及计算机可读存储介质
CN114443277A (zh) 内存管理方法、装置、电子设备以及计算机可读存储介质
CN111543042B (zh) 通知消息的处理方法及电子设备
CN111555825B (zh) 射频资源分配方法及装置
CN113553130B (zh) 应用执行绘制操作的方法及电子设备
CN113778663B (zh) 一种多核处理器的调度方法及电子设备
CN116009999A (zh) 卡片分享方法、电子设备及通信系统
WO2021093626A1 (zh) 一种内存的管理方法及电子设备
CN113747374B (zh) 一种消息推送方法及装置
EP4209906A1 (en) Memory management method, electronic device, and computer-readable storage medium
CN112527476A (zh) 资源调度方法及电子设备
CN115292199B (zh) 一种显存泄露的处理方法及相关装置
CN113741994B (zh) 一种视频应用的保活方法以及电子设备
CN115333941A (zh) 获取应用运行情况的方法及相关设备
CN111381996B (zh) 内存异常处理方法及装置
CN115113751A (zh) 调整触摸手势的识别参数的数值范围的方法和装置
CN117234398A (zh) 一种屏幕亮度调节方法及电子设备
CN111581119B (zh) 页面回收方法及装置
CN112783418B (zh) 一种存储应用程序数据的方法及移动终端
CN114546511A (zh) 插件管理方法、系统及装置
CN116755748B (zh) 卡片更新方法、电子设备以及计算机可读存储介质
CN116414782B (zh) 识别重复文件的方法及电子设备
CN115291995B (zh) 一种消息显示方法及相关电子设备、可读存储介质
CN117076072A (zh) 容器借调方法及相关装置
CN117917629A (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
GR01 Patent grant
GR01 Patent grant