资源配置的方法、装置、终端及存储介质与流程

文档序号:16326847发布日期:2018-12-19 05:58阅读:259来源:国知局
资源配置的方法、装置、终端及存储介质与流程
本申请实施例涉及计算机
技术领域
,特别涉及一种资源配置的方法、装置、终端及存储介质。
背景技术
随着应用程序的功能的日益强大,应用程序在运行时对终端的系统资源需求也日益增长。在相关技术中,当应用程序启动时,终端的系统为应用程序分配指定大小的系统资源。当系统资源能够满足应用程序的运行时,应用程序正常运行。但是,当系统资源不能满足应用程序的运行需求时,应用程序会因无法获取所需的系统资源而发生卡顿。技术实现要素:本申请实施例提供了一种资源配置的方法、装置、终端及存储介质,可以解决由于当系统资源不能满足应用程序的运行需求时,应用程序会因无法获取所需的系统资源而发生卡顿的问题。所述技术方案如下:根据本申请的第一方面,提供了一种资源配置的方法,所述方法包括:获取目标应用的目标标识,所述目标标识是所述目标应用当前运行的线程的标识;检测所述目标标识是否属于特征标识,所述特征标识用于指示所述目标应用的图像渲染线程所依赖的线程;当所述目标标识属于所述特征标识时,获取所述目标标识对应的资源调整参数,所述资源调整参数用于为所述目标应用配置系统资源;根据所述资源调整参数为所述目标应用配置系统资源。根据本申请的第二方面,提供了一种资源配置的装置,所述装置包括:标识获取模块,用于获取目标应用的目标标识,所述目标标识是所述目标应用当前运行的线程的标识;标识检测模块,用于检测所述目标标识是否属于特征标识,所述特征标识用于指示所述目标应用的图像渲染线程所依赖的线程;参数获取模块,用于当所述目标标识属于所述特征标识时,获取所述目标标识对应的资源调整参数,所述资源调整参数用于为所述目标应用配置系统资源;资源配置模块,用于根据所述资源调整参数为所述目标应用配置系统资源。根据本申请的第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如第一方面所述的资源配置的方法。根据本申请的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如第一方面所述的资源配置的方法。本申请实施例提供的技术方案带来的有益效果是:在本申请实施例中,终端中的系统能够主动根据目标应用中运行的线程,是否是图像渲染线程所依赖的线程来获取资源调整参数,在目标应用中运行的线程是图像渲染线程所依赖的线程时,获取对应的资源调整参数并为目标应用配置系统资源,令目标应用在运行时主动获取当前场景所需要的系统资源,降低了因系统资源不足而造成的显示图像卡顿的风险,提高了目标应用运行的稳定性和图像显示的流畅性。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本申请一个示例性实施例提供的终端100的结构方框图;图2示出了一种第三方应用程序与操作系统之间的数据通信的示意图;图3示出了一种android系统的系统架构图;图4示出了另一种第三方应用程序与操作系统之间的数据通信的示意图;图5示出了又一种第三方应用程序与操作系统之间的数据通信的示意图;图6示出了一种ios系统的系统架构图;图7是本申请一个示例性实施例提供的资源配置的方法的流程图;图8是本申请另一个示例性实施例提供的另一种资源配置的方法流程图;图9示出了本申请一个示例性实施例提供的资源配置的装置的结构框图;图10是本申请一个示例性实施例提供的终端的结构框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。为了本申请实施例所示方案易于理解,下面将对本申请实施例中出现的若干名词进行介绍。目标应用:是能够安装并运行在终端中的应用,也即能够安装并运行在终端的操作系统中的应用。可选地,该目标应用调用图像渲染线程,以及该图像渲染线程所依赖的线程优化目标应用显示的图像。可选地,目标应用可以是游戏应用、购物程序、即时通讯程序、博客应用、制图绘画应用、文本编辑应用、订票应用、地图导航应用、视频播放应用、直播应用、浏览器应用、阅读应用、音乐应用、理财支付应用、相机应用、相片美化程序、智能设备控制应用、电话应用、短信程序、天气应用、时钟程序、系统搜索应用、联系人程序、共享交通应用、物流应用、打车应用、外卖应用、考勤打卡应用和扫码应用中至少一种。可选地,当目标应用是游戏应用时,该游戏应用可以包括独立封装的游戏应用、通过第三方应用提供启动入口的游戏应用和集成在第三方应用中的游戏应用中的至少一种。可选地,当游戏应用是独立封装的游戏应用时,该游戏应用可以是一个单独的应用、程序或者客户端。例如,游戏应用可以是通过apk(androidpackage,安卓安装包)安装在搭载安卓系统的终端中的应用;或者,游戏应用也可以是通过ipa(iphoneapplication,苹果应用)安装包安装在搭载ios操作系统的终端中的应用。可选地,当游戏应用是通过第三方应用提供入口的应用时,该游戏应用可以由指定的第三方应用提供入口。例如,该游戏应用可以是通过html5(hypertextmarkuplanguage5,超级文本标记语言第5版)编写的小程序(miniprogram)、轻应用(lightapp)或者快应用等。可选地,游戏应用也可以根据进行游戏的方式进行分类,例如,可以包括第一人称射击类游戏应用fps、角色扮演类游戏应用rpg、动作角色扮演类游戏应用arpg、多人在线战术竞技游戏应用moba、大型多人在线类游戏应用mmog、消除类游戏应用、捕鱼类游戏应用、卡牌类游戏应用、音乐类游戏应用和放置类游戏应用中的至少一种。在一种可能的实现方式中,当游戏应用是大型多人在线类游戏应用mmog时,该mmog可以包括:策略类大型多人在线游戏应用mmoslg、冒险类大型多人在线游戏应用mmoavg、模拟类大型多人在线游戏应用mmosg、运动类大型多人在线游戏应用mmospt、赛车类大型多人在线游戏应用mmorcg和角色扮演类大型多人在线游戏应用mmorpg中的至少一种。可选地,游戏应用可以运行在游戏引擎提供的三维虚拟环境中,该三维虚拟环境可以是游戏应用在终端上运行时显示的三维虚拟环境。其中,该三维虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是完全虚构的环境。需要说明的是,游戏引擎还可以在三维虚拟环境中创建虚拟对象,该虚拟对象可以是虚拟人物、虚拟动物、虚拟植物和虚拟物品等。例如,在三维虚拟环境中显示的人物、动物、植物、房屋、车辆、枪支、防弹衣、头盔、瞄准镜和医疗包等。可选地,虚拟对象可以由游戏引擎提供的动画骨骼技术所创建。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的部分空间。可选地,在一些游戏应用中,还提供有摄像机模型,该摄像机模型位于三维虚拟环境中的虚拟对象周围。比如,当游戏应用是fps、rpg、arpg、moba或mmog时,摄像机模型可以在第一人称视角时,位于虚拟对象的头部附近或位于虚拟对象的头部,并采集虚拟对象的眼睛的视角作为拍摄对象;当采用第一人称的过肩视角时,摄像机模型位于虚拟对象的后方,该过肩视角获取的游戏画面中包括虚拟对象的部分或者全部。可选地,目标应用在运行的不同阶段时会处于对应的场景中,目标应用在运行过程中,可以包括至少一个指定场景。可选地,当目标应用是游戏应用时,指定场景包括垃圾回收场景、资源加载场景、资源更新场景、账号登录场景、游戏主界面场景、商城界面场景。其中,当指定场景是垃圾回收场景、资源加载场景、枪支开镜场景、车辆驾驶场景和决赛圈对战场景中至少一种时,游戏应用可以调用图像渲染线程对图像进行加载优化。可选地,当游戏应用调用图像渲染线程对图像进行加载优化时,游戏应用将同时调用图像渲染线程所依赖的线程,以便游戏应用的图像渲染工作正常完成。目标标识:可以是指目标应用当前运行的线程的标识。可选地,该目标标识可以是线程的id,也可以是线程的编号,本实施例对此不作限定。特征标识:可以用于指示目标应用的图像渲染线程所依赖的线程。可选地,该目标标识可以是线程的id,也可以是线程的编号,本实施例对此不作限定。资源调整参数:用于指示终端调整硬件的目标参数。可选地,该资源调整参数可以是cpu(centralprocessingunit,中央处理器)的使用率、cpu的核心数目、gpu(graphicsprocessingunit,图形处理器)的使用率、gpu的核心数目和输入输出接口i/o速率中的至少一种。资源调整参数还可以是其它能够调整的硬件的参数,本申请对此不作限定。系统资源:指能够影响目标应用图形加载性能的硬件。在一种可能实现的方式中,系统资源可以指终端中的用于图形处理的硬件资源。可选地,系统资源包括cpu资源、gpu资源、内存带宽资源、磁盘资源和网络资源中的至少一种。示例性地,本申请实施例所示的资源配置的方法,可以应用在终端中,该终端具备显示屏且具备运行目标应用的功能。终端可以包括手机、平板电脑、膝上型电脑、台式电脑、电脑一体机、服务器、工作站、电视、机顶盒、智能眼镜、智能手表、数码相机、mp4播放终端、mp5播放终端、学习机、点读机、电纸书、电子词典、车载终端、虚拟现实(virtualreality,vr)播放终端或增强现实(augmentedreality,ar)播放终端等。在一种可能实现的方式中,终端可以实现以下架构,以便应用本申请实施例所示的资源配置的方法。请参考图1,其示出了本申请一个示例性实施例提供的终端100的结构方框图。该终端100可以是手机、平板电脑、膝上型电脑、台式电脑、电脑一体机、服务器、工作站、电视、机顶盒、智能眼镜、智能手表、数码相机、mp4播放终端、mp5播放终端、学习机、点读机、电纸书、电子词典、车载终端、虚拟现实(virtualreality,vr)播放终端或增强现实(augmentedreality,ar)播放终端等能够运行应用程序的电子设备。本申请中的终端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所示,第三方应用程序中内嵌有用于与操作系统进行通信的软件开发套件(softwaredevelopmentkit,sdk)。其中,sdk包含若干经过抽象的应用程序编程接口(applicationprogramminginterface,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进行通信。在又一种可能实现的通信方式中,操作系统可以通过进程间通信的方式获取第三方应用程序(即目标程序)中的目标标识,无需预先在第三方应用中植入sdk接口,使得终端具有为未预先处理的第三方应用的系统资源的效果。可选的,接口通信系统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,其是本申请一个示例性实施例提供的资源配置的方法的流程图。该资源配置的方法可以应用在上述所示的终端中。可选地,该资源配置的方法可以由操作系统中的系统服务或者系统应用执行,本实施例对此不作限定。在图1中,资源配置的方法包括:步骤710,获取目标应用的目标标识,目标标识是目标应用当前运行的线程的标识。在本申请实施例中,操作系统能够获取目标应用的目标标识。需要说明的是目标应用是一种第三方应用程序。其中,目标标识是应用当前运行的线程的标识。可选地,目标应用是终端中运行在前台的应用。在一种操作系统获取目标应用的目标标识的通信方式中,操作系统将通过第一sdk(softwaredevelopmentkit,软件开发套件),与内嵌在目标应用中的第二sdk建立数据交互通道;并通过数据交互通道获取目标应用的目标标识。比如,当终端在前台运行有一个高性能需求的游戏应用时,操作系统可以获取该目标应用当前运行的线程的标识。该获取方式可以是周期性获取,也可以是在线程发生改变时获取。例如,操作系统可以1毫秒为周期,获取目标应用当前运行的线程的标识。或者,操作系统也可以监控目标应用调用的线程,当目标应用新调起线程和/或停用线程时,操作系统将重新获取目标应用当前运行的线程的标识。可选地,目标应用调用目标线程可以指示该应用处于指定场景中,该指定场景可以是垃圾回收场景(gc)和资源加载场景。步骤720,检测目标标识是否属于特征标识,特征标识用于指示目标应用的图像渲染线程所依赖的线程。在本申请实施例中,操作系统能够检测目标标识是否属于特征标识,其中,该特征标识用于指示目标应用的图像渲染线程所依赖的线程。在一种可能实现的方式中,特征标识可以是终端预先存储在存储芯片中的数据。在该方式中,特征标识可以是终端在出厂时预先写入的数据,也可以是终端从相关服务器的推送消息中获取的数据。在另一种可能实现的方式中,特征标识还可以是终端的操作系统根据目标应用的图像渲染线程确定的标识,在该实现方式中,操作系统可以执行下列步骤以获取特征标识。步骤(1),获取目标应用的图像渲染线程的渲染线程标识。步骤(2),根据渲染线程标识查找图像渲染线程依赖的线程。步骤(3),将图像渲染线程依赖的线程的标识确定为特征标识,并存储至特征标识库。在一种可能实现的方式中,操作系统可以在目标应用启动后,执行该步骤。比如,游戏应用a在正常启动后,操作系统即可以在后台执行上述步骤(1)至步骤(3),以便建立特征标识库。在另一种可能实现的方式中,操作系统可以在目标应用首次启动时,执行上述步骤(1)至步骤(3),以便建立特征标识库。需要说明的是,目标应用首次启动既可以指终端安装完成目标应用后首次启动该应用,也可以指目标应用完成资源更新后的首次启动。需要说明的是,当终端中建立有特征标识库时,操作系统可以从特征标识库中查找与目标标识匹配的特征标识。步骤730,当目标标识属于特征标识时,获取目标标识对应的资源调整参数,资源调整参数用于为目标应用配置系统资源。在本申请实施例中,当目标标识属于特征标识时,操作系统获取目标标识对应的资源调整参数,其中资源调整参数用于为目标应用配置系统资源。在一种可能的是实现方式中,操作系统中预设有指定特征标识与系统调整参数的对应关系。操作系统可以先确定目标标识是否属于特征标识,进而确定属于哪一种特征标识,将该种特征标识对应的系统调整参数确定为目标标识对应的资源调整参数。表一其中,表一示出了一种能够实现的特征标识和系统调整参数的对应关系。当操作系统识别出目标标识属于特征标识时,操作系统将确定目标标识属于表一中的哪一种特征标识。例如,当操作系统确定目标标识属于特征标识c时,操作系统将该目标标识对应的资源调整参数确定为“cpu使用率50%,gpu使用率50%”。其中,操作系统可以在从上述由特征标识a、特征标识b、特征标识c和特征标识d组成的特征标识库中,查找到与目标标识匹配的特征标识时,获取目标标识对应的资源调整参数。步骤740,根据资源调整参数为目标应用配置系统资源。在本申请实施例中,操作系统根据资源调整参数为目标应用配置系统资源。由于在操作系统中,具体由系统应用或者系统服务执行该步骤,因此,系统应用或者系统服务将根据资源调整参数调整对应的硬件,以完成为目标应用配置系统资源。例如,当资源调整参数为“cpu使用率50%,gpu使用率50%”时,操作系统将为目标应用分配50%的cpu使用率资源,为gpu分配50%的使用率资源。在一种可能实现的方式中,上述系统应用或者系统服务调整硬件的优先级可以被设置为最高,以便系统应用或系统服务在较短的时间内为目标应用配置系统资源。综上所述,在本申请实施例中,终端中的系统能够主动根据目标应用中运行的线程,是否是图像渲染线程所依赖的线程来获取资源调整参数,在目标应用中运行的线程是图像渲染线程所依赖的线程时,获取对应的资源调整参数并为目标应用配置系统资源,令目标应用在运行时主动获取当前场景所需要的系统资源,降低了因系统资源不足而造成的显示图像卡顿的风险,提高了目标应用运行的稳定性和图像显示的流畅性。在上一个实施例的基础上,终端还能够在本地生成目标标识对应的资源调整参数。请参考如下实施例。请参见图8,其是本申请另一个示例性实施例提供的另一种资源配置的方法流程图。该资源配置的方法可以应用在上述所示的终端中。在图8中,该资源配置的方法包括:步骤801,获取目标应用的目标标识。在本申请实施例中,步骤801的执行过程与步骤710的执行方式相同,此处不再赘述。其中,目标标识是目标应用当前运行的线程的标识。步骤802,检测目标标识是否属于特征标识。在本申请实施例中,步骤802的执行过程与步骤720的执行方式相同,此处不再赘述。其中,特征标识用于指示目标应用的图像渲染线程所依赖的线程。需要说明的是,操作系统在执行完成步骤802后,可以执行步骤803和步骤804,或者,也可以执行步骤805至步骤807,或者,还可以执行步骤808至步骤811。步骤803,当目标标识属于特征标识时,获取目标线程的运行日志。在本申请实施例中,当目标标识属于特征标识时,操作系统可以获取目标线程的运行日程,该运行日志中记载有目标线程的历史运行数据。需要说明的是,运行日程可以实现为数据组或者字符串,该运行日志可以存储为一个独立的文件,比如,格式为xml(extensiblemarkuplanguage,可扩展标记语言)或者txt(text)的文件。或者,该运行日志也可以集成在其它文件的指定区域中,比如,集成在目标应用的运行日志中。其中,历史运行数据包括:线程运行时长、中央处理器cpu的使用率、图形处理器gpu的使用率和输入输出接口i/o速率中至少一种。步骤804,从运行日志中获取n次运行的数据,并将n次运行的数据输入参数计算模型,获取资源调整参数。在本申请实施例中,操作系统可以从运行日志中获取n次运行的数据,并将n次运行的数据输入参数计算模型,n为正整数。在一种可能实现的方式中,操作系统从运行日志中获取目标线程至少两次运行的数据,将至少两次运行的数据一并输入参数计算模型,n为正整数。此时,参数计算模型将处理该至少两次运行的数据。可选地,参数计算模型为加权求值模型,加权求值模型用于对每一个运行的数据赋予对应的权重,并将每一个加权后的运行的数据的和值确定为资源调整参数。针对n次运行的数据,运行结束的时刻与当前系统时间之间的时长,与对应的数据的权重成反相关。其中,n次运行的数据包括:中央处理器cpu的使用率、图形处理器gpu的使用率和输入输出接口i/o速率中至少一种。比如,操作系统获取目标线程最近三次运行的数据,从距近运行结束时刻从远到近分为d1、d2和d3三次数据。加权求值模型为三次数据分配的权重分别为0.1、0.3和0.6。若目标线程最近三次运行的数据仅包括cpu的使用率,则目标线程最近三次运行的数据内容和权重的对应关系可以参见表二。表二运行数据d1d2d3数据内容cpu的使用率47%cpu的使用率43%cpu的使用率52%权重0.10.30.6当参数计算模型提供如表二所示的权重时,操作系统通过参数计算模型计算资源调整参数g的算式可以是:g=47%×0.1+43%×0.3+52%×0.6,计算结果为g=48.8%,则操作系统将资源调整参数确定为cpu的使用率48.8%,并获取该数据。在另一种可能实现的方式中,操作系统从运行日志中获取上一次运行的数据,将该上一次运行的数据输入参数计算模型。当参数计算模型检测出运行的数据仅为一个数据时,该参数计算模型将直接输出该上一次运行的数据。操作系统随后将该上一次运行的数据确定为资源调整参数。步骤805,当历史数据包括线程运行时长,且目标标识属于特征标识时,从目标线程的运行日志中获取n次运行的时长,并将n次运行的时长数据输入加权求值模型,得到目标线程运行时长。在本实施例中,当历史数据包括线程运行时长,且目标标识属于特征标识时,操作系统将从目标线程的运行日志中获取n次运行的时长,并将n次运行的时长数据输入加权求值模型,得到目标线程运行时长。需要说明的是,该目标线程运行时长是一个历史统计数据,并不用作设置目标线程的实际运行时长限制。目标线程的实际运行时长仍将受目标应用控制,操作系统不做干预。请参见表三,表三示出了一种加权求值模型提供的目标线程运行时长的计算参数。表三时长标识t1t2t3tm时长500ms1100ms1000ms980ms权重0.10.30.61在表三中,当目标标识属于特征标识时,操作系统从目标线程的运行日志中获取最近三次运行的时长,从运行结束时刻从远到近的顺序分别为t1、t2和t3,加权求值模型分别为上述模型属于权重0.1、0.3和0.6,根据计算目标线程运行时长tm的算式:tm=500ms×0.1+1100ms×0.3+1000ms×0.6,算得tm=980ms。即,在表三的数据下,操作系统将确认目标线程运行时长为980ms。步骤806,检测目标线程运行时长是否大于目标阈值。在本实施例中,操作系统中预先存储有一个目标阈值,该目标阈值是一个指定的时长数据。需要说明的是,该时长数据可以是技术开发人员针对终端运行目标线程的情景,设置的一个经验值,该目标阈值可以在系统更新资源包、下载补丁或者系统功能升级的情景下进行修改。当操作系统获取目标线程运行时长后,操作系统可以检测该目标运行时长是否大于目标阈值。比如,当目标阈值为1000ms,目标线程运行时长为980ms时,操作系统将检测到目标线程运行时长不大于目标阈值。步骤807,若目标线程运行时长不大于目标阈值,则将资源调整参数调整至系统剩余资源值。在本实施例中,若目标线程运行时长不大于目标阈值,则操作系统将资源调整参数调整至系统剩余资源值。在实际实现的场景中,本申请为了保障目标线程的运行效果且不对终端造成较大功耗压力,本申请设计有目标线程运行时长的预估。当该预估值,即目标线程运行时长不大于目标阈值,则操作系统认为目标线程能够在短时间调用全部系统剩余资源,且不会对系统造成较大功耗压力。可见,本设计能够在不对终端造成较大功耗压力的前提下,最大程度上保障目标线程的运行效果,降低了因系统资源不足而造成的显示图像卡顿的风险,提高了目标应用运行的稳定性和图像显示的流畅性。在实际实现场景中,比如系统剩余资源为43%的cpu使用率,55%的gpu使用率,则操作系统将该43%的cpu使用率和55%的gpu使用率均分配给目标应用使用。其中,资源调整参数包括cpu的使用率、gpu的使用率和i/o速率中的至少一种。步骤808,当目标标识属于特征标识时,从调整参数库中匹配获取目标标识对应的资源调整参数。在本申请实施例中,当目标标识属于特征标识时,操作系统从调整参数库中匹配获取目标标识对应的调整参数。可选地,该调整参数库可以是终端预设的调整策略,该调整策略可以是图4或图5中提及的资源适配优化策略。步骤809,在第一时段内,根据第一调整参数为目标应用配置系统资源。在本申请实施例中,操作系统将在第一时段内,根据第一调整参数为目标应用配置系统资源。步骤810,在第二时段内,检测目标应用是否出现卡顿。在本申请实施例中,操作系统将在第二时段内,检测目标应用是否出现卡顿。其中第二时段是第一时段中的一个时段,例如,第一时段是10:00至10:05时长为5分钟的时段,则第二时段可以是位于10:00至10:05中的一个时段。操作系统将在该第二时段中,检测目标应用是否出现卡顿。可选的,造成卡顿的原因包括掉帧和网络延迟。在本申请中,操作系统可以通过检测目标应用的帧率判断目标应用出现卡顿。比如,当操作系统检测到目标应用的帧率低于预设帧率时,操作系统将确定目标应用出现卡顿。步骤811,若在第二时段内,目标应用出现卡顿,则获取第二调整参数作为目标应用在第三时段内的资源调整参数。在本申请实施例中,若在第二时段内,目标应用出现卡顿,则操作系统可以获取第二调整参数。需要说明的是,第二调整参数指示的系统资源高于第一调整参数指示的系统资源。例如,第一调整参数指示的系统资源是20%cpu的使用率,则第二调整参数指示的系统资源可以是大于20%的cpu的使用率。例如,25%的cpu的使用率。操作系统可以在第三时段中按照第二调整参数为目标应用分配系统资源。其中,第三时段是与第二时段相邻的下一个时段,本申请实施例不对第三时长的做限定。步骤812,当目标线程停止运行时,释放根据资源调整参数为目标应用配置的系统资源。在本申请实施例中,目标线程由于占用系统资源较多。因此,本申请实施例综合考虑目标线程的功耗,将在目标线程停止运行时,释放根据资源调整参数为目标应用配置的系统资源。综上所述,本实施例提供的资源配置的方法,能够令操作系统获取目标应用的标识,在检测出目标标识属于特征标识时,获取目标线程的运行日志,从运行日志中获取n次运行的数据,并将n次运行的数据输入参数计算模型,获取资源调整参数。可见,本实施例能够在目标应用当前运行的线程,是依赖于图像渲染线程时,从目标线程中获取运行日志并计算出资源调整参数,实现了资源调整参数能够满足目标应用的需求,且不会造成较大功耗,实现了功耗和避免应用卡顿的平衡。本实施例提供的资源配置的方法,还能够当历史数据包括线程运行时长,且目标标识属于特征标识时,从目标线程的运行日志中获取n次运行的时长,并将n次运行的时长数据输入加权求值模型,得到目标线程运行时长,若目标线程运行时长不大于目标阈值,则将资源调整参数调整至系统剩余资源值。由于本申请实施例能够在预估的目标线程运行时长不大于目标阈值时,将资源调整参数调整至系统剩余资源值,使得目标应用中的目标线程能够获取系统中全部剩余的系统资源,最大程度上保证了目标应用运行的顺畅性。本实施例提供的资源配置的方法,还能够当目标标识属于特征标识时,从调整参数库中匹配获取目标标识对应的资源调整参数,在第一时段内,根据第一调整参数为目标应用配置系统资源,在包含于第一时段的第二时段内,检测目标应用是否出现卡顿,若在第二时段内,目标应用出现卡顿,则获取第二调整参数作为目标应用在第三时段内的资源调整参数。其中,第二调整参数指示的系统资源高于第一调整参数指示的系统资源,第三时段是与第二时段相邻的下一个时段。由于操作系统能够在设置完成第一调整参数后,在目标应用发生卡顿是及时获取更多的系统资源。因此,本申请实施例能够在终端不具备计算资源调整参数的情况下,实现快速获取目标应用需求的系统资源,降低了因系统资源不足而造成的显示图像卡顿的风险,提高了目标应用运行的稳定性和图像显示的流畅性。下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。请参考图9,其示出了本申请一个示例性实施例提供的资源配置的装置的结构框图。该资源配置的装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:标识获取模块910,用于获取目标应用的目标标识,所述目标标识是所述目标应用当前运行的线程的标识;标识检测模块920,用于检测所述目标标识是否属于特征标识,所述特征标识用于指示所述目标应用的图像渲染线程所依赖的线程;参数获取模块930,用于当所述目标标识属于所述特征标识时,获取所述目标标识对应的资源调整参数,所述资源调整参数用于为所述目标应用配置系统资源;资源配置模块940,用于根据所述资源调整参数为所述目标应用配置系统资源。在一个可选的实施例中,所述装置还包括执行模块,所述执行模块用于获取所述目标应用的图像渲染线程的渲染线程标识;根据所述渲染线程标识查找所述图像渲染线程依赖的线程;将所述图像渲染线程依赖的线程的标识确定为所述特征标识,并存储至特征标识库。在一个可选的实施例中,所述执行模块,还用于在所述特征标识库中查找与所述目标标识匹配的所述特征标识。所述参数获取模块930,用于当在所述特征标识库中查找到与所述目标标识匹配的所述特征标识时,获取所述目标标识对应的资源调整参数。在一个可选的实施例中,所述参数获取模块930,用于所述目标标识属于所述特征标识时,获取所述目标线程的运行日志,所述运行日志用于记载所述目标线程的历史运行数据;从所述运行日志中获取n次运行的数据,并将所述n次运行的数据输入参数计算模型,获取所述资源调整参数,n为正整数。在一个可选的实施例中,所述参数获取模块930获取的历史运行数据包括:线程运行时长、中央处理器cpu的使用率、图形处理器gpu的使用率和输入输出接口i/o速率中至少一种。在一个可选的实施例中,在本装置中,所述参数计算模型为加权求值模型,所述加权求值模型用于对每一个所述运行的数据赋予对应的权重,并将每一个加权后的运行的数据的和值确定为所述资源调整参数;其中,针对所述n次运行的数据,运行结束的时刻与当前系统时间之间的时长,与对应的数据的权重成反相关。在一个可选的实施例中,本装置在历史数据包括所述线程运行时长时,所述当所述目标标识属于所述特征标识时,被配置为当所述目标标识属于所述特征标识时,从所述运行日志中获取n次运行的时长,并将所述n次运行的时长数据输入加权求值模型,得到所述目标线程运行时长;检测所述目标线程运行时长是否大于目标阈值;若所述目标线程运行时长不大于所述目标阈值,则将资源调整参数调整至系统剩余资源值,所述资源调整参数包括所述cpu的使用率、所述gpu的使用率和所述i/o速率中的至少一种。在一个可选的实施例中,参数获取模块930,用于当所述目标标识属于所述特征标识时,从调整参数库中匹配获取所述目标标识对应的第一资源调整参数。资源配置模块940,用于在第一时段内,根据第一调整参数为所述目标应用配置系统资源。在一个可选的实施例中,所述在第二时段内,检测所述目标应用是否出现卡顿,所述第二时段是包含于所述第一时段中的一个时段;若在所述第二时段内,所述目标应用出现卡顿,则获取第二调整参数作为所述目标应用在第三时段内的资源调整参数,所述第二调整参数指示的所述系统资源高于所述第一调整参数指示的所述系统资源,所述第三时段是与所述第二时段相邻的下一个时段。在一个可选的实施例中,所述标识获取模块910,用于通过第一软件开发套件sdk,与内嵌在所述目标应用中的第二sdk建立数据交互通道;通过所述数据交互通道获取目标应用的目标标识。在一个可选的实施例中,装置中涉及的目标应用包括游戏应用、购物程序、即时通讯程序、博客应用、制图绘画应用、文本编辑应用、订票应用、地图导航应用、视频播放应用、直播应用、浏览器应用、阅读应用、音乐应用、理财支付应用、相机应用、相片美化程序、智能设备控制应用、电话应用、短信程序、天气应用、时钟程序、系统搜索应用、联系人程序、共享交通应用、物流应用、打车应用、外卖应用、考勤打卡应用和扫码应用中至少一种。请参考图10,其是本申请一个示例性实施例提供的终端的结构框图,如图10所示,该终端包括处理器1010、存储器1020和屏幕组件1030,所述存储器1020中存储有至少一条指令,所述指令由所述处理器1010加载并执行以实现如上各个实施例所述的资源配置的方法。其中,屏幕组件1030用于显示目标应用运行时的用户界面。本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的资源配置的方法。本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的资源配置的方法。需要说明的是:上述实施例提供的资源配置的装置在执行资源配置的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的资源配置的装置与资源配置的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1