掌桥专利:专业的专利平台
掌桥专利
首页

一种内存优化方法、智能终端及存储介质

文献发布时间:2023-06-19 11:52:33


一种内存优化方法、智能终端及存储介质

技术领域

本发明涉及内存优化技术领域,尤其涉及的是一种内存优化方法、智能终端及存储介质。

背景技术

随着Android平台电视的飞速发展,越来越多的电视型号应运而生,如何让相对较低端的硬件配置情况下,让用户得到更加优质的流畅体验,也显得尤为重要。

现有技术中,应用程序在退出运行界面进入后台的时候,系统并不会直接Kill掉该进程,也不会回收这个进程的内存。所以当用户使用过多应用程序时,后台的应用程序太多资源得不到回收,最后造成内存不足,从而导致系统很卡顿不流畅,影响用户的使用。

因此,现有技术还有待改进和发展。

发明内容

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种内存优化方法、智能终端及存储介质,旨在解决现有技术的当用户使用过多应用程序时,后台程序太多资源得不到回收,从而导致系统很卡顿不流畅的问题。

本发明解决问题所采用的技术方案如下:

第一方面,本发明实施例提供一种内存优化方法,其中,所述方法包括:

获取系统剩余内存数据;

根据所述系统剩余内存数据,终止预设等级的应用程序的进程,所述优先级等级是根据应用程序的使用数据设置的;

回收所述优先级等级低于预设等级的应用程序的内存,以实现内存优化。

在一种实施方式中,所述获取系统剩余内存数据包括:

获取当前运行的应用程序,所述当前运行的应用程序包括系统前台运行的应用程序以及系统后台运行的应用程序;

获取所述当前运行的应用程序所占用的内存数据;

根据系统原生总内存数据以及所述当前运行的应用程序所占用的内存数据,得到所述系统剩余内存数据,所述系统原生总内存数据指的是系统自带的可用内存数据。

在一种实施方式中,所述根据所述系统剩余内存数据,终止预设等级的应用程序的进程,包括:

将所述系统剩余内存数据与预设的内存阈值进行比较;

若所述系统剩余内存数据小于所述内存阈值时,则获取预设的优先级列表,所述优先级列表中存储有系统中所有应用程序的优先级等级,优先级等级是根据应用程序的使用数据设置的;

根据所述优先级列表,终止优先级等级低于等级阈值的应用程序的进程,所述等级阈值用于衡量所述应用程序的使用频率,所述优先级等级低于等级阈值的应用程序即为所述预设等级的应用程序。

在一种实施方式中,所述优先级列表的生成方式包括:

获取应用程序的使用数据,所述使用数据是所述应用程序在每一次使用时记录的数据;

根据所述使用数据计算所述应用程序的优先级值;

根据所有的所述应用程序的优先级值,将所有的所述应用程序划分成多个优先级等级,并生成所述优先级列表;所述优先级等级用于对所有的所述应用程序进行分类。

在一种实施方式中,所述将所有的所述应用程序划分成多个优先级等级,包括:

将所有的所述应用程序的优先级值按照由大至小的顺序进行排序;

将已按照优先级值由大至小的顺序进行排序的所有的所述应用程序划分成多个优先级等级。

在一种实施方式中,所述使用数据包括所述应用程序的使用频率以及所述应用程序的使用总时间。

在一种实施方式中,所述优先级值的计算方式为:

P=fapp/F+tapp/T;所述P表示所述应用程序的优先级值;所述fapp表示所述应用程序的使用频率;所述tapp表示所述应用程序的使用总时间;所述F表示系统中所有应用程序的使用总次数;所述T表示系统中所有应用程序的使用总时间。

在一种实施方式中,所述根据所述系统剩余内存数据,终止预设等级的应用程序的进程,包括:

将所述系统剩余内存数据与预设的应用程序档位列表进行匹配,所述应用程序档位列表中存储有系统中所有应用程序各自对应的档位,且每个档位对应于一内存数据;

若匹配成功,则获取所述系统剩余内存数据对应的档位,并终止所述系统剩余内存数据对应的档位所对应的应用程序的进程,所述系统剩余内存数据对应的档位对应的应用程序即为所述预设等级的应用程序。

第二方面,本发明实施例还提供一种内存优化装置,其中,所述装置包括:

数据获取单元,用于获取系统剩余内存数据;

进程终止单元,用于根据所述系统剩余内存数据,终止预设等级的应用程序的进程;

内存回收单元,用于回收所述预设等级的应用程序的内存,以实现内存优化。

第三方面,本发明实施还提供一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的内存优化方法。

第四方面,本发明实施例还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述中任意一项所述的内存优化方法。

本发明的有益效果:本发明实施例通过获取系统剩余内存数据,然后根据所述系统剩余内存数据,终止预设等级的应用程序的进程,并回收所述优先级等级低于预设等级的应用程序的内存,从而达到了节省内存的目的,减少卡顿现象,提高系统运行的流畅度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的内存优化方法的流程示意图。

图2是本发明实施例提供的内存优化方法中获取系统剩余内存数据的流程示意图。

图3是本发明实施例提供的内存优化方法中终止应用程序进程的第一实施例的流程示意图。

图4是本发明实施例提供的内存优化方法中终止应用程序进程的第二实施例的流程示意图。

图5是本发明实施例提供的内存优化装置的原理框图。

图6是本发明实施例提供的智能终端的内部结构原理框图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

经研究发现,目前系统运行的应用程序,在退出到后台之后,会停留在内存中(也就是跑到oStop生命周期,即暂时停止使用),下次用户使用的时候重新跑onRestart生命周期,即重新开始运行,这样用户可以快速的进入到程序中,可以跳过很多初始化工作,缩短用户等待时间。但是这些应用程序在开机过程中监听广播之后启动到后台,如果应用程序很多,那么必然会造成内存不足,系统卡顿等问题。

如图1中所示,本发明实施例提供一种内存优化方法,所述内存优化方法可以应用于智能终端。在本发明实施例中,所述方法包括如下步骤:

步骤S100、获取系统剩内余存数据。

由于系统的运行流畅度与应用程序的使用情况以及内存占用情况有很大的关系,当智能终端运行的应用程序过多时(即便是在系统后台运行),也会影响系统的运行流畅度,而系统中正在运行的应用程序越多,则系统剩余内存数据也就越少,当系统剩余内存数据过少时,则势必会影响系统的流畅度,容易出现卡顿。因此本实施例根据系统中正在运行的应用程序的内存数据来进行分析,并基于正在运行的应用程序的内存数据来得到系统剩余内存数据,以便根据所述系统剩余内存数据来对正在运行的应用程序进行控制。

具体地,如图1所示,所述步骤S100具体包括:

步骤S101、获取当前运行的应用程序,所述当前运行的应用程序包括系统前台运行的应用程序以及系统后台运行的应用程序;

步骤S102、获取所述当前运行的应用程序所占用的内存数据;

步骤S103、根据系统原生总内存数据以及所述当前运行的应用程序所占用的内存数据,得到所述系统剩余内存数据,所述系统原生总内存数据指的是系统自带的可用内存数据。

在本实施例中,对于获取系统剩余内存数据,首先获取到智能终端中当前运行的应用程序是哪些,并进一步获取当前运行的应用程序在使用时所占用的内存数据。在一种实施方式中,所述当前运行的应用程序包括系统前台运行的应用程序以及系统后台运行的应用程序,也就是说,只要智能终端中有在运行的应用程序都可以获取到各自所占用的内存数据,然后将所有的应用程序所占用的内存数据求和,即可得到系统的内存占用情况。当获取到当前运行的应用程序的内存数据后,则将系统原生总内存数据减去所述当前运行的应用程序的内存数据,则就可得到系统剩余内存数据。本实施例中的系统原生总内存数据指的是系统自带的可用内存数据,即系统在安装时所自动的可用内存数据。例如,当获取到智能终端中当前正在运行的应用程序所占用的内存为590MB,而系统原生总内存数据为2GB,则系统剩余内存数据为1454MB。

进一步地,步骤S200、根据所述系统剩余内存数据,终止预设等级的应用程序的进程。

在本实施例中,可根据应用程序的使用频率来终止一些使用频率低的应用程序。具体地,当获取到系统剩余内存数据后,可根据系统剩余内存数据来判断当前运行的应用程序是否过多,当运行的应用程序过多时,则势必造成系统剩余内存数据减少。而当系统剩余内存数据过少时,则为了保证系统的稳定运行,本实施例需要将正在运行的应用程序中不经常使用的,即优先级较低的应用程序终止,以使得这些应用程序的内存得以回收。

具体地,如图2中所示,所述步骤S200具体包括:

步骤S201、将所述系统剩余内存数据与预设的内存阈值进行比较;

步骤S202、若所述系统剩余内存数据小于所述内存阈值时,则获取预设的优先级列表,所述优先级列表中存储有系统中所有应用程序的优先级等级,优先级等级是根据应用程序的使用数据设置的;

步骤S203、根据所述优先级列表,终止优先级等级低于等级阈值的应用程序的进程,所述等级阈值用于衡量所述应用程序的使用频率,所述优先级等级低于等级阈值的应用程序即为所述预设等级的应用程序。

对于所述系统剩余内存数据判断是否过小,本实施例通过设置一内存阈值来判断,当获取到所述系统剩余内存数据后,则将所述系统剩余内存数据与预设的内存阈值进行比较,若所述系统剩余内存数据小于所述内存阈值时,则获取预设的优先级列表。由于该优先级列表中存储有系统中所有应用程序的优先级等级,所述优先级等级是根据应用程序的使用数据设置的,用于表示的是智能终端中哪些应用程序是用户经常使用的,哪些是用户不常使用的。因此根据该优先级列表则就可将优先级等级低于预设等级的应用程序的进程终止。

在一种实施方式中,所述优先级列表是基于应用程序的使用数据来生成的,所述使用数据包括所述应用程序的使用频率以及所述应用程序的使用总时间。也就是说所述优先级列表反映的是各个应用程序的使用频率等信息。具体地,所述优选级列表的生成,首选是获取应用程序的使用数据,所述使用数据是所述应用程序在每一次使用时记录的数据。任何一个应用程序和服务启动都需要经过进程管理服务(ActivityManagerService,AMS)的管理,所以在用户启动某一个应用程序的时候,在AMS内部逻辑对每一个应用程序的进程周期进行收集监控。针对每一个启动过的应用都保存一个对应的时间频率表格,其中包括该应用程序的使用频率以及运行总时间,如表一所示。

再获取到应用程序的使用数据后,根据所述使用数据计算所述应用程序的优先级值;所述优先级值的计算方式为:P=fapp/F+tapp/T;所述P表示所述应用程序的优先级值;所述fapp表示所述应用程序的使用频率;所述tapp表示所述应用程序的使用总时间;所述F表示系统中所有应用程序的使用总次数;所述T表示系统中所有应用程序的使用总时间。然后再根据所有的所述应用程序的优先级值,将所有的所述应用程序划分成多个优先级等级,并生成所述优先级列表;所述优先级等级用于对所有的所述应用程序进行分类。具体地,本实施例中首先将所有的所述应用程序的优先级值按照由大至小的顺序进行排序,然后将已按照优先级值由大至小的顺序进行排序的所有的所述应用程序划分成多个优先级等级,从而形成所述优先级列表,如表二所示。

对于这些P的等级,分4个等级层次:a级表示P的范围1.5~2.0;b级表示P的范围1.0~1.5;c级表示P的范围0.5~1.0;d级表示P的范围0~0.5。

因此当获取到所述优先级列表,终止预设等级的应用程序的进程,即将用户不常使用的应用程序的进程终止。

可见,本发明实施例通过获取系统剩余内存数据,然后根据所述系统剩余内存数据,终止预设等级的应用程序的进程,由于优先级等级低于预设等级的应用程序是用户不经常使用的应用程序,因此将这些应用程序的进程终止,并回收所述优先级等级低于预设等级的应用程序的内存,可以达到了节省内存的目的,减少卡顿现象,提高系统运行的流畅度。例如,当获取到系统剩余内存数据后,根据系统剩余内存数据判定系统当前所剩余的内存不多(如系统剩余内存数据为70MB),此时系统就会出现卡顿现象,则就可终止优先级等级低于预设等级的应用程序(如58同城、智联招聘等应用程序是用户不经常使用的应用程序,优先级等级较低),并回收这些应用程序的内存,从而就使得系统剩余内存数据增加,达到节省内存的目的,使得系统可以流畅的运行。

在另一种实施方式中,本实施例中还可以将系统中所有的应用程序分成若干档位,根据所分的档位来对应用程序的进程进行管理。具体如图4中所示,包括以下步骤:

步骤S210、将所述系统剩余内存数据与预设的应用程序档位列表进行匹配,所述应用程序档位列表中存储有系统中所有应用程序各自对应的档位,且每个档位对应于一内存数据;

步骤S210、若匹配成功,则获取所述系统剩余内存数据对应的档位,并终止所述系统剩余内存数据对应的档位所对应的应用程序的进程,所述系统剩余内存数据对应的档位对应的应用程序即为所述预设等级的应用程序。

在本实施例中,预设以应用程序档位列表,该应用程序档位列表中存储有系统中所有应用程序各自对应的档位,且每个档位对应于一内存数据。例如,可将系统中的应用程序分为4个档位,分别为A档、B档、C档以及D档。其中A档对应的内存数据为:总内存*0.05,B档对应的内存数据为:总内存*0.75,C档对应的内存数据为:总内存*1,B档对应的内存数据为:总内存*1.25。因此当所述系统剩余内存数据与预设的应用程序档位列表进行匹配时,也就是将系统剩余内存与各个档位对应的内存数据进行匹配,若匹配成功,则获取所述系统剩余内存数据对应的档位,并终止所述档位所对应的应用程序的进程。如,若系统剩余内存数据与B档位对应的内存数据匹配成功,则就将B档位对应的应用程序的进程终止。可见,本实施例中是将对应的应用程序分档来对应用程序进行管理。

进一步地,步骤S300、回收所述优先级等级低于预设等级的应用程序的内存,以实现内存优化。

在本实施例中,当将所述预设等级的应用程序(如图3中的优先级等级低于等级阈值的应用程序或者图4中系统剩余内存数据对应的档位的应用程序)的进程终止后,则这些应用程序的内存就会被释放出来,智能终端的内存管理程序就会回收所述优先级等级低于预设等级的应用程序的内存,增加系统剩余内存数据,以实现内存优化。可见,本实施例通过获取系统剩余内存数据,然后根据所述系统剩余内存数据,终止预设等级的应用程序的进程,并回收所述优先级等级低于预设等级的应用程序的内存,从而达到了节省内存的目的,减少卡顿现象,提高系统运行的流畅度。

如图5中所示,本发明实施例提供一种内存优化装置,该装置包括:数据获取单元510、进程终止单元520以及内存回收单元530。所述数据获取单元510,用于获取系统剩内余存数据;所述进程终止单元520,用于根据所述系统剩余内存数据,终止预设等级的应用程序的进程;内存回收单元530,用于释放回收所述预设等级的应用程序的内存,以实现内存优化。

基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图6所示。该智能终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种内存优化方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该智能终端的温度传感器是预先在智能终端内部设置,用于检测内部设备的运行温度。

本领域技术人员可以理解,图6中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

获取系统剩内余存数据;

根据所述系统剩余内存数据,终止预设等级的应用程序的进程;

回收所述预设等级的应用程序的内存,以实现内存优化。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

综上所述,本发明公开了一种一种内存优化方法、智能终端及存储介质,所述方法包括:获取系统剩余内存数据;根据所述系统剩余内存数据,终止预设等级的应用程序的进程;回收所述预设等级的应用程序的内存,以实现内存优化。本发明可根据所述系统剩余内存数据来终止预设等级的应用程序的进程,并回收其内存,从而提高系统的流畅度。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

相关技术
  • 一种内存优化方法、智能终端及存储介质
  • 一种内存数据获取方法、装置、智能终端及存储介质
技术分类

06120113084321