缓存管理

来源:互联网 发布:淘宝产品描述设计 编辑:程序博客网 时间:2024/05/29 18:09

缓存适用环境?
1. 提供网络服务的应用
2. 数据更新不需要实时更新。 
3. 缓存的过期时间是可以接受的。

带来的好处?

1. 服务器的压力大大减小
2. 客户端的响应速度大大变快(用户体验)
3. 客户端的数据加载出错情况大大较少,大大提高了应有的稳定性(用户体验)

4. 一定程度上可以支持离线浏览(或者说为离线浏览提供了技术支持)

舍弃Webview而采用json传输数据的原因?

网速偏慢。

交互较少。

如何判断使用缓存还是重新下载?

(1)通过设置过期时间(2)通过判断软引用,判断对象是否为空。

缓存有哪些方法?

数据库法缓存。

文件法缓存。


数据库法缓存?

创建数据库;每次查询数据库,如果过期更新数据库;清理缓存的时候还需要删除数据库数据;增加一个工具类或方法。
缓存的数据库存放在/data/data/<package>/databases/目录下,占用内存空间的,如果缓存累计,容易浪费内存,需要及时清理缓存。

文件法缓存?

使用File.lastModified()方法得到文件的最后修改时间,与当前时间判断是否过期,从而实现缓存效果。

1.不同类型文件缓存时间不一样。

不变文件永久,变化文件时最大承受时间。

 图片文件内容是不变的,直到清理之前,我们是可以永远读取缓存的。配置文件内容是可能更新的,需要设置一个可接受的缓存时间。

2.不同环境下文件缓存时间不一样。

无网络环境下,我们只能读取缓存文件,哪怕缓存早就过期。
WiFi网络环境下,缓存时间可以设置短一点,网速较快,流量不要钱。
移动数据流量环境下,缓存时间可以设置长一点,节省流量,节省金钱,用户体验也更好。

数据的更新频率,数据的重要性也是参考因素。

开发者一方面希望尽量读取缓存,用户一方面希望实时刷新,这是个矛盾。

你的数据更新时间为1天,则缓存时间设置为4~8小时比较合适,一天他总会看到更新,如果你觉得你是资讯类应用,再减少,2~4小时,如果你觉得数据比较重要或者比较受欢迎,用户会经常把玩,再减少,1~2小时,依次类推。
为了保险起见,你可能需要毫无理由的再次缩减一下。

提供刷新按钮:在相关界面提供一个刷新按钮,为缓存,为加载失败提供一次重新来过的机会,有了这个刷新按钮,我们的心也才真的放下来。

智能手机的缓存管理应用非常的普遍和需要,是提高用户体验的有效手段之一。

文件既能有效缓存,又能及时更新,同时支持离线浏览。



原创粉丝点击