缓存的清理方法、装置及客户端的制作方法

文档序号:6535755阅读:159来源:国知局
缓存的清理方法、装置及客户端的制作方法
【专利摘要】本发明提出一种缓存的清理方法、装置和客户端,为提高客户端缓存清理效率,有效提升用户体验而发明。方法包括以下步骤:检测移动终端当前的缓存使用量;当移动终端的缓存使用量大于预设阈值时,向移动终端的操作系统发送缓存申请请求,以触发操作系统中预设的缓存释放规则;以及在操作系统根据预设的缓存释放规则释放对应缓存之后,向操作系统发送缓存释放请求,以使操作系统根据缓存释放请求释放为缓存申请请求所分配的缓存。本发明可用于移动终端设备缓存管理技术中。
【专利说明】缓存的清理方法、装置及客户端
【技术领域】
[0001]本发明涉及移动终端【技术领域】,特别涉及一种缓存的清理方法、装置及客户端。
【背景技术】
[0002]随着移动终端技术的发展,适用于移动终端的操作系统和应用程序也在不断更新。许多应用程序为了提升运行效率和流畅性,大量使用缓存,导致缓存空间不足使用户正常使用的体验变差。
[0003]目前,很多操作系统支持应用程序的后台挂起和运行等行为,即使用户离开应用程序操作界面,该应用程序占用的缓存也并不释放,用户必须在任务管理器中再次手动操作使应用程序退出,或重启设备以释放后台占用过多的缓存。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:在任务管理器中手动操作使应用程序一一退出、重启设备等方式操作步骤繁琐,速度缓慢;许多操作系统不提供对缓存直接进行操作的接口,导致应用程序本身无法直接实现对缓存的清理;而有些声称可以实现此功能的应用程序,使用虚假数据展现给用户,实际上完全没有对缓存做出清理,系统运行依旧缓慢,用户体验差。

【发明内容】

[0005]本发明的目的旨在至少解决上述的技术问题之一。
[0006]为此,本发明的目的在于提出一种缓存的清理方法。该方法能够清理占用过多的缓存空间,改善了移动终端运行流畅度,有效提升用户体验。
[0007]本发明的第二个目的在于提出一种缓存的清理装置。
[0008]本发明的第三个目的在于提出一种客户端。
[0009]为达到上述目的,本发明第一方面实施例提出的缓存的清理方法,包括:检测移动终端当前的缓存使用量;当所述移动终端的缓存使用量大于预设阈值时,向所述移动终端的操作系统发送缓存申请请求,以触发所述操作系统中预设的缓存释放规则;以及在所述操作系统根据所述预设的缓存释放规则释放对应缓存之后,向所述操作系统发送缓存释放请求,以使所述操作系统根据所述缓存释放请求释放为所述缓存申请请求所分配的缓存。
[0010]本发明实施例的缓存的清理方法,在缓存使用量超过预设阈值时,通过申请缓存空间以触发缓存释放规则释放缓存,然后请求释放根据缓存申请请求分配的缓存空间,合理利用移动终端操作系统的缓存机制,使用操作系统提供的接口,清理占用过多的缓存空间,操作简便,改善了移动终端的运行流畅度,提升了用户体验。
[0011]为达到上述目的,本发明第二方面实施例提出的缓存的清理装置,包括:检测模块,用于检测移动终端当前的缓存使用量;缓存申请模块,用于当所述移动终端的缓存使用量大于预设阈值时,向所述移动终端的操作系统发送缓存申请请求,以触发所述操作系统中预设的缓存释放规则;以及缓存释放模块,用于在所述操作系统根据所述预设的缓存释放规则释放对应缓存之后,向所述操作系统发送缓存释放请求,以使所述操作系统根据所述缓存释放请求释放为所述缓存申请请求所分配的缓存。
[0012]本发明实施例的缓存的清理装置,在缓存使用量超过预设阈值时,申请缓存空间以触发缓存释放规则释放缓存,然后请求释放根据缓存申请请求分配的缓存空间,合理利用移动终端操作系统的缓存机制,使用操作系统提供的接口,安全简便,清理占用过多的缓存空间,改善了移动终端的运行流畅度,提升了用户体验。
[0013]为达到上述目的,本发明第三方面实施例提出的客户端,包括:外壳,显示器、电路板和处理器,其中,所述电路板安置在所述外壳围成的空间内部,所述显示器在所述外壳外部,并与所述电路板相连接,所述处理器设置在所述电路板上;处理器用于处理数据,并具体用于执行以下步骤:检测移动终端当前的缓存使用量;当所述移动终端的缓存使用量大于预设阈值时,向所述移动终端的操作系统发送缓存申请请求,以触发所述操作系统中预设的缓存释放规则;以及在所述操作系统根据所述预设的缓存释放规则释放对应缓存之后,向所述操作系统发送缓存释放请求,以使所述操作系统根据所述缓存释放请求释放为所述缓存申请请求所分配的缓存。
[0014]本发明实施例的客户端,在缓存使用量超过预设阈值时,通过申请缓存空间以触发缓存释放规则释放缓存,然后请求释放根据缓存申请请求分配的缓存空间,合理利用移动终端操作系统的缓存机制,使用操作系统提供的接口,清理占用过多的缓存空间,预防卡死,操作简便,改善了移动终端的运行流畅度,提升了用户体验。
[0015]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0016]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0017]图1是根据本发明一个实施例的缓存的清理方法的流程图;
[0018]图2是根据本发明一个实施例的缓存使用量检测结果界面的示意图;
[0019]图3是根据本发明另一个实施例的缓存的清理方法的流程图;
[0020]图4是根据本发明一个实施例的缓存的清理装置的结构框图;
[0021]图5是根据本发明另一个实施例的缓存的清理装置的结构框图。
【具体实施方式】
[0022]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0023]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0024]在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0025]参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0026]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0027]下面参考附图描述根据本发明实施例的缓存的清理方法、装置和客户端。
[0028]为了解决移动终端缓存清理效率低导致移动终端运行缓慢的问题,本发明提出一种缓存的清理方法。
[0029]图1是根据本发明一个实施例的缓存的清理方法的流程图。如图1所示,该缓存的清理方法包括:
[0030]S101,检测移动终端当前的缓存使用量。
[0031]具体地,移动终端应用程序可通过操作系统提供的编程接口或特定检测模块检测当前缓存使用量,如图2所示为一种缓存使用量的检测结果示意图,检测结果中包含了可用内存(缓存)、已用内存(缓存)和当前缓存使用量所占总缓存的比例。其中,移动终端应用程序为可用于缓存检测和清理的应用程序,例如移动终端缓存清理器、手机管家等,也可为其他具有缓存检测和清理功能的应用程序。
[0032]S102,当移动终端的缓存使用量大于预设阈值时,向移动终端的操作系统发送缓存申请请求,以触发操作系统中预设的缓存释放规则。
[0033]具体地,根据当前缓存使用量的检测结果,判定当前缓存使用量是否大于预设阈值。其中,预设阈值为应用程序可用缓存所占总缓存的预设比例,可以根据移动终端具体的运行情况设定。
[0034]当移动终端的缓存使用量大于预设阈值时,可通过应用程序向移动终端的操作系统发送缓存申请请求。其中,缓存申请请求中包括所需缓存空间大小,可通过操作系统提供的缓存申请接口发送至操作系统。操作系统根据缓存申请请求分配缓存,导致可用缓存空间减少,从而触发操作系统中预设的缓存释放规则。
[0035]其中,缓存释放规则由开发者在开发之初根据操作系统的不同预先设定。在移动终端运行中,每当缓存释放规则被触发,例如空闲缓存不足以支持移动终端正常运行时,就会自动实施预设的缓存释放行为,按照预设的优先级释放一定数量的相应的缓存。
[0036]目前,移动终端的操作系统有多种,例如IOS操作系统(10S是由苹果公司开发的手持设备操作系统)、安卓操作系统(Android系统是一种基于Linux的自由及开放源代码的操作系统)、Windows Phone操作系统(Windows Phone是微软公司发布的一款手机操作系统)等。
[0037]具体地,以IOS操作系统为例,根据IOS操作系统的原理,任何在应用程序中申请的数据对象都会使用缓存空间,操作系统根据缓存申请请求分配缓存空间,将分配的缓存空间的地址发送至应用程序,该段缓存空间将被应用程序占用直到应用程序被手动释放或强行释放为止。以IOS操作系统为例,IOS操作系统属于完全地面向对象的系统,用户可见的任何形式的展现都以对象为基础,其中,对象即程序实现过程中的基本实体,如一个视图,一个列表,一张图片等。IOS操作系统为应用程序提供了若干编程接口以申请缓存空间:对于标准的NSObject (10S操作系统的基本类,系统中所有类都基于此类的特性)对象,需要使用alloc接口、malloc接口等为其申请空间;若应用程序中使用了图片,需使用imageNamed接口在缓存中为图片申请空间以容纳图片数据;对于与网络相关的操作,如打开网页、请求数据等,操作系统提供了 NSURLCache类(网络请求数据缓存类),通过setMemoryCapacity接口(用于设置缓存大小)申请缓存空间以存储网络数据。其中,alloc、malloc、imageNamed、setMemoryCapacity均为IOS操作系统为应用程序提供的编程接口名称,alloc接口、malloc接口为分配内存的通用接口,NSObject、NSURLCache为IOS操作系统中的常用类名。
[0038]S103,在操作系统根据预设的缓存释放规则释放对应缓存之后,向操作系统发送缓存释放请求,以使操作系统根据缓存释放请求释放为缓存申请请求所分配的缓存。
[0039]具体地,在操作系统根据预设的缓存释放规则释放一定量的缓存之后,可使用操作系统提供的接口向操作系统发送缓存释放请求,请求操作系统释放为缓存申请请求所分配的缓存空间。
[0040]本发明实施例的缓存的清理方法,在缓存使用量超过预设阈值时,通过申请缓存空间以触发缓存释放规则释放缓存,然后请求释放根据缓存申请请求分配的缓存空间,合理利用移动终端操作系统的缓存机制,使用操作系统提供的接口,清理占用过多的缓存空间,操作简便,改善了移动终端的运行流畅度,提升了用户体验。
[0041]图3是根据本发明另一个实施例的缓存的清理方法的流程图。为了优化移动终端对缓存的清理,在本发明的实施例中,可根据缓存释放规则优先释放预设数量的由后台应用程序所占用的缓存空间,然后请求释放操作系统根据缓存申请请求分配的缓存空间。如图3所示,该缓存的清理方法包括:
[0042]S201,检测移动终端当前的缓存使用量。
[0043]S202,当移动终端的缓存使用量大于预设阈值时,向移动终端的操作系统发送缓存申请请求,以触发操作系统中预设的缓存释放规则。
[0044]其中,预设的缓存释放规则包括操作系统释放预设数量的,且由后台运行程序所占用的缓存。在移动终端的运行中,每当满足缓存释放规则,操作系统就会释放预设数量的,且由后台运行的应用程序所占用的缓存。例如缓存使用量大于某一预设阈值(如90%)时,移动终端中产生内存告警并自动释放一定量的缓存。应当理解,移动终端会优先处理后台运行的应用程序所占用的缓存,其中,每一段缓存都是由缓存地址来标记的。
[0045]需要注意的是,为了触发操作系统中预设的缓存释放规则,需要根据检测到的当前可用缓存,来设定缓存申请请求中所申请的缓存空间大小,以保证达到缓存释放规则中的预设阈值,从而触发操作系统清理缓存。
[0046]S203,接收并记录操作系统根据缓存申请请求分配的缓存地址,并在缓存释放请求中添加分配的缓存地址。[0047]其中,缓存释放请求中包含需要释放的缓存数量,也可以指定需要释放的缓存地址。申请缓存空间时,操作系统会根据缓存申请请求分配缓存地址,并返回一段连续的缓存空间的起始地址,同时可用缓存空间减少,触发了缓存释放规则,从而使操作系统释放后台应用程序所占用的缓存空间。
[0048]S204,在操作系统根据预设的缓存释放规则释放对应缓存之后,向操作系统发送缓存释放请求,以使操作系统根据缓存释放请求释放为缓存申请请求所分配的缓存。
[0049]具体地,在操作系统根据预设的缓存释放规则释放对应缓存之后,可使用操作系统提供的接口向操作系统发送缓存释放请求,操作系统会释放所有为缓存申请请求所分配的缓存空间,并将相对应的缓存地址和缓存空间置为可用。
[0050]S205,根据缓存释放规则和操作系统根据缓存申请请求分配的缓存地址获取本次释放的缓存量,并在移动终端中显示给用户。
[0051]应当理解,根据缓存释放规则释放的缓存空间和操作系统根据缓存申请请求分配的缓存空间都属于本次清理中释放的缓存,但在移动终端中显示给用户的本次释放的缓存量可以包括两者共同的释放量,也可以只包括根据缓存释放规则释放的缓存量。
[0052]S206,再次检测移动终端当前的缓存使用量。
[0053]S207,如果判断再次检测的移动终端当前的缓存使用量依然大于预设阈值,则再次发送缓存申请请求。
[0054]具体地,在完成一次清理后,可再次检测移动终端当前的缓存使用量是否超过预设阈值,如果检测结果中当前的缓存使用量依然大于预设阈值,则再次发送缓存申请请求以触发缓存释放规则,开始第二次清理流程,具体步骤可参考S202?S205。
[0055]本发明实施例的缓存的清理方法,在缓存使用量超过预设阈值时,通过申请缓存空间触发缓存释放规则,优先释放后台应用程序所占用的缓存空间,然后请求释放根据缓存申请请求分配的缓存空间,并重复清理缓存直到缓存使用量不超过预设阈值,清理了后台应用程序占用过多的缓存空间,操作简便,改善了移动终端运行流畅度,提升了用户体验。
[0056]为了实现上述实施例,本发明还提出一种缓存的清理装置。
[0057]图4是根据本发明一个实施例的缓存的清理装置的结构框图。如图4所示,该装置包括检测模块100、缓存申请模块200和缓存释放模块300。
[0058]具体地,检测模块100用于检测移动终端当前的缓存使用量。更具体地,检测模块100可通过操作系统提供的编程接口检测当前缓存使用量,如图2所示为一种缓存使用量的检测结果示意图,检测结果中包含了可用内存(缓存)、已用内存(缓存)和当前缓存使用量所占总缓存的比例。
[0059]缓存申请模块200用于当移动终端的缓存使用量大于预设阈值时,向移动终端的操作系统发送缓存申请请求,以触发操作系统中预设的缓存释放规则。更具体地,根据当前缓存使用量的检测结果,判定当前缓存使用量是否大于预设阈值。其中,预设阈值为应用程序可用缓存所占总缓存的预设比例,可以根据移动终端具体的运行情况设定。当移动终端的缓存使用量大于预设阈值时,缓存申请模块200可向移动终端的操作系统发送缓存申请请求。其中,缓存申请请求中包括所需缓存空间大小,可通过操作系统提供的缓存申请接口发送至操作系统。操作系统根据缓存申请请求分配缓存,导致可用缓存空间减少,从而触发操作系统中预设的缓存释放规则。其中,预设的缓存释放规则包括操作系统释放预设数量的,且由后台运行程序所占用的缓存。在移动终端运行中,每当满足缓存释放规则,操作系统就会释放预设数量的,且由后台运行的应用程序所占用的缓存。例如缓存使用量大于某一预设阈值(如90%)时,移动终端中产生内存告警并自动释放一定量的缓存。应当理解,操作系统会优先处理后台运行的应用程序所占用的缓存,其中,每一段缓存都是由缓存地址来标记的。
[0060]目前,移动终端的操作系统有多种,例如IOS操作系统(10S是由苹果公司开发的手持设备操作系统)、安卓操作系统(Android系统是一种基于Linux的自由及开放源代码的操作系统)、Windows Phone操作系统(Windows Phone是微软公司发布的一款手机操作系统)等。更具体地,以IOS操作系统为例,根据IOS操作系统的原理,任何在应用程序中申请的数据对象都会使用缓存空间,操作系统根据缓存申请请求分配缓存空间,将分配的缓存空间的地址发送至应用程序,该段缓存空间将被应用程序占用直到应用程序被手动释放或强行释放为止。以IOS操作系统为例,IOS操作系统属于完全地面向对象的系统,用户可见的任何形式的展现都以对象为基础,其中,对象即程序实现过程中的基本实体,如一个视图,一个列表,一张图片等。IOS操作系统为应用程序提供了若干编程接口以申请缓存空间:对于标准的NSObject (10S操作系统的基本类,系统中所有类都基于此类的特性)对象,需要使用alloc接口、malloc接口等为其申请空间;若应用程序中使用了图片,需使用imageNamed接口在缓存中为图片申请空间以容纳图片数据;对于与网络相关的操作,如打开网页、请求数据等,操作系统提供了 NSURLCache类(网络请求数据缓存类),通过setMemoryCapacity接口(用于设置缓存大小)申请缓存空间以存储网络数据。其中,alloc、mal1c>imageNamed>setMemoryCapacity均为IOS操作系统为应用程序提供的编程接口名称,alloc接口、malloc接口为分配内存的通用接口,NSObject、NSURLCache为IOS操作系统中的常用类名。
[0061]缓存释放模块300用于在操作系统根据预设的缓存释放规则释放对应缓存之后,向操作系统发送缓存释放请求,以使操作系统根据缓存释放请求释放为缓存申请请求所分配的缓存。更具体地,在操作系统根据预设的缓存释放规则释放一定量的缓存之后,缓存释放模块300可通过操作系统提供的接口向操作系统发送缓存释放请求,请求操作系统释放为缓存申请请求所分配的缓存空间。
[0062]本发明实施例的缓存的清理装置,在缓存使用量超过预设阈值时,申请缓存空间以触发缓存释放规则释放缓存,然后请求释放根据缓存申请请求分配的缓存空间,合理利用移动终端操作系统的缓存机制,使用操作系统提供的接口,清理占用过多的缓存空间,安全简便,改善了移动终端的运行流畅度,提升了用户体验。
[0063]图5是根据本发明另一个实施例的缓存的清理装置的结构框图。如图5所示,该装置包括检测模块100、缓存申请模块200、缓存释放模块300、接收模块400、添加模块500、获取模块600和显示模块700。
[0064]具体地,接收模块400用于接收并记录操作系统根据缓存申请请求分配的缓存地址。更具体地,申请缓存空间时,操作系统会根据缓存申请请求分配缓存地址,接收模块400接收并记录操作系统返回的缓存空间的起始地址,同时可用缓存空间减少,触发了缓存释放规则,从而使操作系统释放后台应用程序所占用的缓存空间。[0065]添加模块500在缓存释放请求中添加分配的缓存地址。其中,缓存释放请求中包含需要释放的缓存数量,也可以指定需要释放的缓存地址。更具体地,添加模块500用于将接收模块400接收并记录的操作系统根据缓存申请请求分配的缓存地址添加到缓存释放请求中。
[0066]获取模块600用于根据缓存释放规则和操作系统根据缓存申请请求分配的缓存地址获取本次释放的缓存量。
[0067]显示模块700用于将本次释放的缓存量在移动终端中显示给用户。
[0068]应当理解,根据缓存释放规则释放的缓存空间和操作系统根据缓存申请请求分配的缓存空间都属于本次清理中释放的缓存,但在移动终端中显示给用户的本次释放的缓存量可以包括两者共同的释放量,也可以只包括根据缓存释放规则释放的缓存量。
[0069]检测模块100还用于再次检测移动终端当前的缓存使用量。
[0070]缓存申请模块200还用于当判断再次检测的所述移动终端当前的缓存使用量依然大于所述预设阈值时,再次发送所述缓存申请请求。
[0071]更具体地,在完成一次清理后,检测模块100可再次检测移动终端当前的缓存使用量是否超过预设阈值,如果检测结果中当前的缓存使用量依然大于预设阈值,则缓存申请模块200再次发送缓存申请请求,开始第二次清理流程。
[0072]本发明实施例的缓存的清理装置,在缓存使用量超过预设阈值时,通过申请缓存空间触发缓存释放规则,优先释放后台应用程序所占用的缓存空间,然后请求释放根据缓存申请请求分配的缓存空间,并重复清理缓存直到缓存使用量不超过预设阈值,清理了后台应用程序占用过多的缓存空间,操作简便,改善了移动终端运行流畅度,提升了用户体验。
[0073]为了实现上述实施例,本发明还提出一种客户端。
[0074]根据本发明实施例的客户端包括:外壳,显示器、电路板和处理器,其中,电路板安置在外壳围成的空间内部,显示器在外壳外部,并与电路板相连接,处理器设置在电路板上;处理器用于处理数据,并具体用于执行以下步骤:
[0075]sior,检测移动终端当前的缓存使用量。
[0076]具体地,处理器可通过操作系统提供的编程接口或特定检测模块检测当前缓存使用量,如图2所示为一种缓存使用量的检测结果示意图,检测结果中包含了可用内存(缓存)、已用内存(缓存)和当前缓存使用量所占总缓存的比例。
[0077]S102’,当移动终端的缓存使用量大于预设阈值时,向移动终端的操作系统发送缓存申请请求,以触发操作系统中预设的缓存释放规则。
[0078]具体地,处理器根据当前缓存使用量的检测结果,判定当前缓存使用量是否大于预设阈值。其中,预设阈值为应用程序可用缓存所占总缓存的预设比例,可以根据移动终端具体的运行情况设定。
[0079]当移动终端的缓存使用量大于预设阈值时,处理器可通过应用程序向移动终端的操作系统发送缓存申请请求。其中,缓存申请请求中包括所需缓存空间大小,可通过操作系统提供的缓存申请接口发送至操作系统。操作系统根据缓存申请请求分配缓存,导致操作系统可用缓存空间减少,从而触发操作系统中预设的缓存释放规则。
[0080]其中,缓存释放规则由开发者在开发之初根据操作系统的不同预先设定。在移动终端运行中,每当满足缓存释放规则,例如当可用缓存大小不足以支持移动终端正常运行时,就会自动实施预设的缓存释放行为,按照预设的优先级释放一定数量的相应的缓存。
[0081]目前,移动终端的操作系统有多种,例如IOS操作系统(10S是由苹果公司开发的手持设备操作系统)、安卓操作系统(Android系统是一种基于Linux的自由及开放源代码的操作系统)、Windows Phone操作系统(Windows Phone是微软公司发布的一款手机操作系统)等。具体地,以IOS操作系统为例,根据IOS操作系统的原理,任何在应用程序中申请的数据对象都会使用缓存空间,操作系统根据缓存申请请求分配缓存空间,将分配的缓存空间的地址发送至应用程序,该段缓存空间将被应用程序占用直到应用程序被手动释放或强行释放为止。以IOS操作系统为例,IOS操作系统属于完全地面向对象的系统,用户可见的任何形式的展现都以对象为基础,其中,对象即程序实现过程中的基本实体,如一个视图,一个列表,一张图片等。IOS操作系统为应用程序提供了若干编程接口以申请缓存空间:对于标准的NSObject (10S操作系统的基本类,系统中所有类都基于此类的特性)对象,需要使用alloc接口、malloc接口等为其申请空间;若应用程序中使用了图片,需使用imageNamed接口在缓存中为图片申请空间以容纳图片数据;对于与网络相关的操作,如打开网页、请求数据等,操作系统提供了 NSURLCache类(网络请求数据缓存类),通过setMemoryCapacity接口(用于设置缓存大小)申请缓存空间以存储网络数据。其中,alloc、mal1c>imageNamed>setMemoryCapacity均为IOS操作系统为应用程序提供的编程接口名称,alloc接口、malloc接口为分配内存的通用接口,NSObject、NSURLCache为IOS操作系统中的常用类名。
[0082]S103’,在操作系统根据预设的缓存释放规则释放对应缓存之后,向操作系统发送缓存释放请求,以使操作系统根据缓存释放请求释放为缓存申请请求所分配的缓存。
[0083]具体地,在操作系统根据预设的缓存释放规则释放一定量的缓存之后,可使用操作系统提供的接口向操作系统发送缓存释放请求,请求操作系统释放为缓存申请请求所分配的缓存空间。
[0084]本发明实施例的客户端,在缓存使用量超过预设阈值时,通过申请缓存空间以触发缓存释放规则释放缓存,然后请求释放根据缓存申请请求分配的缓存空间,合理利用移动终端操作系统的缓存机制,使用操作系统提供的接口,清理占用过多的缓存空间,预防卡死,操作简便,改善了移动终端运行流畅度,提升了用户体验。
[0085]在本发明的一个实施例中,处理器还用于执行以下步骤:
[0086]S201’,检测移动终端当前的缓存使用量。
[0087]S202’,当移动终端的缓存使用量大于预设阈值时,向移动终端的操作系统发送缓存申请请求,以触发操作系统中预设的缓存释放规则。
[0088]其中,预设的缓存释放规则包括操作系统释放预设数量的,且由后台运行程序所占用的缓存。在移动终端运行中,每当满足缓存释放规则,操作系统就会释放预设数量的,且由后台运行的应用程序所占用的缓存。例如缓存使用量大于某一预设阈值(如90%)时,移动终端产生内存告警并自动释放一定量的缓存。应当理解,操作系统会优先处理后台运行的应用程序所占用的缓存,其中,每一段缓存都是由缓存地址来标记的。
[0089]需要注意的是,为了触发操作系统中预设的缓存释放规则,需要根据检测到的当前可用缓存,来设定缓存申请请求中所申请的缓存空间大小,以保证达到缓存释放规则中的预设阈值,从而触发操作系统清理缓存。
[0090]S203’,接收并记录操作系统根据缓存申请请求分配的缓存地址,并在缓存释放请求中添加分配的缓存地址。
[0091]其中,缓存释放请求中包含需要释放的缓存数量,也可以指定需要释放的缓存地址。申请缓存空间时,操作系统会根据缓存申请请求分配缓存地址,并返回一段连续的缓存空间的起始地址,同时可用缓存空间减少,触发了缓存释放规则,从而使操作系统释放后台应用程序所占用的缓存空间。
[0092]S204’,在操作系统根据预设的缓存释放规则释放对应缓存之后,向操作系统发送缓存释放请求,以使操作系统根据缓存释放请求释放为缓存申请请求所分配的缓存。
[0093]具体地,在操作系统根据预设的缓存释放规则释放对应缓存之后,处理器可使用操作系统提供的接口向操作系统发送缓存释放请求,操作系统会释放所有为缓存申请请求所分配的缓存空间,并将相对应的缓存地址和缓存空间置为可用。
[0094]S205’,根据缓存释放规则和操作系统根据缓存申请请求分配的缓存地址获取本次释放的缓存量,并在移动终端中显示给用户。
[0095]应当理解,根据缓存释放规则释放的缓存空间和操作系统根据缓存申请请求分配的缓存空间都属于本次清理中释放的缓存,但在移动终端中显示给用户的本次释放的缓存量可以包括两者共同的释放量,也可以只包括根据缓存释放规则释放的缓存量。
[0096]S206’,再次检测移动终端当前的缓存使用量。
[0097]S207’,如果判断再次检测的移动终端当前的缓存使用量依然大于预设阈值,则再次发送缓存申请请求。
[0098]具体地,在完成一次清理后,可再次检测移动终端当前的缓存使用量是否超过预设阈值,如果检测结果中当前的缓存使用量依然大于预设阈值,则再次发送缓存申请请求,开始第二次清理流程,具体步骤可参考S202’?S205’。
[0099]本发明实施例的客户端,在缓存使用量超过预设阈值时,通过申请缓存空间触发缓存释放规则,优先释放后台应用程序所占用的缓存空间,然后请求释放根据缓存申请请求分配的缓存空间,并重复清理缓存直到缓存使用量不超过预设阈值,清理了后台应用程序占用过多的缓存空间,操作简便,改善了移动终端运行流畅度,提升了用户体验。
[0100]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的部、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0101]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0102]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0103]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0104]此外,在本发明各个实施例中的各功能单元可以集成在一个处理部中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个部中。上述集成的部既可以采用硬件的形式实现,也可以采用软件功能部的形式实现。所述集成的部如果以软件功能部的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0105]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0106]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0107]尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
【权利要求】
1.一种缓存的清理方法,其特征在于,包括以下步骤: 检测移动终端当前的缓存使用量; 当所述移动终端的缓存使用量大于预设阈值时,向所述移动终端的操作系统发送缓存申请请求,以触发所述操作系统中预设的缓存释放规则;以及 在所述操作系统根据所述预设的缓存释放规则释放对应缓存之后,向所述操作系统发送缓存释放请求,以使所述操作系统根据所述缓存释放请求释放为所述缓存申请请求所分配的缓存。
2.如权利要求1所述的方法,其特征在于,在所述向移动终端的操作系统发送缓存申请请求之后,还包括: 接收并记录所述操作系统根据所述缓存申请请求分配的缓存地址,并在所述缓存释放请求中添加所述分配的缓存地址。
3.如权利要求1所述的方法,其特征在于,所述预设的缓存释放规则包括所述操作系统释放预设数量的,且由后台运行程序所占用的缓存。
4.如权利要求1所述的方法,其特征在于,在所述向所述操作系统发送缓存释放请求之后,还包括: 再次检测所述移动终端当前的缓存使用量;以及 如果判断再次检测的所述移动终端当前的缓存使用量依然大于所述预设阈值,则再次发送所述缓存申请请求。
5.如权利要求2所述的方法,其特征在于,在所述向所述操作系统发送缓存释放请求之后,还包括: 根据所述缓存释放规则和所述操作系统根据所述缓存申请请求分配的缓存地址获取本次释放的缓存量,并在所述移动终端中显示给用户。
6.一种缓存的清理装置,其特征在于,包括: 检测模块,用于检测移动终端当前的缓存使用量; 缓存申请模块,用于当所述移动终端的缓存使用量大于预设阈值时,向所述移动终端的操作系统发送缓存申请请求,以触发所述操作系统中预设的缓存释放规则;以及 缓存释放模块,用于在所述操作系统根据所述预设的缓存释放规则释放对应缓存之后,向所述操作系统发送缓存释放请求,以使所述操作系统根据所述缓存释放请求释放为所述缓存申请请求所分配的缓存。
7.如权利要求6所述的装置,其特征在于,还包括: 接收模块,用于接收并记录所述操作系统根据所述缓存申请请求分配的缓存地址;以及 添加模块,在所述缓存释放请求中添加所述分配的缓存地址。
8.如权利要求6所述的装置,其特征在于,所述预设的缓存释放规则包括所述操作系统释放预设数量的,且由后台运行程序所占用的缓存。
9.如权利要求6所述的装置,其特征在于, 所述检测模块,还用于再次检测所述移动终端当前的缓存使用量;以及 所述缓存申请模块,还用于当判断再次检测的所述移动终端当前的缓存使用量依然大于所述预设阈值时,再次发送所述缓存申请请求。
10.如权利要求7所述的装置,其特征在于,还包括: 获取模块,用于根据所述缓存释放规则和所述操作系统根据所述缓存申请请求分配的缓存地址获取本次释放的缓存量,以及 显示模块,用于将本次释 放的缓存量在所述移动终端中显示给用户。
【文档编号】G06F12/08GK103714016SQ201410016945
【公开日】2014年4月9日 申请日期:2014年1月14日 优先权日:2014年1月14日
【发明者】董熠, 韦航, 李丁盼, 马健 申请人:贝壳网际(北京)安全技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1