内存管理方法、装置、可读存储介质及终端与流程

文档序号:16146614发布日期:2018-12-05 16:31阅读:179来源:国知局
内存管理方法、装置、可读存储介质及终端与流程

本发明涉及电子技术领域,特别是涉及一种内存管理方法、装置、可读存储介质及终端。

背景技术

随着移动通讯的迅猛发展,终端如手机、平板电脑、可穿戴设备等电子设备为人们的通讯带来了极大的便利,成为人们生活工作中必不可少的工具。内存是电子设备的一个重要组成部件,电子设备中所有程序的运行都是在内存中进行的,内存的性能对电子设备的整体性能而言至关重要。

由于系统的内存资源是有限的,当系统内运行的进程较多时,会出现内存资源不足的情况,终端的运行速度会越来越慢。一般来说终端在高内存使用率情况下打开新应用时,系统强制关闭后台的其他应用。这种方式可能将用户需要在后台运行的程序强制关闭,给用户带来的体验很差,甚至影响设备的正常运行。



技术实现要素:

鉴于上述状况,有必要针对现有技术中当终端内存不够时强制关闭后台运行的应用,导致用户体验差的问题,提供一种内存管理方法、装置、可读存储介质及终端。

一种终端内存管理方法,包括:

监测所述终端的剩余内存比,并判断当前剩余内存比是否小于第一门限值且大于第二门限值,所述第一门限值大于第二门限值,所述剩余内存比为所述终端的剩余内存与总的内存的比值;

若是,压缩所述终端中后台运行的应用。

进一步的,上述终端内存管理方法,其中,所述压缩所述终端中后台运行的应用的步骤包括:

获取所述终端中后台运行的各个应用的优先级参数、占用内存和未唤醒时长,并根据获取的数据计算每个所述应用的权重值,其中,权重值与优先级参数、占用内存,和未唤醒时长呈正相关的关系;

按照所述权重值从大至小的顺序依序压缩所述应用,并当当前应用压缩后,所述当前剩余内存比大于或等于所述第一门限值时停止压缩。

进一步的,上述终端内存管理方法,其中,所述根据获取的数据计算每个所述应用的权重值的计算公式为:

其中,wi为第i个应用的权重值,si为第i个应用占用的内存,stotal为所有应用占用的内存,pi为第i个应用的优先级参数,ti为第i个应用的未唤醒时长。

进一步的,上述终端内存管理方法,其中,查询所述终端的当前剩余内存比的步骤之后还包括:

当所述当前剩余内存比大于第三门限值时,按照所述权重值从小至大的顺序将已压缩的所述应用依序进行解压,并当当前应用解压后,所述当前剩余内存比大于或等于所述第一压缩门限值时,停止解压,其中,所述第三门限值大于所述第一门限值。

进一步的,上述终端内存管理方法,还包括:

获取用户针对当前应用设置的目标优先级参数,并将所述当前应用的当前优先级参数修改为所述目标优先级参数。

进一步的,上述终端内存管理方法,其中,所述获取所述终端中后台运行的各个应用的优先级参数的步骤包括:

获取所述终端中后台运行的各个应用在最近的预设时间段内的使用频率和使用时长;

根据所述使用频率和使用时长确定各个所述应用的优先级参数,使用频率越高且使用时长越长的优先级参数越小。

进一步的,上述终端内存管理方法,其中,所述监测所述终端中的当前剩余内存比的步骤之后还包括:

当所述当前剩余内存比小于所述第二门限值时,按照所述权重值从小至大的顺序将后台运行的所述应用依序进行关闭,并当当前应用关闭后,所述当前剩余内存比大于或等于所述第二门限值时,停止关闭剩余的应用。

本发明实施例该提供了一种终端内存管理装置,包括:

判断模块,用于监测所述终端的剩余内存比,并判断当前剩余内存比是否小于第一门限值且大于第二门限值,所述第一门限值大于第二门限值,所述剩余内存比为所述终端的剩余内存与总的内存的比值;

压缩模块,用于当当前剩余内存比小于第一门限值且大于第二门限值时,压缩所述终端中后台运行的应用。

进一步的,上述终端内存管理装置,其中,所述压缩模块包括:

获取模块,用于获取所述终端中后台运行的各个应用的优先级参数、占用内存和未唤醒时长,并根据获取的数据计算每个所述应用的权重值,其中,权重值与优先级参数、占用内存,和未唤醒时长呈正相关的关系;

压缩子模块,用于按照所述权重值从大至小的顺序依序压缩所述应用,并当当前应用压缩后,所述当前剩余内存比大于或等于所述第一门限值时停止压缩。

进一步的,上述终端内存管理装置,其中,所述根据获取的数据计算每个所述应用的权重值的计算公式为:

其中,wi为第i个应用的权重值,si为第i个应用占用的内存,stotal为所有应用占用的内存,pi为第i个应用的优先级参数,ti为第i个应用的未唤醒时长。

进一步的,上述终端内存管理装置,还包括:

解压模块,用于当所述当前剩余内存比大于第三门限值时,按照所述权重值从小至大的顺序将已压缩的所述应用依序进行解压,并当当前应用解压后,所述当前剩余内存比大于或等于所述第一压缩门限值时,停止解压,其中,所述第三门限值大于所述第一门限值。

进一步的,上述终端内存管理装置,还包括:

获取及修改模块,用于获取用户针对当前应用设置的目标优先级参数,并将所述当前应用的当前优先级参数修改为所述目标优先级参数。

进一步的,上述终端内存管理装置,其中,所述获取模块具体用于:

获取所述终端中后台运行的各个应用在最近的预设时间段内的使用频率和使用时长;

根据所述使用频率和使用时长确定各个所述应用的优先级参数,使用频率越高且使用时长越长的优先级参数越小。

进一步的,上述终端内存管理装置,还包括:

关闭模块,用于当所述当前剩余内存比小于所述第二门限值时,按照所述权重值从小至大的顺序将后台运行的所述应用依序进行关闭,并当当前应用关闭后,所述当前剩余内存比大于或等于所述第二门限值时,停止关闭剩余的应用。

本发明实施例还提供了一种可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任意一方法的步骤。

本发明实施例还提供了一种终端,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现上述任意一方法的步骤。

本发明实施例中,当终端的剩余内存比小于第一门限值且大于第二门限值时,对后台运行的应用进行压缩,在保证系统正常运行的前提下,释放系统内存。解决了现有技术中在释放系统内存时突然杀掉某个应用,影响设备的正常使用的问题。

附图说明

图1为本发明第一实施例中的内存管理方法的流程图;

图2为本发明第二实施例中的内存管理方法的流程图;

图3为本发明第三实施例中的内存管理装置的结构框图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

请参阅图1,为本发明第一实施例中的终端内存管理方法,该方法应用于终端中(例如手机、平板电脑、多媒体播放器等),以对终端的内存进行监控和管理。该内存管理方法可以包括步骤s11~s12。

步骤s11,监测所述终端的剩余内存比,并判断当前剩余内存比是否小于第一门限值且大于第二门限值,若是执行步骤s12,其中,所述第一门限值大于第二门限值,所述剩余内存比为终端的剩余内存与总的内存的比值。

步骤s12,压缩所述终端中后台运行的应用。

终端系统运行时,可动态检测内存使用量和剩余量,当内存的剩余量较小时影响终端系统的整体性能和运行速度。本实施例中通过设置剩余内存比的门限值来触发应用的压缩机制,对后台运行的应用进行压缩,以释放系统内存。即当监测到终端的当前剩余内存比在第一门限值和第二门限值之间时则对终端后台运行的应用进行压缩,以增大终端的可用内存。

其中,第一门限值用来触发应用的压缩机制、第二门限值用来触发停止应用压缩机制。当终端的剩余内存比小于第一门限值时说明系统可用内存较小,影响运行,则需要通过压缩后台应用的方式扩充可用内存。当终端的剩余内存比小于第二门限值时,说明此时表明系统可用内存非常小了,若继续压缩内存可能会导致系统卡死,此时不宜进行内存压缩。第一门限值和第二门限值的大小可根据实际情况进行设置,例如第一门限值可设置为10%,第二门限值设置为5%。

终端后台运行的应用可能有一个或多个,当终端的后台应用只有一个时,则直接压缩该应用。若后台运行的多个应用时,则可对后台运行的应用全部压缩,或对部分应用进行压缩。具体的,对后台部分应用的压缩可按照用户设置的规则进行,例如对占用内存最大的几个应用进行压缩或将长时间未被唤醒的几个应用进行压缩,其具体的压缩规则和压缩的应用的数量此处不予限定。

对后台运行的应用进行压缩可采用现有的压缩算法进行,例如,可采用lz4压缩算法,该算法是一种无损数据压缩算法,着重于压缩和解压缩速度。

本实施例中,当终端的剩余内存比小于第一门限值且大于第二门限值时,对后台运行的应用进行压缩,在保证系统正常运行的前提下,释放系统内存。解决了现有技术中在释放系统内存时突然杀掉某个应用,影响设备的正常使用的问题。

前参阅图2,为本发明第二实施例中的终端内存管理方法,包括步骤s21~s25。

步骤s21,监测所述终端的剩余内存比,并判断当前剩余内存比是否小于第一门限值且大于第二门限值,所述第一门限值大于第二门限值。

步骤s22,当当前剩余内存比小于第一门限值且大于第二门限值时,获取所述终端中后台运行的各个应用的优先级参数、占用内存和未唤醒时长,并根据获取的数据计算每个所述应用的权重值。

步骤s23,按照所述权重值从大至小的顺序依序压缩所述应用,并当当前应用压缩后,所述当前剩余内存比大于或等于所述第一门限值时停止压缩。

当检测到终端的剩余内存比在第一门限值和第二门限值之间时,需要对后台运行的应用进行压缩,以释放内存。但很多情况下,后台运行的多个应用中,并非都需要进行压缩,例如有些常用的应用压缩后用户使用时还还要进行解压,有一定的延时性,影响用户的使用,对于这些应用用户更希望在后台运行或最后压缩。

因此,本实施例中可根据后台运行的应用的权重值来压缩后台应用,将一些不常用、占用内存大的应用优先进行压缩。每个应用的权重值根据对应应用的优先级参数、占用内存和未唤醒时长进行计算。其中,应用的优先级参数可根据各个应用的使用频率和时间进行确定,具体的,终端获取后台运行的各个应用的优先级参数的步骤包括:

步骤s211,获取所述终端中后台运行的各个应用在最近的预设时间段内的使用频率和使用时长;

步骤s212,根据所述使用频率和使用时长确定各个所述应用的优先级参数,使用频率越高和使用时长越长的优先级参数越小。

其中,各个应用的使用频率根据最近的时间段的使用次数进行计算,该预设时间段可根据实际情况进行设置,例如一周或一个月等。举例说明,终端可统计最近7天一应用的总使用次数,将统计的总使用次数除以7即可得到该应用的使用频率。其使用时长也即是统计7天该应用的使用时间的总和。根据使用频率和使用时长确定后台各个应用进行优先级排序,并确定各个应用的优先级参数。具体的,使用频率越高的优先级越低;使用频率相同的,则比较使用时长,使用时长越长的优先级越低,以此进行优先级排序。每个优先级对应一个优先级参数,优先级与优先级参数呈反比,即优先级越高的优先级参数越小。每个优先级对应的优先级参数可预先设置好,例如最高优先级的应用对应的优先级参数为1,其次则为2,依次类推。

可以理解的,作为本发明的一种可实施的方式,各个应用的优先级参数可通过查询预存的参数得到。终端中存储有每个应用程序的优先级参数,用户可随时修改和重置各个应用的优先级参数。具体实施时,当终端获取用户针对当前应用设置的目标优先级参数时,将当前应用的当前优先级参数修改为目标优先级参数。

其中,后台运行的每个应用所占用内存和未唤醒时长可通过终端系统检测得到。未唤醒时长即是应用未被唤醒到前台使用的时长(单位为秒)。具体的,终端根据获取的数据计算每个应用的权重值的计算公式为:

其中,wi为第i个应用的权重值,si为第i个应用占用的内存,stotal为所有应用占用的内存,pi为第i个应用的优先级参数,ti为第i个应用的未唤醒时长。

该权重值体现的是每个应用的占用内存、优先级和未唤醒时长的关系,设置权重值的目的是低优先级、占用内存较多和未被唤醒时长较大的权重计算结果会大,优先级高的应用占用内存小和未被唤醒时长小的权重结果会相对偏低,上述计算公式可准确、合理的体现这一关系。可以理解的,满足上述关系的权重计算公式不限于上述提到的计算公式,例如,在本发明的其他实施例中权重公式可为

根据上式计算得到后台运行的每个应用的权重值后,终端按照该权重值从大至小的顺序依序压缩后台的应用,并当当前应用解压后,判断当前剩余内存比是否大于或等于第一门限值,若当前剩余内存比大于或等于第一门限值,则停止压缩。举例说明,当前剩余内存比为x(小于第一门限值且大于第二门限值)、后台运行的应用有3个,其权重值分别为w1、w2、w3(w1>w2>w3)。系统首先压缩权重为w1的应用,并检测当前剩余内存比,若当前剩余内存比还在第一门限值和第二门限值之间,则继续压缩权重为w2的应用,再检测当前剩余内存比,当当前剩余内存比大于或等于第一门限值时,则不再压缩应用。

本实施例中,按照权重值的顺序进行应用的压缩,可优先将占用内存大、优先级参数大和使用时间长的应用优先进行压缩,以此保证系统的流畅性。

进一步的,步骤s21之后,还可以执行步骤s24和s25。

步骤s24,当所述当前剩余内存比大于第三门限值时,按照所述权重值从小至大的顺序将已压缩的所述应用依序进行解压,并当当前应用解压后,所述当前剩余内存比大于或等于所述第一压缩门限值时,停止解压,其中,所述第三门限值大于所述第一门限值。

终端在使用时,应用释放了内存或者应用被用户关闭了,此时可用内存会增加,如果剩余内存比大于第三门限值时,表示现在空闲内存很多,可以将之前压缩的应用内存释放,提高被压缩应用的流畅度。

同时,终端解压应用后伴随着可用内存的减小,为了避免应用解压后导致可用内存太小,以至于影响系统的运行,因此,终端选择性的解压应用。具体的,终端可按照一定的解压规则解压应用,例如可根据权重值的大小确定解压优先顺序,权重值小的优先解压,释放系统的内存,当系统的当前剩余内存比达到第一门限值或略大于第一门限值时,停止解压。

步骤s25,当当前剩余内存比小于所述第二门限值时,按照所述权重值从小至大的顺序将后台运行的所述应用依序进行关闭,并当当前应用关闭后,所述当前剩余内存比大于或等于所述第二门限值时,停止关闭剩余的应用。

当终端监测到当前剩余内存比小于或等于所述第二门限值时,说明系统的内存非常小,影响系统的正常运行,此时需关闭一个或多个应用,以释放内存。此种情况下,系统会优先选择关闭后台运行的应用。系统关闭后台运行的应用的优先顺序可根据权重值的大小来确定,权重值小的应用优先进行关闭,每关闭一应用时需判断系统的当前剩余内存比是否大于或等于第二门限值。若判断到当前剩余内存比大于或等于第二门限值时,停止关闭应用的动作。

可以理解的,终端中在后台运行的应用可能全部是已压缩的也可能全部是未压缩的,或既有已压缩的和未压缩的,不管哪种情况均按照权重值确定的优先顺序进行关闭。

第一门限值a、第二门限值b和第三门限值c的大小顺序为c>a>b。当终端检测到系统的当前剩余内存比x>c时,按照权重值从小至大的顺序将已压缩的应用进行解压,直至x≥a时,停止解压;当b<x<a时,按照权重值从大至小的顺序依序压缩后台的应用,直至x≥a时,停止压缩;当x<b,且有一新的应用打开时,按照权重值从小至大的顺序将已压缩的应用依序进行关闭,直至x≥b时,停止关闭剩余的应用。

本实施例在系统的当前剩余内存比在第一门限值和第二门限至之间时,根据各个应用的权重值动态选择高优先级、较长时间未使用和耗较多内存的应用,并启动压缩算法将对应的应用使用的内存压缩起来,以缓解内存压力;如果在使用过程中随着部分应用主动关闭,或者应用释放了使用的内存,系统的整体可用内存较多时,可以主动将之前压缩的应用解压缩,以提高应用的响应速度,同时,系统的当前剩余内存比小于第二门限值时选择性地关闭应用。

请参阅图3,为本发明第三实施例中的终端内存管理装置,包括:

判断模块100,用于监测所述终端的剩余内存比,并判断当前剩余内存比是否小于第一门限值且大于第二门限值,所述第一门限值大于第二门限值,所述剩余内存比为所述终端的剩余内存与总的内存的比值;

压缩模块200,用于当当前剩余内存比小于第一门限值且大于第二门限值时,压缩所述终端中后台运行的应用。

进一步的,上述终端内存管理装置,其中,所述压缩模块200包括:

获取模块,用于获取所述终端中后台运行的各个应用的优先级参数、占用内存和未唤醒时长,并根据获取的数据计算每个所述应用的权重值,其中,权重值与优先级参数、占用内存,和未唤醒时长呈正相关的关系;

压缩子模块,用于按照所述权重值从大至小的顺序依序压缩所述应用,并当当前应用压缩后,所述当前剩余内存比大于或等于所述第一门限值时停止压缩。

进一步的,上述终端内存管理装置,其中,所述根据获取的数据计算每个所述应用的权重值的计算公式为:

其中,wi为第i个应用的权重值,si为第i个应用占用的内存,stotal为所有应用占用的内存,pi为第i个应用的优先级参数,ti为第i个应用的未唤醒时长。

进一步的,上述终端内存管理装置,还包括:

解压模块300,用于当所述当前剩余内存比大于第三门限值时,按照所述权重值从小至大的顺序将已压缩的所述应用依序进行解压,并当当前应用解压后,所述当前剩余内存比大于或等于所述第一压缩门限值时,停止解压,其中,所述第三门限值大于所述第一门限值。

进一步的,上述终端内存管理装置,还包括:

获取及修改模块400,用于获取用户针对当前应用设置的目标优先级参数,并将所述当前应用的当前优先级参数修改为所述目标优先级参数。

进一步的,上述终端内存管理装置,其中,所述获取模块具体用于:

获取所述终端中后台运行的各个应用在最近的预设时间段内的使用频率和使用时长;

根据所述使用频率和使用时长确定各个所述应用的优先级参数,使用频率越高且使用时长越长的优先级参数越小。

进一步的,上述终端内存管理装置,还包括:

关闭模块500,用于当所述当前剩余内存比小于所述第二门限值时,按照所述权重值从小至大的顺序将后台运行的所述应用依序进行关闭,并当当前应用关闭后,所述当前剩余内存比大于或等于所述第二门限值时,停止关闭剩余的应用。

本发明实施例所提供的终端内存管理装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

本发明实施例还提出了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的终端内存管理方法。

本发明实施例还提出了一种终端,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现上述的终端内存管理方法。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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