本申请实施例涉及终端技术领域,特别涉及一种画质参数调节方法、装置、终端及存储介质。
背景技术
画质参数是用于指示终端的显示屏中所显示的画面质量。画质参数包括但不限于帧率和/或分辨率。
目前,当终端在进行播放视频或者运行游戏时,画质参数所指示的画面质量越高,终端的运行负载也随着越高。相关技术中尚未提供一种合理的画质参数调节方法。
技术实现要素:
本申请实施例提供了一种画质参数调节方法、装置、终端及存储介质,可以用于解决在进行播放视频或者运行游戏时如何合理调节画质参数的问题。技术方案如下:
第一方面,提供了一种画质参数调节方法,所述方法应用于终端,所述终端运行有操作系统和第三方应用程序,所述方法包括:
所述第三方应用程序通过调用内嵌软件开发工具包(softwaredevelopmentkit,sdk)提供的应用程序编程接口(applicationprogramminginterface,api)向所述操作系统发送目标请求,所述目标请求用于指示所述操作系统反馈所述终端当前的电池电量;
所述第三方应用程序接收所述操作系统反馈的所述电池电量;
所述第三方应用程序根据所述电池电量对画质参数进行调节,所述画质参数用于指示所述终端屏幕中所显示的所述第三方应用程序对应的画面质量。
第二方面,提供了一种画质参数调节装置,所述装置应用于终端,所述终端运行有操作系统和第三方应用程序,所述装置包括:
所述第三方应用程序,用于通过调用内嵌软件开发工具包sdk提供的应用程序编程接口api,向所述操作系统发送目标请求,所述目标请求用于指示所述操作系统反馈所述终端当前的电池电量;
所述第三方应用程序,还用于接收所述操作系统反馈的所述电池电量;
所述第三方应用程序,还用于根据所述电池电量对画质参数进行调节,所述画质参数用于指示所述终端屏幕中所显示的所述第三方应用程序对应的画面质量。
第三方面,提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如第一方面所述的画质参数调节方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如第一方面所述的画质参数调节方法。
本申请实施例提供的画质参数调节方法中,通过第三方应用程序通过调用内嵌sdk提供的api向操作系统发送目标请求,目标请求用于指示操作系统反馈终端当前的电池电量,第三方应用程序接收操作系统反馈的电池电量,第三方应用程序根据电池电量对画质参数进行调节,画质参数用于指示终端的画面质量;使得第三方应用程序能够根据从操作系统获取到的电池电量对画质参数进行调节,提高了画质参数调节的可靠性和灵活性。
附图说明
图1是本申请一个示例性实施例提供的终端的结构示意图;
图2是终端中应用程序与操作系统通信过程的实施示意图;
图3是本申请一个示例性实施例提供的终端的结构示意图;
图4和图5是图3所示终端中应用程序与操作系统通信过程的实施示意图;
图6是本申请另一个示例性实施例提供的终端的结构示意图;
图7示出了本申请一个示例性实施例示出的画质参数调节方法的流程图;
图8示出了本申请另一个示例性实施例示出的画质参数调节方法的流程图;
图9示出了本申请另一个示例性实施例示出的画质参数调节方法的流程图;
图10示出了本申请另一个示例性实施例示出的画质参数调节方法的流程图;
图11示出了本申请一个实施例提供的画质参数调节装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个示例性实施例提供的终端100的结构方框图。该终端100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的终端100可以包括一个或多个如下部件:处理器110、存储器120和输入输出装置130。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(android)系统(包括基于android系统深度开发的系统)、苹果公司开发的ios系统(包括基于ios系统深度开发的系统)或其它系统。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对gpu性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
如图2所示,为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
以操作系统为android系统为例,存储器120中存储的程序和数据如图3所示,存储器120中可存储有linux内核层220、系统运行库层240、应用框架层260和应用层280,其中,linux内核层220、系统运行库层240和应用框架层260属于操作系统空间,应用层280属于用户空间。linux内核层220为终端100的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、wi-fi驱动、电源管理等。系统运行库层240通过一些c/c++库来为android系统提供了主要的特性支持。如sqlite库提供了数据库的支持,opengl/es库提供了3d绘图的支持,webkit库提供了浏览器内核的支持等。在系统运行库层240中还提供有安卓运行时库(androidruntime),它主要提供了一些核心库,能够允许开发者使用java语言来编写android应用。应用框架层260提供了构建应用程序时可能用到的各种api,开发者也可以通过使用这些api来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层280中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、购物程序等。
操作系统与第三方应用程序之间一种可行的通信方式如图4所示,第三方应用程序中内嵌有用于与操作系统进行通信的sdk。
其中,sdk包含若干经过抽象的api,并由操作系统开发者提供给第三方应用程序开发者,并由第三方应用程序开发者将该sdk内嵌到第三方应用程序中。此类第三方应用程序安装并运行在操作系统后,即可调用sdk提供的api与操作系统进行通信。
如图4所示,系统运行库层240可以额外包括接口通信系统242。该接口通信系统242可以视为操作系统中的一个子系统,或视为操作系统内嵌的一个应用程序。接口通信系统242中设置有sdk接口,第三方应用程序即调用内嵌sdk的api与该sdk接口之间通过粘合(binder)的方式进行数据通信。这样,第三方应用程序的应用场景相关的数据就可以通过sdk传输给操作系统。借助内嵌sdk,操作系统还可以主动向第三方应用程序传输数据,或者,操作系统与第三方应用程序之间可以进行双向数据传输。
在另一种可行的通信方式中,如图5所示,第三方应用程序还可以采用套接字(socket)方式与接口通信系统242的socket接口建立长连接,第三方应用程序的应用场景相关的数据即可以通过该长连接传输给操作系统。
如图4和5所示,接口通信系统242中可设置有不同的策略模块,接收到第三方应用程序发送的数据后,接口通信系统242即采用第三方应用程序对应的策略模块对数据进行分析,得到相应的资源适配优化策略。基于分析得到的资源适配优化策略,接口通信系统242通过控制接口通知linux内核层220进行系统资源适配优化。其中,该控制接口可以采用sysfs的方式与linux内核层220进行通信。
可选的,接口通信系统242中不同的策略模块可以对应不同的第三方应用程序(即针对不同的应用程序设置策略模块),或者,不同的策略模块对应不同类型的第三方应用程序(即针对不同类型的应用程序设置策略模块),或者,不同的策略模块对应不同的系统资源(即针对不同系统资源设置策略模块),或者,不同的策略模块对应不同的应用场景(即针对不同的以应用场景设置策略模块),本申请实施例并不对策略模块的具体设置方式进行限定。。
其中,接口通信系统242还可以通过binder的方式与应用框架层260进行通信,用于接收应用框架层260发送的前景应用信息,从而基于前景应用信息,仅针对当前前台运行的第三方应用程序进行系统资源优化。
以操作系统为ios系统为例,存储器120中存储的程序和数据如图6所示,ios系统包括:核心操作系统层320(coreoslayer)、核心服务层340(coreserviceslayer)、媒体层360(medialayer)、可触摸层380(cocoatouchlayer)。核心操作系统层320包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层340的程序框架所使用。核心服务层340提供给应用程序所需要的系统服务和/或程序框架,比如基础(foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层360为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(airplay)接口等。可触摸层380为应用程序开发提供了各种常用的界面相关的框架,可触摸层380负责用户在终端100上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(userinterface,ui)框架、用户界面uikit框架、地图框架等等。
在图6所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层340中的基础框架和可触摸层380中的uikit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和ui无关。而uikit框架提供的类是基础的ui类库,用于创建基于触摸的用户界面,ios应用程序可以基于uikit框架来提供ui,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在ios系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考android系统,本申请在此不再赘述。
输入输出装置130可以包括触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端100的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的终端100的结构并不构成对终端100的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端100中还包括射频电路、输入单元、传感器、音频电路、无线保真(wirelessfidelity,wifi)模块、电源、蓝牙模块等部件,在此不再赘述。
请参考图7,其示出了本申请一个示例性实施例示出的画质参数调节方法的流程图。本实施例以该方法应用于运行有操作系统和第三方应用程序的终端100来举例说明。该方法包括:
步骤701,第三方应用程序通过调用内嵌sdk提供的api向操作系统发送目标请求,目标请求用于指示操作系统反馈终端当前的电池电量。
可选的,sdk是操作系统开发者提供给第三方应用程序开发者,并由第三方应用程序开发者将该sdk内嵌到第三方应用程序中的sdk。
sdk是第三方应用程序中内嵌有用于与操作系统进行通信的sdk。即,当该第三方应用程序安装并运行在操作系统后,即可调用sdk提供的api与操作系统进行通信。
第三方应用程序可以为内嵌有操作系统开发者提供的sdk的第三方应用程序,该第三方应用程序可以为游戏类应用程序、视频播放类应用程序、即时通信应用程序等等,本申请实施例并不对第三方应用程序进行具体限定。
通过调用内嵌sdk提供的api,第三方应用程序即与操作系统之间建立binder连接,从而通过该binder连接向操作系统发送目标请求。针对发送目标请求的时机,在一种可能的实施方式中,第三方应用程序每隔预定时间间隔向操作系统发送目标请求,比如,该预定时间间隔为5s或10s;在另一种可能的实施方式中,第三方应用程序在运行至指定应用场景时,向操作系统发送目标请求。可选的,指定应用场景包括视频播放场景或者游戏运行场景。
第三方应用程序通过调用内嵌sdk提供的api向操作系统发送目标请求;对应的,操作系统接收第三方应用程序发送的目标请求。
如图4所示,操作系统通过接口通信系统242的sdk接口,接收第三方应用程序发送的目标请求。
为了避免非法应用程序采用内嵌sdk的方式与操作系统进行通信,造成系统安全隐患,可选的,操作系统接收到目标请求后,获取第三方应用程序的应用标识。
可选的,操作系统获取目标请求中包含的应用标识,该应用标识用于唯一指示第三方应用程序,该目标请求用于指示操作系统将终端当前的电池电量反馈至与该应用标识对应的第三方应用程序。
操作系统中预设应用标识列表,该预设应用标识列表中包含支持进行资源配置的应用程序的应用标识。可选的,该列表由操作系统开发商设置,且加密存储在终端内。
若第三方应用程序的应用标识属于预设应用标识列表,操作系统则执行步骤702,若第三方应用程序的应用标识不属于预设应用标识列表,操作系统则不响应该目标请求。
可选的,当第三方应用程序的应用标识不属于预设应用标识列表时,操作系统断开与第三方应用程序之间的连接。
步骤702,第三方应用程序接收操作系统反馈的电池电量。
可选的,当操作系统接收到第三方应用程序发送的目标请求时,获取目标请求中包括的应用标识;根据该目标请求获取终端当前的电池电量,将终端当前的电池电量反馈至与该应用标识对应的第三方应用程序。对应的,第三方应用程序接收操作系统反馈的电池电量。
步骤703,第三方应用程序根据电池电量对画质参数进行调节,画质参数用于指示终端屏幕中所显示的第三方应用程序对应的画面质量。
可选的,终端通过对画质参数进行调节实现对第三方应用程序对应的画面质量的改变。换句话说,该画质参数用于指示第三方应用程序对应的画面质量,而不是用于指示操作系统对应的画面质量。也即,在第三方应用对画质参数进行调节后会改变第三方应用程序对应的画面质量,而不会改变其它应用程序对应的画面质量。
示意性的,当第三方应用程序处于前台运行时,通过根据电池电量对画质参数进行调节,得到调节后的画质参数,根据调节后的画质参数来改变该第三方应用程序的画面质量,当该第三方应用程序从前台运行切换为后台运行时,终端屏幕中所显示的画面质量所对应的画质参数仍为调节前的画质参数。
画质参数包括帧率、分辨率、镜头畸变、色散度、解析度、色域范围、色彩纯度、色彩平衡参数中的至少一种。
需要说明的是,第三方应用程序根据电池电量对画质参数进行调节的过程可参考下面实施例中的相关细节,在此先不介绍。
可选的,当第三方应用程序结束生命周期时(第三方应用程序的进程结束),即当第三方应用程序的进程结束时,断开第三方应用程序与操作系统之间的连接,并清理数据通道,以便后续操作系统与其他应用程序建立连接。
综上所述,本申请实施例提供的画质参数调节方法中,通过第三方应用程序通过调用内嵌sdk提供的api向操作系统发送目标请求,目标请求用于指示操作系统反馈终端当前的电池电量,第三方应用程序接收操作系统反馈的电池电量,第三方应用程序根据电池电量对画质参数进行调节,画质参数用于指示终端屏幕中所显示的第三方应用程序对应的画面质量;使得第三方应用程序能够根据从操作系统获取到的电池电量对画质参数进行调节,提高了画质参数调节的可靠性和灵活性。
另外,操作系统基于预设应用标识列表实现应用程序合法性检测,从而避免与内嵌sdk的非法应用程序进行通信,提高了操作系统的安全性。
综合考虑功耗、数据传输量等诸多因素,在一种可能的实施方式中,第三方应用程序仅在运行至特定应用场景时,才会生成目标请求,并发送至操作系统。下面采用示意性的实施例进行说明。
请参考图8,其示出了本申请另一个示例性实施例示出的画质参数调节方法的流程图。本实施例以该方法应用于终端100中来举例说明,终端100中运行有操作系统和第三方应用程序。该方法包括:
步骤801,当检测到当前应用场景为预设应用场景时,第三方应用程序生成目标请求,该目标请求携带有第三方应用程序的应用标识。
在一种可能的实施方式中,开发人员在开发第三方应用程序时,针对可能需要进行系统资源优化配置的场景,设置包含至少一个预设应用场景的场景列表。示意性的,针对游戏类应用程序,该场景列表中可以包括:游戏启动场景、游戏资源更新场景、游戏账号登陆场景、游戏主界面场景、游戏商城界面场景、游戏内部加载场景、游戏对战场景。
第三方应用程序在运行过程中(已通过sdk与操作系统建立连接),即检测当前应用场景是否属于该场景列表,若属于,第三方应用程序则获取应用标识,并进一步生成携带有应用标识的目标请求;若不属于,第三方应用程序则继续监测当前应用场景,而不生成携带有应用标识的目标请求。
步骤802,第三方应用程序通过调用内嵌sdk提供的api向操作系统发送目标请求,目标请求用于指示操作系统反馈终端当前的电池电量。
第三方应用程序将生成的携带有应用标识的目标请求发送至操作系统。
可选的,第三方应用程序采用数据包的形式发送目标请求,且数据包的格式预先与操作系统进行约定。其中,数据包的格式可以为java脚本对象标记(javascriptobjectnotation,json)、协议缓冲区(protocolbuffer,protobuf)或自定义格式等。
步骤803,操作系统接收第三方应用程序发送的目标请求。
在一种可能的实施方式中,操作系统接收到第三方应用程序发送的数据包后,采用预先约定的数据包格式对该数据包进行解析,从而得到其中包含的目标请求。
步骤804,操作系统根据目标请求获取电池电量,并将电池电量反馈至第三方应用程序。
操作系统根据目标请求获取电池电量,并将电池电量反馈至目标请求中的应用标识对应的第三方应用程序。
步骤805,第三方应用程序接收操作系统反馈的电池电量。
步骤806,第三方应用程序判断电池电量是否小于预设电量阈值。
第三方应用程序判断电池电量是否小于预设电量阈值,若电池电量小于预设电量阈值,则执行步骤807;若大于或者等于预设电量阈值,则结束进程。
预设电量阈值为终端默认设置的数值,或者是用户自定义的数值。本实施例对此不加以限定。
步骤807,当电池电量小于预设电量阈值时,第三方应用程序获取终端当前的第一画质参数。
可选的,第一画质参数包括第一帧率和/或第一分辨率。
比如,当第三方应用程序为视频类应用程序时,第一画质参数包括视频画面帧率和/或视频画面分辨率;当第三方应用程序为游戏类应用程序时,第一画质参数包括游戏画面帧率和/或游戏画面分辨率。
步骤808,第三方应用程序将画质参数从第一画质参数调节为第二画质参数,第二画质参数所指示的画面质量低于第一画质参数所指示的画面质量。
第三方应用程序将画质参数从第一画质参数调节为第二画质参数,包括但不限于以下两种可能的实现方式:
第一种可能的实现方式,将终端的帧率从第一帧率降低为第二帧率。其中,第二帧率小于第一帧率,第一帧率与第二帧率的差值绝对值为第一预设帧率阈值。
当电池电量小于预设电量阈值时,第三方应用程序将获取到的第一帧率降低第一预设帧率阈值,降低后得到第二帧率,即调节后的终端的帧率为第二帧率。
第一预设帧率阈值为终端默认设置的数值,或者是用户自定义的数值。本实施例对此不加以限定。
第二种可能的实现方式,将终端的分辨率从第一分辨率降低为第二分辨率。其中,第二分辨率小于第一分辨率,第一分辨率与第二分辨率的差值绝对值为第一预设分辨率阈值。
当电池电量小于预设电量阈值时,第三方应用程序将获取到的第一分辨率降低第一预设分辨率阈值,降低后得到第二分辨率,即调节后的终端的分辨率为第二分辨率。
第一预设分辨率阈值为终端默认设置的数值,或者是用户自定义的数值。本实施例对此不加以限定。
本申请实施例还通过当电池电量小于预设电量阈值时,第三方应用程序获取终端当前的第一画质参数,将画质参数从第一画质参数调节为第二画质参数,第二画质参数所指示的画面质量低于第一画质参数所指示的画面质量;使得当电池电量小于预设电量阈值时第三方应用程序通过调节画质参数的方法降低对画面质量的要求,即降低了对系统性能的要求,从而提高了终端的续航能力。
为了使得当电池电量回升至预设电量阈值时能够及时地提高画面质量,在一种可能的实施方式中,在图8的基础上,如图9所示,步骤808之后还包括以下几个步骤。
步骤901,第三方应用程序判断电池电量是否回升至预设电量阈值。
在将画质参数从第一画质参数调节为第二画质参数之后,第三方应用程序持续通过调用内嵌sdk提供的api向操作系统发送目标请求,使得第三方应用程序持续接收操作系统反馈的电池电量。
当第三方应用程序接收到的电池电量大于或者等于预设电量阈值时,判断电池电量回升至预设电量阈值,执行步骤902;当第三方应用程序接收到的电池电量仍然小于预设电量阈值,则结束进程。
步骤902,当电池电量回升至预设电量阈值时,第三方应用程序将画质参数从第二画质参数调节为第三画质参数,第三画质参数所指示的画面质量高于第二画质参数所指示的画面质量。
可选的,第三画质参数为第一画质参数,即当电池电量回升至预设电量阈值时,将画质参数从第二画质参数恢复至第一画质参数。第二画质参数包括第二帧率和/或第二分辨率。
示意性的,将画质参数从第二画质参数调节为第三画质参数,包括:将终端的帧率从第二帧率提高为第三帧率,和/或,将终端的分辨率从第二分辨率提高为第三分辨率;其中,第三帧率与第二帧率的差值绝对值为第二预设帧率阈值,第三分辨率与第二分辨率的差值绝对值为第二预设分辨率阈值。
第二预设帧率阈值和第二预设分辨率阈值为终端默认设置的数值,或者是用户自定义的数值。本实施例对此不加以限定。
需要说明的是,将画质参数从第二画质参数调节为第三画质参数的过程可类比参考将画质参数从第一画质参数调节为第二画质参数的相关细节,在此不再赘述。
本申请实施例还通过当电池电量回升至预设电量阈值时,将画质参数从第二画质参数调节为第三画质参数,第三画质参数所指示的画面质量高于第二画质参数所指示的画面质量;使得当电池电量回升至预设电量阈值时,第三方应用程序能够通过调节画质参数的方法及时地提高画面质量,保证终端的画面显示效果。
由于终端中可能安装并运行有多个内嵌sdk的应用程序,且操作系统可能同时与多个应用程序建立连接。为了保证前台应用程序的运行质量,在一种可能的实施方式中,在图8的基础上,如图10所示,步骤802之后还包括如下几个步骤。
步骤1001,操作系统获取前台应用的前台应用标识。
在一种可能的实现方式中,如图4所示,应用框架层250与接口通信系统242之间建立有binder连接,操作系统即从应用框架层250处获取前景应用信息,该前景应用信息中即包含前台应用标识。
步骤1002,操作系统检测第三方应用程序的应用标识与前台应用标识是否一致。
获取到前台应用标识后,操作系统即检测第三方应用程序的应用标识与前台应用标识是否一致,若两者一致,则确定发送目标请求的第三方应用程序正在前台运行,从而执行步骤803;若两者不一致,则确定发送目标请求的第三方应用程序在后台运行,并执行步骤1003。
步骤1003,若第三方应用程序的应用标识与前台应用标识不一致,操作系统则不响应目标请求。
当第三方应用程序未在前台运行,操作系统则不响应第三方应用程序发送的目标请求(继续维持与第三方应用程序之间的连接),并优先响应前台应用程序发送的目标请求。
进一步的,当运行在前台的第三方应用程序切换至后台时,操作系统执行步骤1004。
步骤1004,当由前台运行切换至后台运行时,第三方应用程序停止向操作系统发送目标请求。
可选的,为了避免长时间占用与操作系统之间的数据通道,第三方应用程序由前台运行切换至后台运行时,自动停止向操作系统发送目标请求,并断开与操作系统之间的连接。
本申请实施例中,操作系统中增加了前台应用检测机制,实现仅为前台运行的第三方应用程序提供电池电量反馈服务。
请参考图11,其示出了本申请一个实施例提供的画质参数调节装置的结构框图。该画质参数调节装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:第三方应用程序1110和操作系统1120。
第三方应用程序1110,用于通过调用内嵌软件开发工具包sdk提供的应用程序编程接口api,向操作系统1120发送目标请求,目标请求用于指示操作系统1120反馈终端当前的电池电量;
第三方应用程序1110,还用于接收操作系统1120反馈的电池电量;
第三方应用程序1110,还用于根据电池电量对画质参数进行调节,画质参数用于指示终端屏幕中所显示的第三方应用程序1110对应的画面质量。
可选的,第三方应用程序1110,还用于当电池电量小于预设电量阈值时,第三方应用程序1110获取终端当前的第一画质参数;
将画质参数从第一画质参数调节为第二画质参数,第二画质参数所指示的画面质量低于第一画质参数所指示的画面质量。
可选的,第一画质参数包括第一帧率;第三方应用程序1110,还用于将终端的帧率从第一帧率降低为第二帧率,第一帧率与第二帧率的差值绝对值为第一预设帧率阈值。
可选的,第一画质参数包括第一分辨率;第三方应用程序1110,还用于将终端的分辨率从第一分辨率降低为第二分辨率,第一分辨率与第二分辨率的差值绝对值为第一预设分辨率阈值。
可选的,第三方应用程序1110,还用于当电池电量回升至预设电量阈值时,将画质参数从第二画质参数调节为第三画质参数,第三画质参数所指示的画面质量高于第二画质参数所指示的画面质量。
可选的,第二画质参数包括第二帧率和/或第二分辨率;第三方应用程序1110,还用于将终端的帧率从第二帧率提高为第三帧率,和/或,将终端的分辨率从第二分辨率提高为第三分辨率;
其中,第三帧率与第二帧率的差值绝对值为第二预设帧率阈值,第三分辨率与第二分辨率的差值绝对值为第二预设分辨率阈值。
可选的,第三方应用程序1110,还用于当检测到当前应用场景为预设应用场景,第三方应用程序1110生成目标请求,目标请求携带有第三方应用程序1110的应用标识;通过调用内嵌sdk提供的api向操作系统1120发送目标请求,目标请求还用于指示操作系统1120将终端当前的电池电量反馈至应用标识对应的第三方应用程序1110。
可选的,第三方应用程序1110,还用于当第三方应用程序1110从前台运行切换至后台运行时,停止向操作系统1120发送目标请求。
可选的,第三方应用程序1110,还用于当第三方应用程序1110的进程结束时,断开第三方应用程序1110与操作系统1120之间的连接。
相关细节可结合参考图7至图10所示的方法实施例。其中,第三方应用程序1110还用于执行上述方法实施例中其他任意隐含或公开的由第三方应用程序所执行的步骤;操作系统1120还用于执行上述方法实施例中其他任意隐含或公开的由操作系统所执行的步骤。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的画质参数调节方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的画质参数调节方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。