掌桥专利:专业的专利平台
掌桥专利
首页

音乐播放应用保活处理方法、系统、存储介质及电子设备

文献发布时间:2023-06-19 09:24:30


音乐播放应用保活处理方法、系统、存储介质及电子设备

技术领域

本发明涉及手机应用程序通信技术领域,尤其涉及一种安卓平台下音乐播放应用保活处理方法、系统、存储介质及电子设备。

背景技术

在国内Android多厂家自定义系统环境下,对后台应用的管理越发严格,对耗电量、网络IO、CPU唤醒等限制更加严格。Android后台进程运行对手机续航和性能问题影响很大,所以很多手机都会限制后台进程的运行,但是不能所有后台进程都进行限制,需要判断过滤,比如后台播放音乐应用就不能限制,这样会影响用户使用。

由于很多用户都喜欢把一些音乐播放APP放在后台播放音乐,系统在冻结后台应用时不能够准确判断哪些应用可以冻结,哪些应用不能准确冻结,导致系统不能进行正确的后台应用管理。

用户想要播放音乐的应用在后台保持长时间运行而不被冻结,需要一种可以保活应用的方法。

发明内容

本发明提供了一种安卓平台下音乐播放应用的保活处理方法,解决了在后台应用管理时系统无法准确判断出哪些后台APP正在播放音乐以便进行保活处理的技术问题,从而让用户需要的音乐播放应用进入后台模式时不被暂停。

本发明提供了一种安卓平台下音乐播放应用的保活处理方法,所述方法包括如下步骤:

获取应用程序的第一识别标识;

获取音频焦点栈信息;

解析所述音频焦点栈信息,获取所述音频焦点栈信息的栈顶请求信息;

获取所述栈顶请求信息中保存的音频请求类型;

检测所述音频请求类型是否为音乐;

当所述音频请求类型为音乐时,则获取所述栈顶请求信息对应的应用程序的第二识别标识;

检测所述第一识别标识和所述第二识别标识是否相同;

当所述第一识别标识和所述第二识别标识相同时,返回第一判断值,当所述第一识别标识和所述第二识别标识不相同时,返回第二判断值。

在本发明的实施例中,

所述获取所述栈顶请求信息中保存的音频请求类型的步骤包括:

检测所述栈顶请求信息的值是否为空;

当所述栈顶请求信息的值不为空时,获取所述栈顶请求信息中保存的音频请求类型;

当所述栈顶请求信息的值为空时,返回所述第二判断值。

在本发明的实施例中,

所述获取所述栈顶请求信息中保存的音频请求类型的步骤包括:

获取所述栈顶请求信息中保存的属性变量;

获取所述属性变量对应的音频请求类型。

在本发明的实施例中,

所述检测所述音频请求类型是否为音乐的步骤之后还包括:

当所述音频请求类型不为音乐时,返回所述第二判断值。

在本发明的实施例中,

所述获取音频焦点栈信息的步骤包括:

获取音频服务中所有的所述音频焦点栈信息。

在本发明的实施例中,

所述获取应用程序的第一识别标识的步骤包括:

获取处于后台的至少一个应用程序的所述第一识别标识。

本发明提供了一种安卓平台下音乐播放应用的保活处理系统,所述系统包括:

数据获取模块,用于获取应用程序的第一识别标识,用于获取音频焦点栈信息,用于解析所述音频焦点栈信息,获取所述音频焦点栈信息的栈顶请求信息,用于获取所述栈顶请求信息中保存的音频请求类型;

类型检测模块,用于检测所述音频请求类型是否为音乐,当所述音频请求类型为音乐时,则获取所述栈顶请求信息对应的应用程序的第二识别标识;

标识检测模块,用于检测所述第一识别标识和所述第二识别标识是否相同,当所述第一识别标识和所述第二识别标识相同时,返回第一判断值,当所述第一识别标识和所述第二识别标识不相同时,返回第二判断值。

在本发明的实施例中,

所述类型检测模块还包括栈顶信息检测模块,所述栈顶信息检测模块用于检测所述栈顶请求信息的值是否为空,当所述栈顶请求信息的值不为空时,获取所述栈顶请求信息中保存的音频请求类型,当所述栈顶请求信息的值为空时,返回所述第二判断值。

本发明提供了一种存储介质,其上存储有计算机程序,

该程序被处理器执行时实现以上内容中任一项所述安卓平台下音乐播放应用的保活处理方法的步骤。

本发明提供了一种电子设备,包括:

存储器,其上存储有计算机程序;以及

处理器,用于执行所述存储器中的所述计算机程序,以实现以上内容中任一项所述安卓平台下音乐播放应用的保活处理方法的步骤。

与现有技术相比,本发明的一个或多个实施例可以具有如下优点:

本发明通过获取音频焦点栈的栈顶的音频播进程,根据音频播放进程的用户名与后台的目标音乐播放应用的用户名相同来保持目标音乐播放应用转到后台模式时继续运行的状态,而不会被系统清理或暂停,对于有长时间连接需求的音乐播放应用进程保活效果更好,更容易选择暂停用户不需要的应用,减少耗电量。

本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明一实施例的安卓平台下音乐播放应用的保活处理方法流程示意图;

图2是本发明一实施例的安卓平台下音乐播放应用判断方法流程示意图;

图3是本发明另一实施例的安卓平台下音乐播放应用的保活处理系统框架示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

图1是本实施例的安卓平台下音乐播放应用的保活处理方法流程示意图;

图2是本实施例的安卓平台下音乐播放应用判断方法流程示意图;

在本实施例中,APP为应用程序,Uid为应用程序的第一识别标识,优选为应用程序的用户编码,mFocusStack为音频焦点栈,FocusRequester为音频焦点栈的栈顶请求信息,优选为栈顶音频请求进程,mCallingUid为应用程序的第二识别标识,优选为音频焦点请求用户编码,mContentType为音频请求类型。

Android系统是一个多任务操作系统,因此同一时刻允许许多任务同时工作。但是这对音频类应用来说是个挑战,因为如果多个音频同时播放的话,很多情况下用户体验会很差。比如听音乐时,来了一个电话,这时你的耳机里就是电话和音乐共同工作,正常情况下,用户无法接受同时接受2个声音。

为了解决这个问题,从Android2.2开始引入音频焦点(audio focus)的概念。即当用户需要播放音乐或者发送一个通知的时候,这个进程可以去要求获得音频焦点,音频焦点位于音频焦点栈的栈顶。一旦获得音频焦点,就可以自由的使用音频输出设备。但同时系统也在时刻监听着音频焦点的变化。当音频焦点发生变化时,用户需要合适的处理音频输出。

本实施例提供了一种安卓平台下音乐播放应用的保活处理方法,方法包括如下步骤:

获取应用程序的第一识别标识;

获取音频焦点栈信息;

解析音频焦点栈信息,获取音频焦点栈信息的栈顶请求信息;

获取栈顶请求信息中保存的音频请求类型;

检测音频请求类型是否为音乐;

当音频请求类型为音乐时,则获取栈顶请求信息对应的应用程序的第二识别标识;

检测第一识别标识和第二识别标识是否相同;

当第一识别标识和第二识别标识相同时,返回第一判断值,当第一识别标识和第二识别标识不相同时,返回第二判断值。

具体的,一种安卓平台下音乐播放应用的保活处理方法的步骤如下:

S100,获取应用程序的第一识别标识。

在本实施例中,安卓平台下,每个已安装的应用程序都有自己的唯一识别标识,在本实施例中优选为应用程序的用户编码。用户打开音乐播放应用后,存在又打开其他应用程序的情况,音乐播放应用需要进入后台模式,此时,后台管理系统为了减少耗电量,会对后台部分不使用的应用程序进行暂停处理或退出处理。

在本实施例中,当音乐播放应用进入后台模式时,获取音乐播放应用程序的第一识别标识。进一步,如果后台存在多个音乐播放应用程序,则获取处于后台的至少一个应用程序的第一识别标识。

进一步的,在本实施例中,目标音乐播放应用的用户编码在前台模式转入后台模式切换时也进行了保存。

S101,获取音频焦点栈信息。

在本实施例中,所有安卓平台下的音频播放都需要进行音频焦点请求,目标音乐播放应用在前台模式播放音乐需要进行音频焦点请求,目标音乐播放应用转入后台模式后在后台播放时也需要申请音频焦点,而所有申请音频焦点的相关信息都保存在焦点请求进程中(FocusRequester),然后获得音频焦点的音频播放进程放入音频焦点栈(mFocusStack栈)中,音频焦点栈的栈顶请求信息(FocusRequester)就是当前正在使用音频焦点的音频播放进程信息。在本实施例中,每一个栈顶请求信息(FocusRequester)表示一个使用音频焦点的用户信息。

在本实施例中,获取音频焦点栈信息的步骤包括:获取音频服务中所有的音频焦点栈信息,包括用户信息。

S102,解析音频焦点栈信息,获取音频焦点栈信息的栈顶请求信息。

音频焦点栈是一种数据结构,音频焦点位于音频焦点栈的栈顶。在本实施例中,解析音频焦点栈信息,通过对应的数据接口获取音频焦点栈的栈顶请求信息,获取音频焦点栈栈顶的音频播放进程。

S103,获取栈顶请求信息中保存的音频请求类型。

获取栈顶请求信息中保存的音频请求类型的步骤包括:

检测栈顶请求信息的值是否为空;当栈顶请求信息的值不为空时,获取栈顶请求信息中保存的音频请求类型;

当栈顶请求信息的值为空时,返回第二判断值。

具体地,在本实施例中,获取栈顶请求信息后,首先检测音频焦点栈的栈顶请求信息的值是否为空,即判断栈顶是否有音频播放进程,当栈顶请求信息的值不为空,即音频焦点栈的栈顶有音频播放进程,则获取栈顶请求信息中保存的音频请求类型,即获取音频播放进程的音频请求类型;当栈顶请求信息的值为空,即音频焦点栈的栈顶没有音频播放进程,返回第二判断值,表示目标音乐播放应用未播放音乐,暂停目标音乐播放应用;

在本实施例中,获取栈顶请求信息中保存的音频请求类型的步骤包括:获取栈顶请求信息中保存的属性变量;获取属性变量对应的音频请求类型。

具体的,在本实施例中,在栈顶请求信息(FocusRequester)中有一个AudioAttributes类型的mAttributes变量,这里面保存着音频请求类型,音频请求类型包括音乐、视频、通话、语音中至少一种。获取栈顶请求信息中保存的音频请求类型,则获取栈顶请求信息(FocusRequester)中AudioAttributes类型的mAttributes属性变量,然后再获得属性变量中对应的音频请求类型。

S104,检测音频请求类型是否为音乐,当音频请求类型为音乐时,则获取栈顶请求信息对应的应用程序的第二识别标识;当音频请求类型不为音乐时,返回第二判断值。

在本实施例中,获取栈顶请求信息中保存的音频请求类型后,也即获取了音频播放进程的音频请求类型,然后检测音频播放进程的音频请求类型是否为音乐(CONTENT_TYPE_MUSIC),当音频播放进程的音频请求类型为音乐,则获取栈顶请求信息对应的应用程序的第二识别标识,即获取了音频播放进程的音频焦点请求用户编码(mCallingUid);若音频播放进程的音频请求类型不为音乐,返回第二判断值,表示目标音乐播放应用未播放音乐,暂停目标音乐播放应用。

S105,检测第一识别标识和第二识别标识是否相同;当第一识别标识和第二识别标识相同时,返回第一判断值,当第一识别标识和第二识别标识不相同时,返回第二判断值。

栈顶请求信息(FocusRequester)包含了音频播放进程的用户编码,也包含了音乐播放应用的用户编码。

在本实施例中,获取音乐播放应用程序的第一识别标识和第二识别标识后,检测第一识别标识和第二识别标识是否相同,即检测目标音乐播放应用的用户编码和音频焦点请求用户编码是否相同,当第一识别标识和第二识别标识相同时,即目标音乐播放应用的用户编码和音频焦点请求用户编码相同,返回第一判断值,说明目标音乐播放应用正在播放音乐,保持目标音乐播放应用在后台的运行,不进行暂停,避免影响用户的使用,降低用户体验;当第一识别标识和第二识别标识不相同时,若音频焦点请求用户编码和之前步骤获取的目标音乐播放应用的用户编码不相同,返回第二判断值,说明目标音乐播放应用未播放音乐,暂停目标音乐播放应用,减少系统的耗电量。

进一步地,若音频焦点请求用户编码和目标音乐播放应用的用户编码不相同,暂停目标音乐播放应用的步骤之后,还包括:栈顶的音频播放进程结束后释放音频焦点,目标音乐播放应用获得音频焦点继续播放音乐。

具体的,在本实施例中,若音频焦点请求用户编码和之前步骤获取的目标音乐播放应用的用户编码不相同,则说明目标音乐播放应用未播放音乐,目前是其他获得了音频焦点的音频播放进程正在播放音频,故暂停目标音乐播放应用。当栈顶的音频播放进程结束后会释放音频焦点,原来暂停的目标音乐播放应用则获得音频焦点继续播放音乐。

综上所述,本实施例提供了一种安卓平台下音乐播放应用的保活处理方法,通过获取音频焦点栈的栈顶的音频播进程,根据音频播放进程的用户名与后台的目标音乐播放应用的用户名相同来保持目标音乐播放应用转到后台模式时继续运行的状态,而不会被系统清理或暂停,对于有长时间连接需求的音乐播放应用进程保活效果更好,更容易选择暂停用户不需要的应用,减少耗电量。

图2是本实施例的安卓平台下音乐播放应用的保活处理系统框架示意图。

本实施例提供了一种安卓平台下音乐播放应用的保活处理系统,系统包括:

数据获取模块,用于获取应用程序的第一识别标识,用于获取音频焦点栈信息,用于解析音频焦点栈信息,获取音频焦点栈信息的栈顶请求信息,用于获取栈顶请求信息中保存的音频请求类型;

类型检测模块,用于检测音频请求类型是否为音乐,当音频请求类型为音乐时,则获取栈顶请求信息对应的应用程序的第二识别标识;

标识检测模块,用于检测第一识别标识和第二识别标识是否相同,当第一识别标识和第二识别标识相同时,返回第一判断值,当第一识别标识和第二识别标识不相同时,返回第二判断值。

类型检测模块还包括栈顶信息检测模块,栈顶信息检测模块用于检测栈顶请求信息的值是否为空,当栈顶请求信息的值不为空时,获取栈顶请求信息中保存的音频请求类型,当栈顶请求信息的值为空时,返回第二判断值。

在本发明的实施例中,音乐播放应用的保活处理系统能内嵌于安卓平台的智能手机、智能家电、智能电视、智能车载系统中至少一种。

综上所述,本实施例提供了一种安卓平台下音乐播放应用的保活处理系统,通过获取音频焦点栈的栈顶的音频播进程,根据音频播放进程的用户名与后台的目标音乐播放应用的用户名相同来保持目标音乐播放应用转到后台模式时继续运行的状态,而不会被系统清理或暂停,对于有长时间连接需求的音乐播放应用进程保活效果更好,更容易选择暂停用户不需要的应用,减少耗电量。

图1是本实施例的安卓平台下音乐播放应用的保活处理方法流程示意图;

本实施例提供了一种存储介质,其上存储有计算机程序,

该程序被处理器执行时实现以上内容中任一项所述安卓平台下音乐播放应用的保活处理方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或综合软件和硬件方面的实施例的形势。而且,本发明可采用再一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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是本实施例的安卓平台下音乐播放应用的保活处理方法流程示意图;

本实施例提供了一种电子设备,包括:

存储器,其上存储有计算机程序;以及

处理器,用于执行所述存储器中的所述计算机程序,以实现以上内容中任一项所述安卓平台下音乐播放应用的保活处理方法的步骤。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现再流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储再能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得再计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

虽然本发明公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所述技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,本发明的保护范围并不局限于文中公开的特定实施例,而是包括落入权利要求范围内的所有技术方案。

相关技术
  • 音乐播放应用保活处理方法、系统、存储介质及电子设备
  • 应用安装包处理方法、装置、电子设备、系统和存储介质
技术分类

06120112151718