本发明涉及通信领域,具体而言,涉及一种应用热补丁监控方法及装置。
背景技术:
热补丁技术是一种新的应用程序更新方式,能够在无需重新安装应用程序的情况下,修复软件漏洞,是一种快速、低成本修复产品软件版本缺陷的方式。因此,近来被越来越多的应用开发厂商用于应用升级,对手机终端来说,带来了非常大的挑战,当在后台进行热补丁升级时,用户是无法直接感知的,但是此时会给系统带来非常大的系统负荷,导致系统产生卡顿,无响应,报错等严重问题,对用户体验带来非常大的影响。因此,热补丁的使用,在给各大应用开发厂商带来便利的同时,也给终端厂商提出了严峻的课题,如何有效管理应用的热补丁升级,让其不对系统性能带来不良的影响,从而保证用户体验。
技术实现要素:
本发明实施例提供了一种应用热补丁监控方法及装置,以至少解决相关技术中热补丁升级影响系统性能的问题。
根据本发明的实施例,提供了一种应用热补丁监控方法,包括:监控第三方应用的热补丁更新程序在系统中的启动;根据系统的当前状态控制所述应用的热补丁更新程序的运行。
其中,根据系统的当前状态控制所述应用的热补丁更新程序的运行包括以下至少之一:设置所述热补丁更新程序所请求的线程并发个数;设置所述热补丁更新程序所请求的优化参数类型;设置所述热补丁更新程序执行优化过程的cpu调度策略。
其中,设置所述热补丁更新程序的线程并发个数包括:根据当前cpu占用率调整所述热补丁更新程序所请求的并发线程数。
其中,根据当前cpu占用率调整所述热补丁更新程序所请求的并发线程数包括:当所述当前cpu占用率达到预设门限值时,将所述热补丁更新程序所请求的并发线程数减半。
其中,设置所述热补丁更新程序所请求的优化参数类型包括:根据系统资源的占用情况调整所述热补丁更新程序所请求的dex优化模式。
其中,设置所述热补丁更新程序执行优化过程的cpu调度策略包括:将所述热补丁更新程序升级的任务从前台进程调整至后台进程中进行;
其中,调整所述热补丁更新程序执行优化过程的cpu调度策略包括,还包括:将所述后台进程限制在系统的cpu的小核上运行。
其中,监控第三方应用的热补丁更新程序在系统中启动包括:根据应用的dex优化请求判断是否所述第三方应用的热补丁更新程序在启动。
根据本发明的实施例,还提供了一种应用热补丁监控装置,包括:热补丁监控模块,用于监控第三方应用的热补丁更新程序在系统中的启动;热补丁控制模块,用于根据系统的当前状态控制所述应用的热补丁更新程序的运行。
其中,所述热补丁监控模块内嵌在系统的art虚拟机内,根据应用的dex优化请求触发所述热补丁监控子模块。
其中,所述热补丁监控模块还用于判定请求所述dex优化的应用是否是第三方应用的热补丁更新程序,如果是,则将所述第三方应用的热补丁更新程序包名通知所述热补丁控制模块。
其中,热补丁控制模块包括:第一设置单元,用于设置所述热补丁更新程序所请求的线程并发个数;第二设置单元,用于设置所述热补丁更新程序所请求的优化参数类型;第三设置单元,用于设置所述热补丁更新程序执行优化过程的cpu调度策略。
其中,所述第一设置单元还用于根据当前cpu占用率调整所述热补丁更新程序所请求的并发线程数。
其中,所述第二设置单元还用于根据系统资源的占用情况调整所述热补丁更新程序所请求的dex优化模式。
其中,所述第三设置单元,还用于将所述热补丁更新程序升级的任务从前台进程调整至后台进程中进行。
其中,所述应用热补丁监控装置为移动终端。
根据本发明的实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述实施例中的步骤。
根据本发明的实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述实施例中的步骤。
在本发明的上述实施例中,通过对应用热补丁升级过程进行监控和干预,让其对系统的影响降到最低。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的方法所运行的终端结构示意图;
图2是根据本发明实施例的应用热补丁监控方法流程图;
图3是根据本发明另一实施例的应用热补丁监控方法流程图;
图4是根据本发明又一实施例的应用热补丁监控方法流程图;
图5是根据本发明实施例的应用热补丁监控装置的结构框图;
图6是根据本发明又一实施例的应用热补丁监控装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种应用热补丁监控方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的应用热补丁监控方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的应用热补丁监控方法,图2是根据本发明实施例的流程图,如图1所示,该流程包括如下步骤:
步骤s202,监控第三方应用的热补丁更新程序在系统中的启动;
步骤s204,根据系统的当前状态控制所述应用的热补丁更新程序的运行。
在本实施实例,可通过在移动终端系统的dex2oat层面,添加热补丁监控模块,当监控到dex2oat被启用时,进行判定是否是第三方应用在进行启动,将监控和判定的结果发送给热补丁控制模块进行后续处理。
当热补丁控制模块收到热补丁监控模块发来的信息后,会根据当前的系统状态进行统一控制,例如,可包含如下控制策略:
1)控制热补丁的并发任务的线程个数。根据当前的cpu占用率来动态调整应用热补丁请求的dex2oat的多线程并发线程数,如果cpu占用率达到设定的门限,则将并发线程数减半,如果减半后cpu占用还是超过门限,则继续减半,直到最终线程数降为1。当然,并发线程数也可以根据其他方式进行调整,本实施例所列举的并发线程数减半的方式仅是为了尽量较少并发线程数的调整次数。
2)将应用热补丁的dex2oat优化策略进行调整。如果该应用热补丁请求的是speed优化模式,此种优化模式对系统资源的消耗非常大,则强制将优化策略变更为interpret-only模式,减少对系统的资源消耗。
3)将进行热补丁升级的任务放到后台进程中,并且对后台进程的cpu运行进行限制,将后台进程限制在cpu的小核上运行,避免对前台进程造成干扰和影响。
在实施例中,通过热补丁监控模块实时监控系统进行dex的优化行为,当判定符合条件的dex优化时,进行dex优化流程的干预,整个干预流程可由三部分组合而成,包括调整线程并发个数,调整优化参数类型,调整执行优化过程的cpu调度策略。从而从三个方面共同对dex的优化过程做负载均衡,从而提升系统的性能表现。
本发明实施例还提供了一种应用热补丁监控方法,如图3所示,包括如下步骤:
s301,开始,用户运行各种应用程序。
s302,当调用dex2oat进行优化升级时,热补丁监控模块被触发。
s303,热补丁监控模块进行判定是否是第三方应用在进行启动,将监控和判定的结果发送给热补丁控制模块进行后续处理。如果不是第三方应用启动的,那么回到s301。
s304,热补丁控制模块进行线程数设定,根据当前的cpu占用率来动态调整应用热补丁请求的dex2oat的多线程并发线程数,如果cpu占用率达到设定的门限,则将并发线程数减半,如果减半后cpu占用还是超过门限,则继续减半,直到最终线程数降为1。
s305,热补丁控制模块进行设置优化模式,需要将应用热补丁的dex2oat优化策略进行调整,如果该应用热补丁请求的是speed优化模式,此种优化模式对系统资源的消耗非常大,则强制将优化策略变更为interpret-only模式,减少对系统的资源消耗。
s306,热补丁控制模块在进行dex优化的任务执行中,需要进行cpu资源前后台分组设定,将进行热补丁升级的任务放到后台进程中去做,并且对后台进程的cpu运行进行限制,将后台进程限制在cpu的小核上去运行,避免对前台进程造成干扰和影响。
s307,整个过程结束。
需要说明的是,在本实施例中,步骤s304至s306的执行并没有先后顺序限定,另外,也可以根据需要执行全部步骤s304至s306,或仅执行其中的部分步骤。
本发明实施例还提供了一种应用热补丁监控方法,如图4所示,包括如下步骤:
s401,用户终端中正运行对资源要求高的程序,例如,联机网络游戏等。
s402,当终端中已安装的第三方应用程序调用dex2oat进行优化升级时,热补丁监控模块被触发。
s403,热补丁监控模块判定第三方应用热补丁程序在进行启动,将判定结果发送至热补丁控制模块。
s404,热补丁控制模块对第三方应用热补丁程序进行控制,以减少对系统的资源消耗。
例如,热补丁控制模块可对第三方应用热补丁程序所请求优化线程数进行调整。具体地,可基于当前的cpu占用率来对所请求优化线程数进行调整,当cpu占用率超过80%时,可将所请求优化线程数减少,直至cpu占用率小于80%。
又例如,热补丁控制模块可对第三方应用热补丁请求的优化模式进行调整,将应用热补丁请求的speed优化模式变更为interpret-only模式,减少对系统的资源消耗。
又例如,热补丁控制模块可将热补丁升级的任务放到后台进程中去做,避免对前台进程造成干扰和影响。
上述的这些控制措施可根据资源的占有情况进行综合运用,直至满足系统的资源要求。
s405,整个过程结束。
本发明实施例,还提供了一种应用热补丁监控装置。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的应用热补丁监控装置的结构框图,如图5所示,该装置包括热补丁监控模块10和热补丁控制模块20。
热补丁监控模块10用于监控第三方应用的热补丁更新程序在系统中的启动。热补丁控制模块20用于根据系统的当前状态控制所述应用的热补丁更新程序的运行。
为了便于理解本实施的应用热补丁监控装置,下面对热补丁监控模块10和热补丁控制模块20进行详细的描述。
热补丁监控模块10:可通过在手机系统的dex2oat层面,添加热补丁监控模块,该热补丁监控模块内嵌在art虚拟机内。任何一个应用程序需要进行热补丁升级时,都需要向art申请执行。当art收到应用申请,准备执行dex优化时,热补丁监控模块被触发。当热补丁监控模块被触发时,首先需要提取本次请求dex优化的应用程序包名,进行判定是否是第三方应用在进行请求,如果是系统应用在进行dex请求,则不进行任何干预,如果判定是第三方应用程序在进行dex请示时,将提取出来的包名,dex策略等发送给热补丁控制模块进行后续处理。
热补丁控制模块20:当热补丁控制模块收到热补丁监控模块发来的信息后,会根据当前的系统状态进行统一控制。统一控制的策略主要包括线程控制、热补丁升级策略控制、cpu分组策略控制等三大控制机制,来保证系统在进行热补丁升级时不受影响。
图6是根据本发明实施例的应用热补丁监控装置的结构框图,如图6所示,该装置除包括图5所示的所有模块外,所述热补丁控制模块20进一步包括第一设置单元21、第二设置单元22和第三设置单元30。
第一设置单元用于设置所述热补丁更新程序所请求的线程并发个数,例如,根据当前cpu占用率调整所述热补丁更新程序所请求的并发线程数。第二设置单元用于设置所述热补丁更新程序所请求的优化参数类型,例如,根据系统资源的占用情况调整所述热补丁更新程序所请求的dex优化模式。第三设置单元,用于设置所述热补丁更新程序执行优化过程的cpu调度策略,例如,将所述热补丁更新程序升级的任务从前台进程调整至后台进程中进行。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述实施例中的步骤。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述实施例中的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种应用热补丁监控方法,其特征在于,包括:
监控第三方应用的热补丁更新程序在系统中的启动;
根据系统的当前状态控制所述应用的热补丁更新程序的运行。
2.根据权利要求1所述的方法,其特征在于,根据系统的当前状态控制所述应用的热补丁更新程序的运行包括以下至少之一:
设置所述热补丁更新程序所请求的线程并发个数;
设置所述热补丁更新程序所请求的优化参数类型;
设置所述热补丁更新程序执行优化过程的cpu调度策略。
3.根据权利要求2所述的方法,其特征在于,设置所述热补丁更新程序的线程并发个数包括:
根据当前cpu占用率调整所述热补丁更新程序所请求的并发线程数。
4.根据权利要求3所述的方法,其特征在于,根据当前cpu占用率调整所述热补丁更新程序所请求的并发线程数包括:
当所述当前cpu占用率达到预设门限值时,将所述热补丁更新程序所请求的并发线程数减半。
5.根据权利要求2所述的方法,其特征在于,设置所述热补丁更新程序所请求的优化参数类型包括:
根据系统资源的占用情况调整所述热补丁更新程序所请求的dex优化模式。
6.根据权利要求2所述的方法,其特征在于,设置所述热补丁更新程序执行优化过程的cpu调度策略包括:
将所述热补丁更新程序升级的任务从前台进程调整至后台进程中进行。
7.根据权利要求6所述的方法,其特征在于,调整所述热补丁更新程序执行优化过程的cpu调度策略包括,还包括:
将所述后台进程限制在系统的cpu的小核上运行。
8.根据权利要求1所述的方法,其特征在于,监控第三方应用的热补丁更新程序在系统中启动包括:
根据应用的dex优化请求判断是否所述第三方应用的热补丁更新程序在启动。
9.一种应用热补丁监控装置,其特征在于,包括:
热补丁监控模块,用于监控第三方应用的热补丁更新程序在系统中的启动;
热补丁控制模块,用于根据系统的当前状态控制所述应用的热补丁更新程序的运行。
10.根据权利要求9所述的装置,其特征在于,所述热补丁监控模块内嵌在系统的art虚拟机内,根据应用的dex优化请求触发所述热补丁监控子模块。
11.根据权利要求10所述的装置,其特征在于,
所述热补丁监控模块,还用于判定请求所述dex优化的应用是否是第三方应用的热补丁更新程序,如果是,则将所述第三方应用的热补丁更新程序包名通知所述热补丁控制模块。
12.根据权利要求9所述的装置,其特征在于,热补丁控制模块包括:
第一设置单元,用于设置所述热补丁更新程序所请求的线程并发个数;
第二设置单元,用于设置所述热补丁更新程序所请求的优化参数类型;
第三设置单元,用于设置所述热补丁更新程序执行优化过程的cpu调度策略。
13.根据权利要求12所述的装置,其特征在于,
所述第一设置单元,还用于根据当前cpu占用率调整所述热补丁更新程序所请求的并发线程数。
14.根据权利要求12所述的装置,其特征在于,
所述第二设置单元,还用于根据系统资源的占用情况调整所述热补丁更新程序所请求的dex优化模式。
15.根据权利要求12所述的装置,其特征在于,
所述第三设置单元,还用于将所述热补丁更新程序升级的任务从前台进程调整至后台进程中进行。
16.根据权利要求9至12任一项所述的装置,其特征在于,所述装置为移动终端。
17.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
18.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的方法。
技术总结