终端内存处理方法、装置及终端的制作方法

文档序号:8380888阅读:373来源:国知局
终端内存处理方法、装置及终端的制作方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种终端内存处理方法、装置及终端。
【背景技术】
[0002]在移动互联网应用风靡的背景下,移动终端上的应用要想脱颖而出,对于应用来说良好的体验是必不可少的。如当应用从网络中获取网络图片数据时,用户完全有可能做一些重复性的操作去查看相同的图片信息。对于这样的问题,通常会有两种解决方法:一种是把过去查看过的图片信息保存在内存中,每一个存储了图片信息的Java对象的生命周期都贯穿整个应用程序生命周期,此种方法加快了数据的访问速度,但往往容易造成OutOfMemoryExcept1n ;另一种是当用户开始查看其它图片信息的时候,把存储了当前的图片信息的Java对象结束引用,使得垃圾收集器可以回收其所占用的内存空间,当用户再次需要浏览该图片信息的时候,重新获取图片信息,此种方法大大降低了OutOfMemoryExcept1n发生的可能性,但降低了用户的体验。
[0003]显然第一种实现方法将造成大量的内存浪费,而第二种实现的缺陷在于即使垃圾收集线程还没有进行垃圾收集,包含图片信息的对象仍然完好的保存在内存中,应用程序也要重新构建一个对象。
[0004]例如,在专利申请号为CN201110454870.2的中国专利“基于Android系统的图片加载方法和设置”中公开了一种Android系统的图片加载方法和装置。该专利仅对图片加载采用软引用的方法。该方法包括:A、发出图片加载任务的指令,并初始化存储图片的软引用;B、判断所述软引用中是否存储有所需要显示的图片;C、若所述软引用中没有存储所述要显示的图片,则运行图片加载线程进行加载;若所述软引用中存储有所述所要显示的图片,则直接进入步骤F ;D、若内存不足,则自动回收所述软引用中存储的图片直至所述内存充足;E、所述所要显示的图片加载完成,并存储于所述软引用中;F、从所述软引用中直接读取所述所要显示的图片并显示。对于移动设备来说,内存资源相对来说比较紧缺,仅适用软引用未必能够达到最佳的缓存效果。
[0005]因此,在相关技术中存在终端内存相对紧张同时又对终端应用的用户体验要求很高的矛盾的问题。

【发明内容】

[0006]本发明提供了一种终端内存处理方法及装置,以至少解决相关技术中存在终端内存相对紧张同时又对终端应用的用户体验要求很高的矛盾的问题。
[0007]根据本发明的一个方面,提供了一种终端内存处理方法,包括:将所述终端内存划分为多个缓存区域;对所述多个缓存区域进行分级;依据分级后的所述缓存区域对所述终端内存中的缓存对象进行分级缓存处理。
[0008]优选地,将所述终端内存划分为所述多个缓存区域包括:将所述终端内存划分为一级缓存区域和二级缓存区域,其中,所述一级缓存区域内的缓存对象禁止被垃圾回收器回收,所述二级缓存区域内的缓存对象在满足预定存储容量时被所述垃圾回收器回收。
[0009]优选地,依据分级后的所述缓存区域对所述终端内存中的缓存对象进行分级缓存处理包括:判断所述一级缓存区域内缓存的对象是否超过预定容量;在判断结果为是的情况下,将所述一级缓存区域内缓存的缓存对象转换为在所述二级缓存区域进行缓存。
[0010]优选地,将所述一级缓存区域内缓存的对象转换为在所述二级缓存区域进行缓存包括:对所述一级缓存区域内的缓存对象依据访问量的多少进行排序;优先将所述一级缓存区域内访问量少的缓存对象转换为在所述二级缓存区域内进行缓存。
[0011]优选地,所述一级缓存区域采用链状哈希映射LinkHashMap容器对所述一级缓存区域内的缓存对象进行缓存。
[0012]优选地,所述二级缓存区域采用并行哈希映射ConcurrentHashMap容器对所述二级缓存区域内的缓存对象进行缓存。
[0013]根据本发明的另一方面,提供了一种终端内存处理装置,包括:划分模块,用于将所述终端内存划分为多个缓存区域;分级模块,用于对所述多个缓存区域进行分级;缓存模块,用于依据分级后的所述缓存区域对所述终端内存中的缓存对象进行分级缓存处理。
[0014]优选地,所述划分模块包括:划分单元,用于将所述终端内存划分为一级缓存区域和二级缓存区域,其中,所述一级缓存区域内的缓存对象禁止被垃圾回收器回收,所述二级缓存区域内的缓存对象在满足预定存储容量时被所述垃圾回收器回收。
[0015]优选地,所述缓存模块包括:判断单元,用于判断所述一级缓存区域内缓存的对象是否超过预定容量;转换单元,用于在所述判断单元的判断结果为是的情况下,将所述一级缓存区域内缓存的缓存对象转换为在所述二级缓存区域进行缓存。
[0016]优选地,所述转换单元包括:排序子单元,用于对所述一级缓存区域内的缓存对象依据访问量的多少进行排序;转换子单元,用于优先将所述一级缓存区域内访问量少的缓存对象转换为在所述二级缓存区域内进行缓存。
[0017]根据本发明的再一方面,提供了一种终端,包括上述任一项所述的装置。
[0018]通过本发明,采用将所述终端内存划分为多个缓存区域;对所述多个缓存区域进行分级;依据分级后的所述缓存区域对所述终端内存中的缓存对象进行分级缓存处理解决了相关技术中存在终端内存相对紧张同时又对终端应用的用户体验要求很高的矛盾的问题,进而达到了实现对内存的高速缓存,有效解决内存紧张与应用体验相矛盾,提高用户体验的效果。
【附图说明】
[0019]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0020]图1是根据本发明实施例的终端内存处理方法的流程图;
[0021]图2是根据本发明实施例的终端内存处理装置的结构框图;
[0022]图3是根据本发明实施例的终端内存处理装置中划分模块22的结构框图;
[0023]图4是根据本发明实施例的终端内存处理装置中缓存模块26的结构框图;
[0024]图5是根据本发明实施例的终端内存处理装置中缓存模块26中转换单元44的结构框图;
[0025]图6是根据本发明实施例的终端的结构框图。
【具体实施方式】
[0026]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0027]在本实施例中提供了一种终端内存处理方法,图1是根据本发明实施例的终端内存处理方法的流程图,如图1所示,该流程包括如下步骤:
[0028]步骤S102,将终端内存划分为多个缓存区域;
[0029]步骤S104,对该多个缓存区域进行分级;
[0030]步骤S106,依据分级后的缓存区域对终端内存中的缓存对象进行分级缓存处理。
[0031]通过上述步骤,对终端内存中的缓存区域进行分级,依据分级后的缓存区域对缓存对象进行分级缓存,相对于相关技术中仅采用完全固定缓存或是完全不固定软引用的缓存来说,采用对缓存区域进行有区分地缓存对象,不仅解决了相关技术中浪费内存或是严重影响用户体验的问题,即存在终端内存相对紧张同时又对终端应用的用户体验要求很高的矛盾的问题,进而达到了实现对内存的高速缓存,有效解决内存紧张与应用体验相矛盾,提高用户体验的效果。
[0032]优选地,将终端内存划分为多个缓存区域时,可以依据具体的需要将终端内存划分为对应数目的缓存区域,依据划分后的缓存区域分别进行对应处理,例如,可以将终端内存划分为一级缓存区域和二级缓存区域,其中,一级缓存区域内的缓存对象禁止被垃圾回收器回收,二级缓存区域内的缓存对象在满足预定存储容量时被垃圾回收器回收。即将终端内存划分为可以对缓存对象实行不同缓存处理的缓存区域,即实现对缓存对象实行不同的缓存处理。
[0033]依据分级后的缓存区域对终端内存中的缓存对象进行分级缓存处理时,也可以采用多种方式,例如,可以先给一级缓存区域设置一个缓存容量(即在该一级缓存区域内不能缓存超过该容量),之后,判断一级缓存区域内缓存的对象是否超过预定容量;在判断结果为是的情况下,将一级缓存区域内缓存的缓存对象转换为在二级缓存区域进行缓存。而在将一级缓存区域内缓存的对象转换为在二级缓存区域进行缓存时,也可以依据具体的考虑因素,对一级缓存区域中的缓存对象实行有选择地转换为在该二级缓存区域中进行缓存,例如,该考虑因素可以为缓存对象的重要程度,缓存对象的访问量等,比如,可以对一级缓存区域内的缓存对象依据访问量的多少进行排序;优先将一级缓存区域内访问量少的缓存对象转换为在二级缓存区域内进行缓存。
[0034]需要说明的是,上述一级缓存区域以及二级缓存区域可以采用多种缓存容器对缓存对象进行存储,例如,由于链状哈希映射LinkHashMap容器可以对缓存对象具有一定的排序功能,因此,由于一级缓存区域可以采用链状哈希映射LinkHashMap容器对一级缓存区域内的缓存对象进行缓存。由于并行哈希映射ConcurrentHashMap容器可以对缓存对象进行高效的并行
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1