用于解决申请图片内存不足的内存分配方法及系统

著录项
  • CN201310354664.3
  • 20130814
  • CN103399822A
  • 20131120
  • 上海斐讯数据通信技术有限公司
  • 万江霞
  • G06F12/02
  • G06F12/02

  • 上海市松江区广富林路4855弄20号、90号
  • 上海(31)
  • 上海光华专利事务所
  • 余明伟
摘要
本发明提供用于解决申请图片内存不足的内存分配方法及系统,该方法为:S1,申请图片资源;S2,判断该图片资源是否存在,若是退出内存分配,若否执行S3;S3,判断当前图片所在的图层是否在用户可视的图层之内,若否退出内存分配,若是执行S4;S4,判断智能移动终端的内存是否足够为申请的图片资源分配内存,若是则执行S5,若否执行S6;S5,为申请的图片资源分配内存;S6,判断内存堆中是否存在不在用户可视图层之内的图片资源,若否停止为申请的图片资源分配内存,退出内存分配,若是执行S7;S7,回收不在用户可视图层之内的图片资源的内存;返回执行S4。本发明可以有效解决解决申请图片内存不足的问题。
权利要求

1.一种用于解决申请图片内存不足的内存分配方法,应用于智能移动终端的内存管理中,其 特征在于,所述方法包括:

步骤S1,申请图片资源;

步骤S2,判断该图片资源是否存在,若是则退出本次内存分配,若否则接着执行步 骤S3;

步骤S3,判断当前图片所在的图层是否在用户可视的图层之内,若否则退出本次内 存分配,若是则接着执行步骤S4;

步骤S4,判断智能移动终端的内存是否足够为申请的图片资源分配内存,若是则执 行步骤S5,若否则接着执行步骤S6;

步骤S5,直接为申请的图片资源分配内存;

步骤S6,判断内存堆中是否存在不在用户可视图层之内的图片资源,若否则停止为 申请的图片资源分配内存,退出本次内存分配,若是则执行步骤S7;

步骤S7,回收不在用户可视图层之内的图片资源的内存;并返回继续执行步骤S4。

2.根据权利要求1所述的用于解决申请图片内存不足的内存分配方法,其特征在于,在步骤 S3中,若当前图片所在的图层不在用户可视的图层之内,则不为当前图片分配内存并退 出本次内存分配。

3.根据权利要求1所述的用于解决申请图片内存不足的内存分配方法,其特征在于,在步骤 S6中,若内存堆中不存在不在用户可视图层之内的图片资源,则还包括步骤S8,警告当 前申请的图片资源过大无法申请足够的内存。

4.一种用于解决申请图片内存不足的内存分配系统,应用于智能移动终端的内存管理中,其 特征在于,所述系统包括:

内存申请模块,用于为图片资源请求内存;

图层管理模块,用于记录并管理各图片所在的图层,将各图层从上到下排序并显示最 上层的图层使得最上层的图层可视;

内存管理模块,与所述内存申请模块和所述图层管理模块相连,记录智能移动终端当 前已经使用的内存大小以及可以分配出去的内存大小,响应内存申请模块的请求,根据可 以分配出去的内存大小分配内存,并在当前内存无法分配时回收不在用户可视图层之内的 图片资源的内存。

5.根据权利要求4所述的用于解决申请图片内存不足的内存分配系统,其特征在于,所述内 存管理模块具体包括:

内存记录单元,记录智能移动终端当前已经使用的内存大小以及可以分配出去的内存 大小;

请求响应单元,与所述内存申请模块相连,响应并分析图片资源请求的内存大小;

图层可视判断单元,与所述图层管理模块相连,判断当前图片所在的图层是否在用户 可视的图层之内;

内存大小判断单元,与所述内存记录单元和所述请求响应单元相连,判断智能移动终 端的内存是否足够为申请的图片资源分配内存;

堆内可视图层判断单元,判断内存堆中是否存在不在用户可视图层之内的图片资源;

内存回收单元,与所述堆内可视图层判断单元相连,在堆中存在不在用户可视图层之 内的图片资源时回收不在用户可视图层之内的图片资源的内存;

内存分配单元,与所述内存大小判断单元相连,在智能移动终端的内存足够为申请的 图片资源分配内存时为申请的图片资源分配内存。

6.根据权利要求4所述的用于解决申请图片内存不足的内存分配系统,其特征在于,所述内 存管理模块还包括智能移动终端的内存不能为申请的图片资源分配内存且内存堆中不存 在不在用户可视图层之内的图片资源时警告当前申请的图片资源过大无法申请足够的内 存的警告单元。

7.根据权利要求4所述的用于解决申请图片内存不足的内存分配系统,其特征在于,所述内 存管理模块还包括图片资源判断单元,所述图片资源判断单元用于判断请求的图片资源是 否存在,若存在则无需为申请的图片资源分配内存。

8.根据权利要求4所述的用于解决申请图片内存不足的内存分配系统,其特征在于,在图层 可视判断单元中,若当前图片所在的图层不在用户可视的图层之内,则不为当前图片分配 内存。

说明书
技术领域

本发明涉及移动终端中的内存管理技术领域,特别是涉及图片的内存管理技术领域,具 体为一种用于解决申请图片内存不足的内存分配方法及系统。

在移动终端系统中,不时会遇到内存溢出(OOM,Out Of Memory)的问题,即内存不 够。特别是,在使用大量图片的时候,这个问题出现的几率比较高,在出现这个问题之后, 对应的应用程序往往会强制关闭,给用户的使用带来了极大的不便。

出现这个问题的原因是,当在申请为图片分配内存时,会对需要申请的内存空间进行一 个判断,如果当前堆已使用的大小加上申请需要再次分配的内存大小超过了堆的最大内存值, 则会抛出OOM的异常。

目前存在两种解决方案:

1、降低图片的分辨率,来减小图片可占用的内存空间大小的方式来解决。

降低图片的分辨率,来减小图片可占用的内存空间大小的方法,是以牺牲图片的分辨率 为代价的,图片显示的效果变差,达不到预期的显示效果;另外,如果图片过多,总的图片 大小还是会很大,该问题还是不能完全解决。

2、增大可申请的内存空间的大小

增大可申请的内存空间大小的方法,则是提高了图片可申请的空间,但是由于移动终端 普遍内存空间有限,如果增大了图片可申请的空间,则减小了程序其他可用空间的大小,从 而在一定程度上降低了程序运行的效率;同样的,如果图片过多,可申请的空间大小可能仍 然不够。

从以上两种解决技术方案来看,都没有从根本上解决申请图片内存不足的问题。

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种用于解决申请图片内存不足 的内存分配方法及系统,用于解决现有技术无法从根本上解决申请图片内存不足的问题。

为实现上述目的及其他相关目的,本发明在一方面提供一种用于解决申请图片内存不足 的内存分配方法,应用于智能移动终端的内存管理中,所述方法包括:步骤S1,申请图片资 源;步骤S2,判断该图片资源是否存在,若是则退出本次内存分配,若否则接着执行步骤S3; 步骤S3,判断当前图片所在的图层是否在用户可视的图层之内,若否则退出本次内存分配, 若是则接着执行步骤S4;步骤S4,判断智能移动终端的内存是否足够为申请的图片资源分配 内存,若是则执行步骤S5,若否则接着执行步骤S6;步骤S5,直接为申请的图片资源分配 内存;步骤S6,判断内存堆中是否存在不在用户可视图层之内的图片资源,若否则停止为申 请的图片资源分配内存,退出本次内存分配,若是则执行步骤S7;步骤S7,回收不在用户可 视图层之内的图片资源的内存;并返回继续执行步骤S4。

作为本发明的一种优选方案,在步骤S3中,若当前图片所在的图层不在用户可视的图层 之内,则不为当前图片分配内存并退出本次内存分配。

作为本发明的一种优选方案,在步骤S6中,若内存堆中不存在不在用户可视图层之内的 图片资源,则还包括步骤S8,警告当前申请的图片资源过大无法申请足够的内存。

本发明在另外一方面提供一种用于解决申请图片内存不足的内存分配系统,应用于智能 移动终端的内存管理中,所述系统包括:内存申请模块,用于为图片资源请求内存;图层管 理模块,用于记录并管理各图片所在的图层,将各图层从上到下排序并显示最上层的图层使 得最上层的图层可视;内存管理模块,与所述内存申请模块和所述图层管理模块相连,记录 智能移动终端当前已经使用的内存大小以及可以分配出去的内存大小,响应内存申请模块的 请求,根据可以分配出去的内存大小分配内存,并在当前内存无法分配时回收不在用户可视 图层之内的图片资源的内存。

作为本发明的一种优选方案,所述内存管理模块具体包括:内存记录单元,记录智能移 动终端当前已经使用的内存大小以及可以分配出去的内存大小;请求响应单元,与所述内存 申请模块相连,响应并分析图片资源请求的内存大小;图层可视判断单元,与所述图层管理 模块相连,判断当前图片所在的图层是否在用户可视的图层之内;内存大小判断单元,与所 述内存记录单元和所述请求响应单元相连,判断智能移动终端的内存是否足够为申请的图片 资源分配内存;堆内可视图层判断单元,判断内存堆中是否存在不在用户可视图层之内的图 片资源;内存回收单元,与所述堆内可视图层判断单元相连,在堆中存在不在用户可视图层 之内的图片资源时回收不在用户可视图层之内的图片资源的内存;内存分配单元,与所述内 存大小判断单元相连,在智能移动终端的内存足够为申请的图片资源分配内存时为申请的图 片资源分配内存。

作为本发明的一种优选方案,所述内存管理模块还包括智能移动终端的内存不能为申请 的图片资源分配内存且内存堆中不存在不在用户可视图层之内的图片资源时警告当前申请的 图片资源过大无法申请足够的内存的警告单元。

作为本发明的一种优选方案,所述内存管理模块还包括图片资源判断单元,所述图片资 源判断单元用于判断请求的图片资源是否存在,若存在则无需为申请的图片资源分配内存。

作为本发明的一种优选方案,在图层可视判断单元中,若当前图片所在的图层不在用户 可视的图层之内,则不为当前图片分配内存。

如上所述,本发明的一种用于解决申请图片内存不足的内存分配方法及系统,具有以下 有益效果:

1、本发明的技术方案不增加任何硬件设施,结合图层管理和内存管理,对资源的使用进 行总体协调处理,在内存不足够的时候,自动回收当前不需要的内存,用于当前需要的内存 分配,从而从根本上解决内存不足的问题。

2、在本发明中,当前不需要显示的图片不申请资源,这样可以有效节省内存空间的使用 大小。

3、在本发明中,已经存在的图片不需要重新申请资源,这样可以提高图片的显示效率, 并节省了内存空间。

4、在本发明中,当前不需要显示的图片资源在内存不够的情况下可以回收资源,这样可 以为当前需要显示的图片增加可用空间大小。

图1显示为本发明的一种用于解决申请图片内存不足的内存分配方法的流程示意图。

图2显示为本发明的一种用于解决申请图片内存不足的内存分配系统的结构示意图。

图3显示为本发明的一种用于解决申请图片内存不足的内存分配系统的一种优选的结构 示意图。

元件标号说明

1        内存分配系统

11       内存申请模块

12       图层管理模块

13       内存管理模块

131      内存记录单元

132      请求响应单元

133      图片资源判断单元

134      图层可视判断单元

135      内存大小判断单元

136      堆内可视图层判断单元

137      内存回收单元

138      内存分配单元

139      警告单元

S1~S8   步骤

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露 的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加 以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精 神下进行各种修饰或改变。

本发明的目的在于提供一种用于解决申请图片内存不足的内存分配方法及系统,用于解 决现有技术无法从根本上解决申请图片内存不足的问题。以下将详细阐述本发明的一种用于 解决申请图片内存不足的内存分配方法及系统的原理及实施方式,使本领域技术人员不需要 创造性劳动即可理解本发明的一种用于解决申请图片内存不足的内存分配方法及系统。

请参阅图1,显示为本发明的一种用于解决申请图片内存不足的内存分配方法的流程示 意图。如图1所示,本发明在一方面提供一种用于解决申请图片内存不足的内存分配方法, 应用于智能移动终端的内存管理中,所述方法包括:

步骤S1,申请图片资源。

步骤S2,判断该图片资源是否存在,若是则退出本次内存分配,若否则接着执行步骤S3。

步骤S3,判断当前图片所在的图层是否在用户可视的图层之内,若否则退出本次内存分 配,若是则接着执行步骤S4。

步骤S4,判断智能移动终端的内存是否足够为申请的图片资源分配内存,若是则执行步 骤S5,若否则接着执行步骤S6。

步骤S5,直接为申请的图片资源分配内存。

步骤S6,判断内存堆中是否存在不在用户可视图层之内的图片资源,若否则停止为申请 的图片资源分配内存,退出本次内存分配,若是则执行步骤S7。

步骤S7,回收不在用户可视图层之内的图片资源的内存;并返回继续执行步骤S4。

以下对上述各步骤进行详细说明。

首先执行步骤S1,申请图片资源。对需要查看显示的图片进行申请。当在申请为图片分 配内存时,会对需要申请的内存空间进行一个判断,如果当前堆已使用的大小加上申请需要 再次分配的内存大小超过了堆的最大内存值,则会抛出OOM的异常。本发明正是用于解决 申请图片内存不足的问题。接着执行步骤S2。

在步骤S2中,判断该申请的图片资源是否存在,若该申请的图片资源已经存在,则说明 该图片已经被分配了内存,此时无需重复申请内存,直接退出本次内存分配。所以,在本发 明中,已经存在的图片则不需要重新申请资源,这样可以提高图片的显示效率,并节省了内 存空间。若该申请的图片资源不存在,应该继续接着执行步骤S3。

在步骤S3中,判断当前图片所在的图层是否在用户可视的图层之内。即在当前图片没有 被分配内存时,继续判断该图片当前是否可视,若当前图片所在的图层不在用户可视的图层 之内,说明当前图片没有被显示的需求,此时无需为该图片分配内存,直接退出本次内存分 配。也就是说,在步骤S3中,若当前图片所在的图层不在用户可视的图层之内,则不为当前 图片分配内存并退出本次内存分配。所以,在本发明中,当前不需要显示的图片不申请资源, 这样可以有效节省内存空间的使用大小。若当前图片所在的图层在用户可视的图层之内,则 接着执行步骤S4。

在步骤S4中,判断智能移动终端的内存是否足够为申请的图片资源分配内存,若是则接 着执行步骤S5,若否则接着执行步骤S6。

在步骤S5中,直接为申请的图片资源分配内存。此时,说明智能移动终端的内存足够大, 可以为图片分配内存并且此时打开图片不会产生由于内存溢出的问题导致应用程序关闭或者 只能移动终端死机等问题。

在步骤S6中,继续判断内存堆中是否存在不在用户可视图层之内的图片资源,若此时内 存堆中不存在不在用户可视图层之内的图片资源,说明智能移动终端没有内存可分配,也没 有可释放的内存,无法为图片资源分配内存,此时应停止为申请的图片资源分配内存,退出 本次内存分配。

需要说明的是,理论上可能还存在智能移动终端内存不够的情况,即当前的在用户可视 的图层所需的内存大小超过了能够提供的内存大小;但实际情况是,在智能移动终端屏幕全 屏显示所需的图片内存资源很难超过系统提供的内存大小,并且系统提供的可分配内存大小 可以修改,因此这种情况的可能性几率非常低,几乎为0。

在步骤S6中,若内存堆中存在不在用户可视图层之内的图片资源,则说明还可以释放掉 不在用户可视图层之内的图片资源的内存以释放内存空间为申请的图片资源分配内存,所以 在步骤S6中,若内存堆中存在不在用户可视图层之内的图片资源,则继续执行步骤S7。

需要说明的是,在步骤S6中,若内存堆中不存在不在用户可视图层之内的图片资源,说 明当前智能移动终端内存不足且又没有可以释放的内存,此时应通知用户,所以在本实施例 中,此种情况下,还包括步骤S8,警告当前申请的图片资源过大无法申请足够的内存。

步骤S7,回收不在用户可视图层之内的图片资源的内存。也就是说,若内存堆中存在不 在用户可视图层之内的图片资源,则回收不在用户可视图层之内的图片资源的内存。通过释 放不在用户可视图层之内的图片资源的内存,可以为申请的图片资源争取一定的内存空间。 回收之后,需要进一步判断此时智能移动终端的内存是否足够为申请的图片资源分配空间, 所以执行完步骤S7之后返回继续执行步骤S4。可以循环执行步骤S4至步骤S7,直到最终 判断出是否可以为申请的图片资源分配内存。

可见,在本发明中,当前不需要显示的图片资源在内存不够的情况下可以回收资源,这 样可以为当前需要显示的图片增加可用空间大小。

综上,本发明的技术方案不增加任何硬件设施,结合图层管理和内存管理,对资源的使 用进行总体协调处理,在内存不足够的时候,自动回收当前不需要的内存,用于当前需要的 内存分配,从而从根本上解决内存不足的问题。

为实现上述方法,本发明还提供一种用于解决申请图片内存不足的内存分配系统,应用 于智能移动终端的内存管理中,如图2所示,所述内存分配系统1包括:内存申请模块11、 图层管理模块12和内存管理模块13。

所述内存申请模块11用于为图片资源请求内存。

所述图层管理模块12用于记录并管理各图片所在的图层,将各图层从上到下排序并显示 最上层的图层使得最上层的图层可视。也就是说,所述图层管理模块12中记录了各个程序需 要显示的视图,并将各个视图从上到下排序,最上层的视图则显示在屏幕的最上面,因此如 果该视图如果不是透明的,则下面的视图会被上面的视图覆盖而不需要显示出来。

所述内存管理模块13与所述内存申请模块11和所述图层管理模块12相连,记录智能移 动终端当前已经使用的内存大小以及可以分配出去的内存大小,响应所述内存申请模块11的 请求,根据可以分配出去的内存大小分配内存,并在当前内存无法分配时回收不在用户可视 图层之内的图片资源的内存。也就是说,所述内存管理模块13记录了当前已经使用的内存大 小,以及可以分配出去的内存大小,并响应请求根据大小分配出内存,如果内存不足够则提 示内存不够的告警给上层应用程序,同时响应请求,回收对应的内存空间使其为可用状态。

具体地,在本实施例中,如图3所示,所述内存管理模块13具体包括:内存记录单元 131、请求响应单元132、图片资源判断单元133、图层可视判断单元134、内存大小判断单 元135、堆内可视图层判断单元136、内存回收单元137、内存分配单元138以及警告单元139。

所述内存记录单元131记录智能移动终端当前已经使用的内存大小以及可以分配出去的 内存大小。

所述请求响应单元132与所述内存申请模块11相连,响应并分析图片资源请求的内存大 小。

所述图片资源判断单元133用于判断请求的图片资源是否存在,若存在则无需为申请的 图片资源分配内存。所述图片资源判断单元133判断该申请的图片资源是否存在,若该申请 的图片资源已经存在,则说明该图片已经被分配了内存,此时无需重复申请内存,直接退出 本次内存分配。所以,在本发明中,已经存在的图片不需要重新申请资源,这样可以提高图 片的显示效率,并节省了内存空间。

所述图层可视判断单元134与所述图层管理模块12相连,判断当前图片所在的图层是否 在用户可视的图层之内。通过所述图层可视判断单元134判断当前图片所在的图层是否在用 户可视的图层之内,若当前图片所在的图层不在用户可视的图层之内,则不为当前图片分配 内存。即在当前图片没有被分配内存时,继续判断该图片当前是否可视,若当前图片所在的 图层不在用户可视的图层之内,说明当前图片没有被显示的需求,此时无需为该图片分配内 存,直接退出本次内存分配。

也就是说,若当前图片所在的图层不在用户可视的图层之内,则不为当前图片分配内存 并退出本次内存分配。所以,在本发明中,当前不需要显示的图片不申请资源,这样可以有 效节省内存空间的使用大小。

所述内存大小判断单元135与所述内存记录单元131和所述请求响应单元132相连,判 断智能移动终端的内存是否足够为申请的图片资源分配内存。

所述堆内可视图层判断单元136判断内存堆中是否存在不在用户可视图层之内的图片资 源。通过所述堆内可视图层判断单元136继续判断内存堆中是否存在不在用户可视图层之内 的图片资源,若此时内存堆中不存在不在用户可视图层之内的图片资源,说明智能移动终端 没有内存可分配,也没有可释放的内存,无法为图片资源分配内存,此时应停止为申请的图 片资源分配内存,退出本次内存分配。

需要说明的是,理论上可能还存在智能移动终端内存不够的情况,即当前的在用户可视 的图层所需的内存大小超过了能够提供的内存大小;但实际情况是,在智能移动终端屏幕全 屏显示所需的图片内存资源很难超过系统提供的内存大小,并且系统提供的可分配内存大小 可以修改,因此这种情况的可能性几率非常低,几乎为0。

所述内存回收单元137与所述堆内可视图层判断单元136相连,在堆中存在不在用户可 视图层之内的图片资源时回收不在用户可视图层之内的图片资源的内存。若内存堆中存在不 在用户可视图层之内的图片资源,则说明还可以释放掉不在用户可视图层之内的图片资源的 内存以释放内存空间为申请的图片资源分配。

通过所述内存回收单元137回收不在用户可视图层之内的图片资源的内存。也就是说, 若内存堆中存在不在用户可视图层之内的图片资源,则回收不在用户可视图层之内的图片资 源的内存。通过释放不在用户可视图层之内的图片资源的内存,可以为申请的图片资源争取 一定的内存空间。回收之后,需要进一步通过所述内存大小判断单元135判断此时智能移动 终端的内存是否足够为申请的图片资源分配空间,直到最终判断出是否可以为申请的图片资 源分配内存。

可见,在本发明中,当前不需要显示的图片资源在内存不够的情况下可以回收资源,这 样可以为当前需要显示的图片增加可用空间大小。

所述内存分配单元138与所述内存大小判断单元135相连,在智能移动终端的内存足够 为申请的图片资源分配内存时为申请的图片资源分配内存。此时,说明智能移动终端的内存 足够大,可以为图片分配内存并且此时打开图片不会产生由于内存溢出的问题导致应用程序 关闭或者只能移动终端死机等问题。

所述警告单元139在智能移动终端的内存不能为申请的图片资源分配内存且内存堆中不 存在不在用户可视图层之内的图片资源时警告当前申请的图片资源过大无法申请足够的内 存。

需要说明的是,若内存堆中不存在不在用户可视图层之内的图片资源,说明当前智能移 动终端内存不足且又没有可以释放的内存,此时应通知用户,所以在本实施例中,通过所述 警告单元139警告当前申请的图片资源过大无法申请足够的内存。

综上所述,本发明的一种用于解决申请图片内存不足的内存分配方法及系统,达到了以 下有益效果:

1、本发明的技术方案不增加任何硬件设施,结合图层管理和内存管理,对资源的使用进 行总体协调处理,在内存不足够的时候,自动回收当前不需要的内存,用于当前需要的内存 分配,从而从根本上解决内存不足的问题。

2、在本发明中,当前不需要显示的图片不申请资源,这样可以有效节省内存空间的使用 大小。

3、在本发明中,已经存在的图片不需要重新申请资源,这样可以提高图片的显示效率, 并节省了内存空间。

4、在本发明中,当前不需要显示的图片资源在内存不够的情况下可以回收资源,这样可 以为当前需要显示的图片增加可用空间大小。

所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技 术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡 所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等 效修饰或改变,仍应由本发明的权利要求所涵盖。

本文发布于:2024-09-24 22:26:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/85508.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议