[发明专利]一种文件缓存方法及装置在审
申请号: | 201310590835.2 | 申请日: | 2013-11-20 |
公开(公告)号: | CN104657378A | 公开(公告)日: | 2015-05-27 |
发明(设计)人: | 王磊 | 申请(专利权)人: | 青岛海信移动通信技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 李娟 |
地址: | 266071 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 缓存 方法 装置 | ||
技术领域
本发明涉及计算机技术,尤其涉及一种文件缓存方法及装置。
背景技术
在Android网络相关应用的设计和开发中可能会经常碰到将网络上存储的图片下载并显示,这就需要在一个界面上显示数十张图片乃至上百张图片,限于手机屏幕的大小,通常在设计中会使用ListView(Android系统提供的一个类,该类主要实现列表控件)或GridView(Android系统提供的一个类,该类主要实现网格控件)控件控制图片分批下载和显示,也就是说通常一次需要显示出来图片数是一个相对确定的数字,通常不会太大。如果数目比较大的话,在ListView或GridView中要加载很多图片时,很容易出现滑动时的卡顿现象,以及出现OOM(out of memory,内存不足)导致FC(Force Close,强制关闭)。并且,如果每次加载同一张图片都要从网络获取,会严重影响图片加载速度和用户体验。
内存包括系统物理内存和进程可使用的内存。当系统物理内存不足时,操作系统会结束其他进程释放内存,通常内存使用较大、占用物理内存较高的进程会优先被释放。进程可使用的内存主要由虚拟机管理,GC(Garbage collector,垃圾回收,Java中的垃圾收集器)的策略直接影响到具体实现。
Android(安卓操作系统)上的应用是运行在java虚拟机上面的,内存分配在托管堆上,通过GC来管理。虽然一般来说,GC会合理的管理内存,开发者不用太关心内存释放的时机,但是,当应用使用内存比较高,或者因为代码的问题导致内存一直被引用,GC无法完成回收,都会产生内存不够用的情况。而对于Bitmap(位图),其数据是分配在native(原始的,固有的)的堆上面的,当同时或者连续打开多个Bitmap时,native堆就会不够用,产生OOM异常。
在Android应用中UI线程(User interface Thread,UI线程是一种线程,具有线程应该具有的所有特性)5秒没响应的话就会抛出无响应异常,对于远程获取大的资源来说,这种异常比较常见。
发明内容
本发明实施例提供一种文件缓存方法及装置,以提高图片等文件的加载速度,减少内存不足的情况出现。
本发明实施例提供的一种文件缓存方法,包括:
确定需要加载文件,且确定需要从网络下载该文件时,进行文件下载;
下载文件后,将所下载的文件备份存储到文件缓存和一级缓存中。
由于同时将文件备份到一级缓存和文件缓存中,所以再次加载文件时,可以从一级缓存、二级缓存中查找该文件,也可以从文件缓存中查找该文件,既加快了文件加载的速度,又有效避免了OOM的问题。
具体的,所述确定需要加载文件,且确定需要从网络下载该文件,具体包括:
确定需要加载文件,且文件未存储在一级缓存、二级缓存及文件缓存中。
进一步,为加快文件加载的速度,该方法还包括:
确定需要加载文件,且确定文件存储在一级缓存中时,直接从一级缓存中加载文件,并更新该文件的使用时间;
确定需要加载文件,且确定文件存储在二级缓存中时,从二级缓存中加载文件,并将该文件从二级缓存中移动到一级缓存中;
确定需要加载文件,且确定文件存储在文件缓存中时,从文件缓存中加载文件,更新该文件的使用时间,并将该文件从文件缓存中移动到一级缓存中。
较佳的,为防止一级缓存中存储的文件过多导致OOM,将文件移动到一级缓存中后,还包括:
确定一级缓存中的文件存储量超过设定的第一阈值时,将距离上次使用时间最长的文件移动到二级缓存中,直至一级缓存中的文件存储量小于第一阈值。
较佳的,为防止一级缓存中存储的文件过多导致OOM,防止文件缓存中存储的文件过多影响加载速度,将所下载的文件备份存储到文件缓存和一级缓存中后,还包括:
确定一级缓存中的文件存储量超过设定的第一阈值时,将距离上次使用时间最长的文件移动到二级缓存中,直至一级缓存中的文件存储量小于第一阈值;
确定文件缓存中的文件存储量超过设定的第二阈值时,删除设定比例的距离上次使用时间最长的文件。
本发明实施例还提供一种文件缓存装置,包括:
加载单元,用于确定需要加载文件,且确定需要从网络下载该文件时,进行文件下载;
备份单元,用于下载文件后,将所下载的文件备份存储到文件缓存和一级缓存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信移动通信技术股份有限公司;,未经青岛海信移动通信技术股份有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310590835.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据迁移方法及装置
- 下一篇:基于节目关系的视频节目的搜索方法和装置