继续探究缓存框架ACache和SharedPreferences

程序开发的缓存大概有哪些:
1.服务端控制缓存
如volley请求库,便是通过服务端的“Cache-Control”和“max-age”来告诉客户端有没有缓存以及缓存的时间,也是推荐的使用方式,但是需要服务端配合,比较灵活。

2.客户端直接控制缓存
有些时候不需要服务端来支持的话,客户端可以直接做一层缓存,思路就是请求之后把数据缓存在本地,最常见的是直接以文件缓存在本地就好了,当然你可以缓存在本地的sqlite,以sqlite文件的形式缓存数据处理更灵活点,然后客户端自己处理缓存的时间,过期则直接清除数据。对于一些不太经常变化的页面,采用这种缓存可以减少客户端流量,同时减少服务器并发量。

对于一些新闻类或者timeline这种,数据变化是非常频繁的,针对这种情况可能就不太适合设置缓存时间,这种情况可以考虑让页面每次进来都会自动刷新一次以获取最新数据,如果网络不好或者断开时可以直接读取本地缓存,增加用户体验。当然如果想要更复杂的处理可以配合时间来判断当前页面要不要刷新。
在上一篇中我们已经大概介绍了如何使用sp以及缓存框架ACache,补充几点,sp的跨进程,虽然谷歌提倡我们使用Content Provider,但既然sp有这种功能我们还是要写下。
被调用的应用A里面的
getSharedPreferences(“xx”, Context.MODE_WORLD_READABLE),参数二必须声明成Context.MODE_WORLD_READABLE或Context.MODE_WORLD_WRITEABLE权限这是前提。然后在B应用里面使用代码如下

//  方法中的局部变量必须声明成null,才能被调用
     Context createPackageContext = null;
    try {
        //参数一为被调用应用的包名,二为忽略安全检查标志       
        createPackageContext = createPackageContext("com.example.ex00",  Context.CONTEXT_IGNORE_SECURITY);
    } catch (NameNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }catch (Exception e) {    
        e.printStackTrace();    
    } 
    SharedPreferences sharedPreferences = createPackageContext.getSharedPreferences("spKJC", Context.MODE_PRIVATE);
    String string = sharedPreferences.getString("spKJC", "没有为该值");

如果不通过创建Context访问其他应用的preference,可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
File xmlFile = new File(“/data/data/应用包名/shared_prefs/文件名.xml”);
接下来补充缓存框架ACache
ACache类的构造方法为private的,所以只能通过get方式获取实例。默认情况下调运ACache.get(Context);方法得到的缓存文件放置在/data/data/app-package-name/cache/路径下,缓存的目录默认为ACache,缓存大小和数量均由ACache中的final变量控制。
文件里面的内容直接是数据没有格式
ACache的github地址
源码解析可以参考ASimpleCache开源库使用分析

http://blog.csdn.net/yanbober/article/details/45306851
这里写图片描述

好了有关缓存介绍完毕

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值