具体实施方式
为了解决终端设备内存资源浪费的问题,本发明实施例提供一种释放内存的控制方法。在本方法中,检查终端设备中运行状态为闲置的程序,并发出是否关闭闲置程序的提示信息,根据对该提示的响应结果关闭相应程序,并释放相应内存。
参见图1,本发明实施例提供的释放内存的控制方法,具体包括以下步骤:
步骤10:获取终端设备中当前运行程序的信息;
步骤11:检查获取到的当前运行程序中运行状态为闲置的程序;
步骤12:关闭所述运行状态为闲置的程序,并释放相应内存。
另外,在步骤11之后,并且步骤12之前,还包括发出是否关闭所述程序的提示信息的步骤,使得步骤12可以根据获得的对所述提示信息的响应结果关闭相应的程序,并释放相应内存。
以下为本方法的两个具体实施例:
实施例一:
如图2所示,本实施例具体包括以下步骤:
步骤S10,按照预先设定的获取周期,获取包含终端设备中所有当前运行程序的信息的列表;程序的信息包括程序的标识信息、所占内存空间的大小等;
步骤S11,按照预先设定的检查周期,检查列表中是否存在状态为闲置的功能程序,若存在,则将闲置的功能程序加入到待关闭闲置程序列表中,并转到步骤S12;若不存在,则结束本次操作;
步骤S12,在待关闭闲置程序列表不为空时,通过图片和/或铃声的方式提示用户存在可以关闭的闲置功能程序,并显示待关闭闲置程序列表中闲置功能程序的名称;
用户根据提示,决定是关闭全部还是部分闲置功能程序;如果用户在指定的时间内不对提示作出任何响应操作,则结束本次检查操作;
步骤S13,根据用户对所述提示作出的响应结果,完全关闭相应的闲置功能程序,并释放相应内存空间;将关闭的程序从列表中删除,对列表进行更新;
步骤S14,向用户提示本次操作完成。
本方法中,如果检测到有新的功能程序被激活,则将该程序加入到运行程序列表中。
步骤S10过程参见图3,具体包括以下步骤:
步骤S20,在获取周期L1到来时,获取包含终端设备中当前运行的所有程序的信息的列表,该列表为运行程序列表;所有程序包括必须程序和功能程序;
必须程序,用于维护终端设备设备正常运行、基本功能正常使用而开启的程序,必须程序不能任意关闭或中止;
功能程序,用于实现某些特定应用功能的程序,功能程序可以随着此功能的开启而开启,随着此功能的关闭而关闭;
该列表在终端设备开机后第一次创建,并作为后续每次建立列表的基础,并在列表中记录程序运行状态的相关信息;
获取周期可由个人或生产厂商进行设置;
步骤S21,在获取到的运行程序列表中筛选掉必须程序,只保留功能程序;
步骤S22,记录运行程序列表中各个功能程序的运行状态以及该功能程序转到该运行状态的时间信息;
本方法中,当获取周期L1到来并获取终端设备中包含所有当前运行程序的信息的列表后,还需要检查终端设备中是否有新的、未被记录在当前运行程序列表中的功能程序被激活,如果有则将该功能程序的信息添加到当前运行程序列表中,以保证当前运行程序列表中记录的是终端设备中当前运行的最新的程序信息;当检查周期L2到来时,检查当前运行程序列表中运行状态为闲置的功能程序。获取周期应当小于检查周期,保证在检查周期到来时能够获取到当前最新的运行程序列表。
步骤S23,生成包含运行程序列表中功能程序的信息的列表,该列表为功能程序列表。
各功能程序的运行状态包括:后台挂起、闲置、前台运行。
在步骤S10中,通过筛选掉必须程序,只保留功能程序,可以减少程序列表维护和程序检查的工作量。当然该步骤并不是必须的步骤。
步骤S11过程参见图4,具体包括以下步骤:
步骤S30,在检查周期L2到来时,检查功能程序列表中功能程序的运行状态,功能程序列表的示例见图5;
步骤S31,判断功能程序的当前运行状态是否为后台挂起,若是,则转到步骤S32;否则,结束本次操作;
步骤S32,计算功能程序转到后台挂起状态的时间和当前时间之间的时间差,作为状态的持续时间ΔT;
步骤S33,将得到的持续时间与预先设定的持续时间门限值T进行比较,若持续时间大于或等于持续时间门限值T,则转到步骤S34,否则,结束本次操作;
步骤S34,将功能程序的运行状态设置为闲置状态,并将该功能程序的信息加入到待关闭闲置程序列表中。
实施例二:
步骤S10,按照预先设定的获取周期,获取包含终端设备中所有当前运行程序的信息的列表;程序的信息包括程序的标识信息、所占内存空间的大小等;
步骤S11,按照预先设定的检查周期,检查列表中是否存在运行状态为闲置的功能程序,若存在,则转到步骤S12;若不存在,则结束本次操作;
步骤S12,通过图片和/或铃声的方式提示用户存在可以关闭的闲置功能程序,并显示列表中运行状态为闲置的功能程序的名称;
用户根据提示,决定是关闭全部还是部分闲置功能程序;如果用户在指定的时间内不对提示作出任何响应操作,则结束本次检查操作;
步骤S13,根据用户对所述提示作出的响应结果,完全关闭相应的闲置功能程序,并释放相应内存空间;
步骤S14,向用户提示本次操作完成。
步骤S10过程具体包括以下步骤:
步骤S20,在获取周期L1到来时,获取终端设备中当前运行的所有程序的信息的列表,该列表为运行程序列表;所有程序包括必须程序和功能程序;
步骤S21,在获取到的运行程序列表中筛选掉必须程序,只保留功能程序;
步骤S22,记录运行程序列表中各个功能程序的运行状态以及该功能程序转到该运行状态的时间信息。
本方法中,当获取周期L1到来并获取终端设备中包含所有当前运行程序的信息的列表后,还需要检查终端设备中是否有新的、未被记录在当前运行程序列表中的功能程序被激活,如果有则将该功能程序的信息添加到当前运行程序列表中,以保证当前运行程序列表中记录的是终端设备中当前运行的最新的程序信息;当检查周期L2到来时,检查当前运行程序列表中运行状态为闲置的功能程序。获取周期应当小于检查周期,保证在检查周期到来时能够获取到当前最新的运行程序列表。
步骤S23,生成包含运行程序列表中功能程序的信息的列表,该列表为功能程序列表。
步骤S11过程具体包括以下步骤:
步骤S30,在检查周期L2到来时,检查运行程序列表中功能程序的运行状态;
步骤S31,判断功能程序的当前运行状态是否为后台挂起,若是,则转到步骤S32;否则,结束本次操作;
步骤S32,计算功能程序转到后台挂起状态的时间和当前时间之间的时间差,作为状态的持续时间ΔT;
步骤S33,将得到的持续时间与预先设定的持续时间门限值T进行比较,若持续时间大于或等于持续时间门限值T,则转到步骤S34,否则,结束本次操作;
步骤S34,在运行程序列表中将该功能程序的运行状态设置为闲置状态。
参见图6,本发明实施例还提供一种设备,该设备包括:获取程序列表模块S51、程序状态检查模块S52、提示模块S53和关闭闲置程序模块S54;所述获取程序列表模块S51和所述程序状态检查模块S52相连;所述程序状态检查模块S52和所述提示模块S53相连;所述提示模块S53和所述关闭闲置程序模块S54相连;
所述获取程序列表模块S51,用于获取包含终端设备中当前运行程序的信息的列表;
所述程序状态检查模块S52,用于检查所述当前运行程序中运行状态为闲置的程序;
所述提示模块S53,用于发出是否关闭所述程序的提示信息;
所述关闭闲置程序模块S54,用于根据获得的对所述提示信息的响应结果关闭相应的程序,并释放相应内存。
该终端设备还包括:定时模块S55,所述定时模块S55与所述获取程序列表模块S51和程序状态检查模块S52相连;
所述定时模块S55,用于产生获取周期和检查周期;
所述获取程序列表模块S51用于:
按照所述获取周期,获取包含终端设备中所有当前运行程序的信息的列表;按照所述检查周期,将所述列表发送给程序状态检查模块;
所述程序状态检查模块S52用于:
按照所述检查周期,检查所述列表中运行状态为闲置的程序。
所述获取程序列表模块S51还用于:
删除所述列表中的必须程序;所述必须程序是用于维护终端设备正常运行和基本功能正常使用的程序。
所述获取程序列表模块S51还用于:
记录所述列表中功能程序的运行状态以及该功能程序转到该运行状态的时间信息;所述功能程序是用于实现终端设备中特定应用功能的程序;
所述程序状态检查模块S52用于:
根据记录的信息确定所述列表中当前运行状态为后台挂起状态的功能程序,计算所述功能程序转到后台挂起状态的时间与当前时间之间的时间差,将该时间差确定为持续时间;将该持续时间与预先设置的持续时间门限值进行比较,在所述持续时间大于所述持续时间门限值时,将所述功能程序确定为运行状态为闲置的程序。
所述程序状态检查模块S52还用于:
将运行状态为闲置的功能程序加入到待关闭闲置程序列表中;
所述提示模块S53用于:
当待关闭闲置程序列表不为空时,发出是否关闭闲置功能程序的提示。
所述提示模块S53还用于:
当对所述提示的响应结果为关闭闲置功能程序时,显示待关闭闲置程序列表中的闲置功能程序的名称,以提示用户选择需要关闭的闲置功能程序;
所述关闭闲置程序模块S54用于:
将运行状态为闲置的功能程序加入到待关闭闲置程序列表中;
所述提示模块S53用于:
当待关闭闲置程序列表不为空时,发出是否关闭闲置功能程序的提示。
所述提示模块S53还用于:
当对所述提示的响应结果为关闭闲置功能程序时,显示待关闭闲置程序列表中的闲置功能程序的名称,以提示用户选择需要关闭的闲置功能程序;
所述关闭闲置程序模块S54用于:
关闭用户选择的闲置功能程序,并释放相应内存。
参见图7,本发明实施例还提供一种设备,该设备包括:获取程序列表模块S61、程序状态检查模块S62和关闭闲置程序模块S63;所述获取程序列表模块S61和所述程序状态检查模块S62相连;所述程序状态检查模块S62和所述关闭闲置程序模块S63相连;
所述获取程序列表模块S61,用于获取包含终端设备中当前运行程序的信息的列表;
所述程序状态检查模块S62,用于检查所述当前运行程序中运行状态为闲置的程序;
所述关闭闲置程序模块S63,用于关闭所述运行状态为闲置的程序,并释放相应内存。
该终端设备还包括:定时模块S64,所述定时模块S64与所述获取程序列表模块S61和程序状态检查模块S62相连;
所述定时模块S64,用于产生获取周期和检查周期;
所述获取程序列表模块S61用于:
按照所述获取周期,获取包含终端设备中所有当前运行程序的信息的列表;按照所述检查周期,将所述列表发送给程序状态检查模块;
所述程序状态检查模块S62用于:
按照所述检查周期,检查所述列表中运行状态为闲置的程序。
所述获取程序列表模块S61还用于:
删除所述列表中的必须程序;所述必须程序是用于维护终端设备正常运行和基本功能正常使用的程序。
所述获取程序列表模块S61还用于:
记录所述列表中功能程序的运行状态以及该功能程序转到该运行状态的时间信息;所述功能程序是用于实现终端设备中特定应用功能的程序;
所述程序状态检查模块S62用于:
根据记录的信息确定所述列表中当前运行状态为后台挂起状态的功能程序,计算所述功能程序转到后台挂起状态的时间与当前时间之间的时间差,将该时间差确定为持续时间;将该持续时间与预先设置的持续时间门限值进行比较,在所述持续时间大于所述持续时间门限值时,将所述功能程序确定为运行状态为闲置的程序。
所述程序状态检查模块S62还用于:
将运行状态为闲置的功能程序加入到待关闭闲置程序列表中;
所述关闭闲置程序模块S63用于:
将运行状态为闲置的功能程序加入到待关闭闲置程序列表中;
所述关闭闲置程序模块S63用于:
关闭闲置功能程序,并释放相应内存。
下面对终端设备内各模块的工作流程进行说明:
工作流程例一:
步骤1:定时模块产生获取周期L1和检查周期L2;将获取周期L1和检查周期L2信息发送给获取程序列表模块,将检查周期L2信息发送给程序状态检查模块;L1<L2;
获取周期应L1当小于检查周期L2,保证在检查周期到来时能够获取到当前最新的运行程序列表。
步骤2:获取程序列表模块接收来自的定时模块的获取周期L1和检查周期L2信息;
在获取周期L1到来时,获取包含终端设备中当前运行程序的信息的列表;筛选掉所述列表中的必须程序,只保留功能程序,并记录每个功能程序的运行状态的相关信息,新信息覆盖旧信息;
在检查周期L2到来时,将所述列表发送给程序状态检查模块;
同时,获取程序列表模块如果发现有新的功能程序运行,则将其加入到运行程序列表中,并记录其运行状态的相关信息;如果发现某一或某些程序已经不再运行,则将其从运行程序列表中删除;
步骤3:程序状态检查模块接收来自定时模块的检查周期L2信息和来自获取程序列表模块的列表;
在检查周期L2到来时,检查接收到的所述列表中的功能程序的运行状态;当存在运行状态为后台挂起的功能程序时,则根据记录的信息计算所述功能程序的状态转为后台挂起的时间与当前时间之间的时间差,将该时间差作为持续时间ΔT;将得到的持续时间ΔT与预先设定的持续时间门限值T进行比较,若大于或等于持续时间门限值T,将该功能程序的运行状态设置为闲置状态;将该功能程序的信息加入到待关闭闲置程序列表中,将待关闭闲置程序列表发送给提示模块;
步骤4:提示模块接收到来自程序状态检查模块的待关闭闲置程序列表,当该待关闭闲置程序列表不为空时,通过图片和/或铃声的方式提示用户检测到可以关闭的闲置程序,并将闲置功能程序的名称进行显示;用户根据提示决定是关闭全部还是部分闲置功能程序;提示模块将用户对提示的响应结果发送给关闭闲置程序模块;
步骤5:关闭闲置程序模块接收到来自提示模块的用户对提示的响应结果,根据该响应结果关闭相应的闲置功能程序,并释放相应内存空间;并通知提示模块向用户提示本次操作完成。
工作流程例二:
步骤1:定时模块产生获取周期L1和检查周期L2;将获取周期L1和检查周期L2信息发送给获取程序列表模块,将检查周期L2信息发送给程序状态检查模块;L1<L2;
获取周期应L1当小于检查周期L2,保证在检查周期到来时能够获取到当前最新的运行程序列表。
步骤2:获取程序列表模块接收来自的定时模块的获取周期L1和检查周期L2信息;
在获取周期L1到来时,获取包含终端设备中当前运行程序的信息的列表;筛选掉所述列表中的必须程序,只保留功能程序,并记录每个功能程序的运行状态的相关信息,新信息覆盖旧信息;
在检查周期L2到来时,将所述列表发送给程序状态检查模块;
同时,获取程序列表模块如果发现有新的功能程序运行,则将其加入到运行程序列表中,并记录其运行状态的相关信息;如果发现某一或某些程序已经不再运行,则将其从运行程序列表中删除。
步骤3:程序状态检查模块接收来自定时模块的检查周期L2信息和来自获取程序列表模块的列表;
在检查周期L2到来时,检查接收到的所述列表中的功能程序的运行状态;当存在运行状态为后台挂起的功能程序时,则根据记录的信息计算所述功能程序的状态转为后台挂起的时间与当前时间之间的时间差,将该时间差作为持续时间ΔT;将得到的持续时间ΔT与预先设定的持续时间门限值T进行比较,若大于或等于持续时间门限值T,将该功能程序的运行状态设置为闲置状态;将所述列表发送给提示模块;
步骤4:提示模块接收到来自程序状态检查模块的列表,当该列表中存在运行状态为闲置的程序时,通过图片和/或铃声的方式提示用户检测到可以关闭的闲置程序,并将列表中运行状态为闲置的程序的名称进行显示;用户根据提示决定是关闭全部还是部分闲置功能程序;提示模块将用户对提示的响应结果发送给关闭闲置程序模块;
步骤5:关闭闲置程序模块接收到来自提示模块的用户对提示的响应结果,根据该响应结果关闭相应的闲置功能程序,并释放相应内存空间;并通知提示模块向用户提示本次操作完成。
需要说明的是,本发明实施例提到的终端设备可以是手机、个人数码助理等。
综上所述,本发明的有益效果在于:
本发明实施例提供的方案中,可以实时对终端设备设备的当前运行程序进行检查,判断出状态为闲置的功能程序,并将闲置功能程序的名单提供给用户,用户可以根据实际情况,决定是关闭全部还是部分功能程序。通过关闭闲置程序的操作,可以随时释放内存、减少耗电量、提高终端设备程序响应速度。
本发明实施例提供的方案支持用户查看内存占用情况、进程列表等,因此,用户可以及时得知终端设备程序运行的状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。