运行优化方法、装置、存储介质及终端设备与流程

文档序号:17638744发布日期:2019-05-11 00:32阅读:153来源:国知局
运行优化方法、装置、存储介质及终端设备与流程

本申请实施例涉及计算机技术领域,尤其涉及一种运行优化方法、装置、存储介质及终端设备。



背景技术:

终端设备中装有实现不同功能的应用程序(application),某些应用程序在运行时会播放自带的声音,例如,游戏类应用程序在运行时会播放游戏声音。而在播放应用程序的自带声音时需要调用可视化(visualizer)算法,以便辅助自带音效的播放。但是现有技术中在调用可视化音效算法时,应用程序很容易出现卡顿的问题,严重时还会影响用户的正常使用。



技术实现要素:

本申请实施例提供的一种运行优化方法、装置、存储介质及终端设备,可以优化应用程序出现卡顿的问题。

第一方面,本申请实施例提供了一种运行优化方法,包括:

在目标应用程序运行时,监测目标线程是否被调用;

在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;

将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。

第三方面,本申请实施例提供了一种运行优化装置,包括:

监测模块,用于在目标应用程序运行时,监测目标线程是否被调用;

参数调用模块,用于在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;

参数发送模块,用于将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。

第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的运行优化方法。

第四方面,本申请实施例提供了一种终端设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的运行优化方法。

本申请实施例中提供的一种运行优化方案,通过在目标应用程序运行时,监测目标线程是否被调用;在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。通过采用上述技术方案,可以在目标应用程序调用目标线程时,无需从硬件抽象层获取目标句柄,而是可以从预设存储区域直接获取到预存的目标句柄,避免因为需要和硬件抽象层通信造成目标应用程序出现卡顿的问题。

附图说明

图1为本申请实施例提供的一种运行优化方法的流程示意图;

图2为本申请实施例提供的一种运行优化装置的结构框图;

图3为本申请实施例提供的一种终端设备的结构示意图;

图4为本申请实施例提供的另一种终端设备的结构示意图。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

应用程序在播放自带声音时需要调用可视化(visualizer)算法,以便使可视化算法对自带声音实现可视化操作。而可视化算法被打开后一般需要去获取混响模块的混响句柄,以便可以正常对自带声音进行可视化操作,但是现有技术中在打开可视化音效算法后获取混响句柄时,应用程序很容易出现卡顿的问题,严重时还会影响用户的正常使用。

图1为本申请实施例提供的一种运行优化方法的流程示意图,该方法可以由运行优化装置执行,其中该装置可以由软件和/或硬件实现,一般可以集成在终端设备中,也可以集成在其他安装有操作系统的设备中。如图1所示,该方法包括:

s110、在目标应用程序运行时,监测目标线程是否被调用。

终端设备中装载有多种实现不同功能的应用程序(application),终端设备可以是智能手机、平板电脑或其他具有相应操作系统的电子设备。目标应用程序为在运行时会调用各种系统预存的线程来辅助目标应用程序的运行的应用程序,目标线程为系统预存的用于辅助应用程序运行的线程。目标线程被调用后可以执行相应的目标操作。

s111、在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块。

目标线程被目标应用程序调用时需要依据硬件抽象层的目标模块去执行相应的目标操作,而目标线程需要获取目标句柄才能找到对应的目标模块去执行对应的目标操作,需要从系统中的硬件抽象层中对应的目标模块获取运行所需的目标句柄。

其中,所述硬件抽象(hal,hardwareabstractionlayer)层是位于操作系统内核(kernel)与硬件电路之间的接口层,硬件抽象层的目的在于将终端设备中的各种硬件进行抽象化,操作系统可以是安卓(android)系统。句柄是硬件抽象层中的抽象设备的唯一标识,目标句柄对应硬件抽象层中的目标模块,目标句柄和目标模块一一对应。目标线程得到目标句柄之后,就可以根据目标句柄确定对应的目标模块,并根据目标模块执行对应的操作。

现有技术中一般是需要通过中央处理单元(cpu,centralprocessingunit)从硬件抽象层的目标模块中获取目标句柄,而中央处理单元中有很多其他任务线程在执行,所以无法第一时间从目标模块获取目标句柄,所以会导致目标应用程序出现卡顿的问题。

在检测到所述目标线程被调用时,即意味着目标应用程序打开目标线程并通过目标线程执行相应的目标操作,此时从预设存储区域中获取预存的目标句柄,而无需通过中央处理单元从混响模块获取混响句柄,将从预设存储区域中获取的预存的目标句柄发送给所述目标线程。预设存储区域中的目标句柄可以是预先存储进去的。

s112、将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。

其中,目标线程在获取到目标句柄后可以根据目标句柄找到硬件抽象层中对应的目标模块,进而根据对应的目标模块执行目标操作。可以是从目标模块获取到对应的目标参数以执行目标操作。

本申请实施例中提供的一种运行优化方法,通过在目标应用程序运行时,监测目标线程是否被调用;在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。通过采用上述技术方案,可以在目标应用程序调用目标线程时,无需从硬件抽象层获取目标句柄,而是可以从预设存储区域直接获取到预存的目标句柄,避免因为需要和硬件抽象层通信造成目标应用程序出现卡顿的问题。

可选地,所述目标句柄为混响句柄,所述混响句柄对应硬件抽象层的混响模块。

其中,混响(mixer)模块为硬件抽象层中设置的抽象模块,混响模块可以对目标应用程序中需要播放的目标音频信息进行混响处理。目标应用程序调用目标线程执行目标操作为需要调用混响模块的操作,混响(mixer)句柄和混响模块一一对应,混响句柄为是播放目标应用程序的目标音频信息必须用到的数据,目标线程可以根据混响句柄找到并打开对应的混响模块,所以目标线程需要获取混响句柄来执行目标操作。

不同的目标应用程序中的目标音频信息的播放方式有所不同,例如,目标应用程序的目标音频信息是在目标应用程序的运行过程中偶尔播放,每播放一次就需要获取一次混响句柄,这样会导致每播放一次目标音频信息,目标应用程序就会卡顿一次,给用户的使用造成不便。通过在监测到所述目标线程被调用时,从预设存储区域中获取预存的混响句柄,将所述混响句柄发送至所述目标线程,可以避免每播放一次目标音频信息,就出现卡顿一次的情况。

可选地,所述从预设存储区域中获取预存的目标句柄可以通过如下方式实施:

在音频模块结构体的混响成员变量中确定预存的混响句柄;

相应地,所述将所述目标句柄发送至所述目标线程可以通过如下方式实施:

将所述混响句柄传递至所述目标线程。

其中,可以是将混响句柄以参数传递的方式发送给所述目标线程,通过参数传递的方式发送给目标线程可以实现在目标线程需要混响句柄时,随时并及时将混响句柄发送给目标线程,避免目标应用程序出现卡顿的问题。

其中,可以通过传递指令在音频模块结构体的混响成员变量中确定预存的混响句柄,并将所述混响句柄传递至所述目标线程。所述传递指令可以是用于将从预设存储区域中获取的混响句柄以参数传递的方式发送到可视化线程的操作指令。示例性地,传递指令可以是“adev->mixer”,其中adev即音频模块结构体中包括的全局变量。

所述音频模块结构体(audio_device结构体)封装了混响设备的相关代码,包括几个主要类,混响成员变量是音频模块结构体的类体中定义的变量,作用范围是整个类。混响成员变量是混响模块执行混响操作时所要用到的变量,将混响句柄存储在音频模块结构体的混响成员变量中,可以在需要混响句柄时直接调用音频模块结构体中的类,以获取到混响句柄。所述音频模块结构体的混响成员变量可以是存储在vendor存储区域中。

可选地,所述目标线程为可视化线程。

目标应用程序在运行时可以调用可视化线程,对自带音效进行可视化的应用程序,自带音效可以是播放目标应用程序中预存的目标音频信息。示例性地,微信中的小程序功能包括供用户娱乐的小游戏,而这些小游戏在使用时很多都需要调用可视化线程,以对小游戏中的自带音效进行可视化操作,辅助小游戏的运行。

调用可视化线程可以是打开可视化算法并通过可视化算法执行音效可视化的线程。可视化(visualizer)算法是一种将目标算法的逻辑进行可视化的算法。示例性地,目标应用程序打开可视化算法,并通过可视化算法对目标应用程序中预存的目标音频信息进行可视化操作可以是:运行目标应用程序且通过可视化算法播放目标音频信息时,可以将目标音频信息对应的声音变化通过动态波形的形式进行可视化呈现,在目标音频信息为高频率时,动态波形会呈现比较高的波峰,在目标音频信息为低频率时,动态波形会呈现比较低的波峰。可视化操作的呈现形式可以根据实际应用场景进行设置,并不限于动态波形的形式,在此不作限定。

目标应用程序打开可视化算法并通过可视化算法执行音效可视化时,需要获取混响模块的混响(mixer)句柄,以实现目标音频信息的播放以及可视化操作。本申请实施例可以在目标应用程序调用可视化线程时,无需从硬件抽象层获取混响句柄,而是可以从预设存储区域直接获取到预存的混响句柄,可视化线程在获取到混响句柄后可以确定对应的混响模块,并根据混响模块执行可视化操作,避免因为需要和硬件抽象层通信造成目标应用程序出现卡顿的问题。

可选地,所述将所述混响句柄发送给所述可视化线程之后,还包括如下操作:通过所述可视化线程根据所述混响句柄,对所述目标应用程序的目标音频信息执行可视化操作。

其中,所述可视化线程被目标应用程序后,可以根据目标应用程序的运行执行相应的可视化操作。可视化线程在获取到该混响句柄后,可以根据所述混响句柄,对目标应用程序的目标音频信息执行可视化操作。

可选地,在目标应用程序运行之前,还包括如下操作:

从硬件抽象层的目标模块获取目标句柄,将所述目标句柄存储到预设存储区域。

其中,硬件抽象层中有终端设备中的各种的硬件的抽象模块,例如,包括混响模块(mixer),混响模块是混音器的抽象模块。

所述预设存储区域是终端设备中的存储区域,可以实现在目标应用程序调用可视化线程时,将混响句柄以参数传递的方式发送给可视化线程。示例性地,预设存储区域可以是vendorstorage(vendor存储区域),vendorstorage用于存储mac(媒体访问控制,mediaaccesscontrol)和lan(局域网,localareanetwork)等数据,vendorstorage主要特性是数据不会丢失,以及在操作系统启动的各个阶段都可以被访问。

目标应用程序打开可视化算法,并通过可视化算法对目标应用程序中预存的目标音频信息进行可视化操作时,需要通过需要获取混响模块的混响(mixer)句柄,以实现目标音频信息的播放以及可视化操作。现有技术中需要通过中央处理单元从混响模块获取混响句柄,中央处理单元一般是通过操作指令打开混响模块,并从混响模块中获取到混响句柄,再发送给可视化线程使用。

本申请实施例通过在目标应用程序运行之前从硬件抽象层的目标模块获取目标句柄,将所述目标句柄存储到预设存储区域,可以在目标应用程序调用目标线程时,从预设存储区域中获取预存的目标句柄。

可选地,从硬件抽象层的目标模块获取目标句柄可以通过如下方式实施:

在监测到硬件抽象层初始化时,从目标模块获取目标句柄。

在目标应用程序运行时,通过可视化算法对目标应用程序中预存的目标音频信息进行可视化操作是在硬件抽象层中进行,而硬件抽象层被调用前要进行初始化,以便可以使硬件抽象层能够正常使用,所以通过监测硬件抽象层是否初始化,来确定终端设备中的硬件的抽象模块可以正常使用。

其中,终端设备在开机时,操作系统中的各种服务开始初始化并进入正常工作状态,同时终端设备在开机时,硬件抽象层也会进行初始化;在终端设备开机时监测到硬件抽象层初始化了,则可以确定终端设备中的硬件的抽象模块可以正常使用,进而可以从混响模块获取混响句柄。可以通过发送测试指令到硬件抽象层,并根据硬件抽象层的反馈信息确定硬件抽象层是否初始化。

在检测到硬件抽象层初始化时,就可以从混响模块获取到混响句柄,并进行存储。以便可以在目标应用程序打开可视化算法,并通过可视化算法对目标应用程序中预存的目标音频信息进行可视化操作时,直接获取到预先存储的混响句柄。

可选地,从硬件抽象层的目标模块获取目标句柄可以通过如下方式实施:

发送触发指令至硬件抽象层的目标模块,并获取所述目标模块返回的目标句柄。

其中,可以是通过中央处理单元发送触发指令至混响模块。示例性地,触发指令可以是“mixer=mixer_open(mixer_card)”,通过该指令可以打开混响模块并获取到混响模块中的混响句柄。

可选地,将所述混响句柄存储到预设存储区域可以通过下述方式实施:将所述混响句柄存储到音频模块结构体的混响成员变量中。

其中,所述音频模块结构体是用于驱动音频设备的驱动模块,音频设备可以是终端设备中的扬声器,或者外部的扬声器。所述音频模块结构体为audio_device结构体,audio_device结构体中包括的是全局变量。音频模块结构体中存储有用于驱动音频设备的必要参数,即混响(mixer)成员变量。所述音频模块结构体的混响成员变量可以是存储在vendor存储区域中。

图2为本申请实施例提供的一种运行优化装置的结构框图,该装置可以执行运行优化方法,如图2所示,该装置包括:

监测模块200,用于在目标应用程序运行时,监测目标线程是否被调用;

参数调用模块201,用于在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;

参数发送模块202,用于将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。

本申请实施例中提供的一种运行优化装置,通过在目标应用程序运行时,监测目标线程是否被调用;在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。通过采用上述技术方案,可以在目标应用程序调用目标线程时,无需从硬件抽象层获取目标句柄,而是可以从预设存储区域直接获取到预存的目标句柄,避免因为需要和硬件抽象层通信造成目标应用程序出现卡顿的问题。

可选地,所述目标句柄为混响句柄,所述混响句柄对应硬件抽象层的混响模块。

可选地,参数调用模块具体用于:

在音频模块结构体的混响成员变量中确定预存的混响句柄;

参数发送模块具体用于:

将所述混响句柄传递至所述目标线程。

可选地,所述目标线程为可视化线程。

可选地,还包括:

参数获取模块,用于在目标应用程序运行之前,从硬件抽象层的目标模块获取目标句柄;

参数保存模块,用于将所述目标句柄存储到预设存储区域。

可选地,参数获取模块具体用于:

在监测到硬件抽象层初始化时,从目标模块获取目标句柄。

参数获取模块,参数获取模块具体用于:

发送触发指令至硬件抽象层的目标模块,并获取所述目标模块返回的目标句柄。

本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的运行优化操作,还可以执行本申请任意实施例所提供的运行优化方法中的相关操作。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行运行优化方法,该方法包括:

在目标应用程序运行时,监测目标线程是否被调用;

在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;

将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

本申请实施例提供了一种终端设备,该终端设备中可集成本申请实施例提供的运行优化装置。

图3为本申请实施例提供的一种终端设备的结构示意图,本申请实施例提供了一种终端设备30,包括存储器31,处理器32及存储在存储器31上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例所述的运行优化方法。本申请实施例提供的终端设备,可以优化应用程序出现卡顿的问题。

图4为本申请实施例提供的一种终端设备的结构示意图。如图4所示,该终端设备可以包括:壳体(图中未示出)、触摸屏(图中未示出)、触摸按键(图中未示出)、存储器301、中央处理器(centralprocessingunit,cpu)302(又称处理器,以下简称cpu)、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述cpu302和所述存储器301设置在所述电路板上;所述电源电路,用于为所述终端设备的各个电路或器件供电;所述存储器301,用于存储可执行程序代码;所述cpu302通过读取所述存储器301中存储的可执行程序代码来运行与所述可执行程序代码对应的计算机程序,以实现以下步骤:

在目标应用程序运行时,监测目标线程是否被调用;

在监测到所述目标线程被调用时,从预设存储区域中获取预存的目标句柄,其中,所述目标句柄对应硬件抽象层的目标模块;

将所述目标句柄发送至所述目标线程,其中,所述目标句柄用于使所述目标线程根据对应的目标模块执行目标操作。

所述终端设备还包括:外设接口303、rf(radiofrequency,射频)电路305、音频电路306、扬声器311、电源管理芯片308、输入/输出(i/o)子系统309、触摸屏312、其他输入/控制设备310以及外部端口304,这些部件通过一个或多个通信总线或信号线307来通信。

应该理解的是,图示终端设备300仅仅是终端设备的一个范例,并且终端设备300可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

下面就本实施例提供的用于实现运行优化的终端设备进行详细的描述,该终端设备以手机为例。

存储器301,所述存储器301可以被cpu302、外设接口303等访问,所述存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

外设接口303,所述外设接口303可以将设备的输入和输出外设连接到cpu302和存储器301。

i/o子系统309,所述i/o子系统309可以将设备上的输入输出外设,例如触摸屏312和其他输入/控制设备310,连接到外设接口303。i/o子系统309可以包括显示控制器3091和用于控制其他输入/控制设备310的一个或多个输入控制器3092。其中,一个或多个输入控制器3092从其他输入/控制设备310接收电信号或者向其他输入/控制设备310发送电信号,其他输入/控制设备310可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器3092可以与以下任一个连接:键盘、红外端口、usb接口以及诸如鼠标的指示设备。

触摸屏312,所述触摸屏312是用户终端设备与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。

i/o子系统309中的显示控制器3091从触摸屏312接收电信号或者向触摸屏312发送电信号。触摸屏312检测触摸屏上的接触,显示控制器3091将检测到的接触转换为与显示在触摸屏312上的用户界面对象的交互,即实现人机交互,显示在触摸屏312上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。

rf电路305,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,rf电路305接收并发送rf信号,rf信号也称为电磁信号,rf电路305将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。rf电路305可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、rf收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、codec(coder-decoder,编译码器)芯片组、用户标识模块(subscriberidentitymodule,sim)等等。

音频电路306,主要用于从外设接口303接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器311。

扬声器311,用于将手机通过rf电路305从无线网络接收的语音信号,还原为声音并向用户播放该声音。

电源管理芯片308,用于为cpu302、i/o子系统及外设接口所连接的硬件进行供电及电源管理。

本申请实施例提供的终端设备,可以优化应用程序出现卡顿的问题。

上述实施例中提供的运行优化装置、存储介质及终端设备可执行本申请任意实施例所提供的运行优化方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的运行优化方法。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

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