[发明专利]一种基于图片资源的内存自动释放方法及系统有效
申请号: | 201710419328.0 | 申请日: | 2017-06-06 |
公开(公告)号: | CN107357650B | 公开(公告)日: | 2020-12-15 |
发明(设计)人: | 张磊;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 430000 湖北省武汉市武汉东湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 图片 资源 内存 自动 释放 方法 系统 | ||
1.一种基于图片资源的内存自动释放方法,其特征在于,包括:
S1,在图片加载器中利用可缓存线程池对图片资源进行异步加载;
S2,每加载一张图片时,构建与加载图片对应的map对象,其中,map对象中存放有图片加载地址和图片加载后在内存中的存储地址,所述map对象中的key值为所述图片加载地址,所述map对象中的value值为所述加载图片的一次加载过程中的加载次数,将所有的map对象存放于list关系表中;
S3,按照预设时间间隔,遍历整个list关系表,根据list关系表中图片加载后在内存中的存储地址获得位图bitmap对象;
S4,若bitmap对象满足回收条件,则触发内存中的回收机制对该bitmap对象进行回收,实现对内存的释放;
所述步骤S2还包括:
将加载后的图片资源的bitmap对象申明为弱引用关系;
当内存资源紧张时,触发垃圾回收机制对内存中的垃圾回收,若垃圾回收后内存资源依然紧张,则主动回收弱引用关系的bitmap对象,以释放内存;
其中,若bitmap对象为不可见状态,则满足回收条件,若bitmap对象为可见状态,则不满足回收条件;
其中,若bitmap对象当前在页面上显示,则将bitmap对象标记为可见状态,否则,将bitmap对象标记为不可见状态。
2.如权利要求1所述的基于图片资源的内存自动释放方法,其特征在于,所述可缓存线程池包括多个可缓存子线程,所述步骤S1具体包括:
当可缓存线程池接收到图片资源加载请求时,根据需要加载的图片资源的个数,开启相应个数的可缓存子线程,在可缓存子线程中实现相应图片资源的加载。
3.如权利要求2所述的基于图片资源的内存自动释放方法,其特征在于,所述在可缓存子线程中实现相应图片资源的加载具体包括:
在可缓存子线程中定义任务类,在所述任务类中调用bitmap工厂类中的图片资源加载方法来实现图片资源的加载。
4.如权利要求3所述的基于图片资源的内存自动释放方法,其特征在于,所述步骤S1还包括:
多个可缓存子线程可同时对多张相同的图片进行加载;
所述步骤S2中的map对象中还包括同一时刻同一张图片的所述加载次数,其中,在map对象中,同一张图片加载地址相同,同一张图片每一次加载后在内存中的存储地址不同。
5.如权利要求1所述的基于图片资源的内存自动释放方法,其特征在于,所述步骤S3具体包括:
S31,在图片加载器中设计定时器,当定时器达到超时阈值时,遍历整个list关系表;
S32,根据list关系表中的每一个map对象中记录的图片加载后在内存中的存储地址,逐一获取在内存中的bitmap对象;
S33,若bitmap对象满足回收条件,则对该bitmap对象回收,以对内存进行释放,否则,对该bitmap对象不进行回收。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710419328.0/1.html,转载请声明来源钻瓜专利网。